From cc40af334e619bb549038238507407866f774f8f Mon Sep 17 00:00:00 2001 From: hongbotian Date: Mon, 30 Nov 2015 01:35:09 -0500 Subject: upload apache JIRA: BOTTLENECK-10 Change-Id: I67eae31de6dc824097dfa56ab454ba36fdd23a2c Signed-off-by: hongbotian --- rubbos/app/apache2/bin/ab | Bin 0 -> 104358 bytes rubbos/app/apache2/bin/apachectl | 103 + rubbos/app/apache2/bin/apr-config | 249 + rubbos/app/apache2/bin/apu-config | 205 + rubbos/app/apache2/bin/apxs | 778 ++ rubbos/app/apache2/bin/checkgid | Bin 0 -> 13697 bytes rubbos/app/apache2/bin/dbmmanage | 312 + rubbos/app/apache2/bin/envvars | 24 + rubbos/app/apache2/bin/envvars-std | 24 + rubbos/app/apache2/bin/htdbm | Bin 0 -> 44199 bytes rubbos/app/apache2/bin/htdigest | Bin 0 -> 30574 bytes rubbos/app/apache2/bin/htpasswd | Bin 0 -> 38642 bytes rubbos/app/apache2/bin/httpd | Bin 0 -> 2192464 bytes rubbos/app/apache2/bin/httxt2dbm | Bin 0 -> 23394 bytes rubbos/app/apache2/bin/logresolve | Bin 0 -> 29935 bytes rubbos/app/apache2/bin/rotatelogs | Bin 0 -> 26569 bytes rubbos/app/apache2/build/apr_rules.mk | 194 + rubbos/app/apache2/build/config.nice | 10 + rubbos/app/apache2/build/config_vars.mk | 150 + rubbos/app/apache2/build/instdso.sh | 93 + rubbos/app/apache2/build/library.mk | 22 + rubbos/app/apache2/build/libtool | 7621 ++++++++++++++++++++ rubbos/app/apache2/build/ltlib.mk | 23 + rubbos/app/apache2/build/make_exports.awk | 150 + rubbos/app/apache2/build/make_var_export.awk | 59 + rubbos/app/apache2/build/mkdir.sh | 37 + rubbos/app/apache2/build/program.mk | 22 + rubbos/app/apache2/build/rules.mk | 226 + rubbos/app/apache2/build/special.mk | 38 + rubbos/app/apache2/cgi-bin/printenv | 13 + rubbos/app/apache2/cgi-bin/test-cgi | 31 + rubbos/app/apache2/conf/highperformance-std.conf | 70 + rubbos/app/apache2/conf/highperformance.conf | 70 + rubbos/app/apache2/conf/httpd-std.conf | 1041 +++ rubbos/app/apache2/conf/httpd.conf | 1076 +++ rubbos/app/apache2/conf/magic | 382 + rubbos/app/apache2/conf/mime.types | 1351 ++++ rubbos/app/apache2/conf/ssl-std.conf | 246 + rubbos/app/apache2/conf/ssl.conf | 246 + rubbos/app/apache2/conf/workers.properties | 215 + rubbos/app/apache2/error/HTTP_BAD_GATEWAY.html.var | 290 + rubbos/app/apache2/error/HTTP_BAD_REQUEST.html.var | 213 + rubbos/app/apache2/error/HTTP_FORBIDDEN.html.var | 372 + rubbos/app/apache2/error/HTTP_GONE.html.var | 422 ++ .../error/HTTP_INTERNAL_SERVER_ERROR.html.var | 453 ++ .../apache2/error/HTTP_LENGTH_REQUIRED.html.var | 222 + .../apache2/error/HTTP_METHOD_NOT_ALLOWED.html.var | 213 + rubbos/app/apache2/error/HTTP_NOT_FOUND.html.var | 435 ++ .../apache2/error/HTTP_NOT_IMPLEMENTED.html.var | 201 + .../error/HTTP_PRECONDITION_FAILED.html.var | 205 + .../error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var | 226 + .../apache2/error/HTTP_REQUEST_TIME_OUT.html.var | 217 + .../error/HTTP_REQUEST_URI_TOO_LARGE.html.var | 217 + .../error/HTTP_SERVICE_UNAVAILABLE.html.var | 233 + .../app/apache2/error/HTTP_UNAUTHORIZED.html.var | 337 + .../error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var | 201 + .../error/HTTP_VARIANT_ALSO_VARIES.html.var | 223 + rubbos/app/apache2/error/README | 36 + rubbos/app/apache2/error/contact.html.var | 120 + rubbos/app/apache2/error/include/bottom.html | 14 + rubbos/app/apache2/error/include/spacer.html | 2 + rubbos/app/apache2/error/include/top.html | 24 + rubbos/app/apache2/htdocs/apache_pb.gif | Bin 0 -> 2326 bytes rubbos/app/apache2/htdocs/apache_pb.png | Bin 0 -> 1385 bytes rubbos/app/apache2/htdocs/apache_pb2.gif | Bin 0 -> 2414 bytes rubbos/app/apache2/htdocs/apache_pb2.png | Bin 0 -> 1463 bytes rubbos/app/apache2/htdocs/apache_pb2_ani.gif | Bin 0 -> 2160 bytes rubbos/app/apache2/htdocs/index.html.ca | 38 + rubbos/app/apache2/htdocs/index.html.cz.iso8859-2 | 51 + rubbos/app/apache2/htdocs/index.html.de | 61 + rubbos/app/apache2/htdocs/index.html.dk | 47 + rubbos/app/apache2/htdocs/index.html.ee | 53 + rubbos/app/apache2/htdocs/index.html.el | 37 + rubbos/app/apache2/htdocs/index.html.en | 38 + rubbos/app/apache2/htdocs/index.html.es | 51 + rubbos/app/apache2/htdocs/index.html.et | 53 + rubbos/app/apache2/htdocs/index.html.fr | 47 + rubbos/app/apache2/htdocs/index.html.he.iso8859-8 | 54 + rubbos/app/apache2/htdocs/index.html.hr.iso8859-2 | 35 + rubbos/app/apache2/htdocs/index.html.it | 39 + rubbos/app/apache2/htdocs/index.html.ja.iso2022-jp | 42 + rubbos/app/apache2/htdocs/index.html.ko.euc-kr | 37 + rubbos/app/apache2/htdocs/index.html.lb.utf8 | 37 + rubbos/app/apache2/htdocs/index.html.nl | 54 + rubbos/app/apache2/htdocs/index.html.nn | 48 + rubbos/app/apache2/htdocs/index.html.no | 48 + rubbos/app/apache2/htdocs/index.html.po.iso8859-2 | 40 + rubbos/app/apache2/htdocs/index.html.pt | 42 + rubbos/app/apache2/htdocs/index.html.pt-br | 47 + rubbos/app/apache2/htdocs/index.html.ru.cp-1251 | 34 + rubbos/app/apache2/htdocs/index.html.ru.cp866 | 34 + rubbos/app/apache2/htdocs/index.html.ru.iso-ru | 34 + rubbos/app/apache2/htdocs/index.html.ru.koi8-r | 34 + rubbos/app/apache2/htdocs/index.html.ru.utf8 | 34 + rubbos/app/apache2/htdocs/index.html.sv | 43 + rubbos/app/apache2/htdocs/index.html.var | 123 + rubbos/app/apache2/htdocs/index.html.zh-cn.gb2312 | 29 + rubbos/app/apache2/htdocs/index.html.zh-tw.big5 | 46 + rubbos/app/apache2/htdocs/rubbos/RUBBoS_logo.jpg | Bin 0 -> 9724 bytes rubbos/app/apache2/htdocs/rubbos/author.html | 70 + rubbos/app/apache2/htdocs/rubbos/browse.html | 68 + rubbos/app/apache2/htdocs/rubbos/header.html | 53 + rubbos/app/apache2/htdocs/rubbos/index.html | 82 + rubbos/app/apache2/htdocs/rubbos/register.html | 95 + .../htdocs/rubbos/rubbos_html/RUBBoS_logo.jpg | Bin 0 -> 9724 bytes .../apache2/htdocs/rubbos/rubbos_html/author.html | 70 + .../apache2/htdocs/rubbos/rubbos_html/browse.html | 68 + .../apache2/htdocs/rubbos/rubbos_html/header.html | 53 + .../apache2/htdocs/rubbos/rubbos_html/index.html | 82 + .../htdocs/rubbos/rubbos_html/register.html | 95 + rubbos/app/apache2/icons/README | 166 + rubbos/app/apache2/icons/README.html | 815 +++ rubbos/app/apache2/icons/a.gif | Bin 0 -> 246 bytes rubbos/app/apache2/icons/a.png | Bin 0 -> 317 bytes rubbos/app/apache2/icons/alert.black.gif | Bin 0 -> 242 bytes rubbos/app/apache2/icons/alert.black.png | Bin 0 -> 304 bytes rubbos/app/apache2/icons/alert.red.gif | Bin 0 -> 247 bytes rubbos/app/apache2/icons/alert.red.png | Bin 0 -> 315 bytes rubbos/app/apache2/icons/apache_pb.gif | Bin 0 -> 2326 bytes rubbos/app/apache2/icons/apache_pb.png | Bin 0 -> 2089 bytes rubbos/app/apache2/icons/apache_pb2.gif | Bin 0 -> 2414 bytes rubbos/app/apache2/icons/apache_pb2.png | Bin 0 -> 2175 bytes rubbos/app/apache2/icons/apache_pb2_ani.gif | Bin 0 -> 2160 bytes rubbos/app/apache2/icons/back.gif | Bin 0 -> 216 bytes rubbos/app/apache2/icons/back.png | Bin 0 -> 316 bytes rubbos/app/apache2/icons/ball.gray.gif | Bin 0 -> 233 bytes rubbos/app/apache2/icons/ball.gray.png | Bin 0 -> 317 bytes rubbos/app/apache2/icons/ball.red.gif | Bin 0 -> 205 bytes rubbos/app/apache2/icons/ball.red.png | Bin 0 -> 295 bytes rubbos/app/apache2/icons/binary.gif | Bin 0 -> 246 bytes rubbos/app/apache2/icons/binary.png | Bin 0 -> 316 bytes rubbos/app/apache2/icons/binhex.gif | Bin 0 -> 246 bytes rubbos/app/apache2/icons/binhex.png | Bin 0 -> 325 bytes rubbos/app/apache2/icons/blank.gif | Bin 0 -> 148 bytes rubbos/app/apache2/icons/blank.png | Bin 0 -> 220 bytes rubbos/app/apache2/icons/bomb.gif | Bin 0 -> 308 bytes rubbos/app/apache2/icons/bomb.png | Bin 0 -> 390 bytes rubbos/app/apache2/icons/box1.gif | Bin 0 -> 251 bytes rubbos/app/apache2/icons/box1.png | Bin 0 -> 325 bytes rubbos/app/apache2/icons/box2.gif | Bin 0 -> 268 bytes rubbos/app/apache2/icons/box2.png | Bin 0 -> 336 bytes rubbos/app/apache2/icons/broken.gif | Bin 0 -> 247 bytes rubbos/app/apache2/icons/broken.png | Bin 0 -> 329 bytes rubbos/app/apache2/icons/burst.gif | Bin 0 -> 235 bytes rubbos/app/apache2/icons/burst.png | Bin 0 -> 344 bytes rubbos/app/apache2/icons/c.gif | Bin 0 -> 242 bytes rubbos/app/apache2/icons/c.png | Bin 0 -> 308 bytes rubbos/app/apache2/icons/comp.blue.gif | Bin 0 -> 251 bytes rubbos/app/apache2/icons/comp.blue.png | Bin 0 -> 330 bytes rubbos/app/apache2/icons/comp.gray.gif | Bin 0 -> 246 bytes rubbos/app/apache2/icons/comp.gray.png | Bin 0 -> 324 bytes rubbos/app/apache2/icons/compressed.gif | Bin 0 -> 1038 bytes rubbos/app/apache2/icons/compressed.png | Bin 0 -> 1108 bytes rubbos/app/apache2/icons/continued.gif | Bin 0 -> 214 bytes rubbos/app/apache2/icons/continued.png | Bin 0 -> 302 bytes rubbos/app/apache2/icons/dir.gif | Bin 0 -> 225 bytes rubbos/app/apache2/icons/dir.png | Bin 0 -> 301 bytes rubbos/app/apache2/icons/diskimg.gif | Bin 0 -> 167 bytes rubbos/app/apache2/icons/diskimg.png | Bin 0 -> 215 bytes rubbos/app/apache2/icons/down.gif | Bin 0 -> 163 bytes rubbos/app/apache2/icons/down.png | Bin 0 -> 262 bytes rubbos/app/apache2/icons/dvi.gif | Bin 0 -> 238 bytes rubbos/app/apache2/icons/dvi.png | Bin 0 -> 314 bytes rubbos/app/apache2/icons/f.gif | Bin 0 -> 236 bytes rubbos/app/apache2/icons/f.png | Bin 0 -> 305 bytes rubbos/app/apache2/icons/folder.gif | Bin 0 -> 225 bytes rubbos/app/apache2/icons/folder.open.gif | Bin 0 -> 242 bytes rubbos/app/apache2/icons/folder.open.png | Bin 0 -> 335 bytes rubbos/app/apache2/icons/folder.png | Bin 0 -> 301 bytes rubbos/app/apache2/icons/folder.sec.gif | Bin 0 -> 243 bytes rubbos/app/apache2/icons/folder.sec.png | Bin 0 -> 313 bytes rubbos/app/apache2/icons/forward.gif | Bin 0 -> 219 bytes rubbos/app/apache2/icons/forward.png | Bin 0 -> 314 bytes rubbos/app/apache2/icons/generic.gif | Bin 0 -> 221 bytes rubbos/app/apache2/icons/generic.png | Bin 0 -> 284 bytes rubbos/app/apache2/icons/generic.red.gif | Bin 0 -> 220 bytes rubbos/app/apache2/icons/generic.red.png | Bin 0 -> 286 bytes rubbos/app/apache2/icons/generic.sec.gif | Bin 0 -> 249 bytes rubbos/app/apache2/icons/generic.sec.png | Bin 0 -> 298 bytes rubbos/app/apache2/icons/hand.right.gif | Bin 0 -> 217 bytes rubbos/app/apache2/icons/hand.right.png | Bin 0 -> 322 bytes rubbos/app/apache2/icons/hand.up.gif | Bin 0 -> 223 bytes rubbos/app/apache2/icons/hand.up.png | Bin 0 -> 313 bytes rubbos/app/apache2/icons/icon.sheet.gif | Bin 0 -> 11977 bytes rubbos/app/apache2/icons/icon.sheet.png | Bin 0 -> 9018 bytes rubbos/app/apache2/icons/image1.gif | Bin 0 -> 274 bytes rubbos/app/apache2/icons/image1.png | Bin 0 -> 347 bytes rubbos/app/apache2/icons/image2.gif | Bin 0 -> 309 bytes rubbos/app/apache2/icons/image2.png | Bin 0 -> 383 bytes rubbos/app/apache2/icons/image3.gif | Bin 0 -> 286 bytes rubbos/app/apache2/icons/image3.png | Bin 0 -> 356 bytes rubbos/app/apache2/icons/index.gif | Bin 0 -> 268 bytes rubbos/app/apache2/icons/index.png | Bin 0 -> 338 bytes rubbos/app/apache2/icons/layout.gif | Bin 0 -> 276 bytes rubbos/app/apache2/icons/layout.png | Bin 0 -> 344 bytes rubbos/app/apache2/icons/left.gif | Bin 0 -> 172 bytes rubbos/app/apache2/icons/left.png | Bin 0 -> 260 bytes rubbos/app/apache2/icons/link.gif | Bin 0 -> 249 bytes rubbos/app/apache2/icons/link.png | Bin 0 -> 317 bytes rubbos/app/apache2/icons/movie.gif | Bin 0 -> 243 bytes rubbos/app/apache2/icons/movie.png | Bin 0 -> 275 bytes rubbos/app/apache2/icons/p.gif | Bin 0 -> 237 bytes rubbos/app/apache2/icons/p.png | Bin 0 -> 307 bytes rubbos/app/apache2/icons/patch.gif | Bin 0 -> 251 bytes rubbos/app/apache2/icons/patch.png | Bin 0 -> 313 bytes rubbos/app/apache2/icons/pdf.gif | Bin 0 -> 249 bytes rubbos/app/apache2/icons/pdf.png | Bin 0 -> 313 bytes rubbos/app/apache2/icons/pie0.gif | Bin 0 -> 188 bytes rubbos/app/apache2/icons/pie0.png | Bin 0 -> 262 bytes rubbos/app/apache2/icons/pie1.gif | Bin 0 -> 198 bytes rubbos/app/apache2/icons/pie1.png | Bin 0 -> 282 bytes rubbos/app/apache2/icons/pie2.gif | Bin 0 -> 198 bytes rubbos/app/apache2/icons/pie2.png | Bin 0 -> 275 bytes rubbos/app/apache2/icons/pie3.gif | Bin 0 -> 191 bytes rubbos/app/apache2/icons/pie3.png | Bin 0 -> 279 bytes rubbos/app/apache2/icons/pie4.gif | Bin 0 -> 193 bytes rubbos/app/apache2/icons/pie4.png | Bin 0 -> 261 bytes rubbos/app/apache2/icons/pie5.gif | Bin 0 -> 189 bytes rubbos/app/apache2/icons/pie5.png | Bin 0 -> 280 bytes rubbos/app/apache2/icons/pie6.gif | Bin 0 -> 186 bytes rubbos/app/apache2/icons/pie6.png | Bin 0 -> 276 bytes rubbos/app/apache2/icons/pie7.gif | Bin 0 -> 185 bytes rubbos/app/apache2/icons/pie7.png | Bin 0 -> 278 bytes rubbos/app/apache2/icons/pie8.gif | Bin 0 -> 173 bytes rubbos/app/apache2/icons/pie8.png | Bin 0 -> 262 bytes rubbos/app/apache2/icons/portal.gif | Bin 0 -> 254 bytes rubbos/app/apache2/icons/portal.png | Bin 0 -> 319 bytes rubbos/app/apache2/icons/ps.gif | Bin 0 -> 244 bytes rubbos/app/apache2/icons/ps.png | Bin 0 -> 312 bytes rubbos/app/apache2/icons/quill.gif | Bin 0 -> 267 bytes rubbos/app/apache2/icons/quill.png | Bin 0 -> 329 bytes rubbos/app/apache2/icons/right.gif | Bin 0 -> 172 bytes rubbos/app/apache2/icons/right.png | Bin 0 -> 257 bytes rubbos/app/apache2/icons/screw1.gif | Bin 0 -> 258 bytes rubbos/app/apache2/icons/screw1.png | Bin 0 -> 334 bytes rubbos/app/apache2/icons/screw2.gif | Bin 0 -> 263 bytes rubbos/app/apache2/icons/screw2.png | Bin 0 -> 339 bytes rubbos/app/apache2/icons/script.gif | Bin 0 -> 242 bytes rubbos/app/apache2/icons/script.png | Bin 0 -> 299 bytes rubbos/app/apache2/icons/small/back.gif | Bin 0 -> 129 bytes rubbos/app/apache2/icons/small/back.png | Bin 0 -> 181 bytes rubbos/app/apache2/icons/small/binary.gif | Bin 0 -> 134 bytes rubbos/app/apache2/icons/small/binary.png | Bin 0 -> 172 bytes rubbos/app/apache2/icons/small/binhex.gif | Bin 0 -> 131 bytes rubbos/app/apache2/icons/small/binhex.png | Bin 0 -> 178 bytes rubbos/app/apache2/icons/small/blank.gif | Bin 0 -> 55 bytes rubbos/app/apache2/icons/small/blank.png | Bin 0 -> 100 bytes rubbos/app/apache2/icons/small/broken.gif | Bin 0 -> 139 bytes rubbos/app/apache2/icons/small/broken.png | Bin 0 -> 184 bytes rubbos/app/apache2/icons/small/burst.gif | Bin 0 -> 128 bytes rubbos/app/apache2/icons/small/burst.png | Bin 0 -> 210 bytes rubbos/app/apache2/icons/small/comp1.gif | Bin 0 -> 130 bytes rubbos/app/apache2/icons/small/comp1.png | Bin 0 -> 216 bytes rubbos/app/apache2/icons/small/comp2.gif | Bin 0 -> 131 bytes rubbos/app/apache2/icons/small/comp2.png | Bin 0 -> 215 bytes rubbos/app/apache2/icons/small/compressed.gif | Bin 0 -> 128 bytes rubbos/app/apache2/icons/small/compressed.png | Bin 0 -> 212 bytes rubbos/app/apache2/icons/small/continued.gif | Bin 0 -> 114 bytes rubbos/app/apache2/icons/small/continued.png | Bin 0 -> 163 bytes rubbos/app/apache2/icons/small/dir.gif | Bin 0 -> 132 bytes rubbos/app/apache2/icons/small/dir.png | Bin 0 -> 175 bytes rubbos/app/apache2/icons/small/dir2.gif | Bin 0 -> 122 bytes rubbos/app/apache2/icons/small/dir2.png | Bin 0 -> 161 bytes rubbos/app/apache2/icons/small/doc.gif | Bin 0 -> 191 bytes rubbos/app/apache2/icons/small/doc.png | Bin 0 -> 222 bytes rubbos/app/apache2/icons/small/forward.gif | Bin 0 -> 125 bytes rubbos/app/apache2/icons/small/forward.png | Bin 0 -> 174 bytes rubbos/app/apache2/icons/small/generic.gif | Bin 0 -> 116 bytes rubbos/app/apache2/icons/small/generic.png | Bin 0 -> 149 bytes rubbos/app/apache2/icons/small/generic2.gif | Bin 0 -> 127 bytes rubbos/app/apache2/icons/small/generic2.png | Bin 0 -> 179 bytes rubbos/app/apache2/icons/small/generic3.gif | Bin 0 -> 113 bytes rubbos/app/apache2/icons/small/generic3.png | Bin 0 -> 171 bytes rubbos/app/apache2/icons/small/image.gif | Bin 0 -> 126 bytes rubbos/app/apache2/icons/small/image.png | Bin 0 -> 197 bytes rubbos/app/apache2/icons/small/image2.gif | Bin 0 -> 138 bytes rubbos/app/apache2/icons/small/image2.png | Bin 0 -> 203 bytes rubbos/app/apache2/icons/small/index.gif | Bin 0 -> 145 bytes rubbos/app/apache2/icons/small/index.png | Bin 0 -> 225 bytes rubbos/app/apache2/icons/small/key.gif | Bin 0 -> 187 bytes rubbos/app/apache2/icons/small/key.png | Bin 0 -> 210 bytes rubbos/app/apache2/icons/small/movie.gif | Bin 0 -> 134 bytes rubbos/app/apache2/icons/small/movie.png | Bin 0 -> 159 bytes rubbos/app/apache2/icons/small/patch.gif | Bin 0 -> 182 bytes rubbos/app/apache2/icons/small/patch.png | Bin 0 -> 211 bytes rubbos/app/apache2/icons/small/ps.gif | Bin 0 -> 184 bytes rubbos/app/apache2/icons/small/ps.png | Bin 0 -> 217 bytes rubbos/app/apache2/icons/small/rainbow.gif | Bin 0 -> 3811 bytes rubbos/app/apache2/icons/small/rainbow.png | Bin 0 -> 2427 bytes rubbos/app/apache2/icons/small/sound.gif | Bin 0 -> 130 bytes rubbos/app/apache2/icons/small/sound.png | Bin 0 -> 197 bytes rubbos/app/apache2/icons/small/sound2.gif | Bin 0 -> 119 bytes rubbos/app/apache2/icons/small/sound2.png | Bin 0 -> 171 bytes rubbos/app/apache2/icons/small/tar.gif | Bin 0 -> 132 bytes rubbos/app/apache2/icons/small/tar.png | Bin 0 -> 173 bytes rubbos/app/apache2/icons/small/text.gif | Bin 0 -> 128 bytes rubbos/app/apache2/icons/small/text.png | Bin 0 -> 163 bytes rubbos/app/apache2/icons/small/transfer.gif | Bin 0 -> 124 bytes rubbos/app/apache2/icons/small/transfer.png | Bin 0 -> 211 bytes rubbos/app/apache2/icons/small/unknown.gif | Bin 0 -> 131 bytes rubbos/app/apache2/icons/small/unknown.png | Bin 0 -> 172 bytes rubbos/app/apache2/icons/small/uu.gif | Bin 0 -> 125 bytes rubbos/app/apache2/icons/small/uu.png | Bin 0 -> 166 bytes rubbos/app/apache2/icons/sound1.gif | Bin 0 -> 248 bytes rubbos/app/apache2/icons/sound1.png | Bin 0 -> 331 bytes rubbos/app/apache2/icons/sound2.gif | Bin 0 -> 221 bytes rubbos/app/apache2/icons/sound2.png | Bin 0 -> 319 bytes rubbos/app/apache2/icons/sphere1.gif | Bin 0 -> 285 bytes rubbos/app/apache2/icons/sphere1.png | Bin 0 -> 368 bytes rubbos/app/apache2/icons/sphere2.gif | Bin 0 -> 264 bytes rubbos/app/apache2/icons/sphere2.png | Bin 0 -> 339 bytes rubbos/app/apache2/icons/tar.gif | Bin 0 -> 219 bytes rubbos/app/apache2/icons/tar.png | Bin 0 -> 270 bytes rubbos/app/apache2/icons/tex.gif | Bin 0 -> 251 bytes rubbos/app/apache2/icons/tex.png | Bin 0 -> 319 bytes rubbos/app/apache2/icons/text.gif | Bin 0 -> 229 bytes rubbos/app/apache2/icons/text.png | Bin 0 -> 298 bytes rubbos/app/apache2/icons/transfer.gif | Bin 0 -> 242 bytes rubbos/app/apache2/icons/transfer.png | Bin 0 -> 337 bytes rubbos/app/apache2/icons/unknown.gif | Bin 0 -> 245 bytes rubbos/app/apache2/icons/unknown.png | Bin 0 -> 316 bytes rubbos/app/apache2/icons/up.gif | Bin 0 -> 164 bytes rubbos/app/apache2/icons/up.png | Bin 0 -> 261 bytes rubbos/app/apache2/icons/uu.gif | Bin 0 -> 236 bytes rubbos/app/apache2/icons/uu.png | Bin 0 -> 305 bytes rubbos/app/apache2/icons/uuencoded.gif | Bin 0 -> 236 bytes rubbos/app/apache2/icons/uuencoded.png | Bin 0 -> 305 bytes rubbos/app/apache2/icons/world1.gif | Bin 0 -> 228 bytes rubbos/app/apache2/icons/world1.png | Bin 0 -> 332 bytes rubbos/app/apache2/icons/world2.gif | Bin 0 -> 261 bytes rubbos/app/apache2/icons/world2.png | Bin 0 -> 366 bytes rubbos/app/apache2/include/ap_compat.h | 28 + rubbos/app/apache2/include/ap_config.h | 256 + rubbos/app/apache2/include/ap_config_auto.h | 250 + rubbos/app/apache2/include/ap_config_layout.h | 59 + rubbos/app/apache2/include/ap_listen.h | 119 + rubbos/app/apache2/include/ap_mmn.h | 127 + rubbos/app/apache2/include/ap_mpm.h | 176 + rubbos/app/apache2/include/ap_provider.h | 54 + rubbos/app/apache2/include/ap_regkey.h | 218 + rubbos/app/apache2/include/ap_release.h | 56 + rubbos/app/apache2/include/apr.h | 414 ++ rubbos/app/apache2/include/apr_allocator.h | 170 + rubbos/app/apache2/include/apr_anylock.h | 128 + rubbos/app/apache2/include/apr_atomic.h | 314 + rubbos/app/apache2/include/apr_base64.h | 112 + rubbos/app/apache2/include/apr_buckets.h | 1495 ++++ rubbos/app/apache2/include/apr_compat.h | 231 + rubbos/app/apache2/include/apr_date.h | 106 + rubbos/app/apache2/include/apr_dbm.h | 224 + rubbos/app/apache2/include/apr_dso.h | 94 + rubbos/app/apache2/include/apr_env.h | 67 + rubbos/app/apache2/include/apr_errno.h | 1219 ++++ rubbos/app/apache2/include/apr_file_info.h | 421 ++ rubbos/app/apache2/include/apr_file_io.h | 766 ++ rubbos/app/apache2/include/apr_fnmatch.h | 105 + rubbos/app/apache2/include/apr_general.h | 249 + rubbos/app/apache2/include/apr_getopt.h | 158 + rubbos/app/apache2/include/apr_global_mutex.h | 153 + rubbos/app/apache2/include/apr_hash.h | 201 + rubbos/app/apache2/include/apr_hooks.h | 273 + rubbos/app/apache2/include/apr_inherit.h | 51 + rubbos/app/apache2/include/apr_ldap.h | 176 + rubbos/app/apache2/include/apr_ldap_url.h | 84 + rubbos/app/apache2/include/apr_lib.h | 228 + rubbos/app/apache2/include/apr_md4.h | 135 + rubbos/app/apache2/include/apr_md5.h | 158 + rubbos/app/apache2/include/apr_mmap.h | 193 + rubbos/app/apache2/include/apr_network_io.h | 845 +++ rubbos/app/apache2/include/apr_optional.h | 99 + rubbos/app/apache2/include/apr_optional_hooks.h | 117 + rubbos/app/apache2/include/apr_poll.h | 253 + rubbos/app/apache2/include/apr_pools.h | 664 ++ rubbos/app/apache2/include/apr_portable.h | 505 ++ rubbos/app/apache2/include/apr_proc_mutex.h | 166 + rubbos/app/apache2/include/apr_queue.h | 138 + rubbos/app/apache2/include/apr_reslist.h | 141 + rubbos/app/apache2/include/apr_ring.h | 551 ++ rubbos/app/apache2/include/apr_rmm.h | 137 + rubbos/app/apache2/include/apr_sdbm.h | 175 + rubbos/app/apache2/include/apr_sha1.h | 121 + rubbos/app/apache2/include/apr_shm.h | 127 + rubbos/app/apache2/include/apr_signal.h | 98 + rubbos/app/apache2/include/apr_strings.h | 337 + rubbos/app/apache2/include/apr_strmatch.h | 81 + rubbos/app/apache2/include/apr_support.h | 51 + rubbos/app/apache2/include/apr_tables.h | 422 ++ rubbos/app/apache2/include/apr_thread_cond.h | 128 + rubbos/app/apache2/include/apr_thread_mutex.h | 110 + rubbos/app/apache2/include/apr_thread_proc.h | 772 ++ rubbos/app/apache2/include/apr_thread_rwlock.h | 120 + rubbos/app/apache2/include/apr_time.h | 245 + rubbos/app/apache2/include/apr_uri.h | 181 + rubbos/app/apache2/include/apr_user.h | 195 + rubbos/app/apache2/include/apr_uuid.h | 76 + rubbos/app/apache2/include/apr_version.h | 115 + rubbos/app/apache2/include/apr_want.h | 109 + rubbos/app/apache2/include/apr_xlate.h | 158 + rubbos/app/apache2/include/apr_xml.h | 340 + rubbos/app/apache2/include/apu.h | 85 + rubbos/app/apache2/include/apu_compat.h | 116 + rubbos/app/apache2/include/apu_version.h | 105 + rubbos/app/apache2/include/apu_want.h | 50 + rubbos/app/apache2/include/expat.h | 1001 +++ rubbos/app/apache2/include/fdqueue.h | 64 + rubbos/app/apache2/include/http_config.h | 1018 +++ rubbos/app/apache2/include/http_connection.h | 139 + rubbos/app/apache2/include/http_core.h | 640 ++ rubbos/app/apache2/include/http_log.h | 334 + rubbos/app/apache2/include/http_main.h | 58 + rubbos/app/apache2/include/http_protocol.h | 697 ++ rubbos/app/apache2/include/http_request.h | 373 + rubbos/app/apache2/include/http_vhost.h | 109 + rubbos/app/apache2/include/httpd.h | 1760 +++++ rubbos/app/apache2/include/mod_cgi.h | 62 + rubbos/app/apache2/include/mod_core.h | 80 + rubbos/app/apache2/include/mod_dav.h | 2420 +++++++ rubbos/app/apache2/include/mod_include.h | 206 + rubbos/app/apache2/include/mod_log_config.h | 63 + rubbos/app/apache2/include/mod_proxy.h | 255 + rubbos/app/apache2/include/mod_ssl.h | 724 ++ rubbos/app/apache2/include/mod_status.h | 54 + rubbos/app/apache2/include/mpm.h | 50 + rubbos/app/apache2/include/mpm_common.h | 298 + rubbos/app/apache2/include/mpm_default.h | 69 + rubbos/app/apache2/include/os.h | 27 + rubbos/app/apache2/include/pcre.h | 113 + rubbos/app/apache2/include/pcreposix.h | 88 + rubbos/app/apache2/include/pod.h | 50 + rubbos/app/apache2/include/rfc1413.h | 42 + rubbos/app/apache2/include/scoreboard.h | 197 + rubbos/app/apache2/include/ssl_expr.h | 104 + rubbos/app/apache2/include/ssl_expr_parse.h | 27 + rubbos/app/apache2/include/ssl_toolkit_compat.h | 239 + rubbos/app/apache2/include/ssl_util_ssl.h | 93 + rubbos/app/apache2/include/ssl_util_table.h | 152 + rubbos/app/apache2/include/unixd.h | 109 + rubbos/app/apache2/include/util_cfgtree.h | 79 + rubbos/app/apache2/include/util_charset.h | 54 + rubbos/app/apache2/include/util_ebcdic.h | 78 + rubbos/app/apache2/include/util_filter.h | 516 ++ rubbos/app/apache2/include/util_ldap.h | 318 + rubbos/app/apache2/include/util_md5.h | 70 + rubbos/app/apache2/include/util_script.h | 142 + rubbos/app/apache2/include/util_time.h | 85 + rubbos/app/apache2/include/util_xml.h | 46 + rubbos/app/apache2/lib/apr.exp | 419 ++ rubbos/app/apache2/lib/aprutil.exp | 187 + rubbos/app/apache2/lib/libapr-0.a | Bin 0 -> 1237804 bytes rubbos/app/apache2/lib/libapr-0.la | 35 + rubbos/app/apache2/lib/libapr-0.so | Bin 0 -> 708933 bytes rubbos/app/apache2/lib/libapr-0.so.0 | Bin 0 -> 708933 bytes rubbos/app/apache2/lib/libapr-0.so.0.9.19 | Bin 0 -> 708933 bytes rubbos/app/apache2/lib/libaprutil-0.a | Bin 0 -> 709894 bytes rubbos/app/apache2/lib/libaprutil-0.la | 35 + rubbos/app/apache2/lib/libaprutil-0.so | Bin 0 -> 415764 bytes rubbos/app/apache2/lib/libaprutil-0.so.0 | Bin 0 -> 415764 bytes rubbos/app/apache2/lib/libaprutil-0.so.0.9.19 | Bin 0 -> 415764 bytes rubbos/app/apache2/lib/libexpat.a | Bin 0 -> 804898 bytes rubbos/app/apache2/lib/libexpat.la | 35 + rubbos/app/apache2/lib/libexpat.so | Bin 0 -> 513838 bytes rubbos/app/apache2/lib/libexpat.so.0 | Bin 0 -> 513838 bytes rubbos/app/apache2/lib/libexpat.so.0.5.0 | Bin 0 -> 513838 bytes rubbos/app/apache2/logs/access_log | 0 rubbos/app/apache2/logs/error_log | 2 + rubbos/app/apache2/man/man1/dbmmanage.1 | 118 + rubbos/app/apache2/man/man1/htdbm.1 | 169 + rubbos/app/apache2/man/man1/htdigest.1 | 57 + rubbos/app/apache2/man/man1/htpasswd.1 | 146 + rubbos/app/apache2/man/man8/ab.8 | 125 + rubbos/app/apache2/man/man8/apachectl.8 | 92 + rubbos/app/apache2/man/man8/apxs.8 | 255 + rubbos/app/apache2/man/man8/httpd.8 | 116 + rubbos/app/apache2/man/man8/logresolve.8 | 51 + rubbos/app/apache2/man/man8/rotatelogs.8 | 133 + rubbos/app/apache2/man/man8/suexec.8 | 48 + rubbos/app/apache2/manual/LICENSE | 202 + rubbos/app/apache2/manual/bind.html | 25 + rubbos/app/apache2/manual/bind.html.en | 177 + rubbos/app/apache2/manual/bind.html.es | 187 + rubbos/app/apache2/manual/bind.html.fr | 194 + rubbos/app/apache2/manual/bind.html.ja.utf8 | 193 + rubbos/app/apache2/manual/bind.html.ko.euc-kr | 163 + rubbos/app/apache2/manual/bind.html.tr.utf8 | 172 + rubbos/app/apache2/manual/configuring.html | 25 + rubbos/app/apache2/manual/configuring.html.de | 190 + rubbos/app/apache2/manual/configuring.html.en | 171 + rubbos/app/apache2/manual/configuring.html.fr | 185 + rubbos/app/apache2/manual/configuring.html.ja.utf8 | 175 + .../app/apache2/manual/configuring.html.ko.euc-kr | 156 + rubbos/app/apache2/manual/configuring.html.tr.utf8 | 101 + rubbos/app/apache2/manual/content-negotiation.html | 21 + .../app/apache2/manual/content-negotiation.html.en | 666 ++ .../app/apache2/manual/content-negotiation.html.fr | 715 ++ .../manual/content-negotiation.html.ja.utf8 | 725 ++ .../manual/content-negotiation.html.ko.euc-kr | 608 ++ .../manual/content-negotiation.html.tr.utf8 | 640 ++ rubbos/app/apache2/manual/custom-error.html | 25 + rubbos/app/apache2/manual/custom-error.html.en | 208 + rubbos/app/apache2/manual/custom-error.html.es | 223 + rubbos/app/apache2/manual/custom-error.html.fr | 215 + .../app/apache2/manual/custom-error.html.ja.utf8 | 201 + .../app/apache2/manual/custom-error.html.ko.euc-kr | 202 + .../app/apache2/manual/custom-error.html.tr.utf8 | 205 + rubbos/app/apache2/manual/developer/API.html | 5 + rubbos/app/apache2/manual/developer/API.html.en | 1223 ++++ rubbos/app/apache2/manual/developer/debugging.html | 5 + .../app/apache2/manual/developer/debugging.html.en | 196 + .../app/apache2/manual/developer/documenting.html | 5 + .../apache2/manual/developer/documenting.html.en | 84 + rubbos/app/apache2/manual/developer/filters.html | 5 + .../app/apache2/manual/developer/filters.html.en | 210 + rubbos/app/apache2/manual/developer/hooks.html | 5 + rubbos/app/apache2/manual/developer/hooks.html.en | 239 + rubbos/app/apache2/manual/developer/index.html | 5 + rubbos/app/apache2/manual/developer/index.html.en | 73 + rubbos/app/apache2/manual/developer/modules.html | 9 + .../app/apache2/manual/developer/modules.html.en | 273 + .../apache2/manual/developer/modules.html.ja.utf8 | 274 + rubbos/app/apache2/manual/developer/request.html | 5 + .../app/apache2/manual/developer/request.html.en | 260 + .../apache2/manual/developer/thread_safety.html | 5 + .../apache2/manual/developer/thread_safety.html.en | 285 + rubbos/app/apache2/manual/dns-caveats.html | 25 + rubbos/app/apache2/manual/dns-caveats.html.en | 245 + rubbos/app/apache2/manual/dns-caveats.html.es | 268 + rubbos/app/apache2/manual/dns-caveats.html.fr | 255 + rubbos/app/apache2/manual/dns-caveats.html.ja.utf8 | 249 + .../app/apache2/manual/dns-caveats.html.ko.euc-kr | 229 + rubbos/app/apache2/manual/dns-caveats.html.tr.utf8 | 239 + rubbos/app/apache2/manual/dso.html | 25 + rubbos/app/apache2/manual/dso.html.en | 318 + rubbos/app/apache2/manual/dso.html.es | 375 + rubbos/app/apache2/manual/dso.html.fr | 322 + rubbos/app/apache2/manual/dso.html.ja.utf8 | 301 + rubbos/app/apache2/manual/dso.html.ko.euc-kr | 282 + rubbos/app/apache2/manual/dso.html.tr.utf8 | 312 + rubbos/app/apache2/manual/env.html | 25 + rubbos/app/apache2/manual/env.html.en | 417 ++ rubbos/app/apache2/manual/env.html.es | 440 ++ rubbos/app/apache2/manual/env.html.fr | 425 ++ rubbos/app/apache2/manual/env.html.ja.utf8 | 391 + rubbos/app/apache2/manual/env.html.ko.euc-kr | 370 + rubbos/app/apache2/manual/env.html.tr.utf8 | 413 ++ rubbos/app/apache2/manual/faq/all_in_one.html | 13 + rubbos/app/apache2/manual/faq/all_in_one.html.en | 206 + .../apache2/manual/faq/all_in_one.html.ko.euc-kr | 207 + .../app/apache2/manual/faq/all_in_one.html.tr.utf8 | 209 + rubbos/app/apache2/manual/faq/error.html | 13 + rubbos/app/apache2/manual/faq/error.html.en | 85 + rubbos/app/apache2/manual/faq/error.html.ko.euc-kr | 84 + rubbos/app/apache2/manual/faq/error.html.tr.utf8 | 84 + rubbos/app/apache2/manual/faq/index.html | 13 + rubbos/app/apache2/manual/faq/index.html.en | 49 + rubbos/app/apache2/manual/faq/index.html.ko.euc-kr | 47 + rubbos/app/apache2/manual/faq/index.html.tr.utf8 | 49 + rubbos/app/apache2/manual/faq/support.html | 13 + rubbos/app/apache2/manual/faq/support.html.en | 138 + .../app/apache2/manual/faq/support.html.ko.euc-kr | 142 + rubbos/app/apache2/manual/faq/support.html.tr.utf8 | 142 + rubbos/app/apache2/manual/filter.html | 29 + rubbos/app/apache2/manual/filter.html.en | 84 + rubbos/app/apache2/manual/filter.html.es | 81 + rubbos/app/apache2/manual/filter.html.fr | 89 + rubbos/app/apache2/manual/filter.html.ja.utf8 | 84 + rubbos/app/apache2/manual/filter.html.ko.euc-kr | 82 + rubbos/app/apache2/manual/filter.html.ru.koi8-r | 85 + rubbos/app/apache2/manual/filter.html.tr.utf8 | 82 + rubbos/app/apache2/manual/glossary.html | 21 + rubbos/app/apache2/manual/glossary.html.de | 544 ++ rubbos/app/apache2/manual/glossary.html.en | 449 ++ rubbos/app/apache2/manual/glossary.html.es | 397 + rubbos/app/apache2/manual/glossary.html.ko.euc-kr | 366 + rubbos/app/apache2/manual/glossary.html.tr.utf8 | 460 ++ rubbos/app/apache2/manual/handler.html | 29 + rubbos/app/apache2/manual/handler.html.en | 159 + rubbos/app/apache2/manual/handler.html.es | 168 + rubbos/app/apache2/manual/handler.html.fr | 168 + rubbos/app/apache2/manual/handler.html.ja.utf8 | 163 + rubbos/app/apache2/manual/handler.html.ko.euc-kr | 153 + rubbos/app/apache2/manual/handler.html.ru.koi8-r | 168 + rubbos/app/apache2/manual/handler.html.tr.utf8 | 157 + rubbos/app/apache2/manual/howto/auth.html | 17 + rubbos/app/apache2/manual/howto/auth.html.en | 355 + rubbos/app/apache2/manual/howto/auth.html.es | 374 + rubbos/app/apache2/manual/howto/auth.html.ja.utf8 | 388 + .../app/apache2/manual/howto/auth.html.ko.euc-kr | 325 + rubbos/app/apache2/manual/howto/cgi.html | 13 + rubbos/app/apache2/manual/howto/cgi.html.en | 555 ++ rubbos/app/apache2/manual/howto/cgi.html.ja.utf8 | 546 ++ rubbos/app/apache2/manual/howto/cgi.html.ko.euc-kr | 503 ++ rubbos/app/apache2/manual/howto/htaccess.html | 13 + rubbos/app/apache2/manual/howto/htaccess.html.en | 386 + .../app/apache2/manual/howto/htaccess.html.ja.utf8 | 347 + .../apache2/manual/howto/htaccess.html.ko.euc-kr | 334 + rubbos/app/apache2/manual/howto/index.html | 13 + rubbos/app/apache2/manual/howto/index.html.en | 105 + rubbos/app/apache2/manual/howto/index.html.ja.utf8 | 102 + .../app/apache2/manual/howto/index.html.ko.euc-kr | 107 + rubbos/app/apache2/manual/howto/public_html.html | 17 + .../app/apache2/manual/howto/public_html.html.en | 163 + .../apache2/manual/howto/public_html.html.ja.utf8 | 157 + .../manual/howto/public_html.html.ko.euc-kr | 158 + .../apache2/manual/howto/public_html.html.tr.utf8 | 167 + rubbos/app/apache2/manual/howto/ssi.html | 13 + rubbos/app/apache2/manual/howto/ssi.html.en | 486 ++ rubbos/app/apache2/manual/howto/ssi.html.ja.utf8 | 481 ++ rubbos/app/apache2/manual/howto/ssi.html.ko.euc-kr | 426 ++ rubbos/app/apache2/manual/images/apache_header.gif | Bin 0 -> 4084 bytes .../app/apache2/manual/images/custom_errordocs.gif | Bin 0 -> 23291 bytes .../app/apache2/manual/images/custom_errordocs.png | Bin 0 -> 22907 bytes rubbos/app/apache2/manual/images/down.gif | Bin 0 -> 56 bytes rubbos/app/apache2/manual/images/favicon.ico | Bin 0 -> 1078 bytes rubbos/app/apache2/manual/images/feather.gif | Bin 0 -> 6471 bytes rubbos/app/apache2/manual/images/feather.png | Bin 0 -> 6345 bytes rubbos/app/apache2/manual/images/home.gif | Bin 0 -> 1465 bytes rubbos/app/apache2/manual/images/index.gif | Bin 0 -> 1540 bytes rubbos/app/apache2/manual/images/left.gif | Bin 0 -> 60 bytes .../app/apache2/manual/images/mod_rewrite_fig1.gif | Bin 0 -> 3525 bytes .../app/apache2/manual/images/mod_rewrite_fig1.png | Bin 0 -> 5597 bytes .../app/apache2/manual/images/mod_rewrite_fig2.gif | Bin 0 -> 2553 bytes .../app/apache2/manual/images/mod_rewrite_fig2.png | Bin 0 -> 4144 bytes rubbos/app/apache2/manual/images/pixel.gif | Bin 0 -> 61 bytes rubbos/app/apache2/manual/images/right.gif | Bin 0 -> 59 bytes .../app/apache2/manual/images/ssl_intro_fig1.gif | Bin 0 -> 5738 bytes .../app/apache2/manual/images/ssl_intro_fig1.png | Bin 0 -> 7325 bytes .../app/apache2/manual/images/ssl_intro_fig2.gif | Bin 0 -> 2700 bytes .../app/apache2/manual/images/ssl_intro_fig2.png | Bin 0 -> 3190 bytes .../app/apache2/manual/images/ssl_intro_fig3.gif | Bin 0 -> 4020 bytes .../app/apache2/manual/images/ssl_intro_fig3.png | Bin 0 -> 5487 bytes rubbos/app/apache2/manual/images/sub.gif | Bin 0 -> 6083 bytes rubbos/app/apache2/manual/images/up.gif | Bin 0 -> 57 bytes rubbos/app/apache2/manual/index.html | 33 + rubbos/app/apache2/manual/index.html.de | 104 + rubbos/app/apache2/manual/index.html.en | 103 + rubbos/app/apache2/manual/index.html.es | 108 + rubbos/app/apache2/manual/index.html.fr | 103 + rubbos/app/apache2/manual/index.html.ja.utf8 | 101 + rubbos/app/apache2/manual/index.html.ko.euc-kr | 101 + rubbos/app/apache2/manual/index.html.ru.koi8-r | 103 + rubbos/app/apache2/manual/index.html.tr.utf8 | 101 + rubbos/app/apache2/manual/install.html | 29 + rubbos/app/apache2/manual/install.html.de | 406 ++ rubbos/app/apache2/manual/install.html.en | 386 + rubbos/app/apache2/manual/install.html.es | 446 ++ rubbos/app/apache2/manual/install.html.ja.utf8 | 396 + rubbos/app/apache2/manual/install.html.ko.euc-kr | 363 + rubbos/app/apache2/manual/install.html.ru.koi8-r | 406 ++ rubbos/app/apache2/manual/install.html.tr.utf8 | 380 + rubbos/app/apache2/manual/invoking.html | 29 + rubbos/app/apache2/manual/invoking.html.de | 158 + rubbos/app/apache2/manual/invoking.html.en | 153 + rubbos/app/apache2/manual/invoking.html.es | 170 + rubbos/app/apache2/manual/invoking.html.ja.utf8 | 166 + rubbos/app/apache2/manual/invoking.html.ko.euc-kr | 142 + rubbos/app/apache2/manual/invoking.html.ru.koi8-r | 145 + rubbos/app/apache2/manual/invoking.html.tr.utf8 | 149 + rubbos/app/apache2/manual/license.html | 5 + rubbos/app/apache2/manual/license.html.en | 238 + rubbos/app/apache2/manual/logs.html | 21 + rubbos/app/apache2/manual/logs.html.en | 587 ++ rubbos/app/apache2/manual/logs.html.es | 644 ++ rubbos/app/apache2/manual/logs.html.ja.utf8 | 557 ++ rubbos/app/apache2/manual/logs.html.ko.euc-kr | 525 ++ rubbos/app/apache2/manual/logs.html.tr.utf8 | 557 ++ .../app/apache2/manual/misc/custom_errordocs.html | 5 + .../apache2/manual/misc/custom_errordocs.html.en | 577 ++ rubbos/app/apache2/manual/misc/descriptors.html | 5 + rubbos/app/apache2/manual/misc/descriptors.html.en | 233 + rubbos/app/apache2/manual/misc/fin_wait_2.html | 5 + rubbos/app/apache2/manual/misc/fin_wait_2.html.en | 422 ++ rubbos/app/apache2/manual/misc/index.html | 9 + rubbos/app/apache2/manual/misc/index.html.en | 121 + rubbos/app/apache2/manual/misc/index.html.tr.utf8 | 122 + .../apache2/manual/misc/known_client_problems.html | 5 + .../manual/misc/known_client_problems.html.en | 408 ++ rubbos/app/apache2/manual/misc/perf-tuning.html | 13 + rubbos/app/apache2/manual/misc/perf-tuning.html.en | 1058 +++ .../apache2/manual/misc/perf-tuning.html.ko.euc-kr | 978 +++ .../apache2/manual/misc/perf-tuning.html.tr.utf8 | 1100 +++ .../apache2/manual/misc/relevant_standards.html | 9 + .../apache2/manual/misc/relevant_standards.html.en | 199 + .../manual/misc/relevant_standards.html.ko.euc-kr | 191 + rubbos/app/apache2/manual/misc/rewriteguide.html | 9 + .../app/apache2/manual/misc/rewriteguide.html.en | 2110 ++++++ .../manual/misc/rewriteguide.html.ko.euc-kr | 2013 ++++++ rubbos/app/apache2/manual/misc/security_tips.html | 13 + .../app/apache2/manual/misc/security_tips.html.en | 354 + .../manual/misc/security_tips.html.ko.euc-kr | 345 + .../apache2/manual/misc/security_tips.html.tr.utf8 | 344 + rubbos/app/apache2/manual/misc/tutorials.html | 5 + rubbos/app/apache2/manual/misc/tutorials.html.en | 211 + rubbos/app/apache2/manual/mod/beos.html | 17 + rubbos/app/apache2/manual/mod/beos.html.de | 109 + rubbos/app/apache2/manual/mod/beos.html.en | 107 + rubbos/app/apache2/manual/mod/beos.html.es | 115 + rubbos/app/apache2/manual/mod/beos.html.ko.euc-kr | 105 + rubbos/app/apache2/manual/mod/core.html | 21 + rubbos/app/apache2/manual/mod/core.html.de | 3422 +++++++++ rubbos/app/apache2/manual/mod/core.html.en | 3250 +++++++++ rubbos/app/apache2/manual/mod/core.html.es | 3421 +++++++++ rubbos/app/apache2/manual/mod/core.html.ja.utf8 | 3203 ++++++++ rubbos/app/apache2/manual/mod/core.html.tr.utf8 | 3177 ++++++++ rubbos/app/apache2/manual/mod/directive-dict.html | 21 + .../app/apache2/manual/mod/directive-dict.html.en | 297 + .../app/apache2/manual/mod/directive-dict.html.es | 307 + .../apache2/manual/mod/directive-dict.html.ja.utf8 | 304 + .../manual/mod/directive-dict.html.ko.euc-kr | 256 + .../apache2/manual/mod/directive-dict.html.tr.utf8 | 176 + rubbos/app/apache2/manual/mod/directives.html | 29 + rubbos/app/apache2/manual/mod/directives.html.de | 416 ++ rubbos/app/apache2/manual/mod/directives.html.en | 417 ++ rubbos/app/apache2/manual/mod/directives.html.es | 417 ++ .../app/apache2/manual/mod/directives.html.ja.utf8 | 411 ++ .../apache2/manual/mod/directives.html.ko.euc-kr | 412 ++ .../apache2/manual/mod/directives.html.ru.koi8-r | 416 ++ .../app/apache2/manual/mod/directives.html.tr.utf8 | 413 ++ rubbos/app/apache2/manual/mod/index.html | 25 + rubbos/app/apache2/manual/mod/index.html.de | 183 + rubbos/app/apache2/manual/mod/index.html.en | 181 + rubbos/app/apache2/manual/mod/index.html.es | 185 + rubbos/app/apache2/manual/mod/index.html.ja.utf8 | 172 + rubbos/app/apache2/manual/mod/index.html.ko.euc-kr | 163 + rubbos/app/apache2/manual/mod/index.html.tr.utf8 | 174 + rubbos/app/apache2/manual/mod/leader.html | 17 + rubbos/app/apache2/manual/mod/leader.html.de | 97 + rubbos/app/apache2/manual/mod/leader.html.en | 93 + rubbos/app/apache2/manual/mod/leader.html.es | 102 + .../app/apache2/manual/mod/leader.html.ko.euc-kr | 92 + rubbos/app/apache2/manual/mod/mod_access.html | 9 + rubbos/app/apache2/manual/mod/mod_access.html.en | 372 + .../app/apache2/manual/mod/mod_access.html.ja.utf8 | 348 + rubbos/app/apache2/manual/mod/mod_actions.html | 13 + rubbos/app/apache2/manual/mod/mod_actions.html.en | 145 + .../apache2/manual/mod/mod_actions.html.ja.utf8 | 150 + .../apache2/manual/mod/mod_actions.html.ko.euc-kr | 140 + rubbos/app/apache2/manual/mod/mod_alias.html | 17 + rubbos/app/apache2/manual/mod/mod_alias.html.en | 430 ++ .../app/apache2/manual/mod/mod_alias.html.ja.utf8 | 389 + .../apache2/manual/mod/mod_alias.html.ko.euc-kr | 358 + .../app/apache2/manual/mod/mod_alias.html.tr.utf8 | 430 ++ rubbos/app/apache2/manual/mod/mod_asis.html | 13 + rubbos/app/apache2/manual/mod/mod_asis.html.en | 112 + .../app/apache2/manual/mod/mod_asis.html.ja.utf8 | 112 + .../app/apache2/manual/mod/mod_asis.html.ko.euc-kr | 110 + rubbos/app/apache2/manual/mod/mod_auth.html | 9 + rubbos/app/apache2/manual/mod/mod_auth.html.en | 201 + .../app/apache2/manual/mod/mod_auth.html.ja.utf8 | 226 + rubbos/app/apache2/manual/mod/mod_auth_anon.html | 5 + .../app/apache2/manual/mod/mod_auth_anon.html.en | 240 + rubbos/app/apache2/manual/mod/mod_auth_dbm.html | 5 + rubbos/app/apache2/manual/mod/mod_auth_dbm.html.en | 228 + rubbos/app/apache2/manual/mod/mod_auth_digest.html | 9 + .../app/apache2/manual/mod/mod_auth_digest.html.en | 358 + .../manual/mod/mod_auth_digest.html.ko.euc-kr | 344 + rubbos/app/apache2/manual/mod/mod_auth_ldap.html | 5 + .../app/apache2/manual/mod/mod_auth_ldap.html.en | 891 +++ rubbos/app/apache2/manual/mod/mod_autoindex.html | 17 + .../app/apache2/manual/mod/mod_autoindex.html.en | 897 +++ .../apache2/manual/mod/mod_autoindex.html.ja.utf8 | 963 +++ .../manual/mod/mod_autoindex.html.ko.euc-kr | 817 +++ .../apache2/manual/mod/mod_autoindex.html.tr.utf8 | 889 +++ rubbos/app/apache2/manual/mod/mod_cache.html | 9 + rubbos/app/apache2/manual/mod/mod_cache.html.en | 387 + .../apache2/manual/mod/mod_cache.html.ko.euc-kr | 323 + rubbos/app/apache2/manual/mod/mod_cern_meta.html | 9 + .../app/apache2/manual/mod/mod_cern_meta.html.en | 128 + .../manual/mod/mod_cern_meta.html.ko.euc-kr | 120 + rubbos/app/apache2/manual/mod/mod_cgi.html | 13 + rubbos/app/apache2/manual/mod/mod_cgi.html.en | 246 + rubbos/app/apache2/manual/mod/mod_cgi.html.ja.utf8 | 254 + .../app/apache2/manual/mod/mod_cgi.html.ko.euc-kr | 232 + rubbos/app/apache2/manual/mod/mod_cgid.html | 13 + rubbos/app/apache2/manual/mod/mod_cgid.html.en | 104 + .../app/apache2/manual/mod/mod_cgid.html.ja.utf8 | 98 + .../app/apache2/manual/mod/mod_cgid.html.ko.euc-kr | 97 + .../app/apache2/manual/mod/mod_charset_lite.html | 9 + .../apache2/manual/mod/mod_charset_lite.html.en | 209 + .../manual/mod/mod_charset_lite.html.ko.euc-kr | 196 + rubbos/app/apache2/manual/mod/mod_dav.html | 13 + rubbos/app/apache2/manual/mod/mod_dav.html.en | 268 + rubbos/app/apache2/manual/mod/mod_dav.html.ja.utf8 | 274 + .../app/apache2/manual/mod/mod_dav.html.ko.euc-kr | 263 + rubbos/app/apache2/manual/mod/mod_dav_fs.html | 13 + rubbos/app/apache2/manual/mod/mod_dav_fs.html.en | 97 + .../app/apache2/manual/mod/mod_dav_fs.html.ja.utf8 | 89 + .../apache2/manual/mod/mod_dav_fs.html.ko.euc-kr | 96 + rubbos/app/apache2/manual/mod/mod_deflate.html | 13 + rubbos/app/apache2/manual/mod/mod_deflate.html.en | 356 + .../apache2/manual/mod/mod_deflate.html.ja.utf8 | 357 + .../apache2/manual/mod/mod_deflate.html.ko.euc-kr | 341 + rubbos/app/apache2/manual/mod/mod_dir.html | 17 + rubbos/app/apache2/manual/mod/mod_dir.html.en | 171 + rubbos/app/apache2/manual/mod/mod_dir.html.ja.utf8 | 184 + .../app/apache2/manual/mod/mod_dir.html.ko.euc-kr | 171 + rubbos/app/apache2/manual/mod/mod_dir.html.tr.utf8 | 170 + rubbos/app/apache2/manual/mod/mod_disk_cache.html | 9 + .../app/apache2/manual/mod/mod_disk_cache.html.en | 368 + .../manual/mod/mod_disk_cache.html.ko.euc-kr | 355 + rubbos/app/apache2/manual/mod/mod_dumpio.html | 5 + rubbos/app/apache2/manual/mod/mod_dumpio.html.en | 106 + rubbos/app/apache2/manual/mod/mod_echo.html | 13 + rubbos/app/apache2/manual/mod/mod_echo.html.en | 74 + .../app/apache2/manual/mod/mod_echo.html.ja.utf8 | 74 + .../app/apache2/manual/mod/mod_echo.html.ko.euc-kr | 73 + rubbos/app/apache2/manual/mod/mod_env.html | 17 + rubbos/app/apache2/manual/mod/mod_env.html.en | 119 + rubbos/app/apache2/manual/mod/mod_env.html.ja.utf8 | 121 + .../app/apache2/manual/mod/mod_env.html.ko.euc-kr | 116 + rubbos/app/apache2/manual/mod/mod_env.html.tr.utf8 | 117 + rubbos/app/apache2/manual/mod/mod_example.html | 9 + rubbos/app/apache2/manual/mod/mod_example.html.en | 154 + .../apache2/manual/mod/mod_example.html.ko.euc-kr | 145 + rubbos/app/apache2/manual/mod/mod_expires.html | 13 + rubbos/app/apache2/manual/mod/mod_expires.html.en | 247 + .../apache2/manual/mod/mod_expires.html.ja.utf8 | 233 + .../apache2/manual/mod/mod_expires.html.ko.euc-kr | 225 + rubbos/app/apache2/manual/mod/mod_ext_filter.html | 9 + .../app/apache2/manual/mod/mod_ext_filter.html.en | 373 + .../manual/mod/mod_ext_filter.html.ko.euc-kr | 350 + rubbos/app/apache2/manual/mod/mod_file_cache.html | 9 + .../app/apache2/manual/mod/mod_file_cache.html.en | 212 + .../manual/mod/mod_file_cache.html.ko.euc-kr | 200 + rubbos/app/apache2/manual/mod/mod_headers.html | 9 + rubbos/app/apache2/manual/mod/mod_headers.html.en | 323 + .../apache2/manual/mod/mod_headers.html.ko.euc-kr | 299 + rubbos/app/apache2/manual/mod/mod_imap.html | 9 + rubbos/app/apache2/manual/mod/mod_imap.html.en | 382 + .../app/apache2/manual/mod/mod_imap.html.ko.euc-kr | 361 + rubbos/app/apache2/manual/mod/mod_include.html | 9 + rubbos/app/apache2/manual/mod/mod_include.html.en | 785 ++ .../apache2/manual/mod/mod_include.html.ja.utf8 | 762 ++ rubbos/app/apache2/manual/mod/mod_info.html | 13 + rubbos/app/apache2/manual/mod/mod_info.html.en | 128 + .../app/apache2/manual/mod/mod_info.html.ja.utf8 | 118 + .../app/apache2/manual/mod/mod_info.html.ko.euc-kr | 112 + rubbos/app/apache2/manual/mod/mod_isapi.html | 9 + rubbos/app/apache2/manual/mod/mod_isapi.html.en | 343 + .../apache2/manual/mod/mod_isapi.html.ko.euc-kr | 319 + rubbos/app/apache2/manual/mod/mod_ldap.html | 5 + rubbos/app/apache2/manual/mod/mod_ldap.html.en | 390 + rubbos/app/apache2/manual/mod/mod_log_config.html | 17 + .../app/apache2/manual/mod/mod_log_config.html.en | 472 ++ .../apache2/manual/mod/mod_log_config.html.ja.utf8 | 435 ++ .../manual/mod/mod_log_config.html.ko.euc-kr | 403 ++ .../apache2/manual/mod/mod_log_config.html.tr.utf8 | 466 ++ .../app/apache2/manual/mod/mod_log_forensic.html | 9 + .../apache2/manual/mod/mod_log_forensic.html.en | 171 + .../manual/mod/mod_log_forensic.html.tr.utf8 | 172 + rubbos/app/apache2/manual/mod/mod_logio.html | 17 + rubbos/app/apache2/manual/mod/mod_logio.html.en | 92 + .../app/apache2/manual/mod/mod_logio.html.ja.utf8 | 93 + .../apache2/manual/mod/mod_logio.html.ko.euc-kr | 94 + .../app/apache2/manual/mod/mod_logio.html.tr.utf8 | 92 + rubbos/app/apache2/manual/mod/mod_mem_cache.html | 13 + .../app/apache2/manual/mod/mod_mem_cache.html.en | 241 + .../apache2/manual/mod/mod_mem_cache.html.ja.utf8 | 238 + .../manual/mod/mod_mem_cache.html.ko.euc-kr | 235 + rubbos/app/apache2/manual/mod/mod_mime.html | 9 + rubbos/app/apache2/manual/mod/mod_mime.html.en | 940 +++ .../app/apache2/manual/mod/mod_mime.html.ja.utf8 | 938 +++ rubbos/app/apache2/manual/mod/mod_mime_magic.html | 5 + .../app/apache2/manual/mod/mod_mime_magic.html.en | 274 + rubbos/app/apache2/manual/mod/mod_negotiation.html | 9 + .../app/apache2/manual/mod/mod_negotiation.html.en | 306 + .../manual/mod/mod_negotiation.html.ja.utf8 | 302 + rubbos/app/apache2/manual/mod/mod_nw_ssl.html | 5 + rubbos/app/apache2/manual/mod/mod_nw_ssl.html.en | 97 + rubbos/app/apache2/manual/mod/mod_proxy.html | 5 + rubbos/app/apache2/manual/mod/mod_proxy.html.en | 1016 +++ .../app/apache2/manual/mod/mod_proxy_connect.html | 5 + .../apache2/manual/mod/mod_proxy_connect.html.en | 61 + rubbos/app/apache2/manual/mod/mod_proxy_ftp.html | 5 + .../app/apache2/manual/mod/mod_proxy_ftp.html.en | 59 + rubbos/app/apache2/manual/mod/mod_proxy_http.html | 5 + .../app/apache2/manual/mod/mod_proxy_http.html.en | 64 + rubbos/app/apache2/manual/mod/mod_rewrite.html | 5 + rubbos/app/apache2/manual/mod/mod_rewrite.html.en | 1671 +++++ rubbos/app/apache2/manual/mod/mod_setenvif.html | 17 + rubbos/app/apache2/manual/mod/mod_setenvif.html.en | 291 + .../apache2/manual/mod/mod_setenvif.html.ja.utf8 | 284 + .../apache2/manual/mod/mod_setenvif.html.ko.euc-kr | 261 + .../apache2/manual/mod/mod_setenvif.html.tr.utf8 | 278 + rubbos/app/apache2/manual/mod/mod_so.html | 17 + rubbos/app/apache2/manual/mod/mod_so.html.en | 192 + rubbos/app/apache2/manual/mod/mod_so.html.ja.utf8 | 192 + .../app/apache2/manual/mod/mod_so.html.ko.euc-kr | 176 + rubbos/app/apache2/manual/mod/mod_so.html.tr.utf8 | 196 + rubbos/app/apache2/manual/mod/mod_speling.html | 13 + rubbos/app/apache2/manual/mod/mod_speling.html.en | 121 + .../apache2/manual/mod/mod_speling.html.ja.utf8 | 119 + .../apache2/manual/mod/mod_speling.html.ko.euc-kr | 110 + rubbos/app/apache2/manual/mod/mod_ssl.html | 5 + rubbos/app/apache2/manual/mod/mod_ssl.html.en | 1576 ++++ rubbos/app/apache2/manual/mod/mod_status.html | 17 + rubbos/app/apache2/manual/mod/mod_status.html.en | 164 + .../app/apache2/manual/mod/mod_status.html.ja.utf8 | 158 + .../apache2/manual/mod/mod_status.html.ko.euc-kr | 152 + .../app/apache2/manual/mod/mod_status.html.tr.utf8 | 159 + rubbos/app/apache2/manual/mod/mod_suexec.html | 17 + rubbos/app/apache2/manual/mod/mod_suexec.html.en | 82 + .../app/apache2/manual/mod/mod_suexec.html.ja.utf8 | 83 + .../apache2/manual/mod/mod_suexec.html.ko.euc-kr | 83 + .../app/apache2/manual/mod/mod_suexec.html.tr.utf8 | 84 + rubbos/app/apache2/manual/mod/mod_unique_id.html | 13 + .../app/apache2/manual/mod/mod_unique_id.html.en | 215 + .../apache2/manual/mod/mod_unique_id.html.ja.utf8 | 216 + .../manual/mod/mod_unique_id.html.ko.euc-kr | 191 + rubbos/app/apache2/manual/mod/mod_userdir.html | 17 + rubbos/app/apache2/manual/mod/mod_userdir.html.en | 173 + .../apache2/manual/mod/mod_userdir.html.ja.utf8 | 183 + .../apache2/manual/mod/mod_userdir.html.ko.euc-kr | 161 + .../apache2/manual/mod/mod_userdir.html.tr.utf8 | 180 + rubbos/app/apache2/manual/mod/mod_usertrack.html | 5 + .../app/apache2/manual/mod/mod_usertrack.html.en | 252 + rubbos/app/apache2/manual/mod/mod_version.html | 13 + rubbos/app/apache2/manual/mod/mod_version.html.en | 150 + .../apache2/manual/mod/mod_version.html.ja.utf8 | 150 + .../apache2/manual/mod/mod_version.html.ko.euc-kr | 150 + rubbos/app/apache2/manual/mod/mod_vhost_alias.html | 9 + .../app/apache2/manual/mod/mod_vhost_alias.html.en | 314 + .../manual/mod/mod_vhost_alias.html.tr.utf8 | 305 + rubbos/app/apache2/manual/mod/module-dict.html | 17 + rubbos/app/apache2/manual/mod/module-dict.html.en | 119 + .../apache2/manual/mod/module-dict.html.ja.utf8 | 121 + .../apache2/manual/mod/module-dict.html.ko.euc-kr | 111 + .../apache2/manual/mod/module-dict.html.tr.utf8 | 91 + rubbos/app/apache2/manual/mod/mpm_common.html | 21 + rubbos/app/apache2/manual/mod/mpm_common.html.de | 978 +++ rubbos/app/apache2/manual/mod/mpm_common.html.en | 896 +++ rubbos/app/apache2/manual/mod/mpm_common.html.es | 982 +++ .../app/apache2/manual/mod/mpm_common.html.ja.utf8 | 956 +++ .../app/apache2/manual/mod/mpm_common.html.tr.utf8 | 905 +++ rubbos/app/apache2/manual/mod/mpm_netware.html | 5 + rubbos/app/apache2/manual/mod/mpm_netware.html.en | 125 + rubbos/app/apache2/manual/mod/mpm_winnt.html | 17 + rubbos/app/apache2/manual/mod/mpm_winnt.html.de | 95 + rubbos/app/apache2/manual/mod/mpm_winnt.html.en | 95 + rubbos/app/apache2/manual/mod/mpm_winnt.html.es | 99 + .../app/apache2/manual/mod/mpm_winnt.html.ja.utf8 | 94 + rubbos/app/apache2/manual/mod/mpmt_os2.html | 5 + rubbos/app/apache2/manual/mod/mpmt_os2.html.en | 73 + rubbos/app/apache2/manual/mod/perchild.html | 5 + rubbos/app/apache2/manual/mod/perchild.html.en | 266 + rubbos/app/apache2/manual/mod/prefork.html | 21 + rubbos/app/apache2/manual/mod/prefork.html.de | 195 + rubbos/app/apache2/manual/mod/prefork.html.en | 181 + rubbos/app/apache2/manual/mod/prefork.html.es | 197 + rubbos/app/apache2/manual/mod/prefork.html.ja.utf8 | 194 + rubbos/app/apache2/manual/mod/prefork.html.tr.utf8 | 180 + rubbos/app/apache2/manual/mod/quickreference.html | 29 + .../app/apache2/manual/mod/quickreference.html.de | 743 ++ .../app/apache2/manual/mod/quickreference.html.en | 721 ++ .../app/apache2/manual/mod/quickreference.html.es | 732 ++ .../apache2/manual/mod/quickreference.html.ja.utf8 | 670 ++ .../manual/mod/quickreference.html.ko.euc-kr | 674 ++ .../manual/mod/quickreference.html.ru.koi8-r | 726 ++ .../apache2/manual/mod/quickreference.html.tr.utf8 | 723 ++ rubbos/app/apache2/manual/mod/threadpool.html | 5 + rubbos/app/apache2/manual/mod/threadpool.html.en | 81 + rubbos/app/apache2/manual/mod/worker.html | 21 + rubbos/app/apache2/manual/mod/worker.html.de | 173 + rubbos/app/apache2/manual/mod/worker.html.en | 180 + rubbos/app/apache2/manual/mod/worker.html.es | 188 + rubbos/app/apache2/manual/mod/worker.html.ja.utf8 | 190 + rubbos/app/apache2/manual/mod/worker.html.tr.utf8 | 170 + rubbos/app/apache2/manual/mpm.html | 29 + rubbos/app/apache2/manual/mpm.html.de | 131 + rubbos/app/apache2/manual/mpm.html.en | 132 + rubbos/app/apache2/manual/mpm.html.es | 141 + rubbos/app/apache2/manual/mpm.html.ja.utf8 | 143 + rubbos/app/apache2/manual/mpm.html.ko.euc-kr | 126 + rubbos/app/apache2/manual/mpm.html.ru.koi8-r | 138 + rubbos/app/apache2/manual/mpm.html.tr.utf8 | 128 + rubbos/app/apache2/manual/new_features_2_0.html | 33 + rubbos/app/apache2/manual/new_features_2_0.html.de | 265 + rubbos/app/apache2/manual/new_features_2_0.html.en | 245 + rubbos/app/apache2/manual/new_features_2_0.html.es | 274 + rubbos/app/apache2/manual/new_features_2_0.html.fr | 124 + .../apache2/manual/new_features_2_0.html.ja.utf8 | 255 + .../apache2/manual/new_features_2_0.html.ko.euc-kr | 235 + .../apache2/manual/new_features_2_0.html.ru.koi8-r | 252 + .../apache2/manual/new_features_2_0.html.tr.utf8 | 251 + rubbos/app/apache2/manual/platform/ebcdic.html | 9 + rubbos/app/apache2/manual/platform/ebcdic.html.en | 584 ++ .../apache2/manual/platform/ebcdic.html.ko.euc-kr | 557 ++ rubbos/app/apache2/manual/platform/index.html | 9 + rubbos/app/apache2/manual/platform/index.html.en | 94 + .../apache2/manual/platform/index.html.ko.euc-kr | 94 + rubbos/app/apache2/manual/platform/netware.html | 9 + rubbos/app/apache2/manual/platform/netware.html.en | 589 ++ .../apache2/manual/platform/netware.html.ko.euc-kr | 579 ++ rubbos/app/apache2/manual/platform/perf-hp.html | 9 + rubbos/app/apache2/manual/platform/perf-hp.html.en | 105 + .../apache2/manual/platform/perf-hp.html.ko.euc-kr | 100 + .../app/apache2/manual/platform/win_compiling.html | 9 + .../apache2/manual/platform/win_compiling.html.en | 431 ++ .../manual/platform/win_compiling.html.ko.euc-kr | 423 ++ rubbos/app/apache2/manual/platform/windows.html | 9 + rubbos/app/apache2/manual/platform/windows.html.en | 754 ++ .../apache2/manual/platform/windows.html.ko.euc-kr | 688 ++ rubbos/app/apache2/manual/programs/ab.html | 13 + rubbos/app/apache2/manual/programs/ab.html.en | 200 + .../app/apache2/manual/programs/ab.html.ko.euc-kr | 203 + rubbos/app/apache2/manual/programs/ab.html.tr.utf8 | 224 + rubbos/app/apache2/manual/programs/apachectl.html | 13 + .../app/apache2/manual/programs/apachectl.html.en | 154 + .../manual/programs/apachectl.html.ko.euc-kr | 146 + .../apache2/manual/programs/apachectl.html.tr.utf8 | 160 + rubbos/app/apache2/manual/programs/apxs.html | 13 + rubbos/app/apache2/manual/programs/apxs.html.en | 339 + .../apache2/manual/programs/apxs.html.ko.euc-kr | 335 + .../app/apache2/manual/programs/apxs.html.tr.utf8 | 360 + rubbos/app/apache2/manual/programs/configure.html | 13 + .../app/apache2/manual/programs/configure.html.en | 916 +++ .../manual/programs/configure.html.ko.euc-kr | 932 +++ .../apache2/manual/programs/configure.html.tr.utf8 | 989 +++ rubbos/app/apache2/manual/programs/dbmmanage.html | 13 + .../app/apache2/manual/programs/dbmmanage.html.en | 193 + .../manual/programs/dbmmanage.html.ko.euc-kr | 174 + .../apache2/manual/programs/dbmmanage.html.tr.utf8 | 209 + rubbos/app/apache2/manual/programs/htdbm.html | 9 + rubbos/app/apache2/manual/programs/htdbm.html.en | 283 + .../app/apache2/manual/programs/htdbm.html.tr.utf8 | 290 + rubbos/app/apache2/manual/programs/htdigest.html | 13 + .../app/apache2/manual/programs/htdigest.html.en | 74 + .../manual/programs/htdigest.html.ko.euc-kr | 77 + .../apache2/manual/programs/htdigest.html.tr.utf8 | 78 + rubbos/app/apache2/manual/programs/htpasswd.html | 13 + .../app/apache2/manual/programs/htpasswd.html.en | 217 + .../manual/programs/htpasswd.html.ko.euc-kr | 219 + .../apache2/manual/programs/htpasswd.html.tr.utf8 | 224 + rubbos/app/apache2/manual/programs/httpd.html | 13 + rubbos/app/apache2/manual/programs/httpd.html.en | 189 + .../apache2/manual/programs/httpd.html.ko.euc-kr | 184 + .../app/apache2/manual/programs/httpd.html.tr.utf8 | 175 + rubbos/app/apache2/manual/programs/index.html | 21 + rubbos/app/apache2/manual/programs/index.html.en | 101 + rubbos/app/apache2/manual/programs/index.html.es | 104 + .../apache2/manual/programs/index.html.ko.euc-kr | 97 + .../apache2/manual/programs/index.html.ru.koi8-r | 95 + .../app/apache2/manual/programs/index.html.tr.utf8 | 90 + rubbos/app/apache2/manual/programs/logresolve.html | 13 + .../app/apache2/manual/programs/logresolve.html.en | 74 + .../manual/programs/logresolve.html.ko.euc-kr | 71 + .../manual/programs/logresolve.html.tr.utf8 | 71 + rubbos/app/apache2/manual/programs/other.html | 13 + rubbos/app/apache2/manual/programs/other.html.en | 61 + .../apache2/manual/programs/other.html.ko.euc-kr | 59 + .../app/apache2/manual/programs/other.html.tr.utf8 | 64 + rubbos/app/apache2/manual/programs/rotatelogs.html | 13 + .../app/apache2/manual/programs/rotatelogs.html.en | 148 + .../manual/programs/rotatelogs.html.ko.euc-kr | 147 + .../manual/programs/rotatelogs.html.tr.utf8 | 172 + rubbos/app/apache2/manual/programs/suexec.html | 13 + rubbos/app/apache2/manual/programs/suexec.html.en | 63 + .../apache2/manual/programs/suexec.html.ko.euc-kr | 64 + .../apache2/manual/programs/suexec.html.tr.utf8 | 63 + rubbos/app/apache2/manual/rewrite/index.html | 9 + rubbos/app/apache2/manual/rewrite/index.html.en | 99 + .../app/apache2/manual/rewrite/index.html.tr.utf8 | 91 + .../app/apache2/manual/rewrite/rewrite_guide.html | 5 + .../apache2/manual/rewrite/rewrite_guide.html.en | 788 ++ .../manual/rewrite/rewrite_guide_advanced.html | 5 + .../manual/rewrite/rewrite_guide_advanced.html.en | 1289 ++++ .../app/apache2/manual/rewrite/rewrite_intro.html | 5 + .../apache2/manual/rewrite/rewrite_intro.html.en | 117 + .../app/apache2/manual/rewrite/rewrite_tech.html | 5 + .../apache2/manual/rewrite/rewrite_tech.html.en | 166 + rubbos/app/apache2/manual/sections.html | 21 + rubbos/app/apache2/manual/sections.html.en | 457 ++ rubbos/app/apache2/manual/sections.html.es | 492 ++ rubbos/app/apache2/manual/sections.html.ja.utf8 | 467 ++ rubbos/app/apache2/manual/sections.html.ko.euc-kr | 423 ++ rubbos/app/apache2/manual/sections.html.tr.utf8 | 472 ++ rubbos/app/apache2/manual/server-wide.html | 21 + rubbos/app/apache2/manual/server-wide.html.en | 103 + rubbos/app/apache2/manual/server-wide.html.es | 107 + rubbos/app/apache2/manual/server-wide.html.ja.utf8 | 103 + .../app/apache2/manual/server-wide.html.ko.euc-kr | 97 + rubbos/app/apache2/manual/server-wide.html.tr.utf8 | 100 + rubbos/app/apache2/manual/sitemap.html | 25 + rubbos/app/apache2/manual/sitemap.html.de | 256 + rubbos/app/apache2/manual/sitemap.html.en | 254 + rubbos/app/apache2/manual/sitemap.html.es | 262 + rubbos/app/apache2/manual/sitemap.html.ja.utf8 | 256 + rubbos/app/apache2/manual/sitemap.html.ko.euc-kr | 261 + rubbos/app/apache2/manual/sitemap.html.tr.utf8 | 251 + rubbos/app/apache2/manual/ssl/index.html | 13 + rubbos/app/apache2/manual/ssl/index.html.en | 59 + rubbos/app/apache2/manual/ssl/index.html.ja.utf8 | 61 + rubbos/app/apache2/manual/ssl/index.html.tr.utf8 | 59 + rubbos/app/apache2/manual/ssl/ssl_compat.html | 5 + rubbos/app/apache2/manual/ssl/ssl_compat.html.en | 233 + rubbos/app/apache2/manual/ssl/ssl_faq.html | 5 + rubbos/app/apache2/manual/ssl/ssl_faq.html.en | 1043 +++ rubbos/app/apache2/manual/ssl/ssl_howto.html | 5 + rubbos/app/apache2/manual/ssl/ssl_howto.html.en | 284 + rubbos/app/apache2/manual/ssl/ssl_intro.html | 9 + rubbos/app/apache2/manual/ssl/ssl_intro.html.en | 641 ++ .../app/apache2/manual/ssl/ssl_intro.html.ja.utf8 | 695 ++ rubbos/app/apache2/manual/stopping.html | 29 + rubbos/app/apache2/manual/stopping.html.de | 262 + rubbos/app/apache2/manual/stopping.html.en | 235 + rubbos/app/apache2/manual/stopping.html.es | 272 + rubbos/app/apache2/manual/stopping.html.ja.utf8 | 261 + rubbos/app/apache2/manual/stopping.html.ko.euc-kr | 209 + rubbos/app/apache2/manual/stopping.html.ru.koi8-r | 251 + rubbos/app/apache2/manual/stopping.html.tr.utf8 | 243 + rubbos/app/apache2/manual/style/build.properties | 4 + rubbos/app/apache2/manual/style/common.dtd | 191 + rubbos/app/apache2/manual/style/css/manual-chm.css | 27 + .../manual/style/css/manual-loose-100pc.css | 155 + .../app/apache2/manual/style/css/manual-print.css | 717 ++ .../apache2/manual/style/css/manual-zip-100pc.css | 23 + rubbos/app/apache2/manual/style/css/manual-zip.css | 23 + rubbos/app/apache2/manual/style/css/manual.css | 1017 +++ rubbos/app/apache2/manual/style/faq.dtd | 35 + rubbos/app/apache2/manual/style/lang.dtd | 24 + .../app/apache2/manual/style/latex/atbeginend.sty | 65 + rubbos/app/apache2/manual/style/manualpage.dtd | 27 + rubbos/app/apache2/manual/style/modulesynopsis.dtd | 76 + rubbos/app/apache2/manual/style/sitemap.dtd | 38 + rubbos/app/apache2/manual/style/version.ent | 24 + rubbos/app/apache2/manual/suexec.html | 17 + rubbos/app/apache2/manual/suexec.html.en | 617 ++ rubbos/app/apache2/manual/suexec.html.ja.utf8 | 613 ++ rubbos/app/apache2/manual/suexec.html.ko.euc-kr | 536 ++ rubbos/app/apache2/manual/suexec.html.tr.utf8 | 556 ++ rubbos/app/apache2/manual/upgrading.html | 29 + rubbos/app/apache2/manual/upgrading.html.de | 228 + rubbos/app/apache2/manual/upgrading.html.en | 221 + rubbos/app/apache2/manual/upgrading.html.es | 246 + rubbos/app/apache2/manual/upgrading.html.fr | 164 + rubbos/app/apache2/manual/upgrading.html.ja.utf8 | 222 + rubbos/app/apache2/manual/upgrading.html.ko.euc-kr | 204 + rubbos/app/apache2/manual/upgrading.html.ru.koi8-r | 218 + rubbos/app/apache2/manual/urlmapping.html | 17 + rubbos/app/apache2/manual/urlmapping.html.en | 279 + rubbos/app/apache2/manual/urlmapping.html.ja.utf8 | 279 + .../app/apache2/manual/urlmapping.html.ko.euc-kr | 244 + rubbos/app/apache2/manual/urlmapping.html.tr.utf8 | 270 + rubbos/app/apache2/manual/vhosts/details.html | 13 + rubbos/app/apache2/manual/vhosts/details.html.en | 440 ++ .../apache2/manual/vhosts/details.html.ko.euc-kr | 384 + .../app/apache2/manual/vhosts/details.html.tr.utf8 | 401 + rubbos/app/apache2/manual/vhosts/examples.html | 13 + rubbos/app/apache2/manual/vhosts/examples.html.en | 654 ++ .../apache2/manual/vhosts/examples.html.ko.euc-kr | 622 ++ .../apache2/manual/vhosts/examples.html.tr.utf8 | 641 ++ rubbos/app/apache2/manual/vhosts/fd-limits.html | 17 + rubbos/app/apache2/manual/vhosts/fd-limits.html.en | 133 + .../apache2/manual/vhosts/fd-limits.html.ja.utf8 | 131 + .../apache2/manual/vhosts/fd-limits.html.ko.euc-kr | 126 + .../apache2/manual/vhosts/fd-limits.html.tr.utf8 | 128 + rubbos/app/apache2/manual/vhosts/index.html | 29 + rubbos/app/apache2/manual/vhosts/index.html.de | 112 + rubbos/app/apache2/manual/vhosts/index.html.en | 112 + rubbos/app/apache2/manual/vhosts/index.html.es | 119 + .../app/apache2/manual/vhosts/index.html.ja.utf8 | 108 + .../app/apache2/manual/vhosts/index.html.ko.euc-kr | 110 + .../app/apache2/manual/vhosts/index.html.ru.koi8-r | 107 + .../app/apache2/manual/vhosts/index.html.tr.utf8 | 107 + rubbos/app/apache2/manual/vhosts/ip-based.html | 13 + rubbos/app/apache2/manual/vhosts/ip-based.html.en | 160 + .../apache2/manual/vhosts/ip-based.html.ko.euc-kr | 150 + .../apache2/manual/vhosts/ip-based.html.tr.utf8 | 165 + rubbos/app/apache2/manual/vhosts/mass.html | 13 + rubbos/app/apache2/manual/vhosts/mass.html.en | 419 ++ .../app/apache2/manual/vhosts/mass.html.ko.euc-kr | 425 ++ rubbos/app/apache2/manual/vhosts/mass.html.tr.utf8 | 406 ++ rubbos/app/apache2/manual/vhosts/name-based.html | 25 + .../app/apache2/manual/vhosts/name-based.html.de | 270 + .../app/apache2/manual/vhosts/name-based.html.en | 248 + .../app/apache2/manual/vhosts/name-based.html.es | 292 + .../apache2/manual/vhosts/name-based.html.ja.utf8 | 273 + .../manual/vhosts/name-based.html.ko.euc-kr | 238 + .../apache2/manual/vhosts/name-based.html.tr.utf8 | 256 + rubbos/app/apache2/modules/httpd.exp | 421 ++ rubbos/app/apache2/modules/mod_jk.so | Bin 0 -> 1377048 bytes 1180 files changed, 222203 insertions(+) create mode 100755 rubbos/app/apache2/bin/ab create mode 100755 rubbos/app/apache2/bin/apachectl create mode 100755 rubbos/app/apache2/bin/apr-config create mode 100755 rubbos/app/apache2/bin/apu-config create mode 100755 rubbos/app/apache2/bin/apxs create mode 100755 rubbos/app/apache2/bin/checkgid create mode 100755 rubbos/app/apache2/bin/dbmmanage create mode 100644 rubbos/app/apache2/bin/envvars create mode 100644 rubbos/app/apache2/bin/envvars-std create mode 100755 rubbos/app/apache2/bin/htdbm create mode 100755 rubbos/app/apache2/bin/htdigest create mode 100755 rubbos/app/apache2/bin/htpasswd create mode 100755 rubbos/app/apache2/bin/httpd create mode 100755 rubbos/app/apache2/bin/httxt2dbm create mode 100755 rubbos/app/apache2/bin/logresolve create mode 100755 rubbos/app/apache2/bin/rotatelogs create mode 100644 rubbos/app/apache2/build/apr_rules.mk create mode 100755 rubbos/app/apache2/build/config.nice create mode 100644 rubbos/app/apache2/build/config_vars.mk create mode 100755 rubbos/app/apache2/build/instdso.sh create mode 100644 rubbos/app/apache2/build/library.mk create mode 100755 rubbos/app/apache2/build/libtool create mode 100644 rubbos/app/apache2/build/ltlib.mk create mode 100644 rubbos/app/apache2/build/make_exports.awk create mode 100644 rubbos/app/apache2/build/make_var_export.awk create mode 100755 rubbos/app/apache2/build/mkdir.sh create mode 100644 rubbos/app/apache2/build/program.mk create mode 100644 rubbos/app/apache2/build/rules.mk create mode 100644 rubbos/app/apache2/build/special.mk create mode 100644 rubbos/app/apache2/cgi-bin/printenv create mode 100644 rubbos/app/apache2/cgi-bin/test-cgi create mode 100644 rubbos/app/apache2/conf/highperformance-std.conf create mode 100644 rubbos/app/apache2/conf/highperformance.conf create mode 100644 rubbos/app/apache2/conf/httpd-std.conf create mode 100644 rubbos/app/apache2/conf/httpd.conf create mode 100644 rubbos/app/apache2/conf/magic create mode 100644 rubbos/app/apache2/conf/mime.types create mode 100644 rubbos/app/apache2/conf/ssl-std.conf create mode 100644 rubbos/app/apache2/conf/ssl.conf create mode 100644 rubbos/app/apache2/conf/workers.properties create mode 100644 rubbos/app/apache2/error/HTTP_BAD_GATEWAY.html.var create mode 100644 rubbos/app/apache2/error/HTTP_BAD_REQUEST.html.var create mode 100644 rubbos/app/apache2/error/HTTP_FORBIDDEN.html.var create mode 100644 rubbos/app/apache2/error/HTTP_GONE.html.var create mode 100644 rubbos/app/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var create mode 100644 rubbos/app/apache2/error/HTTP_LENGTH_REQUIRED.html.var create mode 100644 rubbos/app/apache2/error/HTTP_METHOD_NOT_ALLOWED.html.var create mode 100644 rubbos/app/apache2/error/HTTP_NOT_FOUND.html.var create mode 100644 rubbos/app/apache2/error/HTTP_NOT_IMPLEMENTED.html.var create mode 100644 rubbos/app/apache2/error/HTTP_PRECONDITION_FAILED.html.var create mode 100644 rubbos/app/apache2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var create mode 100644 rubbos/app/apache2/error/HTTP_REQUEST_TIME_OUT.html.var create mode 100644 rubbos/app/apache2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var create mode 100644 rubbos/app/apache2/error/HTTP_SERVICE_UNAVAILABLE.html.var create mode 100644 rubbos/app/apache2/error/HTTP_UNAUTHORIZED.html.var create mode 100644 rubbos/app/apache2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var create mode 100644 rubbos/app/apache2/error/HTTP_VARIANT_ALSO_VARIES.html.var create mode 100644 rubbos/app/apache2/error/README create mode 100644 rubbos/app/apache2/error/contact.html.var create mode 100644 rubbos/app/apache2/error/include/bottom.html create mode 100644 rubbos/app/apache2/error/include/spacer.html create mode 100644 rubbos/app/apache2/error/include/top.html create mode 100644 rubbos/app/apache2/htdocs/apache_pb.gif create mode 100644 rubbos/app/apache2/htdocs/apache_pb.png create mode 100644 rubbos/app/apache2/htdocs/apache_pb2.gif create mode 100644 rubbos/app/apache2/htdocs/apache_pb2.png create mode 100644 rubbos/app/apache2/htdocs/apache_pb2_ani.gif create mode 100644 rubbos/app/apache2/htdocs/index.html.ca create mode 100644 rubbos/app/apache2/htdocs/index.html.cz.iso8859-2 create mode 100644 rubbos/app/apache2/htdocs/index.html.de create mode 100644 rubbos/app/apache2/htdocs/index.html.dk create mode 100644 rubbos/app/apache2/htdocs/index.html.ee create mode 100644 rubbos/app/apache2/htdocs/index.html.el create mode 100644 rubbos/app/apache2/htdocs/index.html.en create mode 100644 rubbos/app/apache2/htdocs/index.html.es create mode 100644 rubbos/app/apache2/htdocs/index.html.et create mode 100644 rubbos/app/apache2/htdocs/index.html.fr create mode 100644 rubbos/app/apache2/htdocs/index.html.he.iso8859-8 create mode 100644 rubbos/app/apache2/htdocs/index.html.hr.iso8859-2 create mode 100644 rubbos/app/apache2/htdocs/index.html.it create mode 100644 rubbos/app/apache2/htdocs/index.html.ja.iso2022-jp create mode 100644 rubbos/app/apache2/htdocs/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/htdocs/index.html.lb.utf8 create mode 100644 rubbos/app/apache2/htdocs/index.html.nl create mode 100644 rubbos/app/apache2/htdocs/index.html.nn create mode 100644 rubbos/app/apache2/htdocs/index.html.no create mode 100644 rubbos/app/apache2/htdocs/index.html.po.iso8859-2 create mode 100644 rubbos/app/apache2/htdocs/index.html.pt create mode 100644 rubbos/app/apache2/htdocs/index.html.pt-br create mode 100644 rubbos/app/apache2/htdocs/index.html.ru.cp-1251 create mode 100644 rubbos/app/apache2/htdocs/index.html.ru.cp866 create mode 100644 rubbos/app/apache2/htdocs/index.html.ru.iso-ru create mode 100644 rubbos/app/apache2/htdocs/index.html.ru.koi8-r create mode 100644 rubbos/app/apache2/htdocs/index.html.ru.utf8 create mode 100644 rubbos/app/apache2/htdocs/index.html.sv create mode 100644 rubbos/app/apache2/htdocs/index.html.var create mode 100644 rubbos/app/apache2/htdocs/index.html.zh-cn.gb2312 create mode 100644 rubbos/app/apache2/htdocs/index.html.zh-tw.big5 create mode 100644 rubbos/app/apache2/htdocs/rubbos/RUBBoS_logo.jpg create mode 100644 rubbos/app/apache2/htdocs/rubbos/author.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/browse.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/header.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/index.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/register.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/RUBBoS_logo.jpg create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/author.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/browse.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/header.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/index.html create mode 100644 rubbos/app/apache2/htdocs/rubbos/rubbos_html/register.html create mode 100644 rubbos/app/apache2/icons/README create mode 100644 rubbos/app/apache2/icons/README.html create mode 100644 rubbos/app/apache2/icons/a.gif create mode 100644 rubbos/app/apache2/icons/a.png create mode 100644 rubbos/app/apache2/icons/alert.black.gif create mode 100644 rubbos/app/apache2/icons/alert.black.png create mode 100644 rubbos/app/apache2/icons/alert.red.gif create mode 100644 rubbos/app/apache2/icons/alert.red.png create mode 100644 rubbos/app/apache2/icons/apache_pb.gif create mode 100644 rubbos/app/apache2/icons/apache_pb.png create mode 100644 rubbos/app/apache2/icons/apache_pb2.gif create mode 100644 rubbos/app/apache2/icons/apache_pb2.png create mode 100644 rubbos/app/apache2/icons/apache_pb2_ani.gif create mode 100644 rubbos/app/apache2/icons/back.gif create mode 100644 rubbos/app/apache2/icons/back.png create mode 100644 rubbos/app/apache2/icons/ball.gray.gif create mode 100644 rubbos/app/apache2/icons/ball.gray.png create mode 100644 rubbos/app/apache2/icons/ball.red.gif create mode 100644 rubbos/app/apache2/icons/ball.red.png create mode 100644 rubbos/app/apache2/icons/binary.gif create mode 100644 rubbos/app/apache2/icons/binary.png create mode 100644 rubbos/app/apache2/icons/binhex.gif create mode 100644 rubbos/app/apache2/icons/binhex.png create mode 100644 rubbos/app/apache2/icons/blank.gif create mode 100644 rubbos/app/apache2/icons/blank.png create mode 100644 rubbos/app/apache2/icons/bomb.gif create mode 100644 rubbos/app/apache2/icons/bomb.png create mode 100644 rubbos/app/apache2/icons/box1.gif create mode 100644 rubbos/app/apache2/icons/box1.png create mode 100644 rubbos/app/apache2/icons/box2.gif create mode 100644 rubbos/app/apache2/icons/box2.png create mode 100644 rubbos/app/apache2/icons/broken.gif create mode 100644 rubbos/app/apache2/icons/broken.png create mode 100644 rubbos/app/apache2/icons/burst.gif create mode 100644 rubbos/app/apache2/icons/burst.png create mode 100644 rubbos/app/apache2/icons/c.gif create mode 100644 rubbos/app/apache2/icons/c.png create mode 100644 rubbos/app/apache2/icons/comp.blue.gif create mode 100644 rubbos/app/apache2/icons/comp.blue.png create mode 100644 rubbos/app/apache2/icons/comp.gray.gif create mode 100644 rubbos/app/apache2/icons/comp.gray.png create mode 100644 rubbos/app/apache2/icons/compressed.gif create mode 100644 rubbos/app/apache2/icons/compressed.png create mode 100644 rubbos/app/apache2/icons/continued.gif create mode 100644 rubbos/app/apache2/icons/continued.png create mode 100644 rubbos/app/apache2/icons/dir.gif create mode 100644 rubbos/app/apache2/icons/dir.png create mode 100644 rubbos/app/apache2/icons/diskimg.gif create mode 100644 rubbos/app/apache2/icons/diskimg.png create mode 100644 rubbos/app/apache2/icons/down.gif create mode 100644 rubbos/app/apache2/icons/down.png create mode 100644 rubbos/app/apache2/icons/dvi.gif create mode 100644 rubbos/app/apache2/icons/dvi.png create mode 100644 rubbos/app/apache2/icons/f.gif create mode 100644 rubbos/app/apache2/icons/f.png create mode 100644 rubbos/app/apache2/icons/folder.gif create mode 100644 rubbos/app/apache2/icons/folder.open.gif create mode 100644 rubbos/app/apache2/icons/folder.open.png create mode 100644 rubbos/app/apache2/icons/folder.png create mode 100644 rubbos/app/apache2/icons/folder.sec.gif create mode 100644 rubbos/app/apache2/icons/folder.sec.png create mode 100644 rubbos/app/apache2/icons/forward.gif create mode 100644 rubbos/app/apache2/icons/forward.png create mode 100644 rubbos/app/apache2/icons/generic.gif create mode 100644 rubbos/app/apache2/icons/generic.png create mode 100644 rubbos/app/apache2/icons/generic.red.gif create mode 100644 rubbos/app/apache2/icons/generic.red.png create mode 100644 rubbos/app/apache2/icons/generic.sec.gif create mode 100644 rubbos/app/apache2/icons/generic.sec.png create mode 100644 rubbos/app/apache2/icons/hand.right.gif create mode 100644 rubbos/app/apache2/icons/hand.right.png create mode 100644 rubbos/app/apache2/icons/hand.up.gif create mode 100644 rubbos/app/apache2/icons/hand.up.png create mode 100644 rubbos/app/apache2/icons/icon.sheet.gif create mode 100644 rubbos/app/apache2/icons/icon.sheet.png create mode 100644 rubbos/app/apache2/icons/image1.gif create mode 100644 rubbos/app/apache2/icons/image1.png create mode 100644 rubbos/app/apache2/icons/image2.gif create mode 100644 rubbos/app/apache2/icons/image2.png create mode 100644 rubbos/app/apache2/icons/image3.gif create mode 100644 rubbos/app/apache2/icons/image3.png create mode 100644 rubbos/app/apache2/icons/index.gif create mode 100644 rubbos/app/apache2/icons/index.png create mode 100644 rubbos/app/apache2/icons/layout.gif create mode 100644 rubbos/app/apache2/icons/layout.png create mode 100644 rubbos/app/apache2/icons/left.gif create mode 100644 rubbos/app/apache2/icons/left.png create mode 100644 rubbos/app/apache2/icons/link.gif create mode 100644 rubbos/app/apache2/icons/link.png create mode 100644 rubbos/app/apache2/icons/movie.gif create mode 100644 rubbos/app/apache2/icons/movie.png create mode 100644 rubbos/app/apache2/icons/p.gif create mode 100644 rubbos/app/apache2/icons/p.png create mode 100644 rubbos/app/apache2/icons/patch.gif create mode 100644 rubbos/app/apache2/icons/patch.png create mode 100644 rubbos/app/apache2/icons/pdf.gif create mode 100644 rubbos/app/apache2/icons/pdf.png create mode 100644 rubbos/app/apache2/icons/pie0.gif create mode 100644 rubbos/app/apache2/icons/pie0.png create mode 100644 rubbos/app/apache2/icons/pie1.gif create mode 100644 rubbos/app/apache2/icons/pie1.png create mode 100644 rubbos/app/apache2/icons/pie2.gif create mode 100644 rubbos/app/apache2/icons/pie2.png create mode 100644 rubbos/app/apache2/icons/pie3.gif create mode 100644 rubbos/app/apache2/icons/pie3.png create mode 100644 rubbos/app/apache2/icons/pie4.gif create mode 100644 rubbos/app/apache2/icons/pie4.png create mode 100644 rubbos/app/apache2/icons/pie5.gif create mode 100644 rubbos/app/apache2/icons/pie5.png create mode 100644 rubbos/app/apache2/icons/pie6.gif create mode 100644 rubbos/app/apache2/icons/pie6.png create mode 100644 rubbos/app/apache2/icons/pie7.gif create mode 100644 rubbos/app/apache2/icons/pie7.png create mode 100644 rubbos/app/apache2/icons/pie8.gif create mode 100644 rubbos/app/apache2/icons/pie8.png create mode 100644 rubbos/app/apache2/icons/portal.gif create mode 100644 rubbos/app/apache2/icons/portal.png create mode 100644 rubbos/app/apache2/icons/ps.gif create mode 100644 rubbos/app/apache2/icons/ps.png create mode 100644 rubbos/app/apache2/icons/quill.gif create mode 100644 rubbos/app/apache2/icons/quill.png create mode 100644 rubbos/app/apache2/icons/right.gif create mode 100644 rubbos/app/apache2/icons/right.png create mode 100644 rubbos/app/apache2/icons/screw1.gif create mode 100644 rubbos/app/apache2/icons/screw1.png create mode 100644 rubbos/app/apache2/icons/screw2.gif create mode 100644 rubbos/app/apache2/icons/screw2.png create mode 100644 rubbos/app/apache2/icons/script.gif create mode 100644 rubbos/app/apache2/icons/script.png create mode 100644 rubbos/app/apache2/icons/small/back.gif create mode 100644 rubbos/app/apache2/icons/small/back.png create mode 100644 rubbos/app/apache2/icons/small/binary.gif create mode 100644 rubbos/app/apache2/icons/small/binary.png create mode 100644 rubbos/app/apache2/icons/small/binhex.gif create mode 100644 rubbos/app/apache2/icons/small/binhex.png create mode 100644 rubbos/app/apache2/icons/small/blank.gif create mode 100644 rubbos/app/apache2/icons/small/blank.png create mode 100644 rubbos/app/apache2/icons/small/broken.gif create mode 100644 rubbos/app/apache2/icons/small/broken.png create mode 100644 rubbos/app/apache2/icons/small/burst.gif create mode 100644 rubbos/app/apache2/icons/small/burst.png create mode 100644 rubbos/app/apache2/icons/small/comp1.gif create mode 100644 rubbos/app/apache2/icons/small/comp1.png create mode 100644 rubbos/app/apache2/icons/small/comp2.gif create mode 100644 rubbos/app/apache2/icons/small/comp2.png create mode 100644 rubbos/app/apache2/icons/small/compressed.gif create mode 100644 rubbos/app/apache2/icons/small/compressed.png create mode 100644 rubbos/app/apache2/icons/small/continued.gif create mode 100644 rubbos/app/apache2/icons/small/continued.png create mode 100644 rubbos/app/apache2/icons/small/dir.gif create mode 100644 rubbos/app/apache2/icons/small/dir.png create mode 100644 rubbos/app/apache2/icons/small/dir2.gif create mode 100644 rubbos/app/apache2/icons/small/dir2.png create mode 100644 rubbos/app/apache2/icons/small/doc.gif create mode 100644 rubbos/app/apache2/icons/small/doc.png create mode 100644 rubbos/app/apache2/icons/small/forward.gif create mode 100644 rubbos/app/apache2/icons/small/forward.png create mode 100644 rubbos/app/apache2/icons/small/generic.gif create mode 100644 rubbos/app/apache2/icons/small/generic.png create mode 100644 rubbos/app/apache2/icons/small/generic2.gif create mode 100644 rubbos/app/apache2/icons/small/generic2.png create mode 100644 rubbos/app/apache2/icons/small/generic3.gif create mode 100644 rubbos/app/apache2/icons/small/generic3.png create mode 100644 rubbos/app/apache2/icons/small/image.gif create mode 100644 rubbos/app/apache2/icons/small/image.png create mode 100644 rubbos/app/apache2/icons/small/image2.gif create mode 100644 rubbos/app/apache2/icons/small/image2.png create mode 100644 rubbos/app/apache2/icons/small/index.gif create mode 100644 rubbos/app/apache2/icons/small/index.png create mode 100644 rubbos/app/apache2/icons/small/key.gif create mode 100644 rubbos/app/apache2/icons/small/key.png create mode 100644 rubbos/app/apache2/icons/small/movie.gif create mode 100644 rubbos/app/apache2/icons/small/movie.png create mode 100644 rubbos/app/apache2/icons/small/patch.gif create mode 100644 rubbos/app/apache2/icons/small/patch.png create mode 100644 rubbos/app/apache2/icons/small/ps.gif create mode 100644 rubbos/app/apache2/icons/small/ps.png create mode 100644 rubbos/app/apache2/icons/small/rainbow.gif create mode 100644 rubbos/app/apache2/icons/small/rainbow.png create mode 100644 rubbos/app/apache2/icons/small/sound.gif create mode 100644 rubbos/app/apache2/icons/small/sound.png create mode 100644 rubbos/app/apache2/icons/small/sound2.gif create mode 100644 rubbos/app/apache2/icons/small/sound2.png create mode 100644 rubbos/app/apache2/icons/small/tar.gif create mode 100644 rubbos/app/apache2/icons/small/tar.png create mode 100644 rubbos/app/apache2/icons/small/text.gif create mode 100644 rubbos/app/apache2/icons/small/text.png create mode 100644 rubbos/app/apache2/icons/small/transfer.gif create mode 100644 rubbos/app/apache2/icons/small/transfer.png create mode 100644 rubbos/app/apache2/icons/small/unknown.gif create mode 100644 rubbos/app/apache2/icons/small/unknown.png create mode 100644 rubbos/app/apache2/icons/small/uu.gif create mode 100644 rubbos/app/apache2/icons/small/uu.png create mode 100644 rubbos/app/apache2/icons/sound1.gif create mode 100644 rubbos/app/apache2/icons/sound1.png create mode 100644 rubbos/app/apache2/icons/sound2.gif create mode 100644 rubbos/app/apache2/icons/sound2.png create mode 100644 rubbos/app/apache2/icons/sphere1.gif create mode 100644 rubbos/app/apache2/icons/sphere1.png create mode 100644 rubbos/app/apache2/icons/sphere2.gif create mode 100644 rubbos/app/apache2/icons/sphere2.png create mode 100644 rubbos/app/apache2/icons/tar.gif create mode 100644 rubbos/app/apache2/icons/tar.png create mode 100644 rubbos/app/apache2/icons/tex.gif create mode 100644 rubbos/app/apache2/icons/tex.png create mode 100644 rubbos/app/apache2/icons/text.gif create mode 100644 rubbos/app/apache2/icons/text.png create mode 100644 rubbos/app/apache2/icons/transfer.gif create mode 100644 rubbos/app/apache2/icons/transfer.png create mode 100644 rubbos/app/apache2/icons/unknown.gif create mode 100644 rubbos/app/apache2/icons/unknown.png create mode 100644 rubbos/app/apache2/icons/up.gif create mode 100644 rubbos/app/apache2/icons/up.png create mode 100644 rubbos/app/apache2/icons/uu.gif create mode 100644 rubbos/app/apache2/icons/uu.png create mode 100644 rubbos/app/apache2/icons/uuencoded.gif create mode 100644 rubbos/app/apache2/icons/uuencoded.png create mode 100644 rubbos/app/apache2/icons/world1.gif create mode 100644 rubbos/app/apache2/icons/world1.png create mode 100644 rubbos/app/apache2/icons/world2.gif create mode 100644 rubbos/app/apache2/icons/world2.png create mode 100644 rubbos/app/apache2/include/ap_compat.h create mode 100644 rubbos/app/apache2/include/ap_config.h create mode 100644 rubbos/app/apache2/include/ap_config_auto.h create mode 100644 rubbos/app/apache2/include/ap_config_layout.h create mode 100644 rubbos/app/apache2/include/ap_listen.h create mode 100644 rubbos/app/apache2/include/ap_mmn.h create mode 100644 rubbos/app/apache2/include/ap_mpm.h create mode 100644 rubbos/app/apache2/include/ap_provider.h create mode 100644 rubbos/app/apache2/include/ap_regkey.h create mode 100644 rubbos/app/apache2/include/ap_release.h create mode 100644 rubbos/app/apache2/include/apr.h create mode 100644 rubbos/app/apache2/include/apr_allocator.h create mode 100644 rubbos/app/apache2/include/apr_anylock.h create mode 100644 rubbos/app/apache2/include/apr_atomic.h create mode 100644 rubbos/app/apache2/include/apr_base64.h create mode 100644 rubbos/app/apache2/include/apr_buckets.h create mode 100644 rubbos/app/apache2/include/apr_compat.h create mode 100644 rubbos/app/apache2/include/apr_date.h create mode 100644 rubbos/app/apache2/include/apr_dbm.h create mode 100644 rubbos/app/apache2/include/apr_dso.h create mode 100644 rubbos/app/apache2/include/apr_env.h create mode 100644 rubbos/app/apache2/include/apr_errno.h create mode 100644 rubbos/app/apache2/include/apr_file_info.h create mode 100644 rubbos/app/apache2/include/apr_file_io.h create mode 100644 rubbos/app/apache2/include/apr_fnmatch.h create mode 100644 rubbos/app/apache2/include/apr_general.h create mode 100644 rubbos/app/apache2/include/apr_getopt.h create mode 100644 rubbos/app/apache2/include/apr_global_mutex.h create mode 100644 rubbos/app/apache2/include/apr_hash.h create mode 100644 rubbos/app/apache2/include/apr_hooks.h create mode 100644 rubbos/app/apache2/include/apr_inherit.h create mode 100644 rubbos/app/apache2/include/apr_ldap.h create mode 100644 rubbos/app/apache2/include/apr_ldap_url.h create mode 100644 rubbos/app/apache2/include/apr_lib.h create mode 100644 rubbos/app/apache2/include/apr_md4.h create mode 100644 rubbos/app/apache2/include/apr_md5.h create mode 100644 rubbos/app/apache2/include/apr_mmap.h create mode 100644 rubbos/app/apache2/include/apr_network_io.h create mode 100644 rubbos/app/apache2/include/apr_optional.h create mode 100644 rubbos/app/apache2/include/apr_optional_hooks.h create mode 100644 rubbos/app/apache2/include/apr_poll.h create mode 100644 rubbos/app/apache2/include/apr_pools.h create mode 100644 rubbos/app/apache2/include/apr_portable.h create mode 100644 rubbos/app/apache2/include/apr_proc_mutex.h create mode 100644 rubbos/app/apache2/include/apr_queue.h create mode 100644 rubbos/app/apache2/include/apr_reslist.h create mode 100644 rubbos/app/apache2/include/apr_ring.h create mode 100644 rubbos/app/apache2/include/apr_rmm.h create mode 100644 rubbos/app/apache2/include/apr_sdbm.h create mode 100644 rubbos/app/apache2/include/apr_sha1.h create mode 100644 rubbos/app/apache2/include/apr_shm.h create mode 100644 rubbos/app/apache2/include/apr_signal.h create mode 100644 rubbos/app/apache2/include/apr_strings.h create mode 100644 rubbos/app/apache2/include/apr_strmatch.h create mode 100644 rubbos/app/apache2/include/apr_support.h create mode 100644 rubbos/app/apache2/include/apr_tables.h create mode 100644 rubbos/app/apache2/include/apr_thread_cond.h create mode 100644 rubbos/app/apache2/include/apr_thread_mutex.h create mode 100644 rubbos/app/apache2/include/apr_thread_proc.h create mode 100644 rubbos/app/apache2/include/apr_thread_rwlock.h create mode 100644 rubbos/app/apache2/include/apr_time.h create mode 100644 rubbos/app/apache2/include/apr_uri.h create mode 100644 rubbos/app/apache2/include/apr_user.h create mode 100644 rubbos/app/apache2/include/apr_uuid.h create mode 100644 rubbos/app/apache2/include/apr_version.h create mode 100644 rubbos/app/apache2/include/apr_want.h create mode 100644 rubbos/app/apache2/include/apr_xlate.h create mode 100644 rubbos/app/apache2/include/apr_xml.h create mode 100644 rubbos/app/apache2/include/apu.h create mode 100644 rubbos/app/apache2/include/apu_compat.h create mode 100644 rubbos/app/apache2/include/apu_version.h create mode 100644 rubbos/app/apache2/include/apu_want.h create mode 100644 rubbos/app/apache2/include/expat.h create mode 100644 rubbos/app/apache2/include/fdqueue.h create mode 100644 rubbos/app/apache2/include/http_config.h create mode 100644 rubbos/app/apache2/include/http_connection.h create mode 100644 rubbos/app/apache2/include/http_core.h create mode 100644 rubbos/app/apache2/include/http_log.h create mode 100644 rubbos/app/apache2/include/http_main.h create mode 100644 rubbos/app/apache2/include/http_protocol.h create mode 100644 rubbos/app/apache2/include/http_request.h create mode 100644 rubbos/app/apache2/include/http_vhost.h create mode 100644 rubbos/app/apache2/include/httpd.h create mode 100644 rubbos/app/apache2/include/mod_cgi.h create mode 100644 rubbos/app/apache2/include/mod_core.h create mode 100644 rubbos/app/apache2/include/mod_dav.h create mode 100644 rubbos/app/apache2/include/mod_include.h create mode 100644 rubbos/app/apache2/include/mod_log_config.h create mode 100644 rubbos/app/apache2/include/mod_proxy.h create mode 100644 rubbos/app/apache2/include/mod_ssl.h create mode 100644 rubbos/app/apache2/include/mod_status.h create mode 100644 rubbos/app/apache2/include/mpm.h create mode 100644 rubbos/app/apache2/include/mpm_common.h create mode 100644 rubbos/app/apache2/include/mpm_default.h create mode 100644 rubbos/app/apache2/include/os.h create mode 100644 rubbos/app/apache2/include/pcre.h create mode 100644 rubbos/app/apache2/include/pcreposix.h create mode 100644 rubbos/app/apache2/include/pod.h create mode 100644 rubbos/app/apache2/include/rfc1413.h create mode 100644 rubbos/app/apache2/include/scoreboard.h create mode 100644 rubbos/app/apache2/include/ssl_expr.h create mode 100644 rubbos/app/apache2/include/ssl_expr_parse.h create mode 100644 rubbos/app/apache2/include/ssl_toolkit_compat.h create mode 100644 rubbos/app/apache2/include/ssl_util_ssl.h create mode 100644 rubbos/app/apache2/include/ssl_util_table.h create mode 100644 rubbos/app/apache2/include/unixd.h create mode 100644 rubbos/app/apache2/include/util_cfgtree.h create mode 100644 rubbos/app/apache2/include/util_charset.h create mode 100644 rubbos/app/apache2/include/util_ebcdic.h create mode 100644 rubbos/app/apache2/include/util_filter.h create mode 100644 rubbos/app/apache2/include/util_ldap.h create mode 100644 rubbos/app/apache2/include/util_md5.h create mode 100644 rubbos/app/apache2/include/util_script.h create mode 100644 rubbos/app/apache2/include/util_time.h create mode 100644 rubbos/app/apache2/include/util_xml.h create mode 100644 rubbos/app/apache2/lib/apr.exp create mode 100644 rubbos/app/apache2/lib/aprutil.exp create mode 100644 rubbos/app/apache2/lib/libapr-0.a create mode 100644 rubbos/app/apache2/lib/libapr-0.la create mode 100755 rubbos/app/apache2/lib/libapr-0.so create mode 100755 rubbos/app/apache2/lib/libapr-0.so.0 create mode 100755 rubbos/app/apache2/lib/libapr-0.so.0.9.19 create mode 100644 rubbos/app/apache2/lib/libaprutil-0.a create mode 100644 rubbos/app/apache2/lib/libaprutil-0.la create mode 100755 rubbos/app/apache2/lib/libaprutil-0.so create mode 100755 rubbos/app/apache2/lib/libaprutil-0.so.0 create mode 100755 rubbos/app/apache2/lib/libaprutil-0.so.0.9.19 create mode 100644 rubbos/app/apache2/lib/libexpat.a create mode 100755 rubbos/app/apache2/lib/libexpat.la create mode 100755 rubbos/app/apache2/lib/libexpat.so create mode 100755 rubbos/app/apache2/lib/libexpat.so.0 create mode 100755 rubbos/app/apache2/lib/libexpat.so.0.5.0 create mode 100644 rubbos/app/apache2/logs/access_log create mode 100644 rubbos/app/apache2/logs/error_log create mode 100644 rubbos/app/apache2/man/man1/dbmmanage.1 create mode 100644 rubbos/app/apache2/man/man1/htdbm.1 create mode 100644 rubbos/app/apache2/man/man1/htdigest.1 create mode 100644 rubbos/app/apache2/man/man1/htpasswd.1 create mode 100644 rubbos/app/apache2/man/man8/ab.8 create mode 100644 rubbos/app/apache2/man/man8/apachectl.8 create mode 100644 rubbos/app/apache2/man/man8/apxs.8 create mode 100644 rubbos/app/apache2/man/man8/httpd.8 create mode 100644 rubbos/app/apache2/man/man8/logresolve.8 create mode 100644 rubbos/app/apache2/man/man8/rotatelogs.8 create mode 100644 rubbos/app/apache2/man/man8/suexec.8 create mode 100644 rubbos/app/apache2/manual/LICENSE create mode 100644 rubbos/app/apache2/manual/bind.html create mode 100644 rubbos/app/apache2/manual/bind.html.en create mode 100644 rubbos/app/apache2/manual/bind.html.es create mode 100644 rubbos/app/apache2/manual/bind.html.fr create mode 100644 rubbos/app/apache2/manual/bind.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/bind.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/bind.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/configuring.html create mode 100644 rubbos/app/apache2/manual/configuring.html.de create mode 100644 rubbos/app/apache2/manual/configuring.html.en create mode 100644 rubbos/app/apache2/manual/configuring.html.fr create mode 100644 rubbos/app/apache2/manual/configuring.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/configuring.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/configuring.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/content-negotiation.html create mode 100644 rubbos/app/apache2/manual/content-negotiation.html.en create mode 100644 rubbos/app/apache2/manual/content-negotiation.html.fr create mode 100644 rubbos/app/apache2/manual/content-negotiation.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/content-negotiation.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/content-negotiation.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/custom-error.html create mode 100644 rubbos/app/apache2/manual/custom-error.html.en create mode 100644 rubbos/app/apache2/manual/custom-error.html.es create mode 100644 rubbos/app/apache2/manual/custom-error.html.fr create mode 100644 rubbos/app/apache2/manual/custom-error.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/custom-error.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/custom-error.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/developer/API.html create mode 100644 rubbos/app/apache2/manual/developer/API.html.en create mode 100644 rubbos/app/apache2/manual/developer/debugging.html create mode 100644 rubbos/app/apache2/manual/developer/debugging.html.en create mode 100644 rubbos/app/apache2/manual/developer/documenting.html create mode 100644 rubbos/app/apache2/manual/developer/documenting.html.en create mode 100644 rubbos/app/apache2/manual/developer/filters.html create mode 100644 rubbos/app/apache2/manual/developer/filters.html.en create mode 100644 rubbos/app/apache2/manual/developer/hooks.html create mode 100644 rubbos/app/apache2/manual/developer/hooks.html.en create mode 100644 rubbos/app/apache2/manual/developer/index.html create mode 100644 rubbos/app/apache2/manual/developer/index.html.en create mode 100644 rubbos/app/apache2/manual/developer/modules.html create mode 100644 rubbos/app/apache2/manual/developer/modules.html.en create mode 100644 rubbos/app/apache2/manual/developer/modules.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/developer/request.html create mode 100644 rubbos/app/apache2/manual/developer/request.html.en create mode 100644 rubbos/app/apache2/manual/developer/thread_safety.html create mode 100644 rubbos/app/apache2/manual/developer/thread_safety.html.en create mode 100644 rubbos/app/apache2/manual/dns-caveats.html create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.en create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.es create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.fr create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/dns-caveats.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/dso.html create mode 100644 rubbos/app/apache2/manual/dso.html.en create mode 100644 rubbos/app/apache2/manual/dso.html.es create mode 100644 rubbos/app/apache2/manual/dso.html.fr create mode 100644 rubbos/app/apache2/manual/dso.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/dso.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/dso.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/env.html create mode 100644 rubbos/app/apache2/manual/env.html.en create mode 100644 rubbos/app/apache2/manual/env.html.es create mode 100644 rubbos/app/apache2/manual/env.html.fr create mode 100644 rubbos/app/apache2/manual/env.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/env.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/env.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/faq/all_in_one.html create mode 100644 rubbos/app/apache2/manual/faq/all_in_one.html.en create mode 100644 rubbos/app/apache2/manual/faq/all_in_one.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/faq/all_in_one.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/faq/error.html create mode 100644 rubbos/app/apache2/manual/faq/error.html.en create mode 100644 rubbos/app/apache2/manual/faq/error.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/faq/error.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/faq/index.html create mode 100644 rubbos/app/apache2/manual/faq/index.html.en create mode 100644 rubbos/app/apache2/manual/faq/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/faq/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/faq/support.html create mode 100644 rubbos/app/apache2/manual/faq/support.html.en create mode 100644 rubbos/app/apache2/manual/faq/support.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/faq/support.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/filter.html create mode 100644 rubbos/app/apache2/manual/filter.html.en create mode 100644 rubbos/app/apache2/manual/filter.html.es create mode 100644 rubbos/app/apache2/manual/filter.html.fr create mode 100644 rubbos/app/apache2/manual/filter.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/filter.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/filter.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/filter.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/glossary.html create mode 100644 rubbos/app/apache2/manual/glossary.html.de create mode 100644 rubbos/app/apache2/manual/glossary.html.en create mode 100644 rubbos/app/apache2/manual/glossary.html.es create mode 100644 rubbos/app/apache2/manual/glossary.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/glossary.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/handler.html create mode 100644 rubbos/app/apache2/manual/handler.html.en create mode 100644 rubbos/app/apache2/manual/handler.html.es create mode 100644 rubbos/app/apache2/manual/handler.html.fr create mode 100644 rubbos/app/apache2/manual/handler.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/handler.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/handler.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/handler.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/howto/auth.html create mode 100644 rubbos/app/apache2/manual/howto/auth.html.en create mode 100644 rubbos/app/apache2/manual/howto/auth.html.es create mode 100644 rubbos/app/apache2/manual/howto/auth.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/auth.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/howto/cgi.html create mode 100644 rubbos/app/apache2/manual/howto/cgi.html.en create mode 100644 rubbos/app/apache2/manual/howto/cgi.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/cgi.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/howto/htaccess.html create mode 100644 rubbos/app/apache2/manual/howto/htaccess.html.en create mode 100644 rubbos/app/apache2/manual/howto/htaccess.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/htaccess.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/howto/index.html create mode 100644 rubbos/app/apache2/manual/howto/index.html.en create mode 100644 rubbos/app/apache2/manual/howto/index.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/howto/public_html.html create mode 100644 rubbos/app/apache2/manual/howto/public_html.html.en create mode 100644 rubbos/app/apache2/manual/howto/public_html.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/public_html.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/howto/public_html.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/howto/ssi.html create mode 100644 rubbos/app/apache2/manual/howto/ssi.html.en create mode 100644 rubbos/app/apache2/manual/howto/ssi.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/howto/ssi.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/images/apache_header.gif create mode 100644 rubbos/app/apache2/manual/images/custom_errordocs.gif create mode 100644 rubbos/app/apache2/manual/images/custom_errordocs.png create mode 100644 rubbos/app/apache2/manual/images/down.gif create mode 100644 rubbos/app/apache2/manual/images/favicon.ico create mode 100644 rubbos/app/apache2/manual/images/feather.gif create mode 100644 rubbos/app/apache2/manual/images/feather.png create mode 100644 rubbos/app/apache2/manual/images/home.gif create mode 100644 rubbos/app/apache2/manual/images/index.gif create mode 100644 rubbos/app/apache2/manual/images/left.gif create mode 100644 rubbos/app/apache2/manual/images/mod_rewrite_fig1.gif create mode 100644 rubbos/app/apache2/manual/images/mod_rewrite_fig1.png create mode 100644 rubbos/app/apache2/manual/images/mod_rewrite_fig2.gif create mode 100644 rubbos/app/apache2/manual/images/mod_rewrite_fig2.png create mode 100644 rubbos/app/apache2/manual/images/pixel.gif create mode 100644 rubbos/app/apache2/manual/images/right.gif create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig1.gif create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig1.png create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig2.gif create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig2.png create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig3.gif create mode 100644 rubbos/app/apache2/manual/images/ssl_intro_fig3.png create mode 100644 rubbos/app/apache2/manual/images/sub.gif create mode 100644 rubbos/app/apache2/manual/images/up.gif create mode 100644 rubbos/app/apache2/manual/index.html create mode 100644 rubbos/app/apache2/manual/index.html.de create mode 100644 rubbos/app/apache2/manual/index.html.en create mode 100644 rubbos/app/apache2/manual/index.html.es create mode 100644 rubbos/app/apache2/manual/index.html.fr create mode 100644 rubbos/app/apache2/manual/index.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/index.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/install.html create mode 100644 rubbos/app/apache2/manual/install.html.de create mode 100644 rubbos/app/apache2/manual/install.html.en create mode 100644 rubbos/app/apache2/manual/install.html.es create mode 100644 rubbos/app/apache2/manual/install.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/install.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/install.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/install.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/invoking.html create mode 100644 rubbos/app/apache2/manual/invoking.html.de create mode 100644 rubbos/app/apache2/manual/invoking.html.en create mode 100644 rubbos/app/apache2/manual/invoking.html.es create mode 100644 rubbos/app/apache2/manual/invoking.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/invoking.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/invoking.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/invoking.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/license.html create mode 100644 rubbos/app/apache2/manual/license.html.en create mode 100644 rubbos/app/apache2/manual/logs.html create mode 100644 rubbos/app/apache2/manual/logs.html.en create mode 100644 rubbos/app/apache2/manual/logs.html.es create mode 100644 rubbos/app/apache2/manual/logs.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/logs.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/logs.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/misc/custom_errordocs.html create mode 100644 rubbos/app/apache2/manual/misc/custom_errordocs.html.en create mode 100644 rubbos/app/apache2/manual/misc/descriptors.html create mode 100644 rubbos/app/apache2/manual/misc/descriptors.html.en create mode 100644 rubbos/app/apache2/manual/misc/fin_wait_2.html create mode 100644 rubbos/app/apache2/manual/misc/fin_wait_2.html.en create mode 100644 rubbos/app/apache2/manual/misc/index.html create mode 100644 rubbos/app/apache2/manual/misc/index.html.en create mode 100644 rubbos/app/apache2/manual/misc/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/misc/known_client_problems.html create mode 100644 rubbos/app/apache2/manual/misc/known_client_problems.html.en create mode 100644 rubbos/app/apache2/manual/misc/perf-tuning.html create mode 100644 rubbos/app/apache2/manual/misc/perf-tuning.html.en create mode 100644 rubbos/app/apache2/manual/misc/perf-tuning.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/misc/perf-tuning.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/misc/relevant_standards.html create mode 100644 rubbos/app/apache2/manual/misc/relevant_standards.html.en create mode 100644 rubbos/app/apache2/manual/misc/relevant_standards.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/misc/rewriteguide.html create mode 100644 rubbos/app/apache2/manual/misc/rewriteguide.html.en create mode 100644 rubbos/app/apache2/manual/misc/rewriteguide.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/misc/security_tips.html create mode 100644 rubbos/app/apache2/manual/misc/security_tips.html.en create mode 100644 rubbos/app/apache2/manual/misc/security_tips.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/misc/security_tips.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/misc/tutorials.html create mode 100644 rubbos/app/apache2/manual/misc/tutorials.html.en create mode 100644 rubbos/app/apache2/manual/mod/beos.html create mode 100644 rubbos/app/apache2/manual/mod/beos.html.de create mode 100644 rubbos/app/apache2/manual/mod/beos.html.en create mode 100644 rubbos/app/apache2/manual/mod/beos.html.es create mode 100644 rubbos/app/apache2/manual/mod/beos.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/core.html create mode 100644 rubbos/app/apache2/manual/mod/core.html.de create mode 100644 rubbos/app/apache2/manual/mod/core.html.en create mode 100644 rubbos/app/apache2/manual/mod/core.html.es create mode 100644 rubbos/app/apache2/manual/mod/core.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/core.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html.en create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html.es create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/directive-dict.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/directives.html create mode 100644 rubbos/app/apache2/manual/mod/directives.html.de create mode 100644 rubbos/app/apache2/manual/mod/directives.html.en create mode 100644 rubbos/app/apache2/manual/mod/directives.html.es create mode 100644 rubbos/app/apache2/manual/mod/directives.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/directives.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/directives.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/mod/directives.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/index.html create mode 100644 rubbos/app/apache2/manual/mod/index.html.de create mode 100644 rubbos/app/apache2/manual/mod/index.html.en create mode 100644 rubbos/app/apache2/manual/mod/index.html.es create mode 100644 rubbos/app/apache2/manual/mod/index.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/leader.html create mode 100644 rubbos/app/apache2/manual/mod/leader.html.de create mode 100644 rubbos/app/apache2/manual/mod/leader.html.en create mode 100644 rubbos/app/apache2/manual/mod/leader.html.es create mode 100644 rubbos/app/apache2/manual/mod/leader.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_access.html create mode 100644 rubbos/app/apache2/manual/mod/mod_access.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_access.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_actions.html create mode 100644 rubbos/app/apache2/manual/mod/mod_actions.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_actions.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_actions.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_alias.html create mode 100644 rubbos/app/apache2/manual/mod/mod_alias.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_alias.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_alias.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_alias.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_asis.html create mode 100644 rubbos/app/apache2/manual/mod/mod_asis.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_asis.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_asis.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_auth.html create mode 100644 rubbos/app/apache2/manual/mod/mod_auth.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_auth.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_anon.html create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_anon.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_dbm.html create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_dbm.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_digest.html create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_digest.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_digest.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_ldap.html create mode 100644 rubbos/app/apache2/manual/mod/mod_auth_ldap.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_autoindex.html create mode 100644 rubbos/app/apache2/manual/mod/mod_autoindex.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_autoindex.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_autoindex.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_autoindex.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_cache.html create mode 100644 rubbos/app/apache2/manual/mod/mod_cache.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_cache.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_cern_meta.html create mode 100644 rubbos/app/apache2/manual/mod/mod_cern_meta.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_cern_meta.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_cgi.html create mode 100644 rubbos/app/apache2/manual/mod/mod_cgi.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_cgi.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_cgi.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_cgid.html create mode 100644 rubbos/app/apache2/manual/mod/mod_cgid.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_cgid.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_cgid.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_charset_lite.html create mode 100644 rubbos/app/apache2/manual/mod/mod_charset_lite.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_charset_lite.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_dav.html create mode 100644 rubbos/app/apache2/manual/mod/mod_dav.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_dav.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_dav.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_dav_fs.html create mode 100644 rubbos/app/apache2/manual/mod/mod_dav_fs.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_dav_fs.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_dav_fs.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_deflate.html create mode 100644 rubbos/app/apache2/manual/mod/mod_deflate.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_deflate.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_deflate.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_dir.html create mode 100644 rubbos/app/apache2/manual/mod/mod_dir.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_dir.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_dir.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_dir.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_disk_cache.html create mode 100644 rubbos/app/apache2/manual/mod/mod_disk_cache.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_disk_cache.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_dumpio.html create mode 100644 rubbos/app/apache2/manual/mod/mod_dumpio.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_echo.html create mode 100644 rubbos/app/apache2/manual/mod/mod_echo.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_echo.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_echo.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_env.html create mode 100644 rubbos/app/apache2/manual/mod/mod_env.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_env.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_env.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_env.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_example.html create mode 100644 rubbos/app/apache2/manual/mod/mod_example.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_example.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_expires.html create mode 100644 rubbos/app/apache2/manual/mod/mod_expires.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_expires.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_expires.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_ext_filter.html create mode 100644 rubbos/app/apache2/manual/mod/mod_ext_filter.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_ext_filter.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_file_cache.html create mode 100644 rubbos/app/apache2/manual/mod/mod_file_cache.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_file_cache.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_headers.html create mode 100644 rubbos/app/apache2/manual/mod/mod_headers.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_headers.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_imap.html create mode 100644 rubbos/app/apache2/manual/mod/mod_imap.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_imap.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_include.html create mode 100644 rubbos/app/apache2/manual/mod/mod_include.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_include.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_info.html create mode 100644 rubbos/app/apache2/manual/mod/mod_info.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_info.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_info.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_isapi.html create mode 100644 rubbos/app/apache2/manual/mod/mod_isapi.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_isapi.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_ldap.html create mode 100644 rubbos/app/apache2/manual/mod/mod_ldap.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_log_config.html create mode 100644 rubbos/app/apache2/manual/mod/mod_log_config.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_log_config.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_log_config.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_log_config.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_log_forensic.html create mode 100644 rubbos/app/apache2/manual/mod/mod_log_forensic.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_log_forensic.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_logio.html create mode 100644 rubbos/app/apache2/manual/mod/mod_logio.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_logio.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_logio.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_logio.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_mem_cache.html create mode 100644 rubbos/app/apache2/manual/mod/mod_mem_cache.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_mem_cache.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_mem_cache.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_mime.html create mode 100644 rubbos/app/apache2/manual/mod/mod_mime.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_mime.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_mime_magic.html create mode 100644 rubbos/app/apache2/manual/mod/mod_mime_magic.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_negotiation.html create mode 100644 rubbos/app/apache2/manual/mod/mod_negotiation.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_negotiation.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_nw_ssl.html create mode 100644 rubbos/app/apache2/manual/mod/mod_nw_ssl.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy.html create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_connect.html create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_connect.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_ftp.html create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_ftp.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_http.html create mode 100644 rubbos/app/apache2/manual/mod/mod_proxy_http.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_rewrite.html create mode 100644 rubbos/app/apache2/manual/mod/mod_rewrite.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_setenvif.html create mode 100644 rubbos/app/apache2/manual/mod/mod_setenvif.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_setenvif.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_setenvif.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_setenvif.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_so.html create mode 100644 rubbos/app/apache2/manual/mod/mod_so.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_so.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_so.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_so.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_speling.html create mode 100644 rubbos/app/apache2/manual/mod/mod_speling.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_speling.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_speling.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_ssl.html create mode 100644 rubbos/app/apache2/manual/mod/mod_ssl.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_status.html create mode 100644 rubbos/app/apache2/manual/mod/mod_status.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_status.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_status.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_status.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_suexec.html create mode 100644 rubbos/app/apache2/manual/mod/mod_suexec.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_suexec.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_suexec.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_suexec.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_unique_id.html create mode 100644 rubbos/app/apache2/manual/mod/mod_unique_id.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_unique_id.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_unique_id.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_userdir.html create mode 100644 rubbos/app/apache2/manual/mod/mod_userdir.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_userdir.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_userdir.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_userdir.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_usertrack.html create mode 100644 rubbos/app/apache2/manual/mod/mod_usertrack.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_version.html create mode 100644 rubbos/app/apache2/manual/mod/mod_version.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_version.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mod_version.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/mod_vhost_alias.html create mode 100644 rubbos/app/apache2/manual/mod/mod_vhost_alias.html.en create mode 100644 rubbos/app/apache2/manual/mod/mod_vhost_alias.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/module-dict.html create mode 100644 rubbos/app/apache2/manual/mod/module-dict.html.en create mode 100644 rubbos/app/apache2/manual/mod/module-dict.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/module-dict.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/module-dict.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html.de create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html.en create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html.es create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mpm_common.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mpm_netware.html create mode 100644 rubbos/app/apache2/manual/mod/mpm_netware.html.en create mode 100644 rubbos/app/apache2/manual/mod/mpm_winnt.html create mode 100644 rubbos/app/apache2/manual/mod/mpm_winnt.html.de create mode 100644 rubbos/app/apache2/manual/mod/mpm_winnt.html.en create mode 100644 rubbos/app/apache2/manual/mod/mpm_winnt.html.es create mode 100644 rubbos/app/apache2/manual/mod/mpm_winnt.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/mpmt_os2.html create mode 100644 rubbos/app/apache2/manual/mod/mpmt_os2.html.en create mode 100644 rubbos/app/apache2/manual/mod/perchild.html create mode 100644 rubbos/app/apache2/manual/mod/perchild.html.en create mode 100644 rubbos/app/apache2/manual/mod/prefork.html create mode 100644 rubbos/app/apache2/manual/mod/prefork.html.de create mode 100644 rubbos/app/apache2/manual/mod/prefork.html.en create mode 100644 rubbos/app/apache2/manual/mod/prefork.html.es create mode 100644 rubbos/app/apache2/manual/mod/prefork.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/prefork.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.de create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.en create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.es create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/mod/quickreference.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mod/threadpool.html create mode 100644 rubbos/app/apache2/manual/mod/threadpool.html.en create mode 100644 rubbos/app/apache2/manual/mod/worker.html create mode 100644 rubbos/app/apache2/manual/mod/worker.html.de create mode 100644 rubbos/app/apache2/manual/mod/worker.html.en create mode 100644 rubbos/app/apache2/manual/mod/worker.html.es create mode 100644 rubbos/app/apache2/manual/mod/worker.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mod/worker.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/mpm.html create mode 100644 rubbos/app/apache2/manual/mpm.html.de create mode 100644 rubbos/app/apache2/manual/mpm.html.en create mode 100644 rubbos/app/apache2/manual/mpm.html.es create mode 100644 rubbos/app/apache2/manual/mpm.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/mpm.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/mpm.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/mpm.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.de create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.en create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.es create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.fr create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/new_features_2_0.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/platform/ebcdic.html create mode 100644 rubbos/app/apache2/manual/platform/ebcdic.html.en create mode 100644 rubbos/app/apache2/manual/platform/ebcdic.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/platform/index.html create mode 100644 rubbos/app/apache2/manual/platform/index.html.en create mode 100644 rubbos/app/apache2/manual/platform/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/platform/netware.html create mode 100644 rubbos/app/apache2/manual/platform/netware.html.en create mode 100644 rubbos/app/apache2/manual/platform/netware.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/platform/perf-hp.html create mode 100644 rubbos/app/apache2/manual/platform/perf-hp.html.en create mode 100644 rubbos/app/apache2/manual/platform/perf-hp.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/platform/win_compiling.html create mode 100644 rubbos/app/apache2/manual/platform/win_compiling.html.en create mode 100644 rubbos/app/apache2/manual/platform/win_compiling.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/platform/windows.html create mode 100644 rubbos/app/apache2/manual/platform/windows.html.en create mode 100644 rubbos/app/apache2/manual/platform/windows.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/ab.html create mode 100644 rubbos/app/apache2/manual/programs/ab.html.en create mode 100644 rubbos/app/apache2/manual/programs/ab.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/ab.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/apachectl.html create mode 100644 rubbos/app/apache2/manual/programs/apachectl.html.en create mode 100644 rubbos/app/apache2/manual/programs/apachectl.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/apachectl.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/apxs.html create mode 100644 rubbos/app/apache2/manual/programs/apxs.html.en create mode 100644 rubbos/app/apache2/manual/programs/apxs.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/apxs.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/configure.html create mode 100644 rubbos/app/apache2/manual/programs/configure.html.en create mode 100644 rubbos/app/apache2/manual/programs/configure.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/configure.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/dbmmanage.html create mode 100644 rubbos/app/apache2/manual/programs/dbmmanage.html.en create mode 100644 rubbos/app/apache2/manual/programs/dbmmanage.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/dbmmanage.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/htdbm.html create mode 100644 rubbos/app/apache2/manual/programs/htdbm.html.en create mode 100644 rubbos/app/apache2/manual/programs/htdbm.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/htdigest.html create mode 100644 rubbos/app/apache2/manual/programs/htdigest.html.en create mode 100644 rubbos/app/apache2/manual/programs/htdigest.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/htdigest.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/htpasswd.html create mode 100644 rubbos/app/apache2/manual/programs/htpasswd.html.en create mode 100644 rubbos/app/apache2/manual/programs/htpasswd.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/htpasswd.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/httpd.html create mode 100644 rubbos/app/apache2/manual/programs/httpd.html.en create mode 100644 rubbos/app/apache2/manual/programs/httpd.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/httpd.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/index.html create mode 100644 rubbos/app/apache2/manual/programs/index.html.en create mode 100644 rubbos/app/apache2/manual/programs/index.html.es create mode 100644 rubbos/app/apache2/manual/programs/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/index.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/programs/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/logresolve.html create mode 100644 rubbos/app/apache2/manual/programs/logresolve.html.en create mode 100644 rubbos/app/apache2/manual/programs/logresolve.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/logresolve.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/other.html create mode 100644 rubbos/app/apache2/manual/programs/other.html.en create mode 100644 rubbos/app/apache2/manual/programs/other.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/other.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/rotatelogs.html create mode 100644 rubbos/app/apache2/manual/programs/rotatelogs.html.en create mode 100644 rubbos/app/apache2/manual/programs/rotatelogs.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/rotatelogs.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/programs/suexec.html create mode 100644 rubbos/app/apache2/manual/programs/suexec.html.en create mode 100644 rubbos/app/apache2/manual/programs/suexec.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/programs/suexec.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/rewrite/index.html create mode 100644 rubbos/app/apache2/manual/rewrite/index.html.en create mode 100644 rubbos/app/apache2/manual/rewrite/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_guide.html create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_guide.html.en create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html.en create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_intro.html create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_intro.html.en create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_tech.html create mode 100644 rubbos/app/apache2/manual/rewrite/rewrite_tech.html.en create mode 100644 rubbos/app/apache2/manual/sections.html create mode 100644 rubbos/app/apache2/manual/sections.html.en create mode 100644 rubbos/app/apache2/manual/sections.html.es create mode 100644 rubbos/app/apache2/manual/sections.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/sections.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/sections.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/server-wide.html create mode 100644 rubbos/app/apache2/manual/server-wide.html.en create mode 100644 rubbos/app/apache2/manual/server-wide.html.es create mode 100644 rubbos/app/apache2/manual/server-wide.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/server-wide.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/server-wide.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/sitemap.html create mode 100644 rubbos/app/apache2/manual/sitemap.html.de create mode 100644 rubbos/app/apache2/manual/sitemap.html.en create mode 100644 rubbos/app/apache2/manual/sitemap.html.es create mode 100644 rubbos/app/apache2/manual/sitemap.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/sitemap.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/sitemap.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/ssl/index.html create mode 100644 rubbos/app/apache2/manual/ssl/index.html.en create mode 100644 rubbos/app/apache2/manual/ssl/index.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/ssl/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/ssl/ssl_compat.html create mode 100644 rubbos/app/apache2/manual/ssl/ssl_compat.html.en create mode 100644 rubbos/app/apache2/manual/ssl/ssl_faq.html create mode 100644 rubbos/app/apache2/manual/ssl/ssl_faq.html.en create mode 100644 rubbos/app/apache2/manual/ssl/ssl_howto.html create mode 100644 rubbos/app/apache2/manual/ssl/ssl_howto.html.en create mode 100644 rubbos/app/apache2/manual/ssl/ssl_intro.html create mode 100644 rubbos/app/apache2/manual/ssl/ssl_intro.html.en create mode 100644 rubbos/app/apache2/manual/ssl/ssl_intro.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/stopping.html create mode 100644 rubbos/app/apache2/manual/stopping.html.de create mode 100644 rubbos/app/apache2/manual/stopping.html.en create mode 100644 rubbos/app/apache2/manual/stopping.html.es create mode 100644 rubbos/app/apache2/manual/stopping.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/stopping.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/stopping.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/stopping.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/style/build.properties create mode 100644 rubbos/app/apache2/manual/style/common.dtd create mode 100644 rubbos/app/apache2/manual/style/css/manual-chm.css create mode 100644 rubbos/app/apache2/manual/style/css/manual-loose-100pc.css create mode 100644 rubbos/app/apache2/manual/style/css/manual-print.css create mode 100644 rubbos/app/apache2/manual/style/css/manual-zip-100pc.css create mode 100644 rubbos/app/apache2/manual/style/css/manual-zip.css create mode 100644 rubbos/app/apache2/manual/style/css/manual.css create mode 100644 rubbos/app/apache2/manual/style/faq.dtd create mode 100644 rubbos/app/apache2/manual/style/lang.dtd create mode 100644 rubbos/app/apache2/manual/style/latex/atbeginend.sty create mode 100644 rubbos/app/apache2/manual/style/manualpage.dtd create mode 100644 rubbos/app/apache2/manual/style/modulesynopsis.dtd create mode 100644 rubbos/app/apache2/manual/style/sitemap.dtd create mode 100644 rubbos/app/apache2/manual/style/version.ent create mode 100644 rubbos/app/apache2/manual/suexec.html create mode 100644 rubbos/app/apache2/manual/suexec.html.en create mode 100644 rubbos/app/apache2/manual/suexec.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/suexec.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/suexec.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/upgrading.html create mode 100644 rubbos/app/apache2/manual/upgrading.html.de create mode 100644 rubbos/app/apache2/manual/upgrading.html.en create mode 100644 rubbos/app/apache2/manual/upgrading.html.es create mode 100644 rubbos/app/apache2/manual/upgrading.html.fr create mode 100644 rubbos/app/apache2/manual/upgrading.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/upgrading.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/upgrading.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/urlmapping.html create mode 100644 rubbos/app/apache2/manual/urlmapping.html.en create mode 100644 rubbos/app/apache2/manual/urlmapping.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/urlmapping.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/urlmapping.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/details.html create mode 100644 rubbos/app/apache2/manual/vhosts/details.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/details.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/details.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/examples.html create mode 100644 rubbos/app/apache2/manual/vhosts/examples.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/examples.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/examples.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/fd-limits.html create mode 100644 rubbos/app/apache2/manual/vhosts/fd-limits.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/fd-limits.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/fd-limits.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/fd-limits.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/index.html create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.de create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.es create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.ru.koi8-r create mode 100644 rubbos/app/apache2/manual/vhosts/index.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/ip-based.html create mode 100644 rubbos/app/apache2/manual/vhosts/ip-based.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/ip-based.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/ip-based.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/mass.html create mode 100644 rubbos/app/apache2/manual/vhosts/mass.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/mass.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/mass.html.tr.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.de create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.en create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.es create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.ja.utf8 create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.ko.euc-kr create mode 100644 rubbos/app/apache2/manual/vhosts/name-based.html.tr.utf8 create mode 100644 rubbos/app/apache2/modules/httpd.exp create mode 100755 rubbos/app/apache2/modules/mod_jk.so diff --git a/rubbos/app/apache2/bin/ab b/rubbos/app/apache2/bin/ab new file mode 100755 index 00000000..e5b37b70 Binary files /dev/null and b/rubbos/app/apache2/bin/ab differ diff --git a/rubbos/app/apache2/bin/apachectl b/rubbos/app/apache2/bin/apachectl new file mode 100755 index 00000000..5eb2fe95 --- /dev/null +++ b/rubbos/app/apache2/bin/apachectl @@ -0,0 +1,103 @@ +#!/bin/sh +# +# 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. +# +# +# Apache control script designed to allow an easy command line interface +# to controlling Apache. Written by Marc Slemko, 1997/08/23 +# +# The exit codes returned are: +# XXX this doc is no longer correct now that the interesting +# XXX functions are handled by httpd +# 0 - operation completed successfully +# 1 - +# 2 - usage error +# 3 - httpd could not be started +# 4 - httpd could not be stopped +# 5 - httpd could not be started during a restart +# 6 - httpd could not be restarted during a restart +# 7 - httpd could not be restarted during a graceful restart +# 8 - configuration syntax error +# +# When multiple arguments are given, only the error from the _last_ +# one is reported. Run "apachectl help" for usage info +# +ARGV="$@" +# +# |||||||||||||||||||| START CONFIGURATION SECTION |||||||||||||||||||| +# -------------------- -------------------- +# +# the path to your httpd binary, including options if necessary +HTTPD='/bottlenecks/rubbos/app/apache2/bin/httpd' +# +# pick up any necessary environment variables +if test -f /bottlenecks/rubbos/app/apache2/bin/envvars; then + . /bottlenecks/rubbos/app/apache2/bin/envvars +fi +# +# a command that outputs a formatted text version of the HTML at the +# url given on the command line. Designed for lynx, however other +# programs may work. +LYNX="lynx -dump" +# +# the URL to your server's mod_status status page. If you do not +# have one, then status and fullstatus will not work. +STATUSURL="http://localhost:80/server-status" +# +# Set this variable to a command that increases the maximum +# number of file descriptors allowed per child process. This is +# critical for configurations that use many file descriptors, +# such as mass vhosting, or a multithreaded server. +ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`" +# -------------------- -------------------- +# |||||||||||||||||||| END CONFIGURATION SECTION |||||||||||||||||||| + +# Set the maximum number of file descriptors allowed per child process. +if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then + $ULIMIT_MAX_FILES +fi + +ERROR=0 +if [ "x$ARGV" = "x" ] ; then + ARGV="-h" +fi + +case $ARGV in +start|stop|restart|graceful) + $HTTPD -k $ARGV + ERROR=$? + ;; +startssl|sslstart|start-SSL) + $HTTPD -k start -DSSL + ERROR=$? + ;; +configtest) + $HTTPD -t + ERROR=$? + ;; +status) + $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } ' + ;; +fullstatus) + $LYNX $STATUSURL + ;; +*) + $HTTPD $ARGV + ERROR=$? +esac + +exit $ERROR + diff --git a/rubbos/app/apache2/bin/apr-config b/rubbos/app/apache2/bin/apr-config new file mode 100755 index 00000000..84f95e73 --- /dev/null +++ b/rubbos/app/apache2/bin/apr-config @@ -0,0 +1,249 @@ +#!/bin/sh +# 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. +# + +# APR script designed to allow easy command line access to APR configuration +# parameters. + +APR_MAJOR_VERSION="0" +APR_DOTTED_VERSION="0.9.19" + +prefix="/bottlenecks/rubbos/app/apache2" +exec_prefix="/bottlenecks/rubbos/app/apache2" +bindir="${prefix}/bin" +libdir="${prefix}/lib" +datarootdir="/bottlenecks/rubbos/app/apache2" +datadir="/bottlenecks/rubbos/app/apache2" +installbuilddir="${prefix}/build" +includedir="/bottlenecks/rubbos/app/apache2/include" + +CC="gcc" +CPP="gcc -E" +SHELL="/bin/bash" +CPPFLAGS="-D_REENTRANT -D_GNU_SOURCE" +CFLAGS="-g -O2 -pthread" +LDFLAGS="" +LIBS="-lrt -lm -lcrypt -lnsl -lpthread -ldl" +EXTRA_INCLUDES="" +SHLIBPATH_VAR="LD_LIBRARY_PATH" +APR_SOURCE_DIR="/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr" +APR_BUILD_DIR="/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr" +APR_SO_EXT="lo" +APR_LIB_TARGET="-rpath \$(libdir) \$\$objects" +APR_LIBNAME="apr-${APR_MAJOR_VERSION}" + +# NOTE: the following line is modified during 'make install': alter with care! +location=installed + +show_usage() +{ + cat << EOF +Usage: apr-config [OPTION] + +Known values for OPTION are: + --prefix[=DIR] change prefix to DIR + --bindir print location where binaries are installed + --includedir print location where headers are installed + --cc print C compiler name + --cpp print C preprocessor name and any required options + --cflags print C compiler flags + --cppflags print cpp flags + --includes print include information + --ldflags print linker flags + --libs print additional libraries to link against + --srcdir print APR source directory + --installbuilddir print APR build helper directory + --link-ld print link switch(es) for linking to APR + --link-libtool print the libtool inputs for linking to APR + --shlib-path-var print the name of the shared library path env var + --apr-la-file print the path to the .la file, if available + --apr-so-ext print the extensions of shared objects on this platform + --apr-lib-target print the libtool target information + --apr-libtool print the path to APR's libtool + --version print the APR's version as a dotted triple + --help print this help + +When linking with libtool, an application should do something like: + APR_LIBS="\`apr-config --link-libtool --libs\`" +or when linking directly: + APR_LIBS="\`apr-config --link-ld --libs\`" + +An application should use the results of --cflags, --cppflags, --includes, +and --ldflags in their build process. +EOF +} + +if test $# -eq 0; then + show_usage + exit 1 +fi + +if test "$location" = "installed"; then + LA_FILE="$libdir/lib${APR_LIBNAME}.la" +else + LA_FILE="$APR_BUILD_DIR/lib${APR_LIBNAME}.la" +fi + +flags="" + +while test $# -gt 0; do + # Normalize the prefix. + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case "$1" in + # It is possible for the user to override our prefix. + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo $prefix + exit 0 + ;; + --bindir) + echo $bindir + exit 0 + ;; + --includedir) + if test "$location" = "installed"; then + flags="$includedir" + elif test "$location" = "source"; then + flags="$APR_SOURCE_DIR/include" + else + # this is for VPATH builds + flags="$APR_BUILD_DIR/include $APR_SOURCE_DIR/include" + fi + echo $flags + exit 0 + ;; + --cc) + echo $CC + exit 0 + ;; + --cpp) + echo $CPP + exit 0 + ;; + --cflags) + flags="$flags $CFLAGS" + ;; + --cppflags) + flags="$flags $CPPFLAGS" + ;; + --libs) + flags="$flags $LIBS" + ;; + --ldflags) + flags="$flags $LDFLAGS" + ;; + --includes) + if test "$location" = "installed"; then + flags="$flags -I$includedir $EXTRA_INCLUDES" + elif test "$location" = "source"; then + flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" + else + # this is for VPATH builds + flags="$flags -I$APR_BUILD_DIR/include -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" + fi + ;; + --srcdir) + echo $APR_SOURCE_DIR + exit 0 + ;; + --installbuilddir) + if test "$location" = "installed"; then + echo "${installbuilddir}" + elif test "$location" = "source"; then + echo "$APR_SOURCE_DIR/build" + else + # this is for VPATH builds + echo "$APR_BUILD_DIR/build" + fi + exit 0 + ;; + --version) + echo $APR_DOTTED_VERSION + exit 0 + ;; + --link-ld) + if test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib + flags="$flags -L$libdir -l${APR_LIBNAME}" + else + ### this surely can't work since the library is in .libs? + flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}" + fi + ;; + --link-libtool) + # If the LA_FILE exists where we think it should be, use it. If we're + # installed and the LA_FILE does not exist, assume to use -L/-l + # (the LA_FILE may not have been installed). If we're building ourselves, + # we'll assume that at some point the .la file be created. + if test -f "$LA_FILE"; then + flags="$flags $LA_FILE" + elif test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib + flags="$flags -L$libdir -l${APR_LIBNAME}" + else + flags="$flags $LA_FILE" + fi + ;; + --shlib-path-var) + echo "$SHLIBPATH_VAR" + exit 0 + ;; + --apr-la-file) + if test -f "$LA_FILE"; then + flags="$flags $LA_FILE" + fi + ;; + --apr-so-ext) + echo "$APR_SO_EXT" + exit 0 + ;; + --apr-lib-target) + echo "$APR_LIB_TARGET" + exit 0 + ;; + --apr-libtool) + if test "$location" = "installed"; then + echo "${installbuilddir}/libtool" + else + echo "$APR_BUILD_DIR/libtool" + fi + exit 0 + ;; + --help) + show_usage + exit 0 + ;; + *) + show_usage + exit 1 + ;; + esac + + # Next please. + shift +done + +if test -n "$flags"; then + echo "$flags" +fi + +exit 0 diff --git a/rubbos/app/apache2/bin/apu-config b/rubbos/app/apache2/bin/apu-config new file mode 100755 index 00000000..92633b3a --- /dev/null +++ b/rubbos/app/apache2/bin/apu-config @@ -0,0 +1,205 @@ +#!/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 +# +# 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. +# + +# APR-util script designed to allow easy command line access to APR-util +# configuration parameters. + +APRUTIL_MAJOR_VERSION="0" +APRUTIL_DOTTED_VERSION="0.9.19" + +prefix="/bottlenecks/rubbos/app/apache2" +exec_prefix="/bottlenecks/rubbos/app/apache2" +bindir="${prefix}/bin" +libdir="${prefix}/lib" +includedir="/bottlenecks/rubbos/app/apache2/include" + +LIBS="/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la" +INCLUDES="-I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib" +LDFLAGS="-L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib" + +APRUTIL_LIBNAME="aprutil-${APRUTIL_MAJOR_VERSION}" + +APU_SOURCE_DIR="/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util" +APU_BUILD_DIR="/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util" +APR_XML_EXPAT_OLD="" +APU_DB_VERSION="0" + +# NOTE: the following line is modified during 'make install': alter with care! +location=installed + +show_usage() +{ + cat << EOF +Usage: apu-config [OPTION] + +Known values for OPTION are: + --prefix[=DIR] change prefix to DIR + --bindir print location where binaries are installed + --includes print include information + --includedir print location where headers are installed + --ldflags print linker flags + --libs print library information + --srcdir print APR-util source directory + --link-ld print link switch(es) for linking to APR-util + --link-libtool print the libtool inputs for linking to APR-util + --apu-la-file print the path to the .la file, if available + --old-expat indicate if APR-util was built against an old expat + --db-version print the DB version + --version print APR-util's version as a dotted triple + --help print this help + +When linking with libtool, an application should do something like: + APU_LIBS="\`apu-config --link-libtool --libs\`" +or when linking directly: + APU_LIBS="\`apu-config --link-ld --libs\`" + +An application should use the results of --includes, and --ldflags in +their build process. +EOF +} + +if test $# -eq 0; then + show_usage + exit 1 +fi + +if test "$location" = "installed"; then + LA_FILE="$libdir/lib${APRUTIL_LIBNAME}.la" + + LIBS=`echo "$LIBS" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g" -e "s $prefix/libexpat.la -lexpat g"` + LDFLAGS=`echo "$LDFLAGS" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g"` + INCLUDES=`echo "$INCLUDES" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g" -e "s -I$prefix/lib g"` +else + LA_FILE="$APU_BUILD_DIR/lib${APRUTIL_LIBNAME}.la" +fi + +flags="" + +while test $# -gt 0; do + # Normalize the prefix. + case "$1" in + -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + case "$1" in + # It is possible for the user to override our prefix. + --prefix=*) + prefix=$optarg + ;; + --prefix) + echo $prefix + exit 0 + ;; + --bindir) + echo $bindir + exit 0 + ;; + --libs) + flags="$flags $LIBS" + ;; + --includedir) + if test "$location" = "installed"; then + flags="$includedir" + elif test "$location" = "source"; then + flags="$APU_SOURCE_DIR/include" + else + # this is for VPATH builds + flags="$APU_BUILD_DIR/include $APU_SOURCE_DIR/include" + fi + echo $flags + exit 0 + ;; + --includes) + if test "$location" = "installed"; then + flags="$flags -I$includedir $INCLUDES" + elif test "$location" = "source"; then + flags="$flags -I$APU_SOURCE_DIR/include $INCLUDES" + else + # this is for VPATH builds + flags="$flags -I$APU_BUILD_DIR/include -I$APU_SOURCE_DIR/include $INCLUDES" + fi + ;; + --ldflags) + flags="$flags $LDFLAGS" + ;; + --srcdir) + echo $APU_SOURCE_DIR + exit 0 + ;; + --version) + echo $APRUTIL_DOTTED_VERSION + exit 0 + ;; + --link-ld) + if test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib + flags="$flags -L$libdir -l$APRUTIL_LIBNAME" + else + flags="$flags -L$APU_BUILD_DIR -l$APRUTIL_LIBNAME" + fi + ;; + --link-libtool) + # If the LA_FILE exists where we think it should be, use it. If we're + # installed and the LA_FILE does not exist, assume to use -L/-l + # (the LA_FILE may not have been installed). If we're building ourselves, + # we'll assume that at some point the .la file be created. + if test -f "$LA_FILE"; then + flags="$flags $LA_FILE" + elif test "$location" = "installed"; then + ### avoid using -L if libdir is a "standard" location like /usr/lib + flags="$flags -L$libdir -l$APRUTIL_LIBNAME" + else + flags="$flags $LA_FILE" + fi + ;; + --apu-la-file) + if test -f "$LA_FILE"; then + flags="$flags $LA_FILE" + fi + ;; + --old-expat) + if test ! -n "$APR_XML_EXPAT_OLD"; then + echo "no" + else + echo "$APR_XML_EXPAT_OLD" + fi + exit 0 + ;; + --db-version) + echo $APU_DB_VERSION + exit 0 + ;; + --help) + show_usage + exit 0 + ;; + *) + show_usage + exit 1 + ;; + esac + + # Next please. + shift +done + +if test -n "$flags"; then + echo "$flags" +fi + +exit 0 diff --git a/rubbos/app/apache2/bin/apxs b/rubbos/app/apache2/bin/apxs new file mode 100755 index 00000000..4b3b702d --- /dev/null +++ b/rubbos/app/apache2/bin/apxs @@ -0,0 +1,778 @@ +#!/usr/bin/perl -w +# +# 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. + +require 5.003; +use strict; +package apxs; + +## +## Configuration +## + +my %config_vars = (); + +my $installbuilddir = "/bottlenecks/rubbos/app/apache2/build"; +get_config_vars("$installbuilddir/config_vars.mk",\%config_vars); + +# read the configuration variables once + +my $prefix = get_vars("prefix"); +my $CFG_PREFIX = $prefix; +my $exec_prefix = get_vars("exec_prefix"); +my $datadir = get_vars("datadir"); +my $localstatedir = get_vars("localstatedir"); +my $CFG_TARGET = get_vars("progname"); +my $CFG_SYSCONFDIR = get_vars("sysconfdir"); +my $CFG_CFLAGS = join ' ', map { get_vars($_) } + qw(SHLTCFLAGS CFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS); +my $includedir = get_vars("includedir"); +my $CFG_INCLUDEDIR = eval qq("$includedir"); +my $CFG_CC = get_vars("CC"); +my $libexecdir = get_vars("libexecdir"); +my $CFG_LIBEXECDIR = eval qq("$libexecdir"); +my $sbindir = get_vars("sbindir"); +my $CFG_SBINDIR = eval qq("$sbindir"); +my $ltflags = $ENV{'LTFLAGS'}; +$ltflags or $ltflags = "--silent"; + +my %internal_vars = map {$_ => 1} + qw(TARGET CC CFLAGS CFLAGS_SHLIB LD_SHLIB LDFLAGS_SHLIB LIBS_SHLIB + PREFIX SBINDIR INCLUDEDIR LIBEXECDIR SYSCONFDIR); + +## +## parse argument line +## + +# defaults for parameters +my $opt_n = ''; +my $opt_g = ''; +my $opt_c = 0; +my $opt_o = ''; +my @opt_D = (); +my @opt_I = (); +my @opt_L = (); +my @opt_l = (); +my @opt_W = (); +my @opt_S = (); +my $opt_e = 0; +my $opt_i = 0; +my $opt_a = 0; +my $opt_A = 0; +my $opt_q = 0; +my $opt_h = 0; +my $opt_p = 0; + +# this subroutine is derived from Perl's getopts.pl with the enhancement of +# the "+" metacharacter at the format string to allow a list to be built by +# subsequent occurrences of the same option. +sub Getopts { + my ($argumentative, @ARGV) = @_; + my $errs = 0; + local $_; + local $[ = 0; + + my @args = split / */, $argumentative; + while (@ARGV && ($_ = $ARGV[0]) =~ /^-(.)(.*)/) { + my ($first, $rest) = ($1,$2); + if ($_ =~ m|^--$|) { + shift @ARGV; + last; + } + my $pos = index($argumentative,$first); + if ($pos >= $[) { + if ($pos < $#args && $args[$pos+1] eq ':') { + shift @ARGV; + if ($rest eq '') { + unless (@ARGV) { + error("Incomplete option: $first (needs an argument)"); + $errs++; + } + $rest = shift(@ARGV); + } + eval "\$opt_$first = \$rest;"; + } + elsif ($pos < $#args && $args[$pos+1] eq '+') { + shift @ARGV; + if ($rest eq '') { + unless (@ARGV) { + error("Incomplete option: $first (needs an argument)"); + $errs++; + } + $rest = shift(@ARGV); + } + eval "push(\@opt_$first, \$rest);"; + } + else { + eval "\$opt_$first = 1"; + if ($rest eq '') { + shift(@ARGV); + } + else { + $ARGV[0] = "-$rest"; + } + } + } + else { + error("Unknown option: $first"); + $errs++; + if ($rest ne '') { + $ARGV[0] = "-$rest"; + } + else { + shift(@ARGV); + } + } + } + return ($errs == 0, @ARGV); +} + +sub usage { + print STDERR "Usage: apxs -g [-S =] -n \n"; + print STDERR " apxs -q [-S =] ...\n"; + print STDERR " apxs -c [-S =] [-o ] [-D [=]]\n"; + print STDERR " [-I ] [-L ] [-l ] [-Wc,]\n"; + print STDERR " [-Wl,] [-p] ...\n"; + print STDERR " apxs -i [-S =] [-a] [-A] [-n ] ...\n"; + print STDERR " apxs -e [-S =] [-a] [-A] [-n ] ...\n"; + exit(1); +} + +# option handling +my $rc; +($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV); +&usage if ($rc == 0); +&usage if ($#ARGV == -1 and not $opt_g); +&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e); + +# argument handling +my @args = @ARGV; +my $name = 'unknown'; +$name = $opt_n if ($opt_n ne ''); + +if (@opt_S) { + my ($opt_S); + foreach $opt_S (@opt_S) { + if ($opt_S =~ m/^([^=]+)=(.*)$/) { + my ($var) = $1; + my ($val) = $2; + my $oldval = eval "\$CFG_$var"; + + unless ($var and $oldval) { + print STDERR "apxs:Error: no config variable $var\n"; + &usage; + } + + eval "\$CFG_${var}=\"${val}\""; + } else { + print STDERR "apxs:Error: malformatted -S option\n"; + &usage; + } + } +} + +## +## Initial shared object support check +## +my $httpd = get_vars("sbindir") . "/" . get_vars("progname"); +$httpd = eval qq("$httpd"); +$httpd = eval qq("$httpd"); +my $envvars = get_vars("sbindir") . "/envvars"; +$envvars = eval qq("$envvars"); +$envvars = eval qq("$envvars"); + +#allow apxs to be run from the source tree, before installation +if ($0 =~ m:support/apxs$:) { + ($httpd = $0) =~ s:support/apxs$::; +} + +unless (-x "$httpd") { + error("$httpd not found or not executable"); + exit 1; +} + +unless (grep /mod_so/, `. $envvars && $httpd -l`) { + error("Sorry, no shared object support for Apache"); + error("available under your platform. Make sure"); + error("the Apache module mod_so is compiled into"); + error("your server binary `$httpd'."); + exit 1; +} + +sub get_config_vars{ + my ($file, $rh_config) = @_; + + open IN, $file or die "cannot open $file: $!"; + while (){ + if (/^\s*(.*?)\s*=\s*(.*)$/){ + $rh_config->{$1} = $2; + } + } + close IN; +} + +sub get_vars { + my $result = ''; + my $ok = 0; + my $arg; + foreach $arg (@_) { + if (exists $config_vars{$arg} or exists $config_vars{lc $arg}) { + my $val = exists $config_vars{$arg} + ? $config_vars{$arg} + : $config_vars{lc $arg}; + $val =~ s/[()]//g; + $result .= eval "qq($val)" if defined $val; + $result .= ";;"; + $ok = 1; + } + if (not $ok) { + if (exists $internal_vars{$arg} or exists $internal_vars{lc $arg}) { + my $val = exists $internal_vars{$arg} ? $arg : lc $arg; + $val = eval "\$CFG_$val"; + $result .= eval "qq($val)" if defined $val; + $result .= ";;"; + $ok = 1; + } + if (not $ok) { + error("Invalid query string `$arg'"); + exit(1); + } + } + } + $result =~ s|;;$||; + $result =~ s|:| |; + return $result; +} + +## +## Operation +## + +# helper function for executing a list of +# system command with return code checks +sub execute_cmds { + my (@cmds) = @_; + my ($cmd, $rc); + + foreach $cmd (@cmds) { + notice($cmd); + $rc = system $cmd; + if ($rc) { + error(sprintf "Command failed with rc=%d\n", $rc << 8); + exit 1 ; + } + } +} + +if ($opt_g) { + ## + ## SAMPLE MODULE SOURCE GENERATION + ## + + if (-d $name) { + error("Directory `$name' already exists. Remove first"); + exit(1); + } + + my $data = join('', ); + $data =~ s|%NAME%|$name|sg; + $data =~ s|%TARGET%|$CFG_TARGET|sg; + $data =~ s|%PREFIX%|$prefix|sg; + $data =~ s|%INSTALLBUILDDIR%|$installbuilddir|sg; + + my ($mkf, $mods, $src) = ($data =~ m|^(.+)-=#=-\n(.+)-=#=-\n(.+)|s); + + notice("Creating [DIR] $name"); + system("mkdir $name"); + notice("Creating [FILE] $name/Makefile"); + open(FP, ">${name}/Makefile") || die; + print FP $mkf; + close(FP); + notice("Creating [FILE] $name/modules.mk"); + open(FP, ">${name}/modules.mk") || die; + print FP $mods; + close(FP); + notice("Creating [FILE] $name/mod_$name.c"); + open(FP, ">${name}/mod_${name}.c") || die; + print FP $src; + close(FP); + notice("Creating [FILE] $name/.deps"); + system("touch ${name}/.deps"); + + exit(0); +} + + +if ($opt_q) { + ## + ## QUERY INFORMATION + ## + my $result = get_vars(@args); + print "$result\n"; +} + +my $apr_bindir = get_vars("APR_BINDIR"); + +if (! -x "$apr_bindir/apr-config") { + error("$apr_bindir/apr-config not found!"); + exit(1); +} + +my $apu_bindir = get_vars("APU_BINDIR"); + +if (! -x "$apu_bindir/apu-config") { + error("$apu_bindir/apu-config not found!"); + exit(1); +} + +my $libtool = `$apr_bindir/apr-config --installbuilddir`; +chomp($libtool); +$libtool = "$libtool/libtool"; + +my $apr_includedir = `$apr_bindir/apr-config --includes`; +chomp($apr_includedir); +my $apu_includedir = `$apu_bindir/apu-config --includes`; +chomp($apu_includedir); + +if ($opt_c) { + ## + ## SHARED OBJECT COMPILATION + ## + + # split files into sources and objects + my @srcs = (); + my @objs = (); + my $f; + foreach $f (@args) { + if ($f =~ m|\.c$|) { + push(@srcs, $f); + } + else { + push(@objs, $f); + } + } + + # determine output file + my $dso_file; + if ($opt_o eq '') { + if ($#srcs > -1) { + $dso_file = $srcs[0]; + $dso_file =~ s|\.[^.]+$|.la|; + } + elsif ($#objs > -1) { + $dso_file = $objs[0]; + $dso_file =~ s|\.[^.]+$|.la|; + } + else { + $dso_file = "mod_unknown.la"; + } + } + else { + $dso_file = $opt_o; + $dso_file =~ s|\.[^.]+$|.la|; + } + + # create compilation commands + my @cmds = (); + my $opt = ''; + my ($opt_Wc, $opt_I, $opt_D); + foreach $opt_Wc (@opt_W) { + $opt .= "$1 " if ($opt_Wc =~ m|^\s*c,(.*)$|); + } + foreach $opt_I (@opt_I) { + $opt .= "-I$opt_I "; + } + foreach $opt_D (@opt_D) { + $opt .= "-D$opt_D "; + } + my $cflags = "$CFG_CFLAGS"; + my $s; + my $mod; + foreach $s (@srcs) { + my $slo = $s; + $slo =~ s|\.c$|.slo|; + my $lo = $s; + $lo =~ s|\.c$|.lo|; + my $la = $s; + $la =~ s|\.c$|.la|; + my $o = $s; + $o =~ s|\.c$|.o|; + push(@cmds, "$libtool $ltflags --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR $apr_includedir $apu_includedir $opt -c -o $lo $s && touch $slo"); + unshift(@objs, $lo); + } + + # create link command + my $o; + my $lo; + foreach $o (@objs) { + $lo .= " $o"; + } + my ($opt_Wl, $opt_L, $opt_l); + $opt = ''; + foreach $opt_Wl (@opt_W) { + $opt .= "$1 " if ($opt_Wl =~ m|^\s*l,(.*)$|); + } + foreach $opt_L (@opt_L) { + $opt .= " -L$opt_L"; + } + foreach $opt_l (@opt_l) { + $opt .= " -l$opt_l"; + } + + if ($opt_p == 1) { + + my $apr_libs=`$apr_bindir/apr-config --ldflags --link-libtool --libs`; + chomp($apr_libs); + my $apu_libs=`$apu_bindir/apu-config --ldflags --link-libtool --libs`; + chomp($apu_libs); + + $opt .= " ".$apu_libs." ".$apr_libs; + } + else { + my $apr_ldflags=`$apr_bindir/apr-config --ldflags`; + chomp($apr_ldflags); + $opt .= " -rpath $CFG_LIBEXECDIR -module -avoid-version $apr_ldflags"; + } + + push(@cmds, "$libtool $ltflags --mode=link $CFG_CC -o $dso_file $opt $lo"); + + # execute the commands + &execute_cmds(@cmds); + + # allow one-step compilation and installation + if ($opt_i or $opt_e) { + @args = ( $dso_file ); + } +} + +if ($opt_i or $opt_e) { + ## + ## SHARED OBJECT INSTALLATION + ## + + # determine installation commands + # and corresponding LoadModule/AddModule directives + my @lmd = (); + my @amd = (); + my @cmds = (); + my $f; + foreach $f (@args) { + if ($f !~ m#(\.so$|\.la$)#) { + error("file $f is not a shared object"); + exit(1); + } + my $t = $f; + $t =~ s|^.+/([^/]+)$|$1|; + $t =~ s|\.la$|\.so|; + if ($opt_i) { + push(@cmds, "$installbuilddir/instdso.sh SH_LIBTOOL='" . + "$libtool' $f $CFG_LIBEXECDIR"); + push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t"); + } + + # determine module symbolname and filename + my $filename = ''; + if ($name eq 'unknown') { + $name = ''; + my $base = $f; + $base =~ s|\.[^.]+$||; + if (-f "$base.c") { + open(FP, "<$base.c"); + my $content = join('', ); + close(FP); + if ($content =~ m|.*module\s+(?:AP_MODULE_DECLARE_DATA\s+)?([a-zA-Z0-9_]+)_module\s*=\s*.*|s) { + $name = "$1"; + $filename = "$base.c"; + $filename =~ s|^[^/]+/||; + } + } + if ($name eq '') { + if ($base =~ m|.*mod_([a-zA-Z0-9_]+)\..+|) { + $name = "$1"; + $filename = $base; + $filename =~ s|^[^/]+/||; + } + } + if ($name eq '') { + error("Sorry, cannot determine bootstrap symbol name"); + error("Please specify one with option `-n'"); + exit(1); + } + } + if ($filename eq '') { + $filename = "mod_${name}.c"; + } + my $dir = $CFG_LIBEXECDIR; + $dir =~ s|^$CFG_PREFIX/?||; + $dir =~ s|(.)$|$1/|; + $t =~ s|\.la$|.so|; + push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t")); + push(@amd, sprintf("AddModule %s", $filename)); + } + + # execute the commands + &execute_cmds(@cmds); + + # activate module via LoadModule/AddModule directive + if ($opt_a or $opt_A) { + if (not -f "$CFG_SYSCONFDIR/$CFG_TARGET.conf") { + error("Config file $CFG_SYSCONFDIR/$CFG_TARGET.conf not found"); + exit(1); + } + + open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die; + my $content = join('', ); + close(FP); + + if ($content !~ m|\n#?\s*LoadModule\s+|) { + error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file."); + error("At least one `LoadModule' directive already has to exist."); + exit(1); + } + + my $lmd; + my $c = ''; + $c = '#' if ($opt_A); + foreach $lmd (@lmd) { + my $what = $opt_A ? "preparing" : "activating"; + my $lmd_re = $lmd; + $lmd_re =~ s/\s+/\\s+/g; + + if ($content !~ m|\n#?\s*$lmd_re|) { + # check for open , so that the new LoadModule + # directive always appears *outside* of an . + + my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0]; + + # the '()=' trick forces list context and the scalar + # assignment counts the number of list members (aka number + # of matches) then + my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg); + my $cntclose = () = ($before =~ m|^\s*$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) { + print FP $content; + close(FP); + system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " . + "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " . + "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new"); + } else { + notice("unable to open configuration file"); + } + } + } +} + +sub error{ + print STDERR "apxs:Error: $_[0].\n"; +} + +sub notice{ + print STDERR "$_[0]\n"; +} + +##EOF## +__DATA__ +## +## Makefile -- Build procedure for sample %NAME% Apache module +## Autogenerated via ``apxs -n %NAME% -g''. +## + +builddir=. +top_srcdir=%PREFIX% +top_builddir=%PREFIX% +include %INSTALLBUILDDIR%/special.mk + +# the used tools +APXS=apxs +APACHECTL=apachectl + +# additional defines, includes and libraries +#DEFS=-Dmy_define=my_value +#INCLUDES=-Imy/include/dir +#LIBS=-Lmy/lib/dir -lmylib + +# the default target +all: local-shared-build + +# install the shared object file into Apache +install: install-modules + +# cleanup +clean: + -rm -f mod_%NAME%.o mod_%NAME%.lo mod_%NAME%.slo mod_%NAME%.la + +# simple test +test: reload + lynx -mime_header http://localhost/%NAME% + +# install and activate shared object by reloading Apache to +# force a reload of the shared object file +reload: install restart + +# the general Apache start/restart/stop +# procedures +start: + $(APACHECTL) start +restart: + $(APACHECTL) restart +stop: + $(APACHECTL) stop + +-=#=- +mod_%NAME%.la: mod_%NAME%.slo + $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_%NAME%.lo +DISTCLEAN_TARGETS = modules.mk +shared = mod_%NAME%.la +-=#=- +/* +** mod_%NAME%.c -- Apache sample %NAME% module +** [Autogenerated via ``apxs -n %NAME% -g''] +** +** To play with this sample module first compile it into a +** DSO file and install it into Apache's modules directory +** by running: +** +** $ apxs -c -i mod_%NAME%.c +** +** Then activate it in Apache's %TARGET%.conf file for instance +** for the URL /%NAME% in as follows: +** +** # %TARGET%.conf +** LoadModule %NAME%_module modules/mod_%NAME%.so +** +** SetHandler %NAME% +** +** +** Then after restarting Apache via +** +** $ apachectl restart +** +** you immediately can request the URL /%NAME% and watch for the +** output of this module. This can be achieved for instance via: +** +** $ lynx -mime_header http://localhost/%NAME% +** +** The output should be similar to the following one: +** +** HTTP/1.1 200 OK +** Date: Tue, 31 Mar 1998 14:42:22 GMT +** Server: Apache/1.3.4 (Unix) +** Connection: close +** Content-Type: text/html +** +** The sample page from mod_%NAME%.c +*/ + +#include "httpd.h" +#include "http_config.h" +#include "http_protocol.h" +#include "ap_config.h" + +/* The sample content handler */ +static int %NAME%_handler(request_rec *r) +{ + if (strcmp(r->handler, "%NAME%")) { + return DECLINED; + } + r->content_type = "text/html"; + + if (!r->header_only) + ap_rputs("The sample page from mod_%NAME%.c\n", r); + return OK; +} + +static void %NAME%_register_hooks(apr_pool_t *p) +{ + ap_hook_handler(%NAME%_handler, NULL, NULL, APR_HOOK_MIDDLE); +} + +/* Dispatch list for API hooks */ +module AP_MODULE_DECLARE_DATA %NAME%_module = { + STANDARD20_MODULE_STUFF, + NULL, /* create per-dir config structures */ + NULL, /* merge per-dir config structures */ + NULL, /* create per-server config structures */ + NULL, /* merge per-server config structures */ + NULL, /* table of config file commands */ + %NAME%_register_hooks /* register hooks */ +}; + diff --git a/rubbos/app/apache2/bin/checkgid b/rubbos/app/apache2/bin/checkgid new file mode 100755 index 00000000..7c0f5e49 Binary files /dev/null and b/rubbos/app/apache2/bin/checkgid differ diff --git a/rubbos/app/apache2/bin/dbmmanage b/rubbos/app/apache2/bin/dbmmanage new file mode 100755 index 00000000..436e824f --- /dev/null +++ b/rubbos/app/apache2/bin/dbmmanage @@ -0,0 +1,312 @@ +#!/usr/bin/perl +# +# 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. + +#for more functionality see the HTTPD::UserAdmin module: +# http://www.perl.com/CPAN/modules/by-module/HTTPD/HTTPD-Tools-x.xx.tar.gz +# +# usage: dbmmanage + +package dbmmanage; +# -ldb -lndbm -lgdbm -lsdbm +BEGIN { @AnyDBM_File::ISA = qw(DB_File NDBM_File GDBM_File SDBM_File) } +use strict; +use Fcntl; +use AnyDBM_File (); + +sub usage { + my $cmds = join "|", sort keys %dbmc::; + die <$command(); +untie %DB; + + +my $x; +sub genseed { + my $psf; + if ($not_unix) { + srand (time ^ $$ or time ^ ($$ + ($$ << 15))); + } + else { + for (qw(-xlwwa -le)) { + `ps $_ 2>/dev/null`; + $psf = $_, last unless $?; + } + srand (time ^ $$ ^ unpack("%L*", `ps $psf | gzip -f`)); + } + @range = (qw(. /), '0'..'9','a'..'z','A'..'Z'); + $x = int scalar @range; +} + +sub randchar { + join '', map $range[rand $x], 1..shift||1; +} + +sub saltpw_crypt { + genseed() unless @range; + return $newstyle_salt ? + join '', "_", randchar, "a..", randchar(4) : + randchar(2); +} + +sub cryptpw_crypt { + my ($pw, $salt) = @_; + $salt = saltpw_crypt unless $salt; + crypt $pw, $salt; +} + +sub saltpw_md5 { + genseed() unless @range; + randchar(8); +} + +sub cryptpw_md5 { + my($pw, $salt) = @_; + $salt = saltpw_md5 unless $salt; + Crypt::PasswdMD5::apache_md5_crypt($pw, $salt); +} + +sub cryptpw_sha1 { + my($pw, $salt) = @_; + '{SHA}' . Digest::SHA1::sha1_base64($pw) . "="; +} + +sub cryptpw { + if ($crypt_method eq "md5") { + return cryptpw_md5(@_); + } elsif ($crypt_method eq "sha1") { + return cryptpw_sha1(@_); + } elsif ($crypt_method eq "crypt") { + return cryptpw_crypt(@_); + } + @_[0]; # otherwise return plaintext +} + +sub getpass { + my $prompt = shift || "Enter password:"; + + unless($not_unix) { + open STDIN, "/dev/tty" or warn "couldn't open /dev/tty $!\n"; + system "stty -echo;"; + } + + my($c,$pwd); + print STDERR $prompt; + while (($c = getc(STDIN)) ne '' and $c ne "\n" and $c ne "\r") { + $pwd .= $c; + } + + system "stty echo" unless $not_unix; + print STDERR "\n"; + die "Can't use empty password!\n" unless length $pwd; + return $pwd; +} + +sub dbmc::update { + die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key}; + $crypted_pwd = (split /:/, $DB{$key}, 3)[0] if $crypted_pwd eq '.'; + $groups = (split /:/, $DB{$key}, 3)[1] if !$groups || $groups eq '.'; + $comment = (split /:/, $DB{$key}, 3)[2] if !$comment || $comment eq '.'; + if (!$crypted_pwd || $crypted_pwd eq '-') { + dbmc->adduser; + } + else { + dbmc->add; + } +} + +sub dbmc::add { + die "Can't use empty password!\n" unless $crypted_pwd; + unless($is_update) { + die "Sorry, user `$key' already exists!\n" if $DB{$key}; + } + $groups = '' if $groups eq '-'; + $comment = '' if $comment eq '-'; + $groups .= ":" . $comment if $comment; + $crypted_pwd .= ":" . $groups if $groups; + $DB{$key} = $crypted_pwd; + my $action = $is_update ? "updated" : "added"; + print "User $key $action with password encrypted to $DB{$key} using $crypt_method\n"; +} + +sub dbmc::adduser { + my $value = getpass "New password:"; + die "They don't match, sorry.\n" unless getpass("Re-type new password:") eq $value; + $crypted_pwd = cryptpw $value; + dbmc->add; +} + +sub dbmc::delete { + die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key}; + delete $DB{$key}, print "`$key' deleted\n"; +} + +sub dbmc::view { + print $key ? "$key:$DB{$key}\n" : map { "$_:$DB{$_}\n" if $DB{$_} } keys %DB; +} + +sub dbmc::check { + die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key}; + my $chkpass = (split /:/, $DB{$key}, 3)[0]; + my $testpass = getpass(); + if (substr($chkpass, 0, 6) eq '$apr1$') { + need_md5_crypt; + $crypt_method = "md5"; + } elsif (substr($chkpass, 0, 5) eq '{SHA}') { + need_sha1_crypt; + $crypt_method = "sha1"; + } elsif (length($chkpass) == 13 && $chkpass ne $testpass) { + $crypt_method = "crypt"; + } else { + $crypt_method = "plain"; + } + print $crypt_method . (cryptpw($testpass, $chkpass) eq $chkpass + ? " password ok\n" : " password mismatch\n"); +} + +sub dbmc::import { + while(defined($_ = ) and chomp) { + ($key,$crypted_pwd,$groups,$comment) = split /:/, $_, 4; + dbmc->add; + } +} + diff --git a/rubbos/app/apache2/bin/envvars b/rubbos/app/apache2/bin/envvars new file mode 100644 index 00000000..771c6c59 --- /dev/null +++ b/rubbos/app/apache2/bin/envvars @@ -0,0 +1,24 @@ +# 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. +# +# +# envvars-std - default environment variables for apachectl +# +# This file is generated from envvars-std.in +# +LD_LIBRARY_PATH="/bottlenecks/rubbos/app/apache2/lib:$LD_LIBRARY_PATH" +export LD_LIBRARY_PATH +# + diff --git a/rubbos/app/apache2/bin/envvars-std b/rubbos/app/apache2/bin/envvars-std new file mode 100644 index 00000000..771c6c59 --- /dev/null +++ b/rubbos/app/apache2/bin/envvars-std @@ -0,0 +1,24 @@ +# 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. +# +# +# envvars-std - default environment variables for apachectl +# +# This file is generated from envvars-std.in +# +LD_LIBRARY_PATH="/bottlenecks/rubbos/app/apache2/lib:$LD_LIBRARY_PATH" +export LD_LIBRARY_PATH +# + diff --git a/rubbos/app/apache2/bin/htdbm b/rubbos/app/apache2/bin/htdbm new file mode 100755 index 00000000..815389da Binary files /dev/null and b/rubbos/app/apache2/bin/htdbm differ diff --git a/rubbos/app/apache2/bin/htdigest b/rubbos/app/apache2/bin/htdigest new file mode 100755 index 00000000..25b27d18 Binary files /dev/null and b/rubbos/app/apache2/bin/htdigest differ diff --git a/rubbos/app/apache2/bin/htpasswd b/rubbos/app/apache2/bin/htpasswd new file mode 100755 index 00000000..48ca8792 Binary files /dev/null and b/rubbos/app/apache2/bin/htpasswd differ diff --git a/rubbos/app/apache2/bin/httpd b/rubbos/app/apache2/bin/httpd new file mode 100755 index 00000000..94f33200 Binary files /dev/null and b/rubbos/app/apache2/bin/httpd differ diff --git a/rubbos/app/apache2/bin/httxt2dbm b/rubbos/app/apache2/bin/httxt2dbm new file mode 100755 index 00000000..b8a48382 Binary files /dev/null and b/rubbos/app/apache2/bin/httxt2dbm differ diff --git a/rubbos/app/apache2/bin/logresolve b/rubbos/app/apache2/bin/logresolve new file mode 100755 index 00000000..e658dc23 Binary files /dev/null and b/rubbos/app/apache2/bin/logresolve differ diff --git a/rubbos/app/apache2/bin/rotatelogs b/rubbos/app/apache2/bin/rotatelogs new file mode 100755 index 00000000..9775a25e Binary files /dev/null and b/rubbos/app/apache2/bin/rotatelogs differ diff --git a/rubbos/app/apache2/build/apr_rules.mk b/rubbos/app/apache2/build/apr_rules.mk new file mode 100644 index 00000000..fc2d641f --- /dev/null +++ b/rubbos/app/apache2/build/apr_rules.mk @@ -0,0 +1,194 @@ +# 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. +# +# + +# +# rules.mk: standard rules for APR +# + + + +# +# Configuration variables +# +apr_builddir=/bottlenecks/rubbos/app/apache2/build +apr_builders=/bottlenecks/rubbos/app/apache2/build + +# Some layouts require knowing what version we are at. +APR_MAJOR_VERSION=0 +APR_DOTTED_VERSION=0.9.19 + +CC=gcc +RM=rm +AWK=gawk +SHELL=/bin/bash +LIBTOOL=$(SHELL) $(apr_builddir)/libtool + +# compilation and linking flags that are supposed to be set only by the user. +# configure adds to them for tests, but we restore them at the end. +# +CFLAGS= +CPPFLAGS= +LDFLAGS= +LIBS= +DEFS=-DHAVE_CONFIG_H + +# anything added to the standard flags by configure is moved to EXTRA_* +# at the end of the process. +# +EXTRA_CFLAGS=-g -O2 -pthread +EXTRA_CPPFLAGS=-D_REENTRANT -D_GNU_SOURCE +EXTRA_LDFLAGS= +EXTRA_LIBS=-lrt -lm -lcrypt -lnsl -lpthread -ldl +EXTRA_INCLUDES= + +# NOTEST_* are flags and libraries that can be added by the user without +# causing them to be used in configure tests (necessary for things like +# -Werror and other strict warnings that maintainers like to use). +# +NOTEST_CFLAGS= +NOTEST_CPPFLAGS= +NOTEST_LDFLAGS= +NOTEST_LIBS= + +# Finally, combine all of the flags together in the proper order so that +# the user-defined flags can always override the configure ones, if needed. +# Note that includes are listed after the flags because -I options have +# left-to-right precedence and CPPFLAGS may include user-defined overrides. +# +ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS) +ALL_CPPFLAGS = $(DEFS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS) +ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS) +ALL_LIBS = $(LIBS) $(NOTEST_LIBS) $(EXTRA_LIBS) +ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) + +LTFLAGS = --silent +LT_LDFLAGS = + +# +# Basic macro setup +# +COMPILE = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES) +LT_COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) -c $< && touch $@ + +LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(LT_LDFLAGS) $(COMPILE) -version-info 9:19:9 $(ALL_LDFLAGS) -o $@ + +APR_MKDIR = $(apr_builders)/mkdir.sh +APR_MKEXPORT = $(AWK) -f $(apr_builders)/make_exports.awk +APR_MKVAREXPORT = $(AWK) -f $(apr_builders)/make_var_export.awk +MKDEP = $(CC) -MM + +# +# Standard build rules +# +all: all-recursive +depend: depend-recursive +clean: clean-recursive +distclean: distclean-recursive +extraclean: extraclean-recursive + +install: all-recursive + + +all-recursive depend-recursive: + @otarget=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; \ + for i in $$list; do \ + if test -d "$$i"; then \ + target="$$otarget"; \ + echo "Making $$target in $$i"; \ + if test "$$i" = "."; then \ + made_local=yes; \ + target="local-$$target"; \ + fi; \ + (cd $$i && $(MAKE) $$target) || exit 1; \ + fi; \ + done; \ + if test "$$otarget" = "all" && test -z "$(TARGETS)"; then \ + made_local=yes; \ + fi; \ + if test "$$made_local" != "yes"; then \ + $(MAKE) "local-$$otarget" || exit 1; \ + fi + +clean-recursive distclean-recursive extraclean-recursive: + @otarget=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS) $(CLEAN_SUBDIRS)'; \ + for i in $$list; do \ + if test -d "$$i"; then \ + target="$$otarget"; \ + echo "Making $$target in $$i"; \ + if test "$$i" = "."; then \ + made_local=yes; \ + target="local-$$target"; \ + fi; \ + (cd $$i && $(MAKE) $$target); \ + fi; \ + done; \ + if test "$$otarget" = "all" && test -z "$(TARGETS)"; then \ + made_local=yes; \ + fi; \ + if test "$$made_local" != "yes"; then \ + $(MAKE) "local-$$otarget"; \ + fi + +# autoconf 2.5x is creating a 'autom4te.cache' directory +# In case someone ran autoconf by hand, get rid of that directory +# aswell. +local-clean: x-local-clean + $(RM) -f *.o *.lo *.a *.la *.so *.obj $(CLEAN_TARGETS) $(PROGRAMS) + $(RM) -rf .libs autom4te.cache + +local-distclean: local-clean x-local-distclean + $(RM) -f Makefile $(DISTCLEAN_TARGETS) + +local-extraclean: local-distclean x-local-extraclean + @if test -n "$(EXTRACLEAN_TARGETS)"; then \ + echo $(RM) -f $(EXTRACLEAN_TARGETS) ; \ + $(RM) -f $(EXTRACLEAN_TARGETS) ; \ + fi + +local-all: $(TARGETS) + +local-depend: x-local-depend + @if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \ + $(RM) -f .deps; \ + list='$(srcdir)/*.c'; \ + for i in $$list; do \ + $(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) $$i | sed 's/\.o:/.lo:/' >> .deps; \ + done; \ + fi + +# to be filled in by the actual Makefile +x-local-depend x-local-clean x-local-distclean x-local-extraclean: + +# +# Implicit rules for creating outputs from input files +# +.SUFFIXES: +.SUFFIXES: .c .lo .o + +.c.o: + $(COMPILE) -c $< + +.c.lo: + $(LT_COMPILE) + +.PHONY: all all-recursive local-all install \ + depend depend-recursive local-depend x-local-depend \ + clean clean-recursive local-clean x-local-clean \ + distclean distclean-recursive local-distclean x-local-distclean \ + extraclean extraclean-recursive local-extraclean x-local-extraclean diff --git a/rubbos/app/apache2/build/config.nice b/rubbos/app/apache2/build/config.nice new file mode 100755 index 00000000..b02ccd1e --- /dev/null +++ b/rubbos/app/apache2/build/config.nice @@ -0,0 +1,10 @@ +#! /bin/sh +# +# Created by configure + +"./configure" \ +"--prefix=/bottlenecks/rubbos/app/apache2" \ +"--enable-module=so" \ +"--enable-so" \ +"--with-mpm=worker" \ +"$@" diff --git a/rubbos/app/apache2/build/config_vars.mk b/rubbos/app/apache2/build/config_vars.mk new file mode 100644 index 00000000..c9147f51 --- /dev/null +++ b/rubbos/app/apache2/build/config_vars.mk @@ -0,0 +1,150 @@ +exp_exec_prefix = /bottlenecks/rubbos/app/apache2 +rel_exec_prefix = +exp_bindir = /bottlenecks/rubbos/app/apache2/bin +rel_bindir = bin +exp_sbindir = /bottlenecks/rubbos/app/apache2/bin +rel_sbindir = bin +exp_libdir = /bottlenecks/rubbos/app/apache2/lib +rel_libdir = lib +exp_libexecdir = /bottlenecks/rubbos/app/apache2/modules +rel_libexecdir = modules +exp_mandir = /bottlenecks/rubbos/app/apache2/man +rel_mandir = man +exp_sysconfdir = /bottlenecks/rubbos/app/apache2/conf +rel_sysconfdir = conf +exp_datadir = /bottlenecks/rubbos/app/apache2 +rel_datadir = +exp_installbuilddir = /bottlenecks/rubbos/app/apache2/build +rel_installbuilddir = build +exp_errordir = /bottlenecks/rubbos/app/apache2/error +rel_errordir = error +exp_iconsdir = /bottlenecks/rubbos/app/apache2/icons +rel_iconsdir = icons +exp_htdocsdir = /bottlenecks/rubbos/app/apache2/htdocs +rel_htdocsdir = htdocs +exp_manualdir = /bottlenecks/rubbos/app/apache2/manual +rel_manualdir = manual +exp_cgidir = /bottlenecks/rubbos/app/apache2/cgi-bin +rel_cgidir = cgi-bin +exp_includedir = /bottlenecks/rubbos/app/apache2/include +rel_includedir = include +exp_localstatedir = /bottlenecks/rubbos/app/apache2 +rel_localstatedir = +exp_runtimedir = /bottlenecks/rubbos/app/apache2/logs +rel_runtimedir = logs +exp_logfiledir = /bottlenecks/rubbos/app/apache2/logs +rel_logfiledir = logs +exp_proxycachedir = /bottlenecks/rubbos/app/apache2/proxy +rel_proxycachedir = proxy +SHLTCFLAGS = -prefer-pic +LTCFLAGS = -prefer-non-pic -static +MOD_ACCESS_LDADD = +MOD_AUTH_LDADD = +MOD_INCLUDE_LDADD = +MOD_LOG_CONFIG_LDADD = +MOD_ENV_LDADD = +MOD_SETENVIF_LDADD = +MPM_NAME = worker +MPM_SUBDIR_NAME = worker +htpasswd_LTFLAGS = +htdigest_LTFLAGS = +rotatelogs_LTFLAGS = +logresolve_LTFLAGS = +htdbm_LTFLAGS = +ab_LTFLAGS = +checkgid_LTFLAGS = +APACHECTL_ULIMIT = ulimit -S -n `ulimit -H -n` +MOD_HTTP_LDADD = +MOD_MIME_LDADD = +MOD_STATUS_LDADD = +MOD_AUTOINDEX_LDADD = +MOD_ASIS_LDADD = +MOD_CGID_LDADD = +MOD_NEGOTIATION_LDADD = +MOD_DIR_LDADD = +MOD_IMAP_LDADD = +MOD_ACTIONS_LDADD = +MOD_USERDIR_LDADD = +MOD_ALIAS_LDADD = +MOD_SO_LDADD = +progname = httpd +MPM_LIB = server/mpm/worker/libworker.la +OS = unix +OS_DIR = unix +BUILTIN_LIBS = modules/aaa/mod_access.la modules/aaa/mod_auth.la modules/filters/mod_include.la modules/loggers/mod_log_config.la modules/metadata/mod_env.la modules/metadata/mod_setenvif.la modules/http/mod_http.la modules/http/mod_mime.la modules/generators/mod_status.la modules/generators/mod_autoindex.la modules/generators/mod_asis.la modules/generators/mod_cgid.la modules/mappers/mod_negotiation.la modules/mappers/mod_dir.la modules/mappers/mod_imap.la modules/mappers/mod_actions.la modules/mappers/mod_userdir.la modules/mappers/mod_alias.la modules/mappers/mod_so.la +SHLIBPATH_VAR = LD_LIBRARY_PATH +OS_SPECIFIC_VARS = +PRE_SHARED_CMDS = echo "" +POST_SHARED_CMDS = echo "" +shared_build = +AP_LIBS = /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/libpcre.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la -lrt -lm -lcrypt -lnsl -lpthread -ldl +AP_BUILD_SRCLIB_DIRS = apr apr-util +AP_CLEAN_SRCLIB_DIRS = apr-util apr +abs_srcdir = /bottlenecks/rubbos/app/httpd-2.0.64 +bindir = ${exec_prefix}/bin +sbindir = ${exec_prefix}/bin +cgidir = ${datadir}/cgi-bin +logfiledir = ${localstatedir}/logs +exec_prefix = ${prefix} +datadir = ${prefix} +localstatedir = ${prefix} +mandir = ${prefix}/man +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/modules +htdocsdir = ${datadir}/htdocs +manualdir = ${datadir}/manual +includedir = ${prefix}/include +errordir = ${datadir}/error +iconsdir = ${datadir}/icons +sysconfdir = ${prefix}/conf +installbuilddir = ${datadir}/build +runtimedir = ${localstatedir}/logs +proxycachedir = ${localstatedir}/proxy +other_targets = +progname = httpd +prefix = /bottlenecks/rubbos/app/apache2 +AWK = gawk +CC = gcc +CPP = gcc -E +CXX = +CPPFLAGS = +CFLAGS = +CXXFLAGS = +LTFLAGS = --silent +LDFLAGS = +LT_LDFLAGS = -export-dynamic +SH_LDFLAGS = +HTTPD_LDFLAGS = +UTIL_LDFLAGS = +LIBS = +DEFS = +INCLUDES = +NOTEST_CPPFLAGS = -DAP_HAVE_DESIGNATED_INITIALIZER +NOTEST_CFLAGS = +NOTEST_CXXFLAGS = +NOTEST_LDFLAGS = +NOTEST_LIBS = +EXTRA_CPPFLAGS = -D_REENTRANT -D_GNU_SOURCE +EXTRA_CFLAGS = -g -O2 -pthread +EXTRA_CXXFLAGS = +EXTRA_LDFLAGS = -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib +EXTRA_LIBS = +EXTRA_INCLUDES = -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -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/dav/main +LIBTOOL = /bin/bash /bottlenecks/rubbos/app/apache2/build/libtool --silent +SHELL = /bin/bash +MODULE_DIRS = aaa filters loggers metadata http generators mappers +MODULE_CLEANDIRS = arch/win32 cache echo experimental proxy ssl test dav/main dav/fs +PORT = 80 +nonssl_listen_stmt_1 = +nonssl_listen_stmt_2 = Listen @@Port@@ +CORE_IMPLIB_FILE = +CORE_IMPLIB = +SH_LIBS = +SH_LIBTOOL = /bin/bash /bottlenecks/rubbos/app/apache2/build/libtool --silent +MK_IMPLIB = +INSTALL_PROG_FLAGS = +DSO_MODULES = +APR_BINDIR = /bottlenecks/rubbos/app/apache2/bin +APR_INCLUDEDIR = /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include +APU_BINDIR = /bottlenecks/rubbos/app/apache2/bin +APU_INCLUDEDIR = /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include diff --git a/rubbos/app/apache2/build/instdso.sh b/rubbos/app/apache2/build/instdso.sh new file mode 100755 index 00000000..bcd96fff --- /dev/null +++ b/rubbos/app/apache2/build/instdso.sh @@ -0,0 +1,93 @@ +#!/bin/sh +# +# 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. +# +# +# instdso.sh - install Apache DSO modules +# +# we use this instead of libtool --install because: +# 1) on a few platforms libtool doesn't install DSOs exactly like we'd +# want (weird names, doesn't remove DSO first) +# 2) we never want the .la files copied, so we might as well copy +# the .so files ourselves + +if test "$#" != "3"; then + echo "wrong number of arguments to instdso.sh" + echo "Usage: instdso.sh SH_LIBTOOL-value dso-name path-to-modules" + exit 1 +fi + +SH_LIBTOOL=`echo $1 | sed -e 's/^SH_LIBTOOL=//'` +DSOARCHIVE=$2 +DSOARCHIVE_BASENAME=`basename $2` +TARGETDIR=$3 +DSOBASE=`echo $DSOARCHIVE_BASENAME | sed -e 's/\.la$//'` +TARGET_NAME="$DSOBASE.so" + +SYS=`uname -s` + +if test "$SYS" = "AIX" +then + # on AIX, shared libraries remain in storage even when + # all processes using them have exited; standard practice + # prior to installing a shared library is to rm -f first + CMD="rm -f $TARGETDIR/$TARGET_NAME" + echo $CMD + $CMD || exit $? +fi + +CMD="$SH_LIBTOOL --mode=install cp $DSOARCHIVE $TARGETDIR/" +echo $CMD +$CMD || exit $? + +if test "$SYS" = "OS/2" +then + # on OS/2, aplibtool --install doesn't copy the .la files & we can't + # rename DLLs to have a .so extension or they won't load so none of the + # steps below make sense. + exit 0 +fi + +DLNAME=`grep "^dlname" $TARGETDIR/$DSOARCHIVE_BASENAME | sed -e "s/dlname='\([^']*\)'/\1/"` +LIBRARY_NAMES=`grep "library_names" $TARGETDIR/$DSOARCHIVE_BASENAME | sed -e "s/dlname='\([^']*\)'/\1/"` +LIBRARY_NAMES=`echo $LIBRARY_NAMES | sed -e "s/ *$DLNAME//g"` + +if test -z "$DLNAME" +then + echo "Warning! dlname not found in $TARGETDIR/$DSOARCHIVE_BASENAME." + echo "Assuming installing a .so rather than a libtool archive." + exit 0 +fi + +if test -n "$LIBRARY_NAMES" +then + for f in $LIBRARY_NAMES + do + rm -f $TARGETDIR/$f + done +fi + +if test "$DLNAME" != "$TARGET_NAME" +then + mv $TARGETDIR/$DLNAME $TARGETDIR/$TARGET_NAME +fi + +rm -f $TARGETDIR/$DSOARCHIVE_BASENAME +rm -f $TARGETDIR/$DSOBASE.a +rm -f $TARGETDIR/lib$DSOBASE.a +rm -f $TARGETDIR/lib$TARGET_NAME + +exit 0 diff --git a/rubbos/app/apache2/build/library.mk b/rubbos/app/apache2/build/library.mk new file mode 100644 index 00000000..930d4655 --- /dev/null +++ b/rubbos/app/apache2/build/library.mk @@ -0,0 +1,22 @@ +# 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. +# +# +# The build environment was provided by Sascha Schumann. + +LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo) $(LTLIBRARY_OBJECTS_X) + +$(LTLIBRARY_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES) + $(LINK) $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_LIBADD) diff --git a/rubbos/app/apache2/build/libtool b/rubbos/app/apache2/build/libtool new file mode 100755 index 00000000..5ae0c56c --- /dev/null +++ b/rubbos/app/apache2/build/libtool @@ -0,0 +1,7621 @@ +#! /bin/bash + +# libtoolT - Provide generalized library-building support services. +# Generated automatically by (GNU ) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED="/bin/sed" + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="/bin/sed -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags=" CXX" + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host ubuntu: + +# Shell to use when invoking shell scripts. +SHELL="/bin/bash" + +# Whether or not to build shared libraries. +build_libtool_libs=yes + +# Whether or not to build static libraries. +build_old_libs=yes + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=no + +# Whether or not to optimize for fast installation. +fast_install=yes + +# The host system. +host_alias= +host=x86_64-unknown-linux-gnu +host_os=linux-gnu + +# The build system. +build_alias= +build=x86_64-unknown-linux-gnu +build_os=linux-gnu + +# An echo program that does not interpret backslashes. +echo="echo" + +# The archiver. +AR="ar" +AR_FLAGS="cru" + +# A C compiler. +LTCC="gcc" + +# LTCC compiler flags. +LTCFLAGS="-g -O2" + +# A language-specific compiler. +CC="gcc" + +# Is the compiler the GNU C compiler? +with_gcc=yes + +# An ERE matcher. +EGREP="/bin/grep -E" + +# The linker used to build libraries. +LD="/usr/bin/ld -m elf_x86_64" + +# Whether we need hard or soft links. +LN_S="ln -s" + +# A BSD-compatible nm program. +NM="/usr/bin/nm -B" + +# A symbol stripping program +STRIP="strip" + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=file + +# Used on cygwin: DLL creation program. +DLLTOOL="dlltool" + +# Used on cygwin: object dumper. +OBJDUMP="objdump" + +# Used on cygwin: assembler. +AS="as" + +# The name of the directory that contains temporary libtool files. +objdir=.libs + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# How to pass a linker flag through the compiler. +wl="-Wl," + +# Object file suffix (normally "o"). +objext="o" + +# Old archive suffix (normally "a"). +libext="a" + +# Shared library suffix (normally ".so"). +shrext_cmds='.so' + +# Executable file suffix (normally ""). +exeext="" + +# Additional compiler flags for building library objects. +pic_flag=" -fPIC -DPIC" +pic_mode=default + +# What is the maximum length of a command? +max_cmd_len=1572864 + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="yes" + +# Must we lock files when doing compilation? +need_locks="no" + +# Do we need the lib prefix for modules? +need_lib_prefix=no + +# Do we need a version for libraries? +need_version=no + +# Whether dlopen is supported. +dlopen_support=unknown + +# Whether dlopen of programs is supported. +dlopen_self=unknown + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=unknown + +# Compiler flag to prevent dynamic linking. +link_static_flag="-static" + +# Compiler flag to turn off builtin functions. +no_builtin_flag=" -fno-builtin" + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\${wl}--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec="" + +# Library versioning type. +version_type=linux + +# Format of library name prefix. +libname_spec="lib\$name" + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" + +# The coded name of the library, if different from the real name. +soname_spec="\${libname}\${release}\${shared_ext}\$major" + +# Commands used to build and install an old-style archive. +RANLIB="ranlib" +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" +old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" +old_postuninstall_cmds="" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build and install a shared archive. +archive_cmds="\$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~ + cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~ + \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~ + \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib" +postinstall_cmds="" +postuninstall_cmds="" + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds="" +module_expsym_cmds="" + +# Commands to strip libraries. +old_striplib="strip --strip-debug" +striplib="strip --strip-unneeded" + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects="" + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects="" + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps="" + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps="" + +# The directories searched by this compiler when creating a shared +# library +compiler_lib_search_dirs="" + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="" + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method="pass_all" + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd="\$MAGIC_CMD" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that forces no undefined symbols. +no_undefined_flag="" + +# Commands used to finish a libtool library installation in a directory. +finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="" + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'" + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'" + +# This is the shared library runtime path variable. +runpath_var=LD_RUN_PATH + +# This is the shared library path variable. +shlibpath_var=LD_LIBRARY_PATH + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=no + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=yes + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist. +hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir" + +# If ld is used when linking, flag to hardcode $libdir into +# a binary during linking. This must work even if $libdir does +# not exist. +hardcode_libdir_flag_spec_ld="" + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator="" + +# Set to yes if using DIR/libNAME during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=no + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=no + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=no + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Compile-time system search path for libraries +sys_lib_search_path_spec="/usr/lib64 /lib64 /usr/local/lib64" + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec="/usr/lib64 /lib64 /usr/lib/x86_64-linux-gnu/libfakeroot /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu " + +# Fix the shell variable $srcfile for the compiler. +fix_srcfile_path="" + +# Set to yes if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds="" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# ### END LIBTOOL CONFIG + +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.26 +TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)" + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +eval std_shrext=\"$shrext_cmds\" + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + echo "\ +$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP + +Copyright (C) 2008 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.[fF][09]?) xform=[fF][09]. ;; + *.for) xform=for ;; + *.java) xform=java ;; + *.obj) xform=obj ;; + *.sx) xform=sx ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$progpath" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $echo "*** But as you try to build a module library, libtool will still create " + $echo "*** a static module, that should work as long as the dlopening application" + $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$absdir/$objdir" + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + if test "$absdir" != "$libdir"; then + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="$absdir" + fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$deplibdir/$depdepl" ; then + depdepl="$deplibdir/$depdepl" + elif test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + else + # Can't find it, oh well... + depdepl= + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$depdepl $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + case " $deplibs" in + *\ -l* | *\ -L*) + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;; + esac + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit $EXIT_FAILURE + else + $echo + $echo "*** Warning: Linking the shared library $output against the non-libtool" + $echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test "$#" -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$2" + number_minor="$3" + number_revision="$4" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + major=`expr $current - $age` + else + major=`expr $current - $age + 1` + fi + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` + # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` + # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name=`expr $a_deplib : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval $echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ + | grep . >/dev/null; then + $echo + if test "X$deplibs_check_method" = "Xnone"; then + $echo "*** Warning: inter-library dependencies are not supported in this platform." + else + $echo "*** Warning: inter-library dependencies are not known to be supported." + fi + $echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $echo + $echo "*** Warning: libtool could not satisfy all declared inter-library" + $echo "*** dependencies of module $libname. Therefore, libtool will create" + $echo "*** a static module, that should work as long as the dlopening" + $echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $echo "*** The inter-library dependencies that have been dropped here will be" + $echo "*** automatically added whenever a program is linked with this library" + $echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $echo + $echo "*** Since this library must not contain undefined symbols," + $echo "*** because either the platform does not support them or" + $echo "*** it was explicitly requested with -no-undefined," + $echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + case $archive_cmds in + *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; + *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; + esac + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$echo "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~\$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + case " $deplibs" in + *\ -l* | *\ -L*) + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;; + esac + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit $EXIT_FAILURE + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + else + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + $echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +" + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ +/* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ +struct { +" + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ +const struct { +" + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + fi + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + exit_status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $exit_status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + cat > $cwrappersource <> $cwrappersource<<"EOF" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" + return 127; +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char)name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +char * +find_executable (const char* wrapper) +{ + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + $echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit $EXIT_FAILURE + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + $echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \$*\" + exit $EXIT_FAILURE + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + $echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit $EXIT_FAILURE + fi +fi\ +" + chmod +x $output + fi + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "copying selected object files to avoid basename conflicts..." + + if test -z "$gentop"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status + fi + fi + + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + counter=`expr $counter + 1` + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + $run ln "$obj" "$gentop/$newobj" || + $run cp "$obj" "$gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + eval cmd=\"$cmd\" + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit $EXIT_SUCCESS + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test "$#" -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` + else + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + exit $EXIT_FAILURE + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + cmds=$postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit $EXIT_FAILURE + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir=`func_mktempdir` + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$old_striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + cmds=$old_postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=$finish_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + test "$show" = : && exit $EXIT_SUCCESS + + $echo "X----------------------------------------------------------------------" | $Xsed + $echo "Libraries have been installed in:" + for libdir in $libdirs; do + $echo " $libdir" + done + $echo + $echo "If you ever happen to want to link against installed libraries" + $echo "in a given directory, LIBDIR, you must either use libtool, and" + $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + $echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + $echo " during execution" + fi + if test -n "$runpath_var"; then + $echo " - add LIBDIR to the \`$runpath_var' environment variable" + $echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $echo + $echo "See any operating system documentation about shared libraries for" + $echo "more information, such as the ld(1) and ld.so(8) manual pages." + $echo "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit $EXIT_FAILURE + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit $EXIT_FAILURE + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit $EXIT_SUCCESS + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=$postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=$old_postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit $EXIT_FAILURE +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE. + +Report bugs to ." + exit $EXIT_SUCCESS + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; +esac + +$echo +$echo "Try \`$modename --help' for more information about other modes." + +exit $? + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +disable_libs=shared +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +disable_libs=static +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# Libtool was configured on host ubuntu: + +# Shell to use when invoking shell scripts. +SHELL="/bin/bash" + +# Whether or not to build shared libraries. +build_libtool_libs=yes + +# Whether or not to build static libraries. +build_old_libs=yes + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=no + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=no + +# Whether or not to optimize for fast installation. +fast_install=yes + +# The host system. +host_alias= +host=x86_64-unknown-linux-gnu +host_os=linux-gnu + +# The build system. +build_alias= +build=x86_64-unknown-linux-gnu +build_os=linux-gnu + +# An echo program that does not interpret backslashes. +echo="echo" + +# The archiver. +AR="ar" +AR_FLAGS="cru" + +# A C compiler. +LTCC="gcc" + +# LTCC compiler flags. +LTCFLAGS="-g -O2" + +# A language-specific compiler. +CC="g++" + +# Is the compiler the GNU C compiler? +with_gcc=yes + +# An ERE matcher. +EGREP="/bin/grep -E" + +# The linker used to build libraries. +LD="/usr/bin/ld -m elf_x86_64" + +# Whether we need hard or soft links. +LN_S="ln -s" + +# A BSD-compatible nm program. +NM="/usr/bin/nm -B" + +# A symbol stripping program +STRIP="strip" + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=file + +# Used on cygwin: DLL creation program. +DLLTOOL="dlltool" + +# Used on cygwin: object dumper. +OBJDUMP="objdump" + +# Used on cygwin: assembler. +AS="as" + +# The name of the directory that contains temporary libtool files. +objdir=.libs + +# How to create reloadable object files. +reload_flag=" -r" +reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs" + +# How to pass a linker flag through the compiler. +wl="-Wl," + +# Object file suffix (normally "o"). +objext="o" + +# Old archive suffix (normally "a"). +libext="a" + +# Shared library suffix (normally ".so"). +shrext_cmds='.so' + +# Executable file suffix (normally ""). +exeext="" + +# Additional compiler flags for building library objects. +pic_flag=" -fPIC -DPIC" +pic_mode=default + +# What is the maximum length of a command? +max_cmd_len=1572864 + +# Does compiler simultaneously support -c and -o options? +compiler_c_o="yes" + +# Must we lock files when doing compilation? +need_locks="no" + +# Do we need the lib prefix for modules? +need_lib_prefix=no + +# Do we need a version for libraries? +need_version=no + +# Whether dlopen is supported. +dlopen_support=unknown + +# Whether dlopen of programs is supported. +dlopen_self=unknown + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=unknown + +# Compiler flag to prevent dynamic linking. +link_static_flag="-static" + +# Compiler flag to turn off builtin functions. +no_builtin_flag=" -fno-builtin" + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec="\${wl}--export-dynamic" + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec="\${wl}--whole-archive\$convenience \${wl}--no-whole-archive" + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec="" + +# Library versioning type. +version_type=linux + +# Format of library name prefix. +libname_spec="lib\$name" + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec="\${libname}\${release}\${shared_ext}\$versuffix \${libname}\${release}\${shared_ext}\$major \$libname\${shared_ext}" + +# The coded name of the library, if different from the real name. +soname_spec="\${libname}\${release}\${shared_ext}\$major" + +# Commands used to build and install an old-style archive. +RANLIB="ranlib" +old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib" +old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$oldlib" +old_postuninstall_cmds="" + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds="" + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds="" + +# Commands used to build and install a shared archive. +archive_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib" +archive_expsym_cmds="\$CC -shared -nostdlib \$predep_objects \$libobjs \$deplibs \$postdep_objects \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-retain-symbols-file \$wl\$export_symbols -o \$lib" +postinstall_cmds="" +postuninstall_cmds="" + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds="" +module_expsym_cmds="" + +# Commands to strip libraries. +old_striplib="strip --strip-debug" +striplib="strip --strip-unneeded" + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o" + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects="/usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o" + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps="" + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s" + +# The directories searched by this compiler when creating a shared +# library +compiler_lib_search_dirs="/usr/lib/gcc/x86_64-linux-gnu/4.8 /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /usr/lib/gcc/x86_64-linux-gnu/4.8/../../.." + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path="-L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.." + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method="pass_all" + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd="\$MAGIC_CMD" + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag="" + +# Flag that forces no undefined symbols. +no_undefined_flag="" + +# Commands used to finish a libtool library installation in a directory. +finish_cmds="PATH=\\\"\\\$PATH:/sbin\\\" ldconfig -n \$libdir" + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval="" + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'" + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl="sed -n -e 's/^. .* \\(.*\\)\$/extern int \\1;/p'" + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address="sed -n -e 's/^: \\([^ ]*\\) \$/ {\\\"\\1\\\", (lt_ptr) 0},/p' -e 's/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)\$/ {\"\\2\", (lt_ptr) \\&\\2},/p'" + +# This is the shared library runtime path variable. +runpath_var=LD_RUN_PATH + +# This is the shared library path variable. +shlibpath_var=LD_LIBRARY_PATH + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=no + +# How to hardcode a shared library path into an executable. +hardcode_action=immediate + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=yes + +# Flag to hardcode $libdir into a binary during linking. +# This must work even if $libdir does not exist. +hardcode_libdir_flag_spec="\${wl}--rpath \${wl}\$libdir" + +# If ld is used when linking, flag to hardcode $libdir into +# a binary during linking. This must work even if $libdir does +# not exist. +hardcode_libdir_flag_spec_ld="" + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator="" + +# Set to yes if using DIR/libNAME during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=no + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=no + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=unsupported + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=no + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="PATH LD_LIBRARY_PATH LD_RUN_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=unknown + +# Compile-time system search path for libraries +sys_lib_search_path_spec="/usr/lib64 /lib64 /usr/local/lib64" + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec="/usr/lib64 /lib64 /usr/lib/x86_64-linux-gnu/libfakeroot /usr/local/lib /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu " + +# Fix the shell variable $srcfile for the compiler. +fix_srcfile_path="" + +# Set to yes if exported symbols are required. +always_export_symbols=no + +# The commands to list exported symbols. +export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds="" + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" + +# Symbols that must always be exported. +include_expsyms="" + +# ### END LIBTOOL TAG CONFIG: CXX + diff --git a/rubbos/app/apache2/build/ltlib.mk b/rubbos/app/apache2/build/ltlib.mk new file mode 100644 index 00000000..3b87dd36 --- /dev/null +++ b/rubbos/app/apache2/build/ltlib.mk @@ -0,0 +1,23 @@ +# 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. +# +# +# The build environment was provided by Sascha Schumann. + +TARGETS = $(LTLIBRARY_NAME) + +include $(top_builddir)/build/rules.mk +include $(top_srcdir)/build/library.mk + diff --git a/rubbos/app/apache2/build/make_exports.awk b/rubbos/app/apache2/build/make_exports.awk new file mode 100644 index 00000000..1d12fc65 --- /dev/null +++ b/rubbos/app/apache2/build/make_exports.awk @@ -0,0 +1,150 @@ + +BEGIN { + printf("/*\n") + printf(" * THIS FILE WAS AUTOGENERATED BY make_exports.awk\n") + printf(" *\n") + printf(" * This is an ugly hack that needs to be here, so\n") + printf(" * that libtool will link all of the APR functions\n") + printf(" * into server regardless of whether the base server\n") + printf(" * uses them.\n") + printf(" */\n") + printf("\n") + printf("#define CORE_PRIVATE\n") + printf("\n") + + for (i = 1; i < ARGC; i++) { + file = ARGV[i] + sub("([^/]*[/])*", "", file) + printf("#include \"%s\"\n", file) + } + + printf("\n") + printf("const void *ap_ugly_hack = NULL;\n") + printf("\n") + + TYPE_NORMAL = 0 + TYPE_HEADER = 1 + + stackptr = 0 +} + +function push(line) { + stack[stackptr] = line + stackptr++ +} + +function do_output() { + printf("/*\n") + printf(" * %s\n", FILENAME) + printf(" */\n") + + for (i = 0; i < stackptr; i++) { + printf("%s\n", stack[i]) + } + + stackptr = 0 + + printf("\n"); +} + +function enter_scope(type) { + scope++ + scope_type[scope] = type + scope_stack[scope] = stackptr + delete scope_used[scope] +} + +function leave_scope() { + used = scope_used[scope] + + if (!used) + stackptr = scope_stack[scope] + + scope-- + if (used) { + scope_used[scope] = 1 + + if (!scope) + do_output() + } +} + +function add_symbol(symbol) { + if (!index(symbol, "#")) { + push("const void *ap_hack_" symbol " = (const void *)" symbol ";") + scope_used[scope] = 1 + } +} + +/^[ \t]*AP[RUI]?_(CORE_)?DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ { + sub("[ \t]*AP[RUI]?_(CORE_)?DECLARE[^(]*[(][^)]*[)][ \t]*", "") + sub("[(].*", "") + sub("([^ ]* (^([ \t]*[(])))+", "") + + add_symbol($0) + next +} + +/^[ \t]*AP_DECLARE_HOOK[^(]*[(][^)]*/ { + split($0, args, ",") + 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]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ { + sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0) + sub("[)].*$", "", $0) + add_symbol("apr_" $0 "_pool_get") + next +} + +/^[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(][^)]*[)]/ { + sub("[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(]", "", $0) + sub("[)].*$", "", $0) + add_symbol("apr_" $0 "_inherit_set") + next +} + +/^[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(][^)]*[)]/ { + sub("[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(]", "", $0) + sub("[)].*$", "", $0) + add_symbol("apr_" $0 "_inherit_unset") + next +} + +/^#[ \t]*if(ndef| !defined[(])([^_]*_)*H/ { + enter_scope(TYPE_HEADER) + next +} + +/^#[ \t]*if([n]?def)? / { + enter_scope(TYPE_NORMAL) + push($0) + next +} + +/^#[ \t]*endif/ { + if (scope_type[scope] == TYPE_NORMAL) + push($0) + + leave_scope() + next +} + +/^#[ \t]*else/ { + push($0) + next +} + +/^#[ \t]*elif/ { + push($0) + next +} + + diff --git a/rubbos/app/apache2/build/make_var_export.awk b/rubbos/app/apache2/build/make_var_export.awk new file mode 100644 index 00000000..59922758 --- /dev/null +++ b/rubbos/app/apache2/build/make_var_export.awk @@ -0,0 +1,59 @@ +# Based on apr's make_export.awk, which is +# based on Ryan Bloom's make_export.pl + +/^#[ \t]*if(def)? (AP[RUI]?_|!?defined).*/ { + if (old_filename != FILENAME) { + if (old_filename != "") printf("%s", line) + macro_no = 0 + found = 0 + count = 0 + old_filename = FILENAME + line = "" + } + macro_stack[macro_no++] = macro + macro = substr($0, length($1)+2) + count++ + line = line "#ifdef " macro "\n" + next +} + +/^#[ \t]*endif/ { + if (count > 0) { + count-- + line = line "#endif /* " macro " */\n" + macro = macro_stack[--macro_no] + } + if (count == 0) { + if (found != 0) { + printf("%s", line) + } + line = "" + } + next +} + +function add_symbol (sym_name) { + if (count) { + found++ + } + for (i = 0; i < count; i++) { + line = line "\t" + } + line = line sym_name "\n" + + if (count == 0) { + printf("%s", line) + line = "" + } +} + +/^[ \t]*(extern[ \t]+)?AP[RUI]?_DECLARE_DATA .*;$/ { + varname = $NF; + gsub( /[*;]/, "", varname); + gsub( /\[.*\]/, "", varname); + add_symbol(varname); +} + +END { + printf("%s", line) +} diff --git a/rubbos/app/apache2/build/mkdir.sh b/rubbos/app/apache2/build/mkdir.sh new file mode 100755 index 00000000..b947c926 --- /dev/null +++ b/rubbos/app/apache2/build/mkdir.sh @@ -0,0 +1,37 @@ +#!/bin/sh +## +## mkdir.sh -- make directory hierarchy +## +## Based on `mkinstalldirs' from Noah Friedman +## as of 1994-03-25, which was placed in the Public Domain. +## Cleaned up for Apache's Autoconf-style Interface (APACI) +## by Ralf S. Engelschall +## +# +# This script falls under the Apache License. +# See http://www.apache.org/docs/LICENSE + + +umask 022 +errstatus=0 +for file in ${1+"$@"} ; do + set fnord `echo ":$file" |\ + sed -e 's/^:\//%/' -e 's/^://' -e 's/\// /g' -e 's/^%/\//'` + shift + pathcomp= + for d in ${1+"$@"}; do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + ?: ) pathcomp="$pathcomp/" + continue ;; + esac + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" 1>&2 + mkdir "$pathcomp" || errstatus=$? + fi + pathcomp="$pathcomp/" + done +done +exit $errstatus + diff --git a/rubbos/app/apache2/build/program.mk b/rubbos/app/apache2/build/program.mk new file mode 100644 index 00000000..bdba429d --- /dev/null +++ b/rubbos/app/apache2/build/program.mk @@ -0,0 +1,22 @@ +# 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. +# +# +# The build environment was provided by Sascha Schumann. + +PROGRAM_OBJECTS = $(PROGRAM_SOURCES:.c=.lo) + +$(PROGRAM_NAME): $(PROGRAM_DEPENDENCIES) $(PROGRAM_OBJECTS) + $(LINK) $(PROGRAM_LDFLAGS) $(PROGRAM_OBJECTS) $(PROGRAM_LDADD) diff --git a/rubbos/app/apache2/build/rules.mk b/rubbos/app/apache2/build/rules.mk new file mode 100644 index 00000000..06afb83b --- /dev/null +++ b/rubbos/app/apache2/build/rules.mk @@ -0,0 +1,226 @@ +# 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. +# +# +# The build environment was originally provided by Sascha Schumann. + +include $(top_builddir)/build/config_vars.mk + +# Combine all of the flags together in the proper order so that +# the user-defined flags can always override the configure ones, if needed. +# Note that includes are listed after the flags because -I options have +# left-to-right precedence and CPPFLAGS may include user-defined overrides. +# +ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS) +ALL_CPPFLAGS = $(DEFS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS) +ALL_CXXFLAGS = $(EXTRA_CXXFLAGS) $(NOTEST_CXXFLAGS) $(CXXFLAGS) +ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS) +ALL_LIBS = $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS) +ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) + +# Compile commands + +COMPILE = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES) +CXX_COMPILE = $(CXX) $(ALL_CXXFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES) + +SH_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) -prefer-pic -c $< && touch $@ +SH_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) -prefer-pic -c $< && touch $@ + +LT_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) -prefer-non-pic -static -c $< && touch $@ +LT_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) -prefer-non-pic -static -c $< && touch $@ + +# Link-related commands + +LINK = $(LIBTOOL) --mode=link $(COMPILE) $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@ +SH_LINK = $(SH_LIBTOOL) --mode=link $(COMPILE) $(LT_LDFLAGS) $(ALL_LDFLAGS) $(SH_LDFLAGS) $(CORE_IMPLIB) $(SH_LIBS) -o $@ +MOD_LINK = $(LIBTOOL) --mode=link $(COMPILE) -module $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@ + +# Cross compile commands + +# Helper programs + +MKINSTALLDIRS = $(abs_srcdir)/build/mkdir.sh +INSTALL = $(LIBTOOL) --mode=install $(abs_srcdir)/build/install.sh -c +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_PROGRAM = $(INSTALL) -m 755 $(INSTALL_PROG_FLAGS) + +# +# Standard build rules +# +all: all-recursive +depend: depend-recursive +clean: clean-recursive +distclean: distclean-recursive +extraclean: extraclean-recursive +install: install-recursive +shared-build: shared-build-recursive + +all-recursive install-recursive depend-recursive: + @otarget=`echo $@|sed s/-recursive//`; \ + list=' $(BUILD_SUBDIRS) $(SUBDIRS)'; \ + for i in $$list; do \ + if test -d "$$i"; then \ + target="$$otarget"; \ + echo "Making $$target in $$i"; \ + if test "$$i" = "."; then \ + made_local=yes; \ + target="local-$$target"; \ + fi; \ + (cd $$i && $(MAKE) $$target) || exit 1; \ + fi; \ + done; \ + if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \ + made_local=yes; \ + fi; \ + if test "$$made_local" != "yes"; then \ + $(MAKE) "local-$$otarget" || exit 1; \ + fi + +clean-recursive distclean-recursive extraclean-recursive: + @otarget=`echo $@|sed s/-recursive//`; \ + list='$(CLEAN_SUBDIRS) $(SUBDIRS)'; \ + for i in $$list; do \ + if test -d "$$i"; then \ + target="$$otarget"; \ + echo "Making $$target in $$i"; \ + if test "$$i" = "."; then \ + made_local=yes; \ + target="local-$$target"; \ + fi; \ + (cd $$i && $(MAKE) $$target); \ + fi; \ + done; \ + if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \ + made_local=yes; \ + fi; \ + if test "$$made_local" != "yes"; then \ + $(MAKE) "local-$$otarget"; \ + fi + +shared-build-recursive: + @if test `pwd` = "$(top_builddir)"; then \ + $(PRE_SHARED_CMDS) ; \ + fi; \ + list='$(SUBDIRS)'; for i in $$list; do \ + target="shared-build"; \ + if test "$$i" = "."; then \ + made_local=yes; \ + target="local-shared-build"; \ + fi; \ + if test "$$i" != "srclib"; then \ + (cd $$i && $(MAKE) $$target) || exit 1; \ + fi; \ + done; \ + if test -f 'modules.mk'; then \ + if test -n '$(SHARED_TARGETS)'; then \ + echo "Building shared: $(SHARED_TARGETS)"; \ + if test "$$made_local" != "yes"; then \ + $(MAKE) "local-shared-build" || exit 1; \ + fi; \ + fi; \ + fi; \ + if test `pwd` = "$(top_builddir)"; then \ + $(POST_SHARED_CMDS) ; \ + fi + +local-all: $(TARGETS) + +local-shared-build: $(SHARED_TARGETS) + +local-depend: x-local-depend + if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \ + $(CC) -MM $(ALL_CPPFLAGS) $(ALL_INCLUDES) $(srcdir)/*.c | sed 's/\.o:/.lo:/' > $(builddir)/.deps || true; \ + fi + +local-clean: x-local-clean + rm -f *.o *.lo *.slo *.obj *.a *.la $(CLEAN_TARGETS) $(TARGETS) + rm -rf .libs + +local-distclean: local-clean x-local-distclean + rm -f .deps Makefile $(DISTCLEAN_TARGETS) + +local-extraclean: local-distclean x-local-extraclean + @if test -n "$(EXTRACLEAN_TARGETS)"; then \ + echo "rm -f $(EXTRACLEAN_TARGETS)"; \ + rm -f $(EXTRACLEAN_TARGETS) ; \ + fi + +local-install: $(TARGETS) $(SHARED_TARGETS) $(INSTALL_TARGETS) + @if test -n '$(PROGRAMS)'; then \ + test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \ + list='$(PROGRAMS)'; for i in $$list; do \ + $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir); \ + done; \ + fi + +# to be filled in by the actual Makefile if extra commands are needed +x-local-depend x-local-clean x-local-distclean x-local-extraclean: + +# +# Implicit rules for creating outputs from input files +# +CXX_SUFFIX = cpp +SHLIB_SUFFIX = so + +.SUFFIXES: +.SUFFIXES: .S .c .$(CXX_SUFFIX) .lo .o .s .y .l .slo .def .la + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.c.lo: + $(LT_COMPILE) + +.s.lo: + $(LT_COMPILE) + +.c.slo: + $(SH_COMPILE) + +.$(CXX_SUFFIX).lo: + $(LT_CXX_COMPILE) + +.$(CXX_SUFFIX).slo: + $(SH_CXX_COMPILE) + +.y.c: + $(YACC) $(YFLAGS) $< && mv y.tab.c $*.c + if test -f y.tab.h; then \ + if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ + else :; fi + +.l.c: + $(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@ + +# Makes an import library from a def file +.def.la: + $(LIBTOOL) --mode=compile $(MK_IMPLIB) -o $@ $< + +# +# Dependencies +# +include $(builddir)/.deps + +.PHONY: all all-recursive install-recursive local-all $(PHONY_TARGETS) \ + shared-build shared-build-recursive local-shared-build \ + depend depend-recursive local-depend x-local-depend \ + 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) + diff --git a/rubbos/app/apache2/build/special.mk b/rubbos/app/apache2/build/special.mk new file mode 100644 index 00000000..d7d474d6 --- /dev/null +++ b/rubbos/app/apache2/build/special.mk @@ -0,0 +1,38 @@ +# 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. +# +# +# The build environment was provided by Sascha Schumann. + +all: all-recursive + +include $(builddir)/modules.mk +TARGETS = $(static) +SHARED_TARGETS = $(shared) +INSTALL_TARGETS = install-modules + +install-modules: + @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir); + @builtin='$(BUILTIN_LIBS)'; \ + has_mod_so=`echo $$builtin|sed 's/^.*mod_so.*$$/has_mod_so/'`; \ + if [ "x$$has_mod_so" = "xhas_mod_so" ]; then \ + list='$(shared)'; \ + for i in $$list; do \ + $(top_srcdir)/build/instdso.sh SH_LIBTOOL='$(SH_LIBTOOL)' $$i $(DESTDIR)$(libexecdir); \ + done; \ + fi + +include $(top_builddir)/build/rules.mk + diff --git a/rubbos/app/apache2/cgi-bin/printenv b/rubbos/app/apache2/cgi-bin/printenv new file mode 100644 index 00000000..e4c2140b --- /dev/null +++ b/rubbos/app/apache2/cgi-bin/printenv @@ -0,0 +1,13 @@ +#!/usr/local/bin/perl +## +## printenv -- demo CGI program which just prints its environment +## + +print "Content-type: text/plain; charset=iso-8859-1\n\n"; +foreach $var (sort(keys(%ENV))) { + $val = $ENV{$var}; + $val =~ s|\n|\\n|g; + $val =~ s|"|\\"|g; + print "${var}=\"${val}\"\n"; +} + diff --git a/rubbos/app/apache2/cgi-bin/test-cgi b/rubbos/app/apache2/cgi-bin/test-cgi new file mode 100644 index 00000000..e27f8575 --- /dev/null +++ b/rubbos/app/apache2/cgi-bin/test-cgi @@ -0,0 +1,31 @@ +#!/bin/sh + +# disable filename globbing +set -f + +echo "Content-type: text/plain; charset=iso-8859-1" +echo + +echo CGI/1.0 test script report: +echo + +echo argc is $#. argv is "$*". +echo + +echo SERVER_SOFTWARE = $SERVER_SOFTWARE +echo SERVER_NAME = $SERVER_NAME +echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE +echo SERVER_PROTOCOL = $SERVER_PROTOCOL +echo SERVER_PORT = $SERVER_PORT +echo REQUEST_METHOD = $REQUEST_METHOD +echo HTTP_ACCEPT = "$HTTP_ACCEPT" +echo PATH_INFO = "$PATH_INFO" +echo PATH_TRANSLATED = "$PATH_TRANSLATED" +echo SCRIPT_NAME = "$SCRIPT_NAME" +echo QUERY_STRING = "$QUERY_STRING" +echo REMOTE_HOST = $REMOTE_HOST +echo REMOTE_ADDR = $REMOTE_ADDR +echo REMOTE_USER = $REMOTE_USER +echo AUTH_TYPE = $AUTH_TYPE +echo CONTENT_TYPE = $CONTENT_TYPE +echo CONTENT_LENGTH = $CONTENT_LENGTH diff --git a/rubbos/app/apache2/conf/highperformance-std.conf b/rubbos/app/apache2/conf/highperformance-std.conf new file mode 100644 index 00000000..310a7b8c --- /dev/null +++ b/rubbos/app/apache2/conf/highperformance-std.conf @@ -0,0 +1,70 @@ +# Ha, you're reading this config file looking for the easy way out! +# "how do I make my apache server go really really fast??" +# Well you could start by reading the /manual/misc/perf-tuning.html +# page. But, we'll give you a head start. +# +# This config file is small, it is probably not what you'd expect on a +# full featured internet webserver with multiple users. But it's +# probably a good starting point for any folks interested in testing +# performance. +# +# To run this config you'll need to use something like: +# httpd -f /bottlenecks/rubbos/app/apache2/conf/highperformance.conf + +Listen 80 +ServerRoot /bottlenecks/rubbos/app/apache2 +DocumentRoot /bottlenecks/rubbos/app/apache2/htdocs + +User nobody +# If you're not on Linux, you'll probably need to change Group +Group nobody + + +MaxClients 150 +StartServers 5 +MinSpareServers 5 +MaxSpareServers 10 + + + +StartServers 2 +MaxClients 150 +MinSpareThreads 25 +MaxSpareThreads 75 +ThreadsPerChild 25 +MaxRequestsPerChild 0 + + +# Assume no memory leaks at all +MaxRequestsPerChild 0 + +# it's always nice to know the server has started +ErrorLog logs/error_log + +# Some benchmarks require logging, which is a good requirement. Uncomment +# this if you need logging. +#TransferLog logs/access_log + + + # The server can be made to avoid following symbolic links, + # to make security simpler. However, this takes extra CPU time, + # so we will just let it follow symlinks. + Options FollowSymLinks + + # Don't check for .htaccess files in each directory - they slow + # things down + AllowOverride None + + # If this was a real internet server you'd probably want to + # uncomment these: + #order deny,allow + #deny from all + + +# If this was a real internet server you'd probably want to uncomment this: +# +# order allow,deny +# allow from all +# + +# OK that's enough hints. Read the documentation if you want more. diff --git a/rubbos/app/apache2/conf/highperformance.conf b/rubbos/app/apache2/conf/highperformance.conf new file mode 100644 index 00000000..310a7b8c --- /dev/null +++ b/rubbos/app/apache2/conf/highperformance.conf @@ -0,0 +1,70 @@ +# Ha, you're reading this config file looking for the easy way out! +# "how do I make my apache server go really really fast??" +# Well you could start by reading the /manual/misc/perf-tuning.html +# page. But, we'll give you a head start. +# +# This config file is small, it is probably not what you'd expect on a +# full featured internet webserver with multiple users. But it's +# probably a good starting point for any folks interested in testing +# performance. +# +# To run this config you'll need to use something like: +# httpd -f /bottlenecks/rubbos/app/apache2/conf/highperformance.conf + +Listen 80 +ServerRoot /bottlenecks/rubbos/app/apache2 +DocumentRoot /bottlenecks/rubbos/app/apache2/htdocs + +User nobody +# If you're not on Linux, you'll probably need to change Group +Group nobody + + +MaxClients 150 +StartServers 5 +MinSpareServers 5 +MaxSpareServers 10 + + + +StartServers 2 +MaxClients 150 +MinSpareThreads 25 +MaxSpareThreads 75 +ThreadsPerChild 25 +MaxRequestsPerChild 0 + + +# Assume no memory leaks at all +MaxRequestsPerChild 0 + +# it's always nice to know the server has started +ErrorLog logs/error_log + +# Some benchmarks require logging, which is a good requirement. Uncomment +# this if you need logging. +#TransferLog logs/access_log + + + # The server can be made to avoid following symbolic links, + # to make security simpler. However, this takes extra CPU time, + # so we will just let it follow symlinks. + Options FollowSymLinks + + # Don't check for .htaccess files in each directory - they slow + # things down + AllowOverride None + + # If this was a real internet server you'd probably want to + # uncomment these: + #order deny,allow + #deny from all + + +# If this was a real internet server you'd probably want to uncomment this: +# +# order allow,deny +# allow from all +# + +# OK that's enough hints. Read the documentation if you want more. diff --git a/rubbos/app/apache2/conf/httpd-std.conf b/rubbos/app/apache2/conf/httpd-std.conf new file mode 100644 index 00000000..1c6efa5e --- /dev/null +++ b/rubbos/app/apache2/conf/httpd-std.conf @@ -0,0 +1,1041 @@ +# +# Based upon the NCSA server configuration files originally by Rob McCool. +# +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See for detailed information about +# the directives. +# +# 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. +# +# The configuration directives are grouped into three basic sections: +# 1. Directives that control the operation of the Apache server process as a +# whole (the 'global environment'). +# 2. Directives that define the parameters of the 'main' or 'default' server, +# which responds to requests that aren't handled by a virtual host. +# These directives also provide default values for the settings +# of all virtual hosts. +# 3. Settings for virtual hosts, which allow Web requests to be sent to +# different IP addresses or hostnames and have them handled by the +# same Apache server process. +# +# 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 "/bottlenecks/rubbos/app/apache2" will be interpreted by the +# server as "/bottlenecks/rubbos/app/apache2/logs/foo.log". +# + +### Section 1: Global Environment +# +# The directives in this section affect the overall operation of Apache, +# such as the number of concurrent requests it can handle or where it +# can find its configuration files. +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the LockFile documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +ServerRoot "/bottlenecks/rubbos/app/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# + + +#LockFile logs/accept.lock + + + +# +# ScoreBoardFile: File used to store internal server process information. +# If unspecified (the default), the scoreboard will be stored in an +# anonymous shared memory segment, and will be unavailable to third-party +# applications. +# If specified, ensure that no two invocations of Apache share the same +# scoreboard file. The scoreboard file MUST BE STORED ON A LOCAL DISK. +# + + +#ScoreBoardFile logs/apache_runtime_status + + + + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# + +PidFile logs/httpd.pid + + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 15 + +## +## Server-Pool Size Regulation (MPM specific) +## + +# prefork MPM +# StartServers: number of server processes to start +# MinSpareServers: minimum number of server processes which are kept spare +# MaxSpareServers: maximum number of server processes which are kept spare +# MaxClients: maximum number of server processes allowed to start +# MaxRequestsPerChild: maximum number of requests a server process serves + +StartServers 5 +MinSpareServers 5 +MaxSpareServers 10 +MaxClients 150 +MaxRequestsPerChild 0 + + +# worker MPM +# StartServers: initial number of server processes to start +# MaxClients: maximum number of simultaneous client connections +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadsPerChild: constant number of worker threads in each server process +# MaxRequestsPerChild: maximum number of requests a server process serves + +StartServers 2 +MaxClients 150 +MinSpareThreads 25 +MaxSpareThreads 75 +ThreadsPerChild 25 +MaxRequestsPerChild 0 + + +# 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 + +NumServers 5 +StartThreads 5 +MinSpareThreads 5 +MaxSpareThreads 10 +MaxThreadsPerChild 20 +MaxRequestsPerChild 0 + + +# WinNT MPM +# ThreadsPerChild: constant number of worker threads in the server process +# MaxRequestsPerChild: maximum number of requests a server process serves + +ThreadsPerChild 250 +MaxRequestsPerChild 0 + + +# BeOS MPM +# StartThreads: how many threads do we initially spawn? +# MaxClients: max number of threads we can have (1 thread == 1 client) +# MaxRequestsPerThread: maximum number of requests each thread will process + +StartThreads 10 +MaxClients 50 +MaxRequestsPerThread 10000 + + +# NetWare MPM +# ThreadStackSize: Stack size allocated for each worker thread +# StartThreads: Number of worker threads launched at server startup +# MinSpareThreads: Minimum number of idle threads, to handle request spikes +# MaxSpareThreads: Maximum number of idle threads +# MaxThreads: Maximum number of worker threads alive at the same time +# MaxRequestsPerChild: Maximum number of requests a thread serves. It is +# recommended that the default value of 0 be set for this +# directive on NetWare. This will allow the thread to +# continue to service requests indefinitely. + +ThreadStackSize 65536 +StartThreads 250 +MinSpareThreads 25 +MaxSpareThreads 250 +MaxThreads 1000 +MaxRequestsPerChild 0 +MaxMemFree 100 + + +# OS/2 MPM +# StartServers: Number of server processes to maintain +# MinSpareThreads: Minimum number of idle threads per process, +# to handle request spikes +# MaxSpareThreads: Maximum number of idle threads per process +# MaxRequestsPerChild: Maximum number of connections per server process + +StartServers 2 +MinSpareThreads 5 +MaxSpareThreads 10 +MaxRequestsPerChild 0 + + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the +# 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 80 + +# +# 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 +# + +# +# ExtendedStatus controls whether Apache will generate "full" status +# information (ExtendedStatus On) or just basic information (ExtendedStatus +# Off) when the "server-status" handler is called. The default is Off. +# +#ExtendedStatus On + +### Section 2: '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 +# definition. These values also provide defaults for +# any containers you may define later in the file. +# +# All of these directives may appear inside containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + + + +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# . On SCO (ODT 3) use "User nouser" and "Group nogroup". +# . On HPUX you may not be able to use shared memory as nobody, and the +# suggested workaround is to create a user www and use that user. +# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) +# when the value of (unsigned)Group is above 60000; +# don't use Group #-1 on these systems! +# +User nobody +Group #-1 + + + +# +# 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 you@example.com + +# +# 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 this is not set to valid DNS name for your host, server-generated +# redirections will not work. See also the UseCanonicalName directive. +# +# If your host doesn't have a registered DNS name, enter its IP address here. +# You will have to access it by its address anyway, and this will make +# redirections work in a sensible way. +# +#ServerName www.example.com:80 + +# +# UseCanonicalName: Determines how Apache constructs self-referencing +# URLs and the SERVER_NAME and SERVER_PORT variables. +# When set "Off", Apache will use the Hostname and Port supplied +# by the client. When set "On", Apache will use the value of the +# ServerName directive. +# +UseCanonicalName Off + +# +# 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 "/bottlenecks/rubbos/app/apache2/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. +# + + Options FollowSymLinks + AllowOverride None + + +# +# 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. +# + + +# +# 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.0/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 Indexes +# + AllowOverride None + +# +# Controls who can get stuff from this server. +# + Order allow,deny + Allow from all + + + +# +# UserDir: The name of the directory that is appended onto a user's home +# directory if a ~user request is received. +# +UserDir public_html + +# +# Control access to UserDir directories. The following is an example +# for a site where these directories are restricted to read-only. +# +# +# AllowOverride FileInfo AuthConfig Limit Indexes +# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +# +# Order allow,deny +# Allow from all +# +# +# Order deny,allow +# Deny from all +# +# + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# +# The index.html.var file (a type-map) is used to deliver content- +# negotiated documents. The MultiViews Option can be used for the +# same purpose, but it is much slower. +# +DirectoryIndex index.html index.html.var + +# +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Order allow,deny + Deny from all + + +# +# TypesConfig describes where the mime.types file (or equivalent) is +# to be found. +# +TypesConfig conf/mime.types + +# +# DefaultType is 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 + +# +# 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 + + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# +# EnableMMAP: Control whether memory-mapping is used to deliver +# files (assuming that the underlying OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. On some systems, turning it off (regardless of +# filesystem) can improve performance; for details, please see +# http://httpd.apache.org/docs/2.0/mod/core.html#enablemmap +# +#EnableMMAP off + +# +# EnableSendfile: Control whether the sendfile kernel support is +# used to deliver files (assuming that the OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. Please see +# http://httpd.apache.org/docs/2.0/mod/core.html#enablesendfile +# +#EnableSendfile off + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# 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 + +# +# 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 +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# 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 + +# +# The location and format of the access logfile (Common Logfile Format). +# If you do not define any access logfiles within a +# container, they will be logged here. Contrariwise, if you *do* +# define per- access logfiles, transactions will be +# logged therein and *not* in this file. +# +CustomLog logs/access_log common + +# +# If you would like to have agent and referer logfiles, uncomment the +# following directives. +# +#CustomLog logs/referer_log referer +#CustomLog logs/agent_log agent + +# +# If you prefer a single logfile with access, agent, and referer information +# (Combined Logfile Format) you can use the following directive. +# +#CustomLog logs/access_log combined + +# +# ServerTokens +# This directive configures what you return as the Server HTTP response +# Header. The default is 'Full' which sends information about the OS-Type +# and compiled in modules. +# Set to one of: Full | OS | Minor | Minimal | Major | Prod +# where Full conveys the most information, and Prod the least. +# +ServerTokens Full + +# +# Optionally add a line containing the server version and virtual host +# name to server-generated pages (internal error documents, FTP directory +# listings, mod_status and mod_info output etc., but not CGI generated +# documents or custom error documents). +# Set to "EMail" to also include a mailto: link to the ServerAdmin. +# Set to one of: On | Off | EMail +# +ServerSignature On + +# +# Aliases: Add here as many aliases as you need (with no limit). The format is +# Alias fakename realname +# +# Note that if you include a trailing / on fakename then the server will +# require it to be present in the URL. So "/icons" isn't aliased in this +# example, only "/icons/". If the fakename is slash-terminated, then the +# realname must also be slash terminated, and if the fakename omits the +# trailing slash, the realname must also omit it. +# +# We include the /icons/ alias for FancyIndexed directory listings. If you +# do not use FancyIndexing, you may comment this out. +# +Alias /icons/ "/bottlenecks/rubbos/app/apache2/icons/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + +# +# This should be changed to the ServerRoot/manual/. The alias provides +# the manual, even if you choose to move your DocumentRoot. You may comment +# this out if you do not care for the documentation. +# +AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru|tr))?(/.*)?$ "/bottlenecks/rubbos/app/apache2/manual$1" + + + Options Indexes + AllowOverride None + Order allow,deny + Allow from all + + + SetHandler type-map + + # .tr is text/troff in mime.types! + + ForceType text/html + + + SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru|tr)/ prefer-language=$1 + RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru|tr)){2,}(/.*)?$ /manual/$1$2 + + +# +# ScriptAlias: This controls which directories contain server scripts. +# ScriptAliases are essentially the same as Aliases, except that +# documents in the realname 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/ "/bottlenecks/rubbos/app/apache2/cgi-bin/" + + +# +# Additional to mod_cgid.c settings, mod_cgid has Scriptsock +# for setting UNIX socket for communicating with cgid. +# +#Scriptsock logs/cgisock + + +# +# "/bottlenecks/rubbos/app/apache2/cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# + + AllowOverride None + Options None + Order allow,deny + Allow from all + + +# +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: +# Redirect permanent /foo http://www.example.com/bar + +# +# Directives controlling the display of server-generated directory listings. +# + +# +# IndexOptions: Controls the appearance of server-generated directory +# listings. +# +IndexOptions FancyIndexing VersionSort + +# +# AddIcon* directives tell the server which icon to show for different +# files or filename extensions. These are only displayed for +# FancyIndexed directories. +# +AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + +AddIconByType (TXT,/icons/text.gif) text/* +AddIconByType (IMG,/icons/image2.gif) image/* +AddIconByType (SND,/icons/sound2.gif) audio/* +AddIconByType (VID,/icons/movie.gif) video/* + +AddIcon /icons/binary.gif .bin .exe +AddIcon /icons/binhex.gif .hqx +AddIcon /icons/tar.gif .tar +AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv +AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip +AddIcon /icons/a.gif .ps .ai .eps +AddIcon /icons/layout.gif .html .shtml .htm .pdf +AddIcon /icons/text.gif .txt +AddIcon /icons/c.gif .c +AddIcon /icons/p.gif .pl .py +AddIcon /icons/f.gif .for +AddIcon /icons/dvi.gif .dvi +AddIcon /icons/uuencoded.gif .uu +AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl +AddIcon /icons/tex.gif .tex +AddIcon /icons/bomb.gif core + +AddIcon /icons/back.gif .. +AddIcon /icons/hand.right.gif README +AddIcon /icons/folder.gif ^^DIRECTORY^^ +AddIcon /icons/blank.gif ^^BLANKICON^^ + +# +# DefaultIcon is which icon to show for files which do not have an icon +# explicitly set. +# +DefaultIcon /icons/unknown.gif + +# +# AddDescription allows you to place a short description after a file in +# server-generated indexes. These are only displayed for FancyIndexed +# directories. +# Format: AddDescription "description" filename +# +#AddDescription "GZIP compressed document" .gz +#AddDescription "tar archive" .tar +#AddDescription "GZIP compressed tar archive" .tgz + +# +# ReadmeName is the name of the README file the server will look for by +# default, and append to directory listings. +# +# HeaderName is the name of a file which should be prepended to +# directory indexes. +ReadmeName README.html +HeaderName HEADER.html + +# +# IndexIgnore is a set of filenames which directory indexing should ignore +# and not include in the listing. Shell-style wildcarding is permitted. +# +IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t + +# +# DefaultLanguage and AddLanguage allows you to specify the language of +# a document. You can then use content negotiation to give a browser a +# file in a language the user can understand. +# +# Specify a default language. This means that all data +# going out without a specific language tag (see below) will +# be marked with this one. You probably do NOT want to set +# this unless you are sure it is correct for all cases. +# +# * It is generally better to not mark a page as +# * being a certain language than marking it with the wrong +# * language! +# +# DefaultLanguage nl +# +# Note 1: The suffix does not have to be the same as the language +# keyword --- those with documents in Polish (whose net-standard +# language code is pl) may wish to use "AddLanguage pl .po" to +# avoid the ambiguity with the common suffix for perl scripts. +# +# Note 2: The example entries below illustrate that in some cases +# the two character 'Language' abbreviation is not identical to +# the two character 'Country' code for its country, +# E.g. 'Danmark/dk' versus 'Danish/da'. +# +# Note 3: In the case of 'ltz' we violate the RFC by using a three char +# specifier. There is 'work in progress' to fix this and get +# the reference data for rfc1766 cleaned up. +# +# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl) +# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de) +# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja) +# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn) +# Norwegian (no) - Polish (pl) - Portugese (pt) +# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv) +# Turkish (tr) - Simplified Chinese (zh-CN) - Spanish (es) +# Traditional Chinese (zh-TW) +# +AddLanguage ca .ca +AddLanguage cs .cz .cs +AddLanguage da .dk +AddLanguage de .de +AddLanguage el .el +AddLanguage en .en +AddLanguage eo .eo +AddLanguage es .es +AddLanguage et .et +AddLanguage fr .fr +AddLanguage he .he +AddLanguage hr .hr +AddLanguage it .it +AddLanguage ja .ja +AddLanguage ko .ko +AddLanguage ltz .ltz +AddLanguage nl .nl +AddLanguage nn .nn +AddLanguage no .no +AddLanguage pl .po +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 + +# +# LanguagePriority allows you to give precedence to some languages +# in case of a tie during content negotiation. +# +# 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 tr zh-CN zh-TW + +# +# ForceLanguagePriority allows you to serve a result page rather than +# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback) +# [in case no accepted languages matched the available variants] +# +ForceLanguagePriority Prefer Fallback + +# +# Commonly used filename extensions to character sets. You probably +# want to avoid clashes with the language extensions, unless you +# are good at carefully testing your setup after each change. +# See http://www.iana.org/assignments/character-sets for the +# official list of charset names and their respective RFCs. +# +AddCharset ISO-8859-1 .iso8859-1 .latin1 +AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen +AddCharset ISO-8859-3 .iso8859-3 .latin3 +AddCharset ISO-8859-4 .iso8859-4 .latin4 +AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru +AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb +AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk +AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb +AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk +AddCharset ISO-2022-JP .iso2022-jp .jis +AddCharset ISO-2022-KR .iso2022-kr .kis +AddCharset ISO-2022-CN .iso2022-cn .cis +AddCharset Big5 .Big5 .big5 +# For russian, more than one charset is used (depends on client, mostly): +AddCharset WINDOWS-1251 .cp-1251 .win-1251 +AddCharset CP866 .cp866 +AddCharset KOI8-r .koi8-r .koi8-ru +AddCharset KOI8-ru .koi8-uk .ua +AddCharset ISO-10646-UCS-2 .ucs2 +AddCharset ISO-10646-UCS-4 .ucs4 +AddCharset UTF-8 .utf8 + +# The set below does not map to a specific (iso) standard +# but works on a fairly wide range of browsers. Note that +# capitalization actually matters (it should not, but it +# does for some browsers). +# +# See http://www.iana.org/assignments/character-sets +# for a list of sorts. But browsers support few. +# +AddCharset GB2312 .gb2312 .gb +AddCharset utf-7 .utf7 +AddCharset utf-8 .utf8 +AddCharset big5 .big5 .b5 +AddCharset EUC-TW .euc-tw +AddCharset EUC-JP .euc-jp +AddCharset EUC-KR .euc-kr +AddCharset shift_jis .sjis + +# +# AddType allows you to add to or override the MIME configuration +# file mime.types for specific file types. +# +#AddType application/x-tar .tgz +# +# AddEncoding allows you to have certain browsers uncompress +# information on the fly. Note: Not all browsers support this. +# Despite the name similarity, the following Add* directives have nothing +# to do with the FancyIndexing customization directives above. +# +#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): +# (This is enabled by default to allow the Apache "It Worked" page +# to be distributed in multiple languages.) +# +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 + +# +# Action lets you define media types that will execute a script whenever +# a matching file is called. This eliminates the need for repeated URL +# pathnames for oft-used CGI file processors. +# Format: Action media/type /cgi-script/location +# Format: Action handler-name /cgi-script/location +# + +# +# 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 +# + +# +# Putting this all together, we can internationalize error responses. +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line: +# +# Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# /bottlenecks/rubbos/app/apache2/error/include/ files and copying them to /your/include/path/, +# even on a per-VirtualHost basis. The default include files will display +# your Apache version number and your ServerAdmin email address regardless +# of the setting of ServerSignature. +# +# The internationalized error documents require mod_alias, mod_include +# and mod_negotiation. To activate them, uncomment the following 30 lines. + +# Alias /error/ "/bottlenecks/rubbos/app/apache2/error/" +# +# +# AllowOverride None +# Options IncludesNoExec +# AddOutputFilter Includes html +# AddHandler type-map var +# Order allow,deny +# Allow from all +# LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr +# ForceLanguagePriority Prefer Fallback +# +# +# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var +# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var +# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var +# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var +# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var +# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var +# ErrorDocument 410 /error/HTTP_GONE.html.var +# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var +# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var +# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var +# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var +# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var +# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var +# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var +# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var +# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var +# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var + + +# +# The following directives modify normal HTTP response behavior to +# handle known problems with browser implementations. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 + +# +# The following directive disables redirects on non-GET requests for +# a directory that does not include the trailing slash. This fixes a +# problem with Microsoft WebFolders which does not appropriately handle +# redirects for folders with DAV methods. +# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV. +# +BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "MS FrontPage" redirect-carefully +BrowserMatch "^WebDrive" redirect-carefully +BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully +BrowserMatch "^gnome-vfs" redirect-carefully +BrowserMatch "^XML Spy" redirect-carefully +BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully + +# +# Allow server status reports generated by mod_status, +# with the URL of http://servername/server-status +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-status +# Order deny,allow +# Deny from all +# Allow from .example.com +# + +# +# Allow remote server configuration reports, with the URL of +# http://servername/server-info (requires that mod_info.c be loaded). +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-info +# Order deny,allow +# Deny from all +# Allow from .example.com +# + + +# +# Bring in additional module-specific configurations +# + + Include conf/ssl.conf + + + +### Section 3: Virtual Hosts +# +# VirtualHost: If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. + +# +# Use name-based virtual hosting. +# +#NameVirtualHost *:80 + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot /www/docs/dummy-host.example.com +# ServerName dummy-host.example.com +# ErrorLog logs/dummy-host.example.com-error_log +# CustomLog logs/dummy-host.example.com-access_log common +# diff --git a/rubbos/app/apache2/conf/httpd.conf b/rubbos/app/apache2/conf/httpd.conf new file mode 100644 index 00000000..fe3be7b9 --- /dev/null +++ b/rubbos/app/apache2/conf/httpd.conf @@ -0,0 +1,1076 @@ + +# +# Based upon the NCSA server configuration files originally by Rob McCool. +# +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See for detailed information about +# the directives. +# +# 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. +# +# The configuration directives are grouped into three basic sections: +# 1. Directives that control the operation of the Apache server process as a +# whole (the 'global environment'). +# 2. Directives that define the parameters of the 'main' or 'default' server, +# which responds to requests that aren't handled by a virtual host. +# These directives also provide default values for the settings +# of all virtual hosts. +# 3. Settings for virtual hosts, which allow Web requests to be sent to +# different IP addresses or hostnames and have them handled by the +# same Apache server process. +# +# 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 "/mnt/elba/rubbos/apache2" will be interpreted by the +# server as "/mnt/elba/rubbos/apache2/logs/foo.log". +# + +### Section 1: Global Environment +# +# The directives in this section affect the overall operation of Apache, +# such as the number of concurrent requests it can handle or where it +# can find its configuration files. +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the LockFile documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/mnt/elba/rubbos/apache2" +ServerRoot "/bottlenecks/rubbos/app/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# + + +#LockFile logs/accept.lock + + + +# +# ScoreBoardFile: File used to store internal server process information. +# If unspecified (the default), the scoreboard will be stored in an +# anonymous shared memory segment, and will be unavailable to third-party +# applications. +# If specified, ensure that no two invocations of Apache share the same +# scoreboard file. The scoreboard file MUST BE STORED ON A LOCAL DISK. +# + + +#ScoreBoardFile logs/apache_runtime_status + + + + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# + +PidFile logs/httpd.pid + + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 5 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +#KeepAlive On +KeepAlive Off + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 15 + +## +## Server-Pool Size Regulation (MPM specific) +## + +# prefork MPM +# StartServers: number of server processes to start +# MinSpareServers: minimum number of server processes which are kept spare +# MaxSpareServers: maximum number of server processes which are kept spare +# MaxClients: maximum number of server processes allowed to start +# MaxRequestsPerChild: maximum number of requests a server process serves + +StartServers 5 +MinSpareServers 5 +MaxSpareServers 10 +ServerLimit 4000 +MaxClients 4000 +MaxRequestsPerChild 0 + + +# worker MPM +# StartServers: initial number of server processes to start +# MaxClients: maximum number of simultaneous client connections +# MinSpareThreads: minimum number of worker threads which are kept spare +# MaxSpareThreads: maximum number of worker threads which are kept spare +# ThreadsPerChild: constant number of worker threads in each server process +# MaxRequestsPerChild: maximum number of requests a server process serves + +ServerLimit 200 +ThreadLimit 300 +StartServers 1 +MaxClients 300 +MinSpareThreads 5 +MaxSpareThreads 50 +ThreadsPerChild 150 +MaxRequestsPerChild 0 + + +# 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 + +NumServers 5 +StartThreads 5 +MinSpareThreads 5 +MaxSpareThreads 10 +MaxThreadsPerChild 20 +MaxRequestsPerChild 0 + + +# WinNT MPM +# ThreadsPerChild: constant number of worker threads in the server process +# MaxRequestsPerChild: maximum number of requests a server process serves + +ThreadsPerChild 250 +MaxRequestsPerChild 0 + + +# BeOS MPM +# StartThreads: how many threads do we initially spawn? +# MaxClients: max number of threads we can have (1 thread == 1 client) +# MaxRequestsPerThread: maximum number of requests each thread will process + +StartThreads 10 +MaxClients 50 +MaxRequestsPerThread 10000 + + +# NetWare MPM +# ThreadStackSize: Stack size allocated for each worker thread +# StartThreads: Number of worker threads launched at server startup +# MinSpareThreads: Minimum number of idle threads, to handle request spikes +# MaxSpareThreads: Maximum number of idle threads +# MaxThreads: Maximum number of worker threads alive at the same time +# MaxRequestsPerChild: Maximum number of requests a thread serves. It is +# recommended that the default value of 0 be set for this +# directive on NetWare. This will allow the thread to +# continue to service requests indefinitely. + +ThreadStackSize 65536 +StartThreads 250 +MinSpareThreads 25 +MaxSpareThreads 250 +MaxThreads 1000 +MaxRequestsPerChild 0 +MaxMemFree 100 + + +# OS/2 MPM +# StartServers: Number of server processes to maintain +# MinSpareThreads: Minimum number of idle threads per process, +# to handle request spikes +# MaxSpareThreads: Maximum number of idle threads per process +# MaxRequestsPerChild: Maximum number of connections per server process + +StartServers 2 +MinSpareThreads 5 +MaxSpareThreads 10 +MaxRequestsPerChild 0 + + +# +# Listen: Allows you to bind Apache to specific IP addresses and/or +# ports, instead of the default. See also the +# 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 8000 + +# +# 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 +# + +# +# ExtendedStatus controls whether Apache will generate "full" status +# information (ExtendedStatus On) or just basic information (ExtendedStatus +# Off) when the "server-status" handler is called. The default is Off. +# +#ExtendedStatus On + +### Section 2: '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 +# definition. These values also provide defaults for +# any containers you may define later in the file. +# +# All of these directives may appear inside containers, +# in which case these default settings will be overridden for the +# virtual host being defined. +# + + + +# +# If you wish httpd to run as a different user or group, you must run +# httpd as root initially and it will switch. +# +# User/Group: The name (or #number) of the user/group to run httpd as. +# . On SCO (ODT 3) use "User nouser" and "Group nogroup". +# . On HPUX you may not be able to use shared memory as nobody, and the +# suggested workaround is to create a user www and use that user. +# NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) +# when the value of (unsigned)Group is above 60000; +# don't use Group #-1 on these systems! +# +User nobody +Group #-1 + + + +# +# 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 you@example.com + +# +# 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 this is not set to valid DNS name for your host, server-generated +# redirections will not work. See also the UseCanonicalName directive. +# +# If your host doesn't have a registered DNS name, enter its IP address here. +# You will have to access it by its address anyway, and this will make +# redirections work in a sensible way. +# +#ServerName www.example.com:80 + +# +# UseCanonicalName: Determines how Apache constructs self-referencing +# URLs and the SERVER_NAME and SERVER_PORT variables. +# When set "Off", Apache will use the Hostname and Port supplied +# by the client. When set "On", Apache will use the value of the +# ServerName directive. +# +UseCanonicalName Off + +# +# 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 "/mnt/elba/rubbos/apache2/htdocs" +DocumentRoot "/bottlenecks/rubbos/app/apache2/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. +# + + Options FollowSymLinks + AllowOverride None + + +# +# 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. +# + + +# +# 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.0/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 + + + +# +# UserDir: The name of the directory that is appended onto a user's home +# directory if a ~user request is received. +# +UserDir public_html + +# +# Control access to UserDir directories. The following is an example +# for a site where these directories are restricted to read-only. +# +# +# AllowOverride FileInfo AuthConfig Limit Indexes +# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +# +# Order allow,deny +# Allow from all +# +# +# Order deny,allow +# Deny from all +# +# + +# +# DirectoryIndex: sets the file that Apache will serve if a directory +# is requested. +# +# The index.html.var file (a type-map) is used to deliver content- +# negotiated documents. The MultiViews Option can be used for the +# same purpose, but it is much slower. +# +DirectoryIndex index.html index.html.var + +# +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Order allow,deny + Deny from all + + +# +# TypesConfig describes where the mime.types file (or equivalent) is +# to be found. +# +TypesConfig conf/mime.types + +# +# DefaultType is 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 + +# +# 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 + + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# +# EnableMMAP: Control whether memory-mapping is used to deliver +# files (assuming that the underlying OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. On some systems, turning it off (regardless of +# filesystem) can improve performance; for details, please see +# http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap +# +#EnableMMAP off + +# +# EnableSendfile: Control whether the sendfile kernel support is +# used to deliver files (assuming that the OS supports it). +# The default is on; turn this off if you serve from NFS-mounted +# filesystems. Please see +# http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile +# +#EnableSendfile off + +# +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# 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 + +# +# 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 +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# 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 + +# +# The location and format of the access logfile (Common Logfile Format). +# If you do not define any access logfiles within a +# container, they will be logged here. Contrariwise, if you *do* +# define per- access logfiles, transactions will be +# logged therein and *not* in this file. +# +CustomLog logs/access_log common + +# +# If you would like to have agent and referer logfiles, uncomment the +# following directives. +# +#CustomLog logs/referer_log referer +#CustomLog logs/agent_log agent + +# +# If you prefer a single logfile with access, agent, and referer information +# (Combined Logfile Format) you can use the following directive. +# +#CustomLog logs/access_log combined + +# +# ServerTokens +# This directive configures what you return as the Server HTTP response +# Header. The default is 'Full' which sends information about the OS-Type +# and compiled in modules. +# Set to one of: Full | OS | Minor | Minimal | Major | Prod +# where Full conveys the most information, and Prod the least. +# +ServerTokens Full + +# +# Optionally add a line containing the server version and virtual host +# name to server-generated pages (internal error documents, FTP directory +# listings, mod_status and mod_info output etc., but not CGI generated +# documents or custom error documents). +# Set to "EMail" to also include a mailto: link to the ServerAdmin. +# Set to one of: On | Off | EMail +# +ServerSignature On + +# +# Aliases: Add here as many aliases as you need (with no limit). The format is +# Alias fakename realname +# +# Note that if you include a trailing / on fakename then the server will +# require it to be present in the URL. So "/icons" isn't aliased in this +# example, only "/icons/". If the fakename is slash-terminated, then the +# realname must also be slash terminated, and if the fakename omits the +# trailing slash, the realname must also omit it. +# +# We include the /icons/ alias for FancyIndexed directory listings. If you +# do not use FancyIndexing, you may comment this out. +# +Alias /icons/ "/bottlenecks/rubbos/app/apache2/icons/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + +# +# This should be changed to the ServerRoot/manual/. The alias provides +# the manual, even if you choose to move your DocumentRoot. You may comment +# this out if you do not care for the documentation. +# +AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/bottlenecks/rubbos/app/apache2/manual$1" + + + Options Indexes + AllowOverride None + Order allow,deny + Allow from all + + + SetHandler type-map + + + SetEnvIf Request_URI ^/manual/(de|en|es|fr|ja|ko|ru)/ prefer-language=$1 + RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2 + + +# +# ScriptAlias: This controls which directories contain server scripts. +# ScriptAliases are essentially the same as Aliases, except that +# documents in the realname 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/ "/bottlenecks/rubbos/app/apache2/cgi-bin/" + + +# +# Additional to mod_cgid.c settings, mod_cgid has Scriptsock +# for setting UNIX socket for communicating with cgid. +# +#Scriptsock logs/cgisock + + +# +# "/mnt/elba/rubbos/apache2/cgi-bin" should be changed to whatever your ScriptAliased +# CGI directory exists, if you have that configured. +# + + AllowOverride None + Options None + Order allow,deny + Allow from all + + +# +# Redirect allows you to tell clients about documents which used to exist in +# your server's namespace, but do not anymore. This allows you to tell the +# clients where to look for the relocated document. +# Example: +# Redirect permanent /foo http://www.example.com/bar + +# +# Directives controlling the display of server-generated directory listings. +# + +# +# IndexOptions: Controls the appearance of server-generated directory +# listings. +# +IndexOptions FancyIndexing VersionSort + +# +# AddIcon* directives tell the server which icon to show for different +# files or filename extensions. These are only displayed for +# FancyIndexed directories. +# +AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + +AddIconByType (TXT,/icons/text.gif) text/* +AddIconByType (IMG,/icons/image2.gif) image/* +AddIconByType (SND,/icons/sound2.gif) audio/* +AddIconByType (VID,/icons/movie.gif) video/* + +AddIcon /icons/binary.gif .bin .exe +AddIcon /icons/binhex.gif .hqx +AddIcon /icons/tar.gif .tar +AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv +AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip +AddIcon /icons/a.gif .ps .ai .eps +AddIcon /icons/layout.gif .html .shtml .htm .pdf +AddIcon /icons/text.gif .txt +AddIcon /icons/c.gif .c +AddIcon /icons/p.gif .pl .py +AddIcon /icons/f.gif .for +AddIcon /icons/dvi.gif .dvi +AddIcon /icons/uuencoded.gif .uu +AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl +AddIcon /icons/tex.gif .tex +AddIcon /icons/bomb.gif core + +AddIcon /icons/back.gif .. +AddIcon /icons/hand.right.gif README +AddIcon /icons/folder.gif ^^DIRECTORY^^ +AddIcon /icons/blank.gif ^^BLANKICON^^ + +# +# DefaultIcon is which icon to show for files which do not have an icon +# explicitly set. +# +DefaultIcon /icons/unknown.gif + +# +# AddDescription allows you to place a short description after a file in +# server-generated indexes. These are only displayed for FancyIndexed +# directories. +# Format: AddDescription "description" filename +# +#AddDescription "GZIP compressed document" .gz +#AddDescription "tar archive" .tar +#AddDescription "GZIP compressed tar archive" .tgz + +# +# ReadmeName is the name of the README file the server will look for by +# default, and append to directory listings. +# +# HeaderName is the name of a file which should be prepended to +# directory indexes. +ReadmeName README.html +HeaderName HEADER.html + +# +# IndexIgnore is a set of filenames which directory indexing should ignore +# and not include in the listing. Shell-style wildcarding is permitted. +# +IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t + +# +# DefaultLanguage and AddLanguage allows you to specify the language of +# a document. You can then use content negotiation to give a browser a +# file in a language the user can understand. +# +# Specify a default language. This means that all data +# going out without a specific language tag (see below) will +# be marked with this one. You probably do NOT want to set +# this unless you are sure it is correct for all cases. +# +# * It is generally better to not mark a page as +# * being a certain language than marking it with the wrong +# * language! +# +# DefaultLanguage nl +# +# Note 1: The suffix does not have to be the same as the language +# keyword --- those with documents in Polish (whose net-standard +# language code is pl) may wish to use "AddLanguage pl .po" to +# avoid the ambiguity with the common suffix for perl scripts. +# +# Note 2: The example entries below illustrate that in some cases +# the two character 'Language' abbreviation is not identical to +# the two character 'Country' code for its country, +# E.g. 'Danmark/dk' versus 'Danish/da'. +# +# Note 3: In the case of 'ltz' we violate the RFC by using a three char +# specifier. There is 'work in progress' to fix this and get +# the reference data for rfc1766 cleaned up. +# +# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl) +# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de) +# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja) +# 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) +# +AddLanguage ca .ca +AddLanguage cs .cz .cs +AddLanguage da .dk +AddLanguage de .de +AddLanguage el .el +AddLanguage en .en +AddLanguage eo .eo +AddLanguage es .es +AddLanguage et .et +AddLanguage fr .fr +AddLanguage he .he +AddLanguage hr .hr +AddLanguage it .it +AddLanguage ja .ja +AddLanguage ko .ko +AddLanguage ltz .ltz +AddLanguage nl .nl +AddLanguage nn .nn +AddLanguage no .no +AddLanguage pl .po +AddLanguage pt .pt +AddLanguage pt-BR .pt-br +AddLanguage ru .ru +AddLanguage sv .sv +AddLanguage zh-CN .zh-cn +AddLanguage zh-TW .zh-tw + +# +# LanguagePriority allows you to give precedence to some languages +# in case of a tie during content negotiation. +# +# 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 + +# +# ForceLanguagePriority allows you to serve a result page rather than +# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback) +# [in case no accepted languages matched the available variants] +# +ForceLanguagePriority Prefer Fallback + +# +# Commonly used filename extensions to character sets. You probably +# want to avoid clashes with the language extensions, unless you +# are good at carefully testing your setup after each change. +# See http://www.iana.org/assignments/character-sets for the +# official list of charset names and their respective RFCs. +# +AddCharset ISO-8859-1 .iso8859-1 .latin1 +AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen +AddCharset ISO-8859-3 .iso8859-3 .latin3 +AddCharset ISO-8859-4 .iso8859-4 .latin4 +AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru +AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb +AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk +AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb +AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk +AddCharset ISO-2022-JP .iso2022-jp .jis +AddCharset ISO-2022-KR .iso2022-kr .kis +AddCharset ISO-2022-CN .iso2022-cn .cis +AddCharset Big5 .Big5 .big5 +# For russian, more than one charset is used (depends on client, mostly): +AddCharset WINDOWS-1251 .cp-1251 .win-1251 +AddCharset CP866 .cp866 +AddCharset KOI8-r .koi8-r .koi8-ru +AddCharset KOI8-ru .koi8-uk .ua +AddCharset ISO-10646-UCS-2 .ucs2 +AddCharset ISO-10646-UCS-4 .ucs4 +AddCharset UTF-8 .utf8 + +# The set below does not map to a specific (iso) standard +# but works on a fairly wide range of browsers. Note that +# capitalization actually matters (it should not, but it +# does for some browsers). +# +# See http://www.iana.org/assignments/character-sets +# for a list of sorts. But browsers support few. +# +AddCharset GB2312 .gb2312 .gb +AddCharset utf-7 .utf7 +AddCharset utf-8 .utf8 +AddCharset big5 .big5 .b5 +AddCharset EUC-TW .euc-tw +AddCharset EUC-JP .euc-jp +AddCharset EUC-KR .euc-kr +AddCharset shift_jis .sjis + +# +# AddType allows you to add to or override the MIME configuration +# file mime.types for specific file types. +# +#AddType application/x-tar .tgz +# +# AddEncoding allows you to have certain browsers uncompress +# information on the fly. Note: Not all browsers support this. +# Despite the name similarity, the following Add* directives have nothing +# to do with the FancyIndexing customization directives above. +# +#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): +# (This is enabled by default to allow the Apache "It Worked" page +# to be distributed in multiple languages.) +# +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 + +# +# Action lets you define media types that will execute a script whenever +# a matching file is called. This eliminates the need for repeated URL +# pathnames for oft-used CGI file processors. +# Format: Action media/type /cgi-script/location +# Format: Action handler-name /cgi-script/location +# + +# +# 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 +# + +# +# Putting this all together, we can internationalize error responses. +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line: +# +# Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# /mnt/elba/rubbos/apache2/error/include/ files and copying them to /your/include/path/, +# even on a per-VirtualHost basis. The default include files will display +# your Apache version number and your ServerAdmin email address regardless +# of the setting of ServerSignature. +# +# The internationalized error documents require mod_alias, mod_include +# and mod_negotiation. To activate them, uncomment the following 30 lines. + +# Alias /error/ "/mnt/elba/rubbos/apache2/error/" +# +# +# AllowOverride None +# Options IncludesNoExec +# AddOutputFilter Includes html +# AddHandler type-map var +# Order allow,deny +# Allow from all +# LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr +# ForceLanguagePriority Prefer Fallback +# +# +# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var +# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var +# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var +# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var +# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var +# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var +# ErrorDocument 410 /error/HTTP_GONE.html.var +# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var +# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var +# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var +# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var +# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var +# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var +# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var +# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var +# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var +# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var + + +# +# The following directives modify normal HTTP response behavior to +# handle known problems with browser implementations. +# +BrowserMatch "Mozilla/2" nokeepalive +BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 +BrowserMatch "RealPlayer 4\.0" force-response-1.0 +BrowserMatch "Java/1\.0" force-response-1.0 +BrowserMatch "JDK/1\.0" force-response-1.0 + +# +# The following directive disables redirects on non-GET requests for +# a directory that does not include the trailing slash. This fixes a +# problem with Microsoft WebFolders which does not appropriately handle +# redirects for folders with DAV methods. +# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV. +# +BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully +BrowserMatch "^WebDrive" redirect-carefully +BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully +BrowserMatch "^gnome-vfs" redirect-carefully + +# +# Allow server status reports generated by mod_status, +# with the URL of http://servername/server-status +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-status +# Order deny,allow +# Deny from all +# Allow from .example.com +# + +# +# Allow remote server configuration reports, with the URL of +# http://servername/server-info (requires that mod_info.c be loaded). +# Change the ".example.com" to match your domain to enable. +# +# +# SetHandler server-info +# Order deny,allow +# Deny from all +# Allow from .example.com +# + + +# +# Bring in additional module-specific configurations +# + + Include conf/ssl.conf + + + +### Section 3: Virtual Hosts +# +# VirtualHost: If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. + +# +# Use name-based virtual hosting. +# +#NameVirtualHost *:80 + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot /www/docs/dummy-host.example.com +# ServerName dummy-host.example.com +# ErrorLog logs/dummy-host.example.com-error_log +# CustomLog logs/dummy-host.example.com-access_log common +# + + + +LoadModule jk_module "/bottlenecks/rubbos/app/apache2/modules/mod_jk.so" + +# Where to find workers.properties +JkWorkersFile /bottlenecks/rubbos/app/apache2/conf/workers.properties + +# Where to put jk logs +JkLogFile /bottlenecks/rubbos/app/apache2/logs/mod_jk.log + +# Set the jk log level [debug/error/info] +JkLogLevel info + +# Select the log format +JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " + +# JkOptions indicate to send SSL KEY SIZE, +JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories + +# JkRequestLogFormat set the request format +JkRequestLogFormat "%w %V %T" + +# Globally deny access to the WEB-INF directory + + AllowOverride None + deny from all + + + +JkMount /*/servlet/* worker1 +JkMount /*.jsp worker1 +#JkMount /rubbos worker1 +#JkMount /rubbos/* worker1 + + +ServerName localhost diff --git a/rubbos/app/apache2/conf/magic b/rubbos/app/apache2/conf/magic new file mode 100644 index 00000000..0de73361 --- /dev/null +++ b/rubbos/app/apache2/conf/magic @@ -0,0 +1,382 @@ +# Magic data for mod_mime_magic Apache module (originally for file(1) command) +# The module is described in /manual/mod/mod_mime_magic.html +# +# The format is 4-5 columns: +# Column #1: byte number to begin checking from, ">" indicates continuation +# Column #2: type of data to match +# Column #3: contents of data to match +# Column #4: MIME type of result +# Column #5: MIME encoding of result (optional) + +#------------------------------------------------------------------------------ +# Localstuff: file(1) magic for locally observed files +# Add any locally observed files here. + +#------------------------------------------------------------------------------ +# end local stuff +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# Java + +0 short 0xcafe +>2 short 0xbabe application/java + +#------------------------------------------------------------------------------ +# audio: file(1) magic for sound formats +# +# from Jan Nicolai Langfeldt , +# + +# Sun/NeXT audio data +0 string .snd +>12 belong 1 audio/basic +>12 belong 2 audio/basic +>12 belong 3 audio/basic +>12 belong 4 audio/basic +>12 belong 5 audio/basic +>12 belong 6 audio/basic +>12 belong 7 audio/basic + +>12 belong 23 audio/x-adpcm + +# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format +# that uses little-endian encoding and has a different magic number +# (0x0064732E in little-endian encoding). +0 lelong 0x0064732E +>12 lelong 1 audio/x-dec-basic +>12 lelong 2 audio/x-dec-basic +>12 lelong 3 audio/x-dec-basic +>12 lelong 4 audio/x-dec-basic +>12 lelong 5 audio/x-dec-basic +>12 lelong 6 audio/x-dec-basic +>12 lelong 7 audio/x-dec-basic +# compressed (G.721 ADPCM) +>12 lelong 23 audio/x-dec-adpcm + +# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" +# AIFF audio data +8 string AIFF audio/x-aiff +# AIFF-C audio data +8 string AIFC audio/x-aiff +# IFF/8SVX audio data +8 string 8SVX audio/x-aiff + +# Creative Labs AUDIO stuff +# Standard MIDI data +0 string MThd audio/unknown +#>9 byte >0 (format %d) +#>11 byte >1 using %d channels +# Creative Music (CMF) data +0 string CTMF audio/unknown +# SoundBlaster instrument data +0 string SBI audio/unknown +# Creative Labs voice data +0 string Creative\ Voice\ File audio/unknown +## is this next line right? it came this way... +#>19 byte 0x1A +#>23 byte >0 - version %d +#>22 byte >0 \b.%d + +# [GRR 950115: is this also Creative Labs? Guessing that first line +# should be string instead of unknown-endian long...] +#0 long 0x4e54524b MultiTrack sound data +#0 string NTRK MultiTrack sound data +#>4 long x - version %ld + +# Microsoft WAVE format (*.wav) +# [GRR 950115: probably all of the shorts and longs should be leshort/lelong] +# Microsoft RIFF +0 string RIFF audio/unknown +# - WAVE format +>8 string WAVE audio/x-wav +# MPEG audio. +0 beshort&0xfff0 0xfff0 audio/mpeg +# C64 SID Music files, from Linus Walleij +0 string PSID audio/prs.sid + +#------------------------------------------------------------------------------ +# c-lang: file(1) magic for C programs or various scripts +# + +# XPM icons (Greg Roelofs, newt@uchicago.edu) +# ideally should go into "images", but entries below would tag XPM as C source +0 string /*\ XPM image/x-xbm 7bit + +# this first will upset you if you're a PL/1 shop... (are there any left?) +# in which case rm it; ascmagic will catch real C programs +# C or REXX program text +0 string /* text/plain +# C++ program text +0 string // text/plain + +#------------------------------------------------------------------------------ +# compress: file(1) magic for pure-compression formats (no archives) +# +# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. +# +# Formats for various forms of compressed data +# Formats for "compress" proper have been moved into "compress.c", +# because it tries to uncompress it to figure out what's inside. + +# standard unix compress +0 string \037\235 application/octet-stream x-compress + +# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) +0 string \037\213 application/octet-stream x-gzip + +# According to gzip.h, this is the correct byte order for packed data. +0 string \037\036 application/octet-stream +# +# This magic number is byte-order-independent. +# +0 short 017437 application/octet-stream + +# XXX - why *two* entries for "compacted data", one of which is +# byte-order independent, and one of which is byte-order dependent? +# +# compacted data +0 short 0x1fff application/octet-stream +0 string \377\037 application/octet-stream +# huf output +0 short 0145405 application/octet-stream + +# Squeeze and Crunch... +# These numbers were gleaned from the Unix versions of the programs to +# handle these formats. Note that I can only uncrunch, not crunch, and +# I didn't have a crunched file handy, so the crunch number is untested. +# Keith Waclena +#0 leshort 0x76FF squeezed data (CP/M, DOS) +#0 leshort 0x76FE crunched data (CP/M, DOS) + +# Freeze +#0 string \037\237 Frozen file 2.1 +#0 string \037\236 Frozen file 1.0 (or gzip 0.5) + +# lzh? +#0 string \037\240 LZH compressed data + +#------------------------------------------------------------------------------ +# frame: file(1) magic for FrameMaker files +# +# This stuff came on a FrameMaker demo tape, most of which is +# copyright, but this file is "published" as witness the following: +# +0 string \ +# and Anna Shergold +# +0 string \ +0 string \14 byte 12 (OS/2 1.x format) +#>14 byte 64 (OS/2 2.x format) +#>14 byte 40 (Windows 3.x format) +#0 string IC icon +#0 string PI pointer +#0 string CI color icon +#0 string CP color pointer +#0 string BA bitmap array + + +#------------------------------------------------------------------------------ +# lisp: file(1) magic for lisp programs +# +# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string ;; text/plain 8bit +# Emacs 18 - this is always correct, but not very magical. +0 string \012( application/x-elc +# Emacs 19 +0 string ;ELC\023\000\000\000 application/x-elc + +#------------------------------------------------------------------------------ +# mail.news: file(1) magic for mail and news +# +# There are tests to ascmagic.c to cope with mail and news. +0 string Relay-Version: message/rfc822 7bit +0 string #!\ rnews message/rfc822 7bit +0 string N#!\ rnews message/rfc822 7bit +0 string Forward\ to message/rfc822 7bit +0 string Pipe\ to message/rfc822 7bit +0 string Return-Path: message/rfc822 7bit +0 string Path: message/news 8bit +0 string Xref: message/news 8bit +0 string From: message/rfc822 7bit +0 string Article message/news 8bit +#------------------------------------------------------------------------------ +# msword: file(1) magic for MS Word files +# +# Contributor claims: +# Reversed-engineered MS Word magic numbers +# + +0 string \376\067\0\043 application/msword +0 string \333\245-\0\0\0 application/msword + +# disable this one because it applies also to other +# Office/OLE documents for which msword is not correct. See PR#2608. +#0 string \320\317\021\340\241\261 application/msword + + + +#------------------------------------------------------------------------------ +# printer: file(1) magic for printer-formatted files +# + +# PostScript +0 string %! application/postscript +0 string \004%! application/postscript + +# Acrobat +# (due to clamen@cs.cmu.edu) +0 string %PDF- application/pdf + +#------------------------------------------------------------------------------ +# sc: file(1) magic for "sc" spreadsheet +# +38 string Spreadsheet application/x-sc + +#------------------------------------------------------------------------------ +# tex: file(1) magic for TeX files +# +# XXX - needs byte-endian stuff (big-endian and little-endian DVI?) +# +# From + +# Although we may know the offset of certain text fields in TeX DVI +# and font files, we can't use them reliably because they are not +# zero terminated. [but we do anyway, christos] +0 string \367\002 application/x-dvi +#0 string \367\203 TeX generic font data +#0 string \367\131 TeX packed font data +#0 string \367\312 TeX virtual font data +#0 string This\ is\ TeX, TeX transcript text +#0 string This\ is\ METAFONT, METAFONT transcript text + +# There is no way to detect TeX Font Metric (*.tfm) files without +# breaking them apart and reading the data. The following patterns +# match most *.tfm files generated by METAFONT or afm2tfm. +#2 string \000\021 TeX font metric data +#2 string \000\022 TeX font metric data +#>34 string >\0 (%s) + +# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) +#0 string \\input\ texinfo Texinfo source text +#0 string This\ is\ Info\ file GNU Info text + +# correct TeX magic for Linux (and maybe more) +# from Peter Tobias (tobias@server.et-inf.fho-emden.de) +# +0 leshort 0x02f7 application/x-dvi + +# RTF - Rich Text Format +0 string {\\rtf application/rtf + +#------------------------------------------------------------------------------ +# animation: file(1) magic for animation/movie formats +# +# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) +# MPEG file +0 string \000\000\001\263 video/mpeg +# +# The contributor claims: +# I couldn't find a real magic number for these, however, this +# -appears- to work. Note that it might catch other files, too, +# so BE CAREFUL! +# +# Note that title and author appear in the two 20-byte chunks +# at decimal offsets 2 and 22, respectively, but they are XOR'ed with +# 255 (hex FF)! DL format SUCKS BIG ROCKS. +# +# DL file version 1 , medium format (160x100, 4 images/screen) +0 byte 1 video/unknown +0 byte 2 video/unknown +# Quicktime video, from Linus Walleij +# from Apple quicktime file format documentation. +4 string moov video/quicktime +4 string mdat video/quicktime + diff --git a/rubbos/app/apache2/conf/mime.types b/rubbos/app/apache2/conf/mime.types new file mode 100644 index 00000000..1ae00972 --- /dev/null +++ b/rubbos/app/apache2/conf/mime.types @@ -0,0 +1,1351 @@ +# 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 . +# +# MIME type Extensions +# 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/cals-1840 +application/ccxml+xml ccxml +# application/cea-2018+xml +# application/cellml+xml +# 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/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/fastinfoset +# application/fastsoap +# application/fits +application/font-tdpfr pfr +# 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/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/kpml-request+xml +# application/kpml-response+xml +application/lost+xml lostxml +application/mac-binhex40 hqx +application/mac-compactpro cpt +# application/macwriteii +application/marc mrc +application/mathematica ma nb mb +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/mikey +# application/moss-keys +# application/moss-signature +# application/mosskey-data +# application/mosskey-request +application/mp4 mp4s +# application/mpeg4-generic +# application/mpeg4-iod +# application/mpeg4-iod-xmt +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 lha lrf lzh so iso dmg dist distz pkg bpk dump elc deploy +application/oda oda +application/oebps-package+xml opf +application/ogg ogx +application/onenote onetoc onetoc2 onetmp onepkg +# 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/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/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/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/ssml+xml ssml +# application/timestamp-query +# application/timestamp-reply +# application/tve-trigger +# application/ulpfec +# 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.partial-upload +application/vnd.adobe.xdp+xml xdp +application/vnd.adobe.xfdf xfdf +# application/vnd.aether.imp +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.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.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.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.car car +application/vnd.curl.pcurl pcurl +# application/vnd.cybank +application/vnd.data-vision.rdz rdz +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.dvb.esgcontainer +# application/vnd.dvb.ipdcdftnotifaccess +# application/vnd.dvb.ipdcesgaccess +# 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.dxr +application/vnd.dynageo geo +# 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.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.iptvueprofile+xml +# application/vnd.etsi.mcid+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.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 x3d +# 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.intercon.formnet xpw xpx +# 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.packageitem+xml +application/vnd.ipunplugged.rcprofile rcprofile +application/vnd.irepository.package+xml irp +application/vnd.is-xpr xpr +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.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-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-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-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.ncd.control +# application/vnd.ncd.reference +# application/vnd.nervana +# application/vnd.netfpx +application/vnd.neurolanguage.nlu nlu +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.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 otm +application/vnd.oasis.opendocument.text-template ott +application/vnd.oasis.opendocument.text-web oth +# application/vnd.obn +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.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.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.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.osa.netdeploy +# application/vnd.osgi.bundle +application/vnd.osgi.dp dp +# 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.rapid +application/vnd.realvnc.bed bed +application/vnd.recordare.musicxml mxl +application/vnd.recordare.musicxml+xml musicxml +# application/vnd.renlearn.rlprint +application/vnd.rim.cod cod +application/vnd.rn-realmedia rm +application/vnd.route66.link66+xml link66 +# 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 +application/vnd.stardivision.writer vor +application/vnd.stardivision.writer-global sgl +# 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.tmobile-livetv tmo +application/vnd.trid.tpt tpt +application/vnd.triscape.mxs mxs +application/vnd.trueapp tra +# application/vnd.truedoc +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.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.smaf-audio saf +application/vnd.yamaha.smaf-phrase spf +application/vnd.yellowriver-custom-menu cmp +application/vnd.zul zir zirz +application/vnd.zzazz.deck+xml zaz +application/voicexml+xml vxml +# application/watcherinfo+xml +# application/whoispp-query +# application/whoispp-response +application/winhlp hlp +# application/wita +# application/wordperfect5.1 +application/wsdl+xml wsdl +application/wspolicy+xml wspolicy +application/x-abiword abw +application/x-ace-compressed ace +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-bzip bz +application/x-bzip2 bz2 boz +application/x-cdlink vcd +application/x-chat chat +application/x-chess-pgn pgn +# application/x-compress +application/x-cpio cpio +application/x-csh csh +application/x-debian-package deb udeb +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-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-vfont +application/x-futuresplash spl +application/x-gnumeric gnumeric +application/x-gtar gtar +# application/x-gzip +application/x-hdf hdf +application/x-java-jnlp-file jnlp +application/x-latex latex +application/x-mobipocket-ebook prc mobi +application/x-ms-application application +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 +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-pkcs12 p12 pfx +application/x-pkcs7-certificates p7b spc +application/x-pkcs7-certreqresp p7r +application/x-rar-compressed rar +application/x-sh sh +application/x-shar shar +application/x-shockwave-flash swf +application/x-silverlight-app xap +application/x-stuffit sit +application/x-stuffitx sitx +application/x-sv4cpio sv4cpio +application/x-sv4crc sv4crc +application/x-tar tar +application/x-tcl tcl +application/x-tex tex +application/x-tex-tfm tfm +application/x-texinfo texinfo texi +application/x-ustar ustar +application/x-wais-source src +application/x-x509-ca-cert der crt +application/x-xfig fig +application/x-xpinstall xpi +# application/x400-bp +# application/xcap-att+xml +# application/xcap-caps+xml +# 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/xslt+xml xslt +application/xspf+xml xspf +application/xv+xml mxml xhvml xvml xvm +application/zip zip +# 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/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/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/ilbc +# audio/l16 +# audio/l20 +# audio/l24 +# audio/l8 +# audio/lpc +audio/midi mid midi kar rmi +# audio/mobile-xmf +audio/mp4 mp4a +# audio/mp4a-latm +# audio/mpa +# audio/mpa-robust +audio/mpeg mpga mp2 mp2a mp3 m2a m3a +# audio/mpeg4-generic +audio/ogg oga ogg spx +# 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/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.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.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.sealedmedia.softseal.mpeg +# audio/vnd.vmx.cvsd +# audio/vorbis +# audio/vorbis-config +audio/x-aac aac +audio/x-aiff aif aiff aifc +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-wav wav +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/naplps +image/png png +image/prs.btif btif +# image/prs.pti +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.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.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/x-cmu-raster ras +image/x-cmx cmx +image/x-freehand fh fhc fh4 fh5 fh7 +image/x-icon ico +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-xbitmap xbm +image/x-xpixmap xpm +image/x-xwindowdump xwd +# message/cpim +# message/delivery-status +# message/disposition-notification +# message/example +# message/external-body +# 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.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 +# 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/calendar ics ifb +text/css css +text/csv csv +# text/directory +# text/dns +# text/ecmascript +# text/enriched +# text/example +text/html html htm +# text/javascript +# 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/ulpfec +text/uri-list uri uris urls +# 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.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-pascal p pas +text/x-java-source java +text/x-setext etx +text/x-uuencode uu +text/x-vcalendar vcs +text/x-vcard vcf +# text/xml +# text/xml-external-parsed-entity +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/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.dlna.mpeg-tts +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.vivo viv +video/x-f4v f4v +video/x-fli fli +video/x-flv flv +video/x-m4v m4v +video/x-ms-asf asf asx +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 +x-conference/x-cooltalk ice diff --git a/rubbos/app/apache2/conf/ssl-std.conf b/rubbos/app/apache2/conf/ssl-std.conf new file mode 100644 index 00000000..691b6ed5 --- /dev/null +++ b/rubbos/app/apache2/conf/ssl-std.conf @@ -0,0 +1,246 @@ +# +# 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 +# +# 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. +# + +# +# Pseudo Random Number Generator (PRNG): +# Configure one or more sources to seed the PRNG of the SSL library. +# The seed data should be of good random quality. +# WARNING! On some platforms /dev/random blocks if not enough entropy +# is available. This means you then cannot use the /dev/random device +# because it would lead to very long connection times (as long as +# it requires to make more entropy available). But usually those +# platforms additionally provide a /dev/urandom device which doesn't +# block. So, if available, use this one instead. Read the mod_ssl User +# Manual for more details. +# +# Note: This must come before the container to support +# starting without SSL on platforms with no /dev/random equivalent +# but a statically compiled-in mod_ssl. +# +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin +#SSLRandomSeed startup file:/dev/random 512 +#SSLRandomSeed startup file:/dev/urandom 512 +#SSLRandomSeed connect file:/dev/random 512 +#SSLRandomSeed connect file:/dev/urandom 512 + + + +# +# When we also provide SSL we have to listen to the +# 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 443 + +## +## SSL Global Context +## +## All SSL configuration in this context applies both to +## the main server and all SSL-enabled virtual hosts. +## + +# +# Some MIME-types for downloading Certificates and CRLs +# +AddType application/x-x509-ca-cert .crt +AddType application/x-pkcs7-crl .crl + +# Pass Phrase Dialog: +# Configure the pass phrase gathering process. +# The filtering dialog program (`builtin' is a internal +# terminal dialog) has to provide the pass phrase on stdout. +SSLPassPhraseDialog builtin + +# Inter-Process Session Cache: +# Configure the SSL Session Cache: First the mechanism +# to use and second the expiring timeout (in seconds). +#SSLSessionCache none +#SSLSessionCache shmht:/bottlenecks/rubbos/app/apache2/logs/ssl_scache(512000) +#SSLSessionCache shmcb:/bottlenecks/rubbos/app/apache2/logs/ssl_scache(512000) +SSLSessionCache dbm:/bottlenecks/rubbos/app/apache2/logs/ssl_scache +SSLSessionCacheTimeout 300 + +# Semaphore: +# Configure the path to the mutual exclusion semaphore the +# SSL engine uses internally for inter-process synchronization. +SSLMutex file:/bottlenecks/rubbos/app/apache2/logs/ssl_mutex + +## +## SSL Virtual Host Context +## + + + +# General setup for the virtual host +DocumentRoot "/bottlenecks/rubbos/app/apache2/htdocs" +ServerName www.example.com:443 +ServerAdmin you@example.com +ErrorLog /bottlenecks/rubbos/app/apache2/logs/error_log +TransferLog /bottlenecks/rubbos/app/apache2/logs/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 +# pass phrase. Note that a kill -HUP will prompt again. Keep +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt/server.crt +#SSLCertificateFile /bottlenecks/rubbos/app/apache2/conf/ssl.crt/server-dsa.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 /bottlenecks/rubbos/app/apache2/conf/ssl.key/server.key +#SSLCertificateKeyFile /bottlenecks/rubbos/app/apache2/conf/ssl.key/server-dsa.key + +# Server Certificate Chain: +# Point SSLCertificateChainFile at a file containing the +# concatenation of PEM encoded CA certificates which form the +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt/ca.crt + +# Certificate Authority (CA): +# Set the CA certificate verification path where to find CA +# certificates for client authentication or alternatively one +# huge file containing all of them (file must be PEM encoded) +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt +#SSLCACertificateFile /bottlenecks/rubbos/app/apache2/conf/ssl.crt/ca-bundle.crt + +# Certificate Revocation Lists (CRL): +# Set the CA revocation path where to find CA CRLs for client +# authentication or alternatively one huge file containing all +# of them (file must be PEM encoded) +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crl +#SSLCARevocationFile /bottlenecks/rubbos/app/apache2/conf/ssl.crl/ca-bundle.crl + +# Client Authentication (Type): +# Client certificate verification type and depth. Types are +# none, optional, require and optional_no_ca. Depth is a +# number which specifies how deeply to verify the certificate +# issuer chain before deciding the certificate is not valid. +#SSLVerifyClient require +#SSLVerifyDepth 10 + +# Access Control: +# With SSLRequire you can do per-directory access control based +# on arbitrary complex boolean expressions containing server +# variable checks and other lookup directives. The syntax is a +# mixture between C and Perl. See the mod_ssl documentation +# for more details. +# +#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ +# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ +# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ +# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ +# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ +# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ +# + +# SSL Engine Options: +# Set various options for the SSL engine. +# o FakeBasicAuth: +# Translate the client X.509 into a Basic Authorisation. This means that +# the standard Auth/DBMAuth methods can be used for access control. The +# user name is the `one line' version of the client's X.509 certificate. +# Note that no password is obtained from the user. Every entry in the user +# file needs this password: `xxj31ZMTZzkVA'. +# o ExportCertData: +# This exports two additional environment variables: SSL_CLIENT_CERT and +# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the +# server (always existing) and the client (only existing when client +# authentication is used). This can be used to import the certificates +# into CGI scripts. +# o StdEnvVars: +# This exports the standard SSL/TLS related `SSL_*' environment variables. +# Per default this exportation is switched off for performance reasons, +# because the extraction step is an expensive operation and is usually +# useless for serving static content. So one usually enables the +# exportation for CGI and SSI requests only. +# o CompatEnvVars: +# This exports obsolete environment variables for backward compatibility +# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this +# to provide compatibility to existing CGI scripts. +# o StrictRequire: +# This denies access when "SSLRequireSSL" or "SSLRequire" applied even +# under a "Satisfy any" situation, i.e. when it applies access is denied +# and no other module can change it. +# o OptRenegotiate: +# This enables optimized SSL connection renegotiation handling when SSL +# directives are used in per-directory context. +#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire + + SSLOptions +StdEnvVars + + + SSLOptions +StdEnvVars + + +# SSL Protocol Adjustments: +# The safe and default but still SSL/TLS standard compliant shutdown +# approach is that mod_ssl sends the close notify alert but doesn't wait for +# the close notify alert from client. When you need a different shutdown +# 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 +# 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. +# o ssl-accurate-shutdown: +# This forces an accurate shutdown when the connection is closed, i.e. a +# SSL close notify alert is send and mod_ssl waits for the close notify +# alert of the client. This is 100% SSL/TLS standard compliant, but in +# practice often causes hanging connections with brain-dead browsers. Use +# this only for browsers where you know that their SSL implementation +# works correctly. +# Notice: Most problems of broken clients are also related to the HTTP +# keep-alive facility, so you usually additionally want to disable +# keep-alive for those clients, too. Use variable "nokeepalive" for this. +# 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. +SetEnvIf User-Agent ".*MSIE.*" \ + 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 /bottlenecks/rubbos/app/apache2/logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + + + + diff --git a/rubbos/app/apache2/conf/ssl.conf b/rubbos/app/apache2/conf/ssl.conf new file mode 100644 index 00000000..691b6ed5 --- /dev/null +++ b/rubbos/app/apache2/conf/ssl.conf @@ -0,0 +1,246 @@ +# +# 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 +# +# 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. +# + +# +# Pseudo Random Number Generator (PRNG): +# Configure one or more sources to seed the PRNG of the SSL library. +# The seed data should be of good random quality. +# WARNING! On some platforms /dev/random blocks if not enough entropy +# is available. This means you then cannot use the /dev/random device +# because it would lead to very long connection times (as long as +# it requires to make more entropy available). But usually those +# platforms additionally provide a /dev/urandom device which doesn't +# block. So, if available, use this one instead. Read the mod_ssl User +# Manual for more details. +# +# Note: This must come before the container to support +# starting without SSL on platforms with no /dev/random equivalent +# but a statically compiled-in mod_ssl. +# +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin +#SSLRandomSeed startup file:/dev/random 512 +#SSLRandomSeed startup file:/dev/urandom 512 +#SSLRandomSeed connect file:/dev/random 512 +#SSLRandomSeed connect file:/dev/urandom 512 + + + +# +# When we also provide SSL we have to listen to the +# 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 443 + +## +## SSL Global Context +## +## All SSL configuration in this context applies both to +## the main server and all SSL-enabled virtual hosts. +## + +# +# Some MIME-types for downloading Certificates and CRLs +# +AddType application/x-x509-ca-cert .crt +AddType application/x-pkcs7-crl .crl + +# Pass Phrase Dialog: +# Configure the pass phrase gathering process. +# The filtering dialog program (`builtin' is a internal +# terminal dialog) has to provide the pass phrase on stdout. +SSLPassPhraseDialog builtin + +# Inter-Process Session Cache: +# Configure the SSL Session Cache: First the mechanism +# to use and second the expiring timeout (in seconds). +#SSLSessionCache none +#SSLSessionCache shmht:/bottlenecks/rubbos/app/apache2/logs/ssl_scache(512000) +#SSLSessionCache shmcb:/bottlenecks/rubbos/app/apache2/logs/ssl_scache(512000) +SSLSessionCache dbm:/bottlenecks/rubbos/app/apache2/logs/ssl_scache +SSLSessionCacheTimeout 300 + +# Semaphore: +# Configure the path to the mutual exclusion semaphore the +# SSL engine uses internally for inter-process synchronization. +SSLMutex file:/bottlenecks/rubbos/app/apache2/logs/ssl_mutex + +## +## SSL Virtual Host Context +## + + + +# General setup for the virtual host +DocumentRoot "/bottlenecks/rubbos/app/apache2/htdocs" +ServerName www.example.com:443 +ServerAdmin you@example.com +ErrorLog /bottlenecks/rubbos/app/apache2/logs/error_log +TransferLog /bottlenecks/rubbos/app/apache2/logs/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 +# pass phrase. Note that a kill -HUP will prompt again. Keep +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt/server.crt +#SSLCertificateFile /bottlenecks/rubbos/app/apache2/conf/ssl.crt/server-dsa.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 /bottlenecks/rubbos/app/apache2/conf/ssl.key/server.key +#SSLCertificateKeyFile /bottlenecks/rubbos/app/apache2/conf/ssl.key/server-dsa.key + +# Server Certificate Chain: +# Point SSLCertificateChainFile at a file containing the +# concatenation of PEM encoded CA certificates which form the +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt/ca.crt + +# Certificate Authority (CA): +# Set the CA certificate verification path where to find CA +# certificates for client authentication or alternatively one +# huge file containing all of them (file must be PEM encoded) +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crt +#SSLCACertificateFile /bottlenecks/rubbos/app/apache2/conf/ssl.crt/ca-bundle.crt + +# Certificate Revocation Lists (CRL): +# Set the CA revocation path where to find CA CRLs for client +# authentication or alternatively one huge file containing all +# of them (file must be PEM encoded) +# 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 /bottlenecks/rubbos/app/apache2/conf/ssl.crl +#SSLCARevocationFile /bottlenecks/rubbos/app/apache2/conf/ssl.crl/ca-bundle.crl + +# Client Authentication (Type): +# Client certificate verification type and depth. Types are +# none, optional, require and optional_no_ca. Depth is a +# number which specifies how deeply to verify the certificate +# issuer chain before deciding the certificate is not valid. +#SSLVerifyClient require +#SSLVerifyDepth 10 + +# Access Control: +# With SSLRequire you can do per-directory access control based +# on arbitrary complex boolean expressions containing server +# variable checks and other lookup directives. The syntax is a +# mixture between C and Perl. See the mod_ssl documentation +# for more details. +# +#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ +# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ +# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ +# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ +# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ +# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ +# + +# SSL Engine Options: +# Set various options for the SSL engine. +# o FakeBasicAuth: +# Translate the client X.509 into a Basic Authorisation. This means that +# the standard Auth/DBMAuth methods can be used for access control. The +# user name is the `one line' version of the client's X.509 certificate. +# Note that no password is obtained from the user. Every entry in the user +# file needs this password: `xxj31ZMTZzkVA'. +# o ExportCertData: +# This exports two additional environment variables: SSL_CLIENT_CERT and +# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the +# server (always existing) and the client (only existing when client +# authentication is used). This can be used to import the certificates +# into CGI scripts. +# o StdEnvVars: +# This exports the standard SSL/TLS related `SSL_*' environment variables. +# Per default this exportation is switched off for performance reasons, +# because the extraction step is an expensive operation and is usually +# useless for serving static content. So one usually enables the +# exportation for CGI and SSI requests only. +# o CompatEnvVars: +# This exports obsolete environment variables for backward compatibility +# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this +# to provide compatibility to existing CGI scripts. +# o StrictRequire: +# This denies access when "SSLRequireSSL" or "SSLRequire" applied even +# under a "Satisfy any" situation, i.e. when it applies access is denied +# and no other module can change it. +# o OptRenegotiate: +# This enables optimized SSL connection renegotiation handling when SSL +# directives are used in per-directory context. +#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire + + SSLOptions +StdEnvVars + + + SSLOptions +StdEnvVars + + +# SSL Protocol Adjustments: +# The safe and default but still SSL/TLS standard compliant shutdown +# approach is that mod_ssl sends the close notify alert but doesn't wait for +# the close notify alert from client. When you need a different shutdown +# 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 +# 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. +# o ssl-accurate-shutdown: +# This forces an accurate shutdown when the connection is closed, i.e. a +# SSL close notify alert is send and mod_ssl waits for the close notify +# alert of the client. This is 100% SSL/TLS standard compliant, but in +# practice often causes hanging connections with brain-dead browsers. Use +# this only for browsers where you know that their SSL implementation +# works correctly. +# Notice: Most problems of broken clients are also related to the HTTP +# keep-alive facility, so you usually additionally want to disable +# keep-alive for those clients, too. Use variable "nokeepalive" for this. +# 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. +SetEnvIf User-Agent ".*MSIE.*" \ + 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 /bottlenecks/rubbos/app/apache2/logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + + + + diff --git a/rubbos/app/apache2/conf/workers.properties b/rubbos/app/apache2/conf/workers.properties new file mode 100644 index 00000000..df4134bd --- /dev/null +++ b/rubbos/app/apache2/conf/workers.properties @@ -0,0 +1,215 @@ + +# workers.properties - +# +# This file provides jk derived plugins with the needed information to +# connect to the different tomcat workers. Note that the distributed +# version of this file requires modification before it is usable by a +# plugin. +# +# As a general note, the characters $( and ) are used internally to define +# macros. Do not use them in your own configuration!!! +# +# Whenever you see a set of lines such as: +# x=value +# y=$(x)\something +# +# the final value for y will be value\something +# +# Normaly all you will need to do is un-comment and modify the first three +# properties, i.e. workers.tomcat_home, workers.java_home and ps. +# Most of the configuration is derived from these. +# +# When you are done updating workers.tomcat_home, workers.java_home and ps +# you should have 3 workers configured: +# +# - An ajp12 worker that connects to localhost:8007 +# - An ajp13 worker that connects to localhost:8009 +# - A jni inprocess worker. +# - A load balancer worker +# +# However by default the plugins will only use the ajp12 worker. To have +# the plugins use other workers you should modify the worker.list property. +# +# + +# OPTIONS ( very important for jni mode ) + +# +# workers.tomcat_home should point to the location where you +# installed tomcat. This is where you have your conf, webapps and lib +# directories. +# +#workers.tomcat_home=/mnt/elba/rubbos/apache-tomcat-5.5.17 +workers.tomcat_home=/bottlenecks/rubbos/app/apache-tomcat-5.5.17 + +# +# workers.java_home should point to your Java installation. Normally +# you should have a bin and lib directories beneath it. +# +#workers.java_home=/mnt/elba/rubbos/jdk1.6.0_27 +workers.java_home=/bottlenecks/rubbos/app/jdk1.6.0_27 + +# +# You should configure your environment slash... ps=\ on NT and / on UNIX +# and maybe something different elsewhere. +# +ps=/ + +# +#------ ADVANCED MODE ------------------------------------------------ +#--------------------------------------------------------------------- +# + +# +#------ DEFAULT worket list ------------------------------------------ +#--------------------------------------------------------------------- +# +# +# The workers that your plugins should create and work with +# +# Add 'inprocess' if you want JNI connector +worker.list=worker1 +# , inprocess + + +worker.TOMCAT1.port=8009 +worker.TOMCAT1.host=node8 +worker.TOMCAT1.type=ajp13 +worker.TOMCAT1.lbfactor=1 + + +# +#------ DEFAULT ajp12 WORKER DEFINITION ------------------------------ +#--------------------------------------------------------------------- +# + +# +# Defining a worker named ajp12 and of type ajp12 +# Note that the name and the type do not have to match. +# +#worker.ajp12.port=8007 +#worker.ajp12.host=localhost +#worker.ajp12.type=ajp12 +# +# Specifies the load balance factor when used with +# a load balancing worker. +# Note: +# ----> lbfactor must be > 0 +# ----> Low lbfactor means less work done by the worker. +#worker.ajp12.lbfactor=1 + +# +#------ DEFAULT ajp13 WORKER DEFINITION ------------------------------ +#--------------------------------------------------------------------- +# + +# +# Defining a worker named ajp13 and of type ajp13 +# Note that the name and the type do not have to match. +# +#worker.ajp13.port=8009 +#worker.ajp13.host=node60.rubbostest.Infosphere.emulab.net +#worker.ajp13.type=ajp13 +# +# Specifies the load balance factor when used with +# a load balancing worker. +# Note: +# ----> lbfactor must be > 0 +# ----> Low lbfactor means less work done by the worker. +#worker.ajp13.lbfactor=1 + +# +# Specify the size of the open connection cache. +#worker.ajp13.cachesize + +# +#------ DEFAULT LOAD BALANCER WORKER DEFINITION ---------------------- +#--------------------------------------------------------------------- +# + +# +# The router (type lb) workers perform wighted round-robin +# load balancing with sticky sessions. +# Note: +# ----> If a worker dies, the load balancer will check its state +# once in a while. Until then all work is redirected to peer +# workers. +worker.worker1.type=lb +worker.worker1.balance_workers=TOMCAT1 +worker.worker1.sticky_session=True +worker.worker1.method=Session + +# +#------ DEFAULT JNI WORKER DEFINITION--------------------------------- +#--------------------------------------------------------------------- +# + +# +# Defining a worker named inprocess and of type jni +# Note that the name and the type do not have to match. +# +worker.inprocess.type=jni + +# +#------ CLASSPATH DEFINITION ----------------------------------------- +#--------------------------------------------------------------------- +# + +# +# Additional class path components. +# +worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar + +# +# Setting the command line for tomcat. +# Note: The cmd_line string may not contain spaces. +# +worker.inprocess.cmd_line=start + +# Not needed, but can be customized. +#worker.inprocess.cmd_line=-config +#worker.inprocess.cmd_line=$(workers.tomcat_home)$(ps)conf$(ps)server.xml +#worker.inprocess.cmd_line=-home +#worker.inprocess.cmd_line=$(workers.tomcat_home) + +# +# The JVM that we are about to use +# +# This is for Java2 +# +# Windows +#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll +# IBM JDK1.3 +#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)libjvm.so +# Unix - Sun VM or blackdown +#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)libjvm.so +worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)server$(ps)libjvm.so + +# +# And this is for jdk1.1.X +# +#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)bin$(ps)javai.dll + + +# +# Setting the place for the stdout and stderr of tomcat +# +worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout +worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr + +# +# Setting the tomcat.home Java property +# +#worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home) + +# +# Java system properties +# +# worker.inprocess.sysprops=java.compiler=NONE +# worker.inprocess.sysprops=myprop=mypropvalue + +# +# Additional path components. +# +# worker.inprocess.ld_path=d:$(ps)SQLLIB$(ps)bin +# diff --git a/rubbos/app/apache2/error/HTTP_BAD_GATEWAY.html.var b/rubbos/app/apache2/error/HTTP_BAD_GATEWAY.html.var new file mode 100644 index 00000000..c0a70af6 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_BAD_GATEWAY.html.var @@ -0,0 +1,290 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Proxy server obdrel od nadazenho + serveru chybnou odpov. + + + + + + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der Proxy-Server erhielt eine fehlerhafte Antwort + eines übergeordneten Servers oder Proxies. + + + + + + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The proxy server received an invalid + response from an upstream server. + + + + + + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El servidor origen recibió información + inválida por parte del servidor destino. + + + + + + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Le serveur proxy a reçu une réponse + incorrecte de la part d'un serveur supérieur. + + + + + + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Fuair an seachfhreastalaí freagairt neamhbhailí + ó freastalaí thuasthrutha. + + + + + + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il server proxy ha ricevuto una risposta + non valida dal server precedente. + + + + + + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%W%m%/%7%5!<%P$O>eN.%5!<%P$+$iIT@5$J1~Ez$r + + + + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + Ͻ κ ߸ ޾ҽϴ. + + + + + + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De proxy server heeft een ongeldig + antwoord ontvangen van een gecontacteerde server. + + + + + + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Serwer otrzyma nieprawidow odpowied + od kolejnego serwera. + + + + + + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O servidor proxy recebeu uma resposta + inválida do servidor destino. + + + + + + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Serverul proxy a primit un raspuns invalid + de la serverul precedent. + + + + + + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + . + + + + + + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Proxyservern mottog ett felaktigt svar från + en tidigare server. + + + + + + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Vekil (proxy) sunucu stbirim (upstream) sunucusundan + anlamsız bir cevap aldı. + + + + + + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_BAD_REQUEST.html.var b/rubbos/app/apache2/error/HTTP_BAD_REQUEST.html.var new file mode 100644 index 00000000..d282482b --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_BAD_REQUEST.html.var @@ -0,0 +1,213 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + V prohle (nebo proxy server) vyslal poadavek, + ktermu tento server nerozuml. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Ihr Browser (oder Proxy) hat eine ungültige Anfrage + gesendet, die vom Server nicht beantwortet werden kann. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + Your browser (or proxy) sent a request that + this server could not understand. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El navegador ha solicitado una operación + que no puede ser procesada por el servidor. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Votre navigateur (ou votre proxy) a envoyé + une demande que ce serveur n'a pas comprise. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Seol do chuid brabhsálaí (nó + seachfhreastalaí) freagairt nárbh fhéidir leis an + fhreastalaí seo a thuisceant. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il tuo browser (o il proxy) ha inviato a + questo server una richiesta incomprensibile. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B$*;H$$$N%V%i%&%6(B ($B$^$?$O%W%m%/%7(B) + $B$,!"%5!<%P$NM}2r$G$-$J$$%j%/%(%9%H$rAw?.$7$^$7$?!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + Ǵ Ͻð + ó ߸ û ½ϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Uw browser (of proxy) stuurde een vraag die + deze server niet kon begrijpen. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Twoja przegldarka (lub serwer poredniczcy) wysa danie, + ktrego ten serwer nie potrafi obsuy. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + Seu "browser" (ou o servidor proxy) enviou uma + requisição inválida ao servidor. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Browserul (sau proxy-ul) dumneavoastra a trimis + serverului o cerere ce nu poate fi procesata. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + ( ) + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Din webbläsare eller proxy skickade en förfrågan + som denna server inte kunde förstå. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Gezgininiz (veya vekil sunucunuz) bu sunucunun + tanımadığı + bir istemde bulundu. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_FORBIDDEN.html.var b/rubbos/app/apache2/error/HTTP_FORBIDDEN.html.var new file mode 100644 index 00000000..4958148e --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_FORBIDDEN.html.var @@ -0,0 +1,372 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + + + Nemte prvo pro pstup do poadovanho adrese. Bu neexistuje dn + dokument s obsahem (tzv. index), nebo je adres chrnn proti ten. + + + + Nemte prvo pro pstup k poadovanmu objektu. + Bu je chrnn proti ten, nebo nen serverem iteln. + + + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + + + Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. + Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis + ist zugriffsgeschützt. + + + + Der Zugriff auf das angeforderte Objekt ist nicht möglich. + Entweder kann es vom Server nicht gelesen werden oder es + ist zugriffsgeschützt. + + + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + + + You don't have permission to access the requested directory. + There is either no index document or the directory is read-protected. + + + + You don't have permission to access the requested object. + It is either read-protected or not readable by the server. + + + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + + + 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 de accesar al objeto solicitado. + Existe la posibilidad de que este protegido contra + lectura o que no haya podido ser leido por el servidor. + + + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + + + Vous n'avez pas le droit d'accéder au répertoire + demandé. Soit il n'y a pas de document index soit le répertoire + est protégé. + + + + Vous n'avez pas le droit d'accéder à l'objet + demandé. Soit celui-ci est protégé, soit il ne peut + être lu par le serveur. + + + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + + + 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. + + + + 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í. + + + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + + + Non disponi dei permessi necessari per accedere alla + directory richiesta oppure non esiste il documento indice. + + + + Non disponi dei permessi necessari per accedere all'oggetto + richiesto, oppure l'oggetto non può essere letto dal server. + + + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + + + $BMW5a$5$l$?%G%#%l%/%H%j$X$N%"%/%;%98"8B$,$"$j$^$;$s!#(B + $B%$%s%G%C%/%9%I%-%e%a%s%H$,B8:_$7$J$$$+!"(B + $B%G%#%l%/%H%j$NFI$_9~$_$,5v2D$5$l$F$$$^$;$s!#(B + + + + $BMW5a$5$l$?%*%V%8%'%/%H$X$N%"%/%;%98"$,$"$j$^$;$s!#(B + $BFI$_9~$_$,5v2D$5$l$F$$$J$$$+!"(B + $B%5!<%P$,FI$_9~$_$K<:GT$7$?$+$G$7$g$&!#(B + + + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + + + û 丮 ִ ϴ. + 丮 ù ų ƴϸ б ȣ Ǿ ֽϴ. + + + + û ü ִ ϴ. + б ȣ Ǿ ְų Ǿ ֽϴ. + + + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + + + U hebt niet de toestemming om toegang te krijgen tot de gevraagde map. + Er is of wel geen index document of de map is beveiligd tegen lezen. + + + + U hebt niet de toestemming om toegang te krijgen tot de gevraagde map. + Die is ofwel beveiligd tegen lezen of onleesbaar door de server. + + + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + + + Nie masz prawa dostpu do danego katalogu. W katalogu nie + ma indeksu lub katalog jest zabezpieczony przed odczytem. + + + + Nie masz dostpu do danego obiektu. Jest on zabezpieczony + przed odczytem lub nie moe by odczytany przez serwer. + + + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + + + Você não tem permissão para acessar o + diretório requisitado. + Pode não existir o arquivo de índice ou + o diretório pode estar protegido contra leitura. + + + + Você não tem premissão para acessar o + objeto requisitado. Ele pode estar protegido contra leitura ou + não ser legível pelo servidor. + + + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + + + Nu aveti permisiunea sa accesati directorul cerut. + Nu este nici un document index sau directorul este protejat la citire. + + + + Nu aveti permisiunea sa accesati obiectul cerut. + Este protejat la citire sau nu poate fi citit de server. + + + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + + . + , . + + + + . + , . + + + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + + + Du har inte tillräckliga rättigheter för att få + tillgång till den önskade katalogen. Det existerar inget + indexdokument eller så är katalogen lässkyddad. + + + + Du har inte tillräckliga rättigheter för att få + tillgång till det önskade objektet. Objektet är + lässkyddat eller inte läsbart för servern. + + + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + + + Talep ettiğiniz dizine erişim izniniz yok. + Ya belirte dokman yok, ya da dizin okumaya karşı korumalı. + + + + Talep ettiğiniz dizine erişim izniniz yok. + Dizin, ya okumaya karşı korumalı, ya da sunucu taraf?ndan + okunamıyor. + + + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_GONE.html.var b/rubbos/app/apache2/error/HTTP_GONE.html.var new file mode 100644 index 00000000..65aa644e --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_GONE.html.var @@ -0,0 +1,422 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Poadovan URL ji nen na tomto serveru k dispozici, ani nen k dispozici + dn adresa k pesmrovn. + + + + Informujte, prosm, autora + ">odkazujc + strnky, e odkaz je zastaral. + + + + Pokud jste nsledovali odkaz z ciz strnky, kontaktujte, prosm, + jejho autora. + + + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der angeforderte URL existiert auf dem Server nicht mehr + und wurde dauerhaft entfernt. + Eine Weiterleitungsadresse ist nicht verfügbar. + + + + Bitte informieren Sie den Autor der + ">verweisenden + Seite, dass der Link nicht mehr aktuell ist. + + + + Falls Sie einem Link von einer anderen Seite gefolgt sind, + informieren Sie bitte den Autor dieser Seite hierüber. + + + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The requested URL is no longer available on this server and there is no + forwarding address. + + + + Please inform the author of the + ">referring + page that the link is outdated. + + + + If you followed a link from a foreign page, please contact the + author of this page. + + + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + Los recursos solicitados ya no están disponibles en + este servidor y no existe una dirección alternativa. + + + + Le solicitamos que comunique al autor de la + ">página referente que el enlace está obsoleto. + + + + Si usted siguió el enlace desde una página externa, + por favor contacte con el autor de esa página. + + + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + L'URL demandée n'est plus accessible sur ce serveur et il + n'y a pas d'adresse de suite. + + + + Nous vous prions d'informer l'auteur de + ">la + page en question que la référence n'est plus actuelle. + + + + Si vous avez suivi une référence issue d'une page autre, + veuillez contacter l'auteur de cette page. + + + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Níl an URL iarraithe ar fáil ar an fhreastalaí seo + a thuilleadh, agus níl aon seoladh nua ann dó. + + + + Cur in úil do úadar an + ">leathanach + thagarthach go bhfuil an nasc as-dáta, le do thoil. + + + + Má leanfá nasc ó leathanach iasachta, téigh i + dteaghmháil le úadar an leathanach sin, le do thoil. + + + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + L'URL richiesto non è più disponibile su questo server + e non esistono indirizzi verso i quali sia possibile inoltrare + la richiesta. + + + + Per favore, informa l'autore della + ">pagina + di provenienza che il link non è più valido. + + + + Se sei arrivato da una pagina esterna, informa l'autore della + pagina di provenienza che il link non è più valido. + + + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $BMW5a$5$l$?(B URL $B$O4{$KK\%5!<%P$G$OMxMQ$G$-$^$;$s$7!"(B + $B0\F0@h$b$o$+$j$^$;$s!#(B + + + + " + >$B;2>H85%Z!<%8(B$B$NCx + + $BB>$N%Z!<%8$+$i$N%j%s%/$rC)$C$F$-$?>l9g$O!"(B + $B$=$N%Z!<%8$NCx + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û URL ̻ , + ü Ű ٸ URL ʽϴ. + + + + "> + ̿ ּҰ ߸Ǿٰ ˷ֽñ ٶϴ. + + + + ٸ ũ ̴ٸ, ̿ Ͻñ + ٶϴ. + + + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De gevraagde URL is niet langer beschikbaar op deze server en er is geen + doorverwijsadres. + + + + Gelieve aan de auteur van + ">deze pagina + te melden dat deze link niet langer actueel is. + + + + Indien u deze link hebt gekregen van een andere pagina, gelieve + de auteur van deze pagina te contacteren. + + + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Poszukiwany zasb nie jest ju dostpny na tym serwerze i nie + podano nowego adresu zasobu. + + + + Prosimy poinformowa autora + ">referujcej + strony o nieaktualnym linku. + + + + Jeli podye za linkiem z innej strony skontaktuj si z jej + autorem. + + + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + A URL solicitada não está disponível neste servidor + e não existe um endereço alternativo. + + + + Por favor informe o autor da + ">página + referida que a URL está desatualizada. + + + + Se você seguiu um "link" de uma página externa, por favor + entre em contato com o autor desta página e o informe sobre a + mudança do "link". + + + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + URL-ul cerut nu mai este disponibil pe acest server si nu + exista o adresa de inaintare. + + + + Va rugam informati autorul + ">paginii + referite ca link-ul nu mai este de actualitate. + + + + Va rugam contactati autorul acestei pagini daca ati urmat + un link dintr-o pagina externa. + + + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + . + + + + + "> + . + + + + , + . + + + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Den önskade adressen är inte längre tillgänglig hos + denna server och det finns inte någon adress för vidarebefodran. + + + + Vänligen informera författaren bakom + ">den aktuella + sidan att länken är inaktuell. + + + + Om du följde en länk från en extern sida, vänligen + kontakta författaren av den sidan. + + + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Talep ettiğiniz URL bu sunucu zerinde barındırılmıyor + ve herhangi bir yneltme de mevcut değil. + + + + Ltfen + ">referans sayfanın + yazarına, bu bağlantının gncel + olmadığını bildirin. + + + + Yabancı bir sayfadan bu bağlantıyı izlediyseniz, + ltfen szkonusu sayfanın yazarı ile iletişime gein. + + + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var b/rubbos/app/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var new file mode 100644 index 00000000..5459f93b --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_INTERNAL_SERVER_ERROR.html.var @@ -0,0 +1,453 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + + + Nastala vnitn chyba a server nebyl schopen + dokonit V poadavek. + + + + Chybov zprva +
+ + + + Nastala vnitn chyba a server nebyl schopen + dokonit V poadavek. Bu je server + peten, nebo dolo k chyb v CGI skriptu. + + + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + + + Die Anfrage kann nicht beantwortet werden, da im Server + ein interner Fehler aufgetreten ist. + + + + Fehlermeldung: +
+ + + + Die Anfrage kann nicht beantwortet werden, da im Server + ein interner Fehler aufgetreten ist. + Der Server ist entweder überlastet oder ein Fehler in + einem CGI-Skript ist aufgetreten. + + + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + + + The server encountered an internal error and was + unable to complete your request. + + + + Error message: +
+ + + + The server encountered an internal error and was + unable to complete your request. Either the server is + overloaded or there was an error in a CGI script. + + + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + + + El servidor encontro un error interno y fue + imposible completar su solicitud. + + + + Mensaje de error: +
+ + + + 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. + + + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + + + Le serveur a èté victime d'une erreur interne et n'a pas + été capable de faire aboutir votre requête. + + + + Message d'erreur: +
+ + + + 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. + + + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + + + Thit an freastalaí ar earráid inmheánach + agus theip air do chuid iarratais a comhlíonadh. + + + + Teachtaireacht earráide: +
+ + + + 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. + + + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + + + Il server ha generato un errore interno e non è + in grado di soddisfare la richiesta. + + + + Messaggio di errore: +
+ + + + Il server ha generato un errore interno e non è + in grado di soddisfare la richiesta. Il server potrebbe + essere sovraccarico oppure si è verificato un + errore in uno script CGI. + + + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + + + $B%5!<%PFbIt$G>c32$,H/@8$7!"(B + $B%j%/%(%9%H$K1~$($k$3$H$,$G$-$^$;$s$G$7$?!#(B + + + + Error message: +
+ + + + $B%5!<%PFbIt$G>c32$,H/@8$7!"(B + $B%j%/%(%9%H$K1~$($k$3$H$,$G$-$^$;$s$G$7$?!#(B + $B%5!<%P$,2aIi2Y$G$"$k$+!"(B + CGI $B%9%/%j%W%H$K%(%i!<$,$"$j$^$9!#(B + + + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + + + ߻Ͽ û ó ߽ϴ. + + + + : +
+ + + + û ó ߽ϴ. + ϰ ɷȰų ƴϸ CGI α׷ ־ϴ. + + + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + + + + + Foutbericht: +
+ + + + De server kreeg een interne fout en kon + uw vraag niet beantwoorden. De server is overbelast + of er was een fout in een CGI script. + + + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + + + Serwer napotka bd wewntrzny i nie jest w stanie + zrealizowa twojego dania. + + + + Informacja o bdzie: +
+ + + + Serwer napotka bd wewntrzny i nie jest w stanie + zrealizowa twojego dania. Serwer jest przeciony lub + napotka na bd w skrypcie CGI. + + + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + + + O servidor encontrou um erro interno e não pode + completar sua requisição. + + + + Mensagem de Erro: +
+ + + + O servidor encontrou um erro interno e não + foi possível completar sua requisição. + O servidor está sobrecarregado ou existe um + erro em um script CGI. + + + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + + + Serverul a intalnit o eroare interna si nu a + putut rezolva cererea dumneavoastra. + + + + Mesajul de eroare : +
+ + + + Serverul a intalnit o eroare interna si nu a + putut rezolva cererea dumneavoastra. Serverul este + supraincarcat sau a fost o eroare intr-un script CGI. + + + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + + + . + + + + : +
+ + + + + . + , CGI . + + + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + + + Servern råkade ut för ett internt fel och det var inte möjligt + att slutföra din begäran. + + + + Felmeddelande: +
+ + + + Servern råkade ut för ett internt fel och det var inte möjligt + att slutföra din begäran. Servern är antingen överbelastad + eller så innehåller CGI-skriptet fel. + + + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + + + Sunucu iine bir hata oluştu ve sunucu talebinize hizmet vermekte başarılı olamadı. + + + + Hata mesajı: +
+ + + + Sunucu iine bir hata oluştu ve sunucu talebinize hizmet vermekte başarılı olamadı. + Ya sunucuya ok yklenildi, ya da CGI betiklerinde hata belirdi. + + + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_LENGTH_REQUIRED.html.var b/rubbos/app/apache2/error/HTTP_LENGTH_REQUIRED.html.var new file mode 100644 index 00000000..4d083fed --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_LENGTH_REQUIRED.html.var @@ -0,0 +1,222 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Poadavek metodou + vyaduje korektn hlaviku Content-Length. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Die Anfrage kann nicht beantwortet werden. + Bei Verwendung der -Methode + muß ein korrekter Content-Length-Header + angegeben werden. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + A request with the + method requires a valid Content-Length header. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + Una solicitud con el método + necesita una cabecera Content-Length válida. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Une requête utilisant la méthode nécessite un header valable + Content-Length (indiquant la longueur). + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Is gá go mbhéadh ceanntáisc + Content-Length + bhailí do iarratais faoin modh + . + + +----------ga-- + + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Una richiesta con il metodo + + richiede che venga specificato un header Content-Length + valido. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + + $B%a%=%C%I$N%j%/%(%9%H$G$O!"(B + $B@5$7$$(B Content-Length $B%X%C%@$,I,MW$K$J$j$^$9!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + + û ùٸ Content-Length Բ ߸ մϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Een vraag met het + type methode heeft een correcte Content-Length lijn nodig. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + danie + wymaga poprawnego nagwka Content-Length. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + Uma requisição + do método + requer um cabeçalho Content-Length válido. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + O cerere cu metoda + necesita un header Content-Length valid. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + Content-Length + ( ) . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + En förfrågan med + metoden kräver ett korrekt Content-Length huvud. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + metodunu kullanan bir talep + geerli bir Content-Length (ierik uzunluğu) başlığı gerektirir. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_METHOD_NOT_ALLOWED.html.var b/rubbos/app/apache2/error/HTTP_METHOD_NOT_ALLOWED.html.var new file mode 100644 index 00000000..f2e1aa65 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_METHOD_NOT_ALLOWED.html.var @@ -0,0 +1,213 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Metoda + nen pro poadovan URL povolena. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Die -Methode + ist für den angeforderten URL nicht erlaubt. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The + method is not allowed for the requested URL. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El + método utilizado por su solicitud no está + permitido por el enlace. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + La méthode + n'est pas utilisable pour l'URL requise. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Níl cead an modh + + a úasáid leis an URL iarraithe. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il metodo + non è consentito per l'URL richiesto. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + + $B%a%=%C%I$O!"MW5a$5$l$?(B URL $B$KBP$7$F$O5v2D$5$l$F$$$^$;$s!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + + û URL ϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Het + type methode is niet toegelaten voor de gevraagde URL. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Metoda + jest niedozwolona dla podanego URLa. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O método + não é permitido para a URL requisitada. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Metoda + nu este permisa pentru URL-ul cerut. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + + metoden är inte tillåten för den förfrågade + adressen. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + yntemi talep ettiğiniz URL iin kullanılamaz. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_NOT_FOUND.html.var b/rubbos/app/apache2/error/HTTP_NOT_FOUND.html.var new file mode 100644 index 00000000..58149171 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_NOT_FOUND.html.var @@ -0,0 +1,435 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Poadovan URL nebylo na tomto serveru nalezeno. + + + + Zd se, e odkaz na + ">odkazujc + strnce je chybn nebo zastaral. Informujte, prosm, autora + ">tto strnky + o chyb. + + + + Pokud jste zadal(a) URL run, zkontrolujte, prosm, + zda jste zadal(a) URL sprvn, a zkuste to znovu. + + + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der angeforderte URL konnte auf dem Server nicht gefunden werden. + + + + Der Link auf der + ">verweisenden + Seite scheint falsch oder nicht mehr aktuell zu sein. + Bitte informieren Sie den Autor + ">dieser Seite + über den Fehler. + + + + Sofern Sie den URL manuell eingegeben haben, + überprüfen Sie bitte die Schreibweise und versuchen Sie es erneut. + + + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The requested URL was not found on this server. + + + + The link on the + ">referring + page seems to be wrong or outdated. Please inform the author of + ">that page + about the error. + + + + If you entered the URL manually please check your + spelling and try again. + + + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El enlace requerido no ha sido localizado en + este servidor. + + + + El enlace en la + ">página + referente parece tener algun error o ha expirado. Por favor + comunique al autor de + ">la + página el error. + + + + Si usted proporcionó el enlace de manera manual le solicitamos + que por favor revise los datos e intentelo de nuevo. + + + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + L'URL requise n'a pu etre trouvée sur ce serveur. + + + + La référence sur + ">la page + citée + semble être erronée ou perimée. Nous vous prions + d'informer l'auteur de + ">cette page + de cette erreur. + + + + Si vous avez tapé l'URL à la main, veuillez vérifier + l'orthographe et réessayer. + + + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Níor aimsigh an URL iarraithe ar an fhreastalaí seo. + + + + Is cosúil go bhfuil an nasc ar an + ">leathanach + thagarthach mícheart nó as dáta. + Cur in iúl d'úadar + " + >an leathanach sin go bhfuil earráid ann, le do thoil. + + + + 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. + + + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + L'URL richiesto non esiste su questo server. + + + + Il link della + ">pagina da cui + sei arrivato potrebbe essere errato o non essere più valido. + Per favore, informa dell'errore l'autore della + ">pagina. + + + + Se hai scritto l'URL a mano, per favore controlla che + non ci siano errori. + + + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $BMW5a$5$l$?(B URL $B$OK\%5!<%P$G$O8+$D$+$j$^$;$s$G$7$?!#(B + + + + "> + $B;2>H85%Z!<%8(B$B$N%j%s%/$,4V0c$C$F$$$k$+!"8E$/$J$C$F$7$^$C$F$$$k$h$&$G$9!#(B + " + >$B%Z!<%8(B$B$NCx + + $B$b$7l9g$O!"DV$j$r3NG'$7$F:FEY$*;n$72<$5$$!#(B + + + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û URL ã ϴ. + + + + "> + ִ ũ ߸Ǿų Ǿ ϴ. + "> + ̿ ˷ֽñ ٶϴ. + + + + URL Էϼ̴ٸ ٸ Էϼ̴ ȮϽð ٽ õϽñ + ٶϴ. + + + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De gevraagde URL was niet gevonden op deze server. + + + + De link op + ">deze pagina + pagina is verkeerd of achterhaald. Gelieve de auteur van + ">die pagina + in te lichten over deze fout. + + + + Indien u de URL manueel hebt ingevuld, gelieve uw + spelling te controleren en probeer opnieuw. + + + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Nie znaleziono danego URLa na tym serwerze. + + + + Odnonik na + ">referujcej stronie + wydaje si by nieprawidowy lub nieaktualny. Poinformuj autora + ">tej strony + o problemie. + + + Jeli wpisae URLa rcznie, sprawd, czy nie si nie pomylie. + + + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + A URL requisitada não foi encontrada neste servidor. + + + + O link na + ">página + referida parece estar com algum erro ou desatualizado. Por favor informe o + autor ">desta + página sobre o erro. + + + + Se você digitou o endereço (URL) manualmente, + por favor verifique novamente a sintaxe do endereço. + + + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + URL-ul cerut nu a fost gasit pe acest server. + + + + Link-ul de pe + ">pagina + de unde ati venit pare a fi gresit sau invechit. Va rugam informati autorul + ">acestei pagini + despre eroare. + + + + Daca ati introdus URL-ul manual, va rugam verificati + corectitudinea si incercati din nou. + + + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + . + + + + + "> + . + "> + . + + + + , + . + + + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Den efterfrågade adressen hittades inte på denna server. + + + + Länken på den + ">tidigare sidan + verkar vara felaktig eller inaktuell. Vänligen informera författaren av + ">sidan + om felet. + + + + Om du skrev in adressen manuellt så kontrollera din stavning och + försök igen. + + + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Talep ettiğiniz URL, sunucu zerinde bulunmuyor. + + + + ">Referans sayfa + zerindeki bağlantı gncel değil. + Ltfen ">referans sayfa'nın + yazarını konuyla ilgili bilgilendirin. + + + + URL'i kendiniz elle girdiyseniz, yazımınızı denetleyip tekrar deneyin. + + + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_NOT_IMPLEMENTED.html.var b/rubbos/app/apache2/error/HTTP_NOT_IMPLEMENTED.html.var new file mode 100644 index 00000000..8081d8e9 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_NOT_IMPLEMENTED.html.var @@ -0,0 +1,201 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Server nepodporuje akci poadovanou prohleem. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Die vom Browser angeforderte Aktion wird vom Server + nicht unterstützt. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The server does not support the action requested by the browser. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El navegador está solicitando una acción + que no puede ser procesada. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Le serveur n'est pas en mesure d'effectuer l'action + requise par le navigateur. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Níl tacaíocht ag an fhreastalaí don gníomh + atá á iarraidh ag an mbrabhsálaí. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il server non supporta il tipo di azione richiesta dal browser. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%V%i%&%6$NMW5a$7$?%"%/%7%g%s$O!"%5%]!<%H$7$F$$$^$;$s!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û ʽϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De server ondersteunt de actie, gevraagd door de browser, niet. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Ten serwer nie obsuguje dania przesanego przez przegldark. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O servidor não suporta a ação requisitada pelo + seu "browser". + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Serverul nu suporta actiunea ceruta de browser. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Servern stödjer inte den handling som önskades + av webbläsaren. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Sunucu, gezgin tarafından talep edilen yntemi desteklemiyor. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_PRECONDITION_FAILED.html.var b/rubbos/app/apache2/error/HTTP_PRECONDITION_FAILED.html.var new file mode 100644 index 00000000..330b4431 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_PRECONDITION_FAILED.html.var @@ -0,0 +1,205 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Vstupn podmnka pro poadavek o zadan URL nesplnila pozitivn + vyhodnocen. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Die für den Abruf der angeforderten URL notwendige + Vorbedingung wurde nicht erfüllt. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The precondition on the request for the URL failed positive evaluation. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + La precondición para que exista una + conexión a la dirección solicitada es falsa. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + La précondition pour l'URL requise a été + évaluée négativement. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Theip meastóireacht an réamhchoinníoll + don iarratais den URL. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + I criteri di precondizione per consentire l'invio dell'URL + richiesto non sono stati soddisfatti. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B;XDj$5$l$?(B URL $B$X$N%j%/%(%9%H$K$*$1$k;vA0>r7o$,K~$?$5$l$^$;$s$G$7$?!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + ̸ ־ ʾƼ URL û ó ϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Een startvoorwaarde werd niet voldaan bij verwerking van de vraag naar de URL. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Warunek wstpny dla URLa nie zosta speniony. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + A condição necessária para a + requisição da URL foi avaliada como falsa. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Preconditionarea pentru cererea URL-ului nu a fost evaluata pozitiv. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + - . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Den nödvändiga förutsättningen för + adressförfrågan passerade inte utvärderingen + med acceptabelt resultat. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + URL talebinin nşartı, olumlu sreci + başarısızlıkla sonlandırdı. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var b/rubbos/app/apache2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var new file mode 100644 index 00000000..0175cf56 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var @@ -0,0 +1,226 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Metoda + nedovoluje penos dat nebo objem dat + pesahuje kapacitn limit. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Die bei der Anfrage übermittelten Daten sind für + die -Methode + nicht erlaubt oder die Datenmenge hat das Maximum überschritten. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The + method does not allow the data transmitted, or the data volume + exceeds the capacity limit. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + Los recursos establecidos no permiten peticiones con + el método + suministrado por su solicitud, o, la cantidad de datos + provistos exceden los límites de capacidad. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + La méthode + n'autorise pas le transfert de ces données ou bien le volume + des données excède la limite de capacité. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Ní ligeann an modh an + tarchur sonraíocht tríd, nó tá an méid + sonraíocht breis ar an teoireann cumas. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il metodo + non consente di trasferire dati, oppure la quantità di dati + richiesti è eccessiva. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + + $B%a%=%C%I$,%G!<%?$NAw?.$r5v2D$7$F$$$J$$$+!"(B + $B%G!<%?NL$,5vMFNL$rD6$($F$$$^$9!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + + ûδ ų, Ǵ Ŀ ϴ + ִ ̸ Ѿϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Het type methode laat niet toe + data te versturen of het datavolume is groter dan maximaal toegelaten. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Metoda + nie zezwala na typ przesyanych danych lub rozmiar danych przekracza + ustalony limit. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O método + não permite a transmissão dos dados, + ou o volume de dados excede a capacidade limite. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Metoda + nu permite transmiterea datelor, sau volumul de date + depaseste limita capacitatii. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + , + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + metoden tillåter + inte den skickade datan eller så överskrider datavolymen + kapacitetsnivån. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + yntemi iletilen + veri tipini desteklemez, ya da veri hacmi kapasite limitlerini aşıyor. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_REQUEST_TIME_OUT.html.var b/rubbos/app/apache2/error/HTTP_REQUEST_TIME_OUT.html.var new file mode 100644 index 00000000..7582a0e7 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_REQUEST_TIME_OUT.html.var @@ -0,0 +1,217 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Server uzavel sov spojen, protoe prohle + nedokonil poadavek ve stanovenm ase. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der Server konnte nicht mehr länger auf die Beendigung + der Browseranfrage warten; die Netzwerkverbindung wurde + vom Server geschlossen. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The server closed the network connection because the browser + didn't finish the request within the specified time. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El servidor ha cerrado la conexión de red + debido a que el navegador no terminó la solicitud + dentro del tiempo especificado. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Le serveur a fermé la connection car le navigateur n'a pas + fini la requête dans le temps spécifié. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Dún an freastalaí an nasc líonra, + mar níor chríochnaidh an brabhsálaí + leis an iarratais, taobh istigh den am sonraithe. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il server ha chiuso la connessione in quanto è stato + superato il limite di tempo entro il quale il browser avrebbe + dovuto eseguire la richiesta. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%V%i%&%6$,;XDj;~4V0JFb$K%j%/%(%9%H$r40N;$7$J$+$C$?$N$G!"(B + $B%5!<%P$O@\B3$r@Z$j$^$7$?!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + ʹ û ʾƼ Ʈũ + ϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De server heeft de netwerkverbinding gesloten omdat de browser + de vraag niet heeft beëindigd binnen een gestelde tijd. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Serwer zamkn poczenie sieciowe poniewa przegldarka + nie zakoczya operacji w przewidywanym czasie. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O servidor encerrou a conexão porque o "browser" + não finalizou a requisição dentro + do tempo limite. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Serverul a terminat conexiunea cu browserul pentru ca acesta + nu a terminat cererea in limita timpului specificat. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Servern stängde förbindelsen därför att + webbläsaren inte avslutade förfrågan inom + förbestämd tid. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Sunucu ağ bağlantısını kapattı nk gezgin + talebini belirlenmiş sre iinde tamamlayamadı. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var b/rubbos/app/apache2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var new file mode 100644 index 00000000..be73725d --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_REQUEST_URI_TOO_LARGE.html.var @@ -0,0 +1,217 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Dlka poadovanho URL pesahuje kapacitn limit tohoto + serveru. Poadavek neme bt zpracovn. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der bei der Anfrage übermittelte URI überschreitet + die maximale Länge. + Die Anfrage kann nicht ausgeführt werden. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The length of the requested URL exceeds the capacity limit for + this server. The request cannot be processed. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + Su solicitud no puede procesarse debido a que la + longitud del enlace excede la capacidad límite del + servidor. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + La longueur de l'URL demandée excède la limite de + capacitè pour ce serveur. Nous ne pouvons donner suite + à votre requête. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Tá faid an URL iarraithe breis ar an teorainn cumas don + freastalaí seo. Ní féidir an iarratas a + phróiseáil. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + La lunghezza dell'indirizzo (URL) trasmesso supera il + limite massimo imposto da questo server. + La richiesta non può essere soddisfatta. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%j%/%(%9%H$N(B URL $B$ND9$5$,!"07$($kD9$5$rD6$($F$$$^$9!#(B + $B%j%/%(%9%H$N=hM}$rB3$1$i$l$^$;$s!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û URL ʹ  ó ϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De lengte van de aangeboden URL overschreidt het maximum + voor deze server. De vraag kan niet verwerkt worden. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Dugo danego URLa przekracza limit ustanowiony dla tego + serwera. danie nie moe zosta zrealizowane. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O tamanho do endereço (URL) excede a capacidade limite + desse servidor. A requisição não pode ser + processada. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Lungimea URL-ului cerut depaseste limita capacitatii pentru + acest server. Cererea nu poate fi procesata. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + - + . . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Längden på adressen som efterfrågas överskrider + kapacitetsgränsen för denna server. Förfrågan kan + inte verkställas. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Talep edilen URL'nin uzunluğu, sunucunun kapasite limitlerini aşıyor. + Talep işlenemiyor. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_SERVICE_UNAVAILABLE.html.var b/rubbos/app/apache2/error/HTTP_SERVICE_UNAVAILABLE.html.var new file mode 100644 index 00000000..ebfb3685 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_SERVICE_UNAVAILABLE.html.var @@ -0,0 +1,233 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Server doasn neme zpracovat V poadavek + kvli drb nebo kapacitnm problmm. + Zkuste to, prosm, pozdji. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der Server ist derzeit nicht in der Lage die Anfrage + zu bearbeiten. Entweder ist der Server derzeit überlastet + oder wegen Wartungsarbeiten nicht verfügbar. + Bitte versuchen Sie es später wieder. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The server is temporarily unable to service your + request due to maintenance downtime or capacity + problems. Please try again later. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El servidor no puede atender su solicitud por + el momento debido a problemas de mantenimiento + o de capacidad. + + Le solicitamos que por favor repita la operación + más tarde. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + En raison de travaux de maintenance ou de problèmes + de capacité le serveur n'est pas en mesure de répondre + à votre requête pour l'instant. Veuillez réessayer + plus tard. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + 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. + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il server in questo momento non è in grado di + soddisfare la richiesta per motivi di manutenzione + o di sovraccarico del sistema. + Per favore, riprova più tardi. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%a%s%F%J%s%9$GDd;_Cf$+!"%5!<%P$N=hM}G=NO$NLdBj$N$?$a!"(B + $B8=:_%j%/%(%9%H$K1~$8$k$3$H$,$G$-$^$;$s!#(B + $B8e$[$I:FEY$*;n$72<$5$$!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + ۾̳ 뷮 õ û ó ϴ. + ߿ ٽ õֽñ ٶϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De server kan tijdelijk uw vraag niet verwerken + door onderhoud of problemen met de capaciteit van de server. + Gelieve later nog eens opnieuw te proberen. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Serwer nie moe zrealizowa twojego dania + ze wzgldu na konserwacj lub zbyt due obcienie. + Prosimy sprbowa pniej. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O servidor está temporariamente fora de serviço + para manutanção ou devido a problemas de capacidade. + Por favor tente acessar mais tarde. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Serverul nu poate, temporar, sa raspunda cererii + dumneavoastra datorita intretinerii acestuia sau a + unor probleme de capacitate. Va rugam incercati mai tarziu. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + + . . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Servern är för tillfället oförmögen att + utföra din förfrågan på grund av underhåll + eller kapacitetsbegränsningar. Vänligen försök + igen senare. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Sunucu, kendi iindeki eşitli sorunlardan tr, + bir sreliğine taleplerinize cevap veremeyecek. + Ltfen daha sonra tekrar deneyin. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_UNAUTHORIZED.html.var b/rubbos/app/apache2/error/HTTP_UNAUTHORIZED.html.var new file mode 100644 index 00000000..99576534 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_UNAUTHORIZED.html.var @@ -0,0 +1,337 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Server nemohl ovit, e jste autorizovn(a) k pstupu + k URL "". + Bu jste dodal(a) neplatn poven (nap. chybn heslo) nebo V + prohle neum dodat poadovan oven. + + + + V ppad, e smte poadovat tento dokument, zkontrolujte, prosm, + Vai uivatelskou identifikaci a heslo a zkuste to znovu. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Der Server konnte nicht verifizieren, ob Sie autorisiert sind, + auf den URL "" zuzugreifen. + Entweder wurden falsche Referenzen (z.B. ein falsches Passwort) + angegeben oder ihr Browser versteht nicht, wie die geforderten + Referenzen zu übermitteln sind. + + + + Sofern Sie für den Zugriff berechtigt sind, überprüfen + Sie bitte die eingegebene User-ID und das Passwort und versuchen Sie + es erneut. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + This server could not verify that you are authorized to access + the URL "". + You either supplied the wrong credentials (e.g., bad password), or your + browser doesn't understand how to supply the credentials required. + + + + In case you are allowed to request the document, please + check your user-id and password and try again. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + El servidor no puede certificar que usted este autorizado + para acceder al enlace "". + Usted pudo suministrar información errónea accidentalmente + (ejem. una contraseña inválida) o, el navegador no sabe + como suministrar la información requerida. + + + + 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. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Ce server n'a pas été en mesure de vérifier que + vous êtes autorisé à accéder à cette + URL "". + + Vous avez ou bien fourni des coordonnées erronées + (p.ex. mot de passe inexact) ou bien votre navigateur ne parvient + pas à fournir les données exactes. + + + + Si vous êtez autorisé à requérir le document, + veuillez vérifier votre nom d'utilisateur et votre mot de passe + et réessayer. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Níorbh fhéidir leis an freastalaí a dheimhniú + go bhfuil an údaráis agat rochtain a dheanamh ar an 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. + + + + 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. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Questo server non può verificare l'autorizzazione + all'accesso a "". + Questo errore potrebbe essere causato da credenziali errate + (nome utente o password errata) oppure da un browser che non + riesce a comunicare il nome utente e la password in modo corretto. + + + + Nel caso in cui ritieni di aver diritto ad accedere al documento, + controlla il nome utente e la password forniti e riprova. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + URL "" + $B$X$N%"%/%;%98"8B$,$"$k$3$H$r3NG'$G$-$^$;$s$G$7$?!#(B + $B4V0c$C$?;q3J>pJs(B ($BNc$($P!"8m$C$?%Q%9%o!<%I(B) $B$rF~NO$7$?$+!"(B + $B%V%i%&%6$,I,MW$J;q3J>pJs$rAw?.$9$kJ}K!$rM}2r$7$F$$$J$$$+$G$9!#(B + + + + $B%I%-%e%a%s%H$rMW5a$G$-$kH&$G$"$k>l9g$O!"(B + $B%f!<%6(B ID $B$H%Q%9%o!<%I$r:F3NG'$7$F2<$5$$!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + "" URL + ִ ִ Ȯ ߽ϴ. + ߸ (, ߸ ȣ) °ų ƴϸ + Ͻô ʿ  𸣴 Դϴ. + + + + ֵ 㰡 ޾Ҵµ ̷ٸ, + ID ȣ ȮϽð ٽ õϽñ ٶϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De server kon niet controleren of u gemachtigd bent om toegang te krijgen + tot de URL "". + U hebt zich onvoldoende geauthenticeerd ( vb : verkeerd paswoord ), of + uw browser is niet in staat de nodige authentificatiegegevens door te geven. + + + + Indien u toch gemachtigd bent toegang te krijgen tot het document, + controleer uw gebruikersnaam en paswoord en probeer opnieuw. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Serwer nie moe zweryfikowa, e masz uprawnienia dostpu do + URLa "". + Nie podae prawidowych danych autoryzacyjnych (np. hasa), + lub twoja przegldarka nie potrafi ich przesa. + + + + Jeli masz prawo dostpu do danego dokumentu, sprad + podan nazw uytkownika i haso. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + Este servidor não pode autorizar o seu acesso à URL + "". + Você deve ter fornecido dados incorretos (ex. senha errada), ou o seu + "browser" não fornece as credenciais necessárias. + + + + No caso de você realmente possuir permissão para este documento, + por favor checar seu login e sua senha e tentar novamente. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Acest server nu a putut verifica daca sunteti autorizat sa accesati + URL-ul "". + Ati furnizat parametrii de acreditare gresiti (ex: parola gresita), sau browserul + dumneavoastra nu poate furniza aceste detalii de acreditare. + + + + In cazul in care nu va este permis sa cereti un document, va rugam + sa va verificati numele de utilizator si parola si sa incercati din nou. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + - "". + (. ), + . + + + + , + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Servern kunde inte verifiera att du har tillåtelse att besöka + adressen "". + Antingen angav du felaktiga uppgifter (ex. fel lösenord) eller så + stödjer inte din webbläsare detta autentiseringssätt. + + + + Om du har tillåtelse att besöka sidan, vänligen kontrollera ditt + användarnamn samt lösenord och försök igen. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Sunucu bu dokmana erişim izninizi doğrulayamadı. + Ya kimliğiniz doğrulanamadı (rneğin hatalı parola girdiniz), + ya da gezgininiz bu işlemi yerine getiremiyor. + + + + Eğer bu dokmana erişme izniniz varsa, ltfen kimliğinizi + ve parolanızı kontrol edip, tekrar deneyin. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var b/rubbos/app/apache2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var new file mode 100644 index 00000000..675852c1 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var @@ -0,0 +1,201 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Server nepodporuje typ prostedku (media) penesenho v poadavku. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Das bei der Anfrage übermittelte Format (Media Type) + wird vom Server nicht unterstützt. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + The server does not support the media type transmitted in the request. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + Los datos de su solicitud no se encuentran en + un formato aceptado por este recurso. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Le serveur ne supporte pas le type de média utilisé + dans votre requête. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Ní tachaíonn an fhreastalaí an cineáil + meán a sheoladh san iarratais. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Il server non è in grado di gestire il + tipo del formato dei dati trasmesso nella richiesta. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%j%/%(%9%H$G;XDj$5$l$?%a%G%#%"%?%$%W$O%5%]!<%H$5$l$F$$$^$;$s!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û ̵ ʽϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + De server ondersteunt het gevraagde formaat ( media type ) niet. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Serwer nie zna typu danych przesanych w daniu. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + O servidor não suporta o tipo de mídia + transmitida nesta requisição. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + Serverul nu suporta tipul de date trimise in cerere. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + Servern stödjer inte den mediatyp som skickats i förfrågan. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Sunucu, talep iinde iletilen ortam trn desteklemiyor. + + +----------tr-- diff --git a/rubbos/app/apache2/error/HTTP_VARIANT_ALSO_VARIES.html.var b/rubbos/app/apache2/error/HTTP_VARIANT_ALSO_VARIES.html.var new file mode 100644 index 00000000..ad2e5bd9 --- /dev/null +++ b/rubbos/app/apache2/error/HTTP_VARIANT_ALSO_VARIES.html.var @@ -0,0 +1,223 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- + + + Varianta poadovan entity m sama vce variant. Pstup nen mon. + + +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- + + + Ein Zugriff auf das angeforderte Objekt bzw. einer + Variante dieses Objektes ist nicht möglich, da es ebenfalls + ein variables Objekt darstellt. + + +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- + + + A variant for the requested entity + is itself a negotiable resource. + Access not possible. + + +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- + + + No es posible tener acceso debido a que + una variante de la solicitud es por si + misma un recurso negociable. + + +----------es-- + +Content-language: fr +Content-type: text/html; charset=ISO-8859-1 +Body:----------fr-- + + + Une variante pour l'entité requise + est elle-même une ressource négociable. + L'accès est impossible. + + +----------fr-- + +Content-language: ga +Content-type: text/html; charset=ISO-8859-1 +Body:----------ga-- + + + Is é ceann de na athraithaí + don aonán iarraithe acmhainn + intráchta féin. + Rochtain dodhéanta. + + +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- + + + Non è possibile accedere all'entità + richiesta perché ` essa stessa + una risorsa negoziabile. + + +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- + + + $B%j%/%(%9%H$5$l$?$b$N$N(B variant + $B$O$=$l<+BN$b$^$?!"%M%4%7%(!<%7%g%s2DG=$J%j%=!<%9$G$9!#(B + $B%"%/%;%9$G$-$^$;$s$G$7$?!#(B + + +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + + + û ü ¸ ־ + Ұմϴ. + + +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- + + + Een variant van het gevraagde object + is op zich ook een te onderhandelen variant. + Toegang is niet mogelijk. + + +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- + + + Wariant danego zasobu jest rwnie zasobem negocjowalnym. + Dostp jest niemoliwy. + + +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- + + + Uma variante da entidade de requisição + é por si mesma um recurso negociável. + Acesso não é possível. + + +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- + + + O varianta pentru entitatea ceruta + este ea insasi o resursa negociabila. + Accesul nu este posibil. + + +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + + + + . + . + + +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- + + + En variant av den förfrågade enheten är i + sig själv en giltig resurs. Åtkomst är inte + möjlig. + + +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- + + + Talep edilen elemanın bir değişkeninin kendisi zaten paylaşılır bir kaynak. + Erişim mmkn değil. + + +----------tr-- diff --git a/rubbos/app/apache2/error/README b/rubbos/app/apache2/error/README new file mode 100644 index 00000000..5a589449 --- /dev/null +++ b/rubbos/app/apache2/error/README @@ -0,0 +1,36 @@ + + Multi Language Custom Error Documents + ------------------------------------- + + The 'error' directory contains HTTP error messages in multiple languages. + If the preferred language of a client is available it is selected + automatically via the MultiViews feature. This feature is enabled + by default via the Options, Language and ErrorDocument directives. + + You may configure the design and markup of the documents by modifying + the HTML files in the directory 'error/include'. + + Supported Languages: + + +-----------------------+------------------------------------------+ + | Language | Contributed by | + +-----------------------+------------------------------------------+ + | Brazilian (pt-br) | Ricardo Leite | + | Czech (cs) | Marcel Kolaja | + | Dutch (nl) | Peter Van Biesen | + | English (en) | Lars Eilebrecht | + | French (fr) | Cecile de Crecy | + | German (de) | Lars Eilebrecht | + | Italian (it) | Luigi Rosa | + | Korean (ko) | Jaeho Shin | + | Polish (pl) | Tomasz Kepczynski | + | Romanian (ro) | Andrei Besleaga | + | Serbian (sr) | Nikola Smolenski | + | Spanish (es) | Karla Quintero | + | Swedish (sv) | Thomas Sjgren | + | 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.) + diff --git a/rubbos/app/apache2/error/contact.html.var b/rubbos/app/apache2/error/contact.html.var new file mode 100644 index 00000000..8dc5581a --- /dev/null +++ b/rubbos/app/apache2/error/contact.html.var @@ -0,0 +1,120 @@ +Content-language: cs +Content-type: text/html; charset=ISO-8859-2 +Body:----------cs-- +Pokud si myslte, e toto je chyba serveru, kontaktujte, prosm, +">webmastera. +----------cs-- + +Content-language: de +Content-type: text/html; charset=ISO-8859-1 +Body:----------de-- +Sofern Sie dies für eine Fehlfunktion des Servers halten, +informieren Sie bitte den +">Webmaster +hierüber. +----------de-- + +Content-language: en +Content-type: text/html; charset=ISO-8859-1 +Body:----------en-- +If you think this is a server error, please contact +the ">webmaster. +----------en-- + +Content-language: es +Content-type: text/html; charset=ISO-8859-1 +Body:----------es-- +Por favor contacte con el +">webmaster +en caso de que usted crea que existe un error en el servidor. +----------es-- + +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 +">gestionnaire du site. +----------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 +"> +stiúrthóir gréasáin, le do thoil. +----------ga-- + +Content-language: it +Content-type: text/html; charset=ISO-8859-1 +Body:----------it-- +Se pensi che questo sia un errore del server, per favore contatta il +">webmaster. +----------it-- + +Content-language: ja +Content-type: text/html; charset=ISO-2022-JP +Body:----------ja-- +$B%5!<%P!<$N>c32$H;W$o$l$k>l9g$O!"(B" +>$B%&%'%V4IM}$B$^$G$4O"Mm$/$@$5$$!#(B +----------ja-- + +Content-language: ko +Content-type: text/html; charset=EUC-KR +Body:----------ko-- + ̰ Ǹ, +"> Ͻñ ٶϴ. +----------ko-- + +Content-language: nl +Content-type: text/html; charset=ISO-8859-1 +Body:----------nl-- +Indien u van oordeel bent dat deze server in fout is, gelieve +de ">webmaster te contacteren. +----------nl-- + +Content-language: pl +Content-type: text/html; charset=ISO-8859-2 +Body:----------pl-- +Jeli mylisz, e jest to bd tego serwera, skontaktuj si z +">administratorem. +----------pl-- + +Content-language: pt-br +Content-type: text/html; charset=ISO-8859-1 +Body:-------pt-br-- +Se você acredita ter encontrado um problema no servidor, +por favor entre em contato com o +">webmaster. +-------pt-br-- + +Content-language: ro +Content-type: text/html; charset=ISO-8859-1 +Body:----------ro-- +Va rugam sa il contactati pe +">webmaster +in cazul in care credeti ca aceasta este o eroare a serverului. +----------ro-- + +Content-language: sr +Content-type: text/html; charset=ISO-8859-5 +Body:----------sr-- + , +">. +----------sr-- + +Content-language: sv +Content-type: text/html; charset=ISO-8859-1 +Body:----------sv-- +Om du tror att detta beror på ett serverfel, vänligen kontakta +">webbansvarig. +----------sv-- + +Content-language: tr +Content-type: text/html; charset=ISO-8859-9 +Body:----------tr-- +Bunun bir sunucu hatası olduğunu dşnyorsanız, ltfen +">site +yneticisi ile iletişime gein. +----------tr-- diff --git a/rubbos/app/apache2/error/include/bottom.html b/rubbos/app/apache2/error/include/bottom.html new file mode 100644 index 00000000..e8522b6e --- /dev/null +++ b/rubbos/app/apache2/error/include/bottom.html @@ -0,0 +1,14 @@ +

+

+ +

+ +

Error

+
+
+ +
+
+
+ + diff --git a/rubbos/app/apache2/error/include/spacer.html b/rubbos/app/apache2/error/include/spacer.html new file mode 100644 index 00000000..7d5e5953 --- /dev/null +++ b/rubbos/app/apache2/error/include/spacer.html @@ -0,0 +1,2 @@ +

+

diff --git a/rubbos/app/apache2/error/include/top.html b/rubbos/app/apache2/error/include/top.html new file mode 100644 index 00000000..04b73b51 --- /dev/null +++ b/rubbos/app/apache2/error/include/top.html @@ -0,0 +1,24 @@ +"?> + +" xml:lang=""> + +<!--#echo encoding="none" var="TITLE" --> +" /> + + + + +

+

diff --git a/rubbos/app/apache2/htdocs/apache_pb.gif b/rubbos/app/apache2/htdocs/apache_pb.gif new file mode 100644 index 00000000..3a1c139f Binary files /dev/null and b/rubbos/app/apache2/htdocs/apache_pb.gif differ diff --git a/rubbos/app/apache2/htdocs/apache_pb.png b/rubbos/app/apache2/htdocs/apache_pb.png new file mode 100644 index 00000000..eb99a8cd Binary files /dev/null and b/rubbos/app/apache2/htdocs/apache_pb.png differ diff --git a/rubbos/app/apache2/htdocs/apache_pb2.gif b/rubbos/app/apache2/htdocs/apache_pb2.gif new file mode 100644 index 00000000..4e67c711 Binary files /dev/null and b/rubbos/app/apache2/htdocs/apache_pb2.gif differ diff --git a/rubbos/app/apache2/htdocs/apache_pb2.png b/rubbos/app/apache2/htdocs/apache_pb2.png new file mode 100644 index 00000000..28baa70f Binary files /dev/null and b/rubbos/app/apache2/htdocs/apache_pb2.png differ diff --git a/rubbos/app/apache2/htdocs/apache_pb2_ani.gif b/rubbos/app/apache2/htdocs/apache_pb2_ani.gif new file mode 100644 index 00000000..fc41c036 Binary files /dev/null and b/rubbos/app/apache2/htdocs/apache_pb2_ani.gif differ diff --git a/rubbos/app/apache2/htdocs/index.html.ca b/rubbos/app/apache2/htdocs/index.html.ca new file mode 100644 index 00000000..9e7eef0b --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ca @@ -0,0 +1,38 @@ + + + +Pàgina de prova de la instal·lació d'Apache + + + +

Si veieu això, la instal·lació del progamari +del servidor +web d'Apache al sistema ha tingut èxit. Ja podeu afegir +contingut al directori i substituir aquesta pàgina.

+ +
+

Veieu aquest text en comptes de la pàgina web que +cercàveu?

+ +

Aquesta pàgina és aquí perquè l'administrador +del lloc ha canviat la configuració d'aquest servidor web. +Poseu-vos en contacte amb la persona responsable del manteniment +d'aquest servidor. +La Apache Software Foundation, que va escriure el programari del servidor web +que fa servir l'administrador d'aquest lloc, no té res a veure amb el +seu manteniment i no pot ajudar-vos a resoldre els problemes de configuració.

+ +
+

Aquesta distribució inclou la documentació +d'Apache.

+ +

Podeu fer servir lliurement la imatge que surt a sota en un servidor web +que funcioni amb Apache. Gràcies per fer servir Apache!

+ +
+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.cz.iso8859-2 b/rubbos/app/apache2/htdocs/index.html.cz.iso8859-2 new file mode 100644 index 00000000..e0cd2ba6 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.cz.iso8859-2 @@ -0,0 +1,51 @@ + + + + + Testovac strnka instalace web serveru Apache + + + +

+ Funguje to! Na tomto serveru b Apache! +

+

+ Pokud vidte tuto zprvu, sprvce tohoto potae prv spn + nainstaloval Apache web server. + Te jet mus doplnit obsah a nahradit tuto standardn uvtac + strnku, nebo pesmrovat server na skutenou domovskou strnku. +

+
+
+ Pokud vidte tuto zprvu msto oekvan domovsk strnky, + kontaktujte, prosm, sprvce pslunho web + serveru. (Zkuste poslat e-mail na adresu + <Webmaster@domain>.) + Pestoe tento server pouv program Apache, tm jist nem nic + spolenho s Apache Group, proto prosm neposlejte e-maily o tomto + serveru nebo jeho obsahu autorm Apache. Pokud to udlte, budeme + vae zprvy ignorovat. +
+
+

+ Zde najdete + dokumentaci + Apache (anglicky) obsaenou v tto distribuci. +

+

+ Nsledujc logo me bt pouito bez omezen na web serveru s + programem Apache. Dkujeme za pouit Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.de b/rubbos/app/apache2/htdocs/index.html.de new file mode 100644 index 00000000..cad034c0 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.de @@ -0,0 +1,61 @@ + + + + Testseite fuer die Apache-Installation auf dieser Website + + + + +

+ Es klappt! Der Apache-Webserver ist auf dieser Website installiert! +

+

+ Wenn Sie diese Seite sehen, dann bedeutet das, dass die + Eigentümer dieser Domäne soeben einen neuen + Apache-Webserver + erfolgreich installiert haben. Jetzt muss noch der + richtige Webinhalt zugefügt und diese Platzhalterseite + ersetzt werden (oder der Webserver für den Zugriff auf den + richtigen Inhalt umkonfiguriert werden). +

+
+
+ Wenn Sie diese Seite an Stelle einer anderen erwarteten Website + sehen sollten, dann nehmen Sie bitte Kontakt mit dem + Eigentümer dieser Site auf (Versuchen Sie, eine E-Mail + an <Webmaster@domänenname> + zu senden)!
+

+ Obwohl der Eigentümer dieser Domäne die Apache-Webserver-Software + verwendet, hat diese Website ziemlich sicher + keinerlei Verbindung mit der Apache Software Foundation + (die diese Software kostenlos vertreibt). Es besteht also + keinerlei Veranlassung, eine E-Mail an + die Entwickler der Software zu senden. Sollten Sie das dennoch + tun, wird Ihre E-Mail stillschweigend + ignoriert. +

+
+

+ Die englische Online-Dokumentation für die + Apache-Webserver-Software ist Bestandteil dieser + Software-Distribution. +

+

+ Dem Webmaster dieser Website steht es frei, das + untenstehende "Powered by Apache"-Logo auf einem Apache-basierten + Webserver zu verwenden.
+ Vielen Dank, dass Sie Apache gewählt haben! +

+
+ Powered by Apache! +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.dk b/rubbos/app/apache2/htdocs/index.html.dk new file mode 100644 index 00000000..cbe8aade --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.dk @@ -0,0 +1,47 @@ + + + + Prøveside for Apache installationen + + + +

+ Det virkede! Apache Webserveren er installeret på denne maskine! +

+

+ Hvis du kan se denne side, så har dem som ejer dette domæne lige + installeret Apache Webserveren. + Du må nu placere web sider i dette directory og fjerne denne side, eller + konfigurere serveren til at anvende et andet directory. +

+
+
+ Hvis du ser denne side istedet for en anden forventet side, kontakt + venligst administratoren for den server du prøver at kontakte. + (Prøv at sende mail til <Webmaster@domain>.) + Apachegruppen har ikke noget at gøre med denne site, så det vil ikke + hjælpe at sende mail to Apache udviklerne angående denne site. +
+
+

+ Apache- + documentationen + er inkluderet med denne distribution. +

+

+ Webmasteren af denne site må gerne bruge den følgende grafik + på en Apache-drevet webserver. Mange tak for at bruge Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.ee b/rubbos/app/apache2/htdocs/index.html.ee new file mode 100644 index 00000000..7d8bc9c8 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ee @@ -0,0 +1,53 @@ + + + + Apache veebiserveri installatsiooni testlehekülg + + + + +

+ Kujuta pilti, käima läks! Apache veebiserver on installeeritud! +

+

+ Kui Sa näed seda lehekülge, siis selle domeeni omanikud on + edukalt hakkama saanud Apache veebiserveri + installeerimisega. Järgmiseks peaks nad selle lehekülje asendama + misiganes materjaliga, mida nad oma veebisaidis näidata tahavad, + või siis juhatama veebiserverile kätte tegeliku materjali + asukoha. +

+
+
+ Kui Sa ootasid siin leheküljel näha hoopis midagi muud, + siis palun võta ühendust selle veebisaidi + administraatoriga. (Võid näiteks kirjutada aadressil + <Webmaster@domain>.) Kuigi see veebisait + kasutab Apache tarkvara, pole ta peaaegu kindlasti mitte Apache Group'iga + mingil muul moel seotud. Seega, palun ära kirjuta selle saidi + asjus Apache autoritele. Kui sa seda teed, siis sinu kirja + ignoreeritakse. +
+
+

+ Ka Apache + dokumentatsioon + on selles distributsioonis olemas. +

+

+ Kohalik veebmeister võib vabalt kasutada allpool olevat + pilti oma Apache veebiserveril. Aitäh Apachet kasutamast! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.el b/rubbos/app/apache2/htdocs/index.html.el new file mode 100644 index 00000000..75c8737e --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.el @@ -0,0 +1,37 @@ + + + + Apache + + + + + +

+ , WWW Apache . . + +


+ +

;

+ +

+ Apache. . Apache (The Apache Software Foundation) WWW . . + +


+ + +

+ Apache . + +

+ / WWW Apache. Apache! + +

+ + diff --git a/rubbos/app/apache2/htdocs/index.html.en b/rubbos/app/apache2/htdocs/index.html.en new file mode 100644 index 00000000..dc4c5182 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.en @@ -0,0 +1,38 @@ + + + +Test Page for Apache Installation + + + +

If you can see this, it means that the installation of the Apache web +server software on this system was successful. You may now add +content to this directory and replace this page.

+ +
+

Seeing this instead of the website you +expected?

+ +

This page is here because the site administrator has changed the +configuration of this web server. Please contact the person +responsible for maintaining this server with questions. +The Apache Software Foundation, which wrote the web server software +this site administrator is using, has nothing to do with +maintaining this site and cannot help resolve configuration +issues.

+ +
+

The Apache documentation has been included +with this distribution.

+ +

You are free to use the image below on an Apache-powered web +server. Thanks for using Apache!

+ +
+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.es b/rubbos/app/apache2/htdocs/index.html.es new file mode 100644 index 00000000..5cbaffc4 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.es @@ -0,0 +1,51 @@ + + + + Página para probar la instalación de Apache + + + +

+ ¡Funcionó! ¡El Servidor de Red Apache ha sido instalado en ese sitio! +

+

+ Si usted puede ver esta página, entonces los dueños de esta + máquina han instalado el Servidor de + Red Apache con éxito. Ahora deben añadir contenido a este directorio + y reemplazar esta página, ó apuntar este servidor al contenido real. +

+
+
+ Si usted esta leyendo esta página y no es lo que esperaba, por favor + contacte el administrador de este sitio. + (Trate de enviar correo electrónico a <Webmaster@domain>.) + Aunque este sitio esta utilizando el programa Apache es casi seguro + que no tiene ninguna conexión con el Apache Group, por eso favor de + no enviar correo sobre este sitio o su contenido a los autores de + Apache. Si lo hace, su mensaje sera + ignorado. +
+
+

+ La + documentación + de Apache ha sido incluida en esta distribución. +

+

+ El administrador del sitio esta invitado a usar la siguiente + imagen para indicar que su sitio es servido por Apache. + ¡Gracias por usar Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.et b/rubbos/app/apache2/htdocs/index.html.et new file mode 100644 index 00000000..99f2ce6b --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.et @@ -0,0 +1,53 @@ + + + + Apache veebiserveri installatsiooni testlehekülg + + + + +

+ Kujuta pilti, käima läks! Apache veebiserver on installeeritud! +

+

+ Kui Sa näed seda lehekülge, siis selle domeeni omanikud on + edukalt hakkama saanud Apache veebiserveri + installeerimisega. Järgmiseks peaks nad selle lehekülje asendama + misiganes materjaliga, mida nad oma veebisaidis näidata tahavad, + või siis juhatama veebiserverile kätte tegeliku materjali + asukoha. +

+
+
+ Kui Sa ootasid siin leheküljel näha hoopis midagi muud, + siis palun võta ühendust selle veebisaidi + administraatoriga. (Võid näiteks kirjutada aadressil + <Webmaster@domain>.) Kuigi see veebisait + kasutab Apache tarkvara, pole ta peaaegu kindlasti mitte Apache Group'iga + mingil muul moel seotud. Seega, palun ära kirjuta selle saidi + asjus Apache autoritele. Kui sa seda teed, siis sinu kirja + ignoreeritakse. +
+
+

+ Ka Apache + dokumentatsioon + on selles distributsioonis olemas. +

+

+ Kohalik veebmeister võib vabalt kasutada allpool olevat + pilti oma Apache veebiserveril. Aitäh Apachet kasutamast! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.fr b/rubbos/app/apache2/htdocs/index.html.fr new file mode 100644 index 00000000..98154f1e --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.fr @@ -0,0 +1,47 @@ + + + + + Page de test de l'installation d'Apache + + + + + +

Si vous lisez cette page, c'est que les propritaires de ce +domaine viennent d'installer le +serveur web Apache +avec succs. Ils doivent maintenant ajouter du contenu ce +rpertoire et remplacer cette page, ou bien faire pointer le serveur +vers l'endroit o se trouve le contenu rel du site.

+ +
+ +

Vous voyez cette page au lieu du site attendu ?

+ +

Vous voyez cette page parce que l'administrateur du site a modifi +la configuration de ce serveur Web. Veuillez contacter +l'administrateur du site concern. La Fondation +Apache (Apache Software Foundation), qui produit le logiciel Apache +utilis par ce site, n'a rien voir avec la maintenance de ce +site et ne peut intervenir sur sa configuration.

+ +
+ +

La documentation Apache est incluse dans cette +distribution.

+ +

Le webmaster de ce site peut librement utiliser l'image ci-dessous sur un +site web utilisant le logiciel Apache. Merci d'avoir choisi Apache !

+ +
+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.he.iso8859-8 b/rubbos/app/apache2/htdocs/index.html.he.iso8859-8 new file mode 100644 index 00000000..7006856e --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.he.iso8859-8 @@ -0,0 +1,54 @@ + + + + + Apache- + + + + +
+

+ +
+
Apache +
!!! +
+
. + + +


+ +

?

+

+
, +
. +
. +
Apache Software Foundation +
, +
+ . + +


+ +

+
+ . + + +

+
+
.Apache '' + + !!!Apache- + +

+
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.hr.iso8859-2 b/rubbos/app/apache2/htdocs/index.html.hr.iso8859-2 new file mode 100644 index 00000000..b4103516 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.hr.iso8859-2 @@ -0,0 +1,35 @@ + + + + +Testna Stranica Apache Instalacije + + + +

estitamo! Apache web posluitelj funkcionira!

+

Ukoliko vidite ovu stranicu, to znai da je instalacija Apache web posluitelja uspjeno izvrena na ovom raunalu. +Sada moete dodati sadraj u ovaj direktorij te promijeniti ovu stranicu.

+ +
+

Oekivali ste neku drugu stranicu?

+ +

Ovu stranica vidite stoga to je administrator ovog posluitelja promijenio +konfiguraciju. Apache Softver Fondacija napisala je softver koji koristi +administrator ovog web posluitelja i nije odgovorna za njegovo odravanje! Zbog toga vas molimo da se za +sva pitanja obratite administratoru ili osobi odgovornoj za odravanje ovog posluitelja.

+ +
+

Ovdje se nalazi Dokumentacija o Apache web posluitelju +(engleski).

+ +

Donju sliicu moete slobodno koristiti na stranicama ovog veb posluitelja. +Hvala vam to koristite Apache!

+ +
Apache Web Posluitelj
+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.it b/rubbos/app/apache2/htdocs/index.html.it new file mode 100644 index 00000000..e9ef9ed0 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.it @@ -0,0 +1,39 @@ + + + + + Pagina di prova dell'installazione di un sito Web con Apache + + + + +
+

+Funziona! Il Server Web Apache è stato installato su questo sito Web!

+Se riuscite a vedere questa pagina, allora vuol dire che coloro che gestiscono +questo dominio hanno appena installato il software +Web Server +Apache correttamente. Ora è necessario aggiungere il vostro materiale +in questa directory e sostituire questa pagina di prova, oppure configurare +il server per far riferimento al vostro materiale se collocato altrove. +

+


+
Se state vedendo questa pagina invece del sito che pensavate, +vi preghiamo di contattare l'amministratore del sito in questione. +(Provate ad inviare un email a <Webmaster@domain>.)  +Nonostante questo sito stia utilizzando il software Apache, questo non +vi garantisce nessun tipo di contatto diretto al Gruppo Apache, quindi +vi preghiamo di non inviare email riguardanti questo sito o il materiale +in esso contenuto agli autori di Apache. Ogni messaggio del genere verrà +ignorato.
+ +
+
La documentazione relativa di Apache +è inclusa nella distribuzione. +

Il Webmaster di questo sito è libero di utilizzare l'immagine qui sotto +su qualsiasi Web server potenziato con Apache. Grazie per aver scelto Apache! +

+

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ja.iso2022-jp b/rubbos/app/apache2/htdocs/index.html.ja.iso2022-jp new file mode 100644 index 00000000..ba3e736b --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ja.iso2022-jp @@ -0,0 +1,42 @@ + + + + + Apache $B%$%s%9%H!<%k;~$N%F%9%H%Z!<%8(B + + + + + +

+$B$b$7$3$N%Z!<%8$,FI$a$?$N$G$"$l$P!"(BApache $B%&%'%V%5!<%P(B$B$N%$%s%9%H!<%k$,$3$N7W;;5!$GL5;v$K=*N;$7$?$3$H$r0UL#$7$^$9!#$"$J$?$O!"$3$N%G%#%l%/%H%j$KJ8=q$r2C$($?$j!"$3$N%Z!<%8$rCV$-$+$($k$3$H$,$G$-$^$9!#(B +

+
+ +

$B$"$J$?$NM=A[$KH?$7$F!"$3$N%Z!<%8$,8+$($F$$$k$G$7$g$&$+(B?

+ +

+$B$3$N%Z!<%8$O!"%5%$%H4IM}$B$3$N%5!<%P$r4IM}$9$k@UG$$r;}$C$F$$$kJ}$KO"Mm$r$H$C$F(B$B$/$@$5$$!#$3$N%5%$%H4IM} +


+ + +

+Apache $B$K4X$9$k(B$BJ8=q(B $B$O!"$3$N(B web $B%5!<%PG[I[J*$NCf$K4^$^$l$F$$$^$9!#(B +

+

+$B0J2<$N2hA|$O!"(BApache $B$rMxMQ$7$F$$$k(B web $B%5!<%P$G<+M3$K;H$&$3$H$,$G$-$^$9!#(BApache $B$r$4MxMQ$$$?$@$-!"$"$j$,$H$&$4$6$$$^$9(B! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.ko.euc-kr b/rubbos/app/apache2/htdocs/index.html.ko.euc-kr new file mode 100644 index 00000000..65e90d2e --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ko.euc-kr @@ -0,0 +1,37 @@ + + + + +ġ ġ ˻ + + + + + +

δٸ ýۿ +Apache +Ʈ ġǾ ǹմϴ. 丮 + ߰ϰ ٲ ֽϴ.

+ +
+

Ʈ Դϱ?

+ +

Ʈ ڰ ߱ +̴ Դϴ. ڿ Ͻñ +ٶϴ. Apache Software Foundation Ʈ ڰ +ϴ ü , Ʈ ƹ 谡 + 帱 ϴ.

+ +
+

ġ ǿ ԵǾ ֽϴ.

+ +

ġ ϴ Ʒ ̹ ϴ° +Դϴ. ġ ּż մϴ!

+ +
+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.lb.utf8 b/rubbos/app/apache2/htdocs/index.html.lb.utf8 new file mode 100644 index 00000000..f98c8557 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.lb.utf8 @@ -0,0 +1,37 @@ + + + + + + Test Page for Apache Installation on Web Site + + + + +
+

+Et huet geklappt! Den Apache Web Server as op dëser 'Web Site' installeiert!

+Wann Dir die heiten Sait gesit, dann hun d'Proprietairen vun dëser 'domain' +elo just d'Apache Web server software +mat succés installeiert. Sie mussen allerdengs nach des Decksait +remplaceieren oder awer de Server op eng aner Sait mat dem richtigen contenu +em-dirigeieren. +
+
+
Wann Dir die heiten Sait anstell vun der site die Dir erwârt +hut gesitt, da contacteiert wannechglift den administrator vun dem betraffener +site. (Versicht én email no <Webmaster@domain> ze +schecken.) Obwuel den heiten site Apache software benotzt, as et +ball secher datt keng Verbindung mat der Apache Group existeiert, also scheckt +wannechglift keng email iwert desen site oder sein contenu zu den Apache +Autoren. Falls Dir dëst awer macht, get ären message  ignoreiert.
+ +
+

D'Apache documentation ass dëser Ausgab +beigefücht. +

Dem Webmaster vun dem heitenen site steht et zou dest Bild ob engem +Apache-powered Web server ze presenteieren. Merci dat Dir Apache benotzt! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.nl b/rubbos/app/apache2/htdocs/index.html.nl new file mode 100644 index 00000000..fdd7ff93 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.nl @@ -0,0 +1,54 @@ + + + + Test Pagina voor de Apache Installatie op deze Web Site + + + + +

+ Alles Werkt! De Apache Web Server is geinstalleerd op deze Web Site +

+

+ Mocht u deze pagina zien, dan betekent dat, dat de eigenaren van dit + domein zojuist een nieuwe Apache Web + Server hebben geinstalleerd. Nu moet men nog de echte inhoud gaan + toevoegen, en moet men deze pagina gaan vervangen door de echte web + site. +

+
+
+ Mocht u deze pagina zien, in plaats van de pagina of web site die u + verwachtte, neem dan contact op met de beheerder van + deze site. Bijvoorbeeld door een berichtje te sturen naar + <Webmaster@dit-domain>. +

+ Alhoewel deze web site gebruik maakt van de Apache Software is er + verder geen enkele relatie tussen de beheerders van deze web site en + de Apache Groep (die de web software geschreven heeft). Het heeft dus + absoluut + geen zin de web software auteurs een emailtje te sturen. Mocht u dat + toch doen, dan wordt uw bericht gewoon genegeerd. +

+
+

+ De + handleiding voor de apache web + server software maakt deel uit van deze distributie. +

+

+ Als beheerder of webmaster is het u toegestaan het onderstaande + plaatje vrijelijk te gebruiken op uw 'Apache Powered' web site. Bedankt + voor het kiezen voor, en gebruiken van, Apache! +

+
+ Klein 'Powered by Apache' Logotje +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.nn b/rubbos/app/apache2/htdocs/index.html.nn new file mode 100644 index 00000000..67db9570 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.nn @@ -0,0 +1,48 @@ + + + + Testside Apache-installasjon + + + +

+ Det gjekk bra! Apache er no installert p denne maskina! +

+

+ Dersom du kan sj denne sida, har den eller dei som driv denne nettstaden + installert Apache vevtenar. + No m denne testsida erstattast med verkeleg innhald. +

+
+
+ Dersom du hadde venta sj ei anna side enn denne, br du + ta kontakt med den som er ansvarleg for denne nettstaden + (Prv sende e-post til <webmaster@domene>.) + Sjlv om denne nettstaden vert kjrt p Apache, har den ingen annan + tilknytning til Apache-gruppa, som har utvikla programvaren. + Ver snill og ikkje send e-post om denne nettstaden eller + innhaldet du finn her til utviklarane i Apache-gruppa. + I s tilfelle vil frespurnaden ignorerast. +
+
+

+ Dokumentasjon + for Apache er inkludert i denne pakka. +

+

+ Logoen under kan brukast p kva som helst av maskiner som kyrer Apache. + Takk for at du nyttar Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.no b/rubbos/app/apache2/htdocs/index.html.no new file mode 100644 index 00000000..d7553bce --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.no @@ -0,0 +1,48 @@ + + + + Testside Apache-installasjon + + + +

+ Det gikk bra! Apache er n installert p denne maskinen! +

+

+ Hvis du kan se denne siden har den eller de som driver dette nettstedet + installert Apache Web server. + N m denne testsiden erstattes med virkelig innhold. +

+
+
+ Hvis du hadde ventet se en annen side enn denne br du + ta kontakt med den som har ansvaret for nettstedet. + (Prv sende e-post til <webmaster@domene>.) + Selv om dette nettstedet kjres p Apache, har det ingen annen + tilknytning til Apache-gruppen som har utviklet programvaren. + Vennligst ikke send post angende dette nettstedet eller dets + innhold til Apache-gruppens programmerere. I s fall vil din henvendelse + bli ignorert. +
+
+

+ Dokumentasjon + for Apache er inkludert i denne pakken. +

+

+ Logoen under kan benyttes p en hvilken som helst maskin som kjrer Apache. + Takk for at du benytter Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.po.iso8859-2 b/rubbos/app/apache2/htdocs/index.html.po.iso8859-2 new file mode 100644 index 00000000..8b030bd6 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.po.iso8859-2 @@ -0,0 +1,40 @@ + + + + Strona testowa instalacji serwera Apache + + + + + + + +

+Jeeli strona ta jest widoczna, oznacza to poprawn instalacj serwera Apache. Mona ju zamieni zawarto tej witryny. + +


+ +

Czy zamiast spodziewanej witryny WWW widoczna jest ta?

+ +

+Strona ta jest widoczna, poniewa administrator serwera WWW zmieni jego konfiguracj. +Prosz skontaktowa si z osob odpowiedzialn za zarzdzanie tym serwerem. Apache Software Foundation, producent oprogramowania serwerowego Apache, nie administruje t witryn i nie jest w stanie pomc w sprawach zwizanych z jej konfiguracj. + +


+ + +

+Do niniejszej dystrybucji serwera Apache doczono anglojzyczn dokumentacj. + +

+Ponisze logo, "Powered by Apache", mona stosowa bez ogranicze. Dzikujemy za wybranie Apache'a! + +

+ + diff --git a/rubbos/app/apache2/htdocs/index.html.pt b/rubbos/app/apache2/htdocs/index.html.pt new file mode 100644 index 00000000..dbeb5ed0 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.pt @@ -0,0 +1,42 @@ + + + + Pgina de teste da instalao do Apache Web Server + + + + + + +

Se está a ver esta página significa que a instalação + do Apache Web Server foi efectuada + com sucesso. Pode agora adicionar conteúdo a esta directoria e substituir + esta página. +


+ +

Está a ver esta página em vez do website que + esperava?

+ +

Esta página está neste momento activa porque o administrador + deste site alterou a configuração do web server. Por favor contacte + a pessoa responsável pela manutenção deste servidor. + A Fundação Apache Software (Apache Software Foundation), apesar + de ter produzido o web server que o administrador deste site está a usar, + não tem qualquer tipo de responsabilidade pela manutenção + deste nem pode ajudar a resolver problemas de configuração. +


+ + +

A documentação foi incluída + juntamente com esta distribuição. +

A imagem abaixo pode ser usada livremente em qualquer site presente num servidor + com o Apache Web Server instalado. Obrigado por usar o Apache Web Server! +

+ + diff --git a/rubbos/app/apache2/htdocs/index.html.pt-br b/rubbos/app/apache2/htdocs/index.html.pt-br new file mode 100644 index 00000000..ece2a8a8 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.pt-br @@ -0,0 +1,47 @@ + + + + + + Página teste para a instalação do Apache no +Web Site + + + + + +
+

+Funcionou! O Apache Web Server foi instalado corretamente neste Web Site!

+Se você está vendo esta página, isso quer dizer que o software +Apache +Web server foi instalado com sucesso. Agora, basta adicionar o conteúdo +ao diretório raiz e substituir esta página temporária, ou configurar o servidor +para o seu conteúdo real. +
+
+
+
+

+Está vendo esta página em vez do site que esperava?

+Esta página foi carregada, pois provavelmente, o administrador modificou as +configurações +deste servidor. Por favor, contate o administrador do site para esclarecimentos. +(Tente enviar um e-mail para <Webmaster@dominio>.) A Apache +Server Foundation, que desenvolveu o software (web server) utilizado pelo +administrador, não tem nenhuma responsabilidade sobre a manutenção desta +página e não poderá ajudar na resolução de problemas de +configuração.
+ +
+

A documentação do Apache foi incluída +com esta distribuição. +

O Webmaster deste site é livre para utilizar a imagem abaixo num web +server utilizando o Apache. +

Obrigado por utilizar o Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ru.cp-1251 b/rubbos/app/apache2/htdocs/index.html.ru.cp-1251 new file mode 100644 index 00000000..e9c51afb --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ru.cp-1251 @@ -0,0 +1,34 @@ + + + + + + Apache + + + + , , + - Apache + . + . +

+


+
+

+ ?

+ , + -. , , + . Apache Software +Foundation, -, +,   + . +

+


+

- Apache + . +

, , -, + Apache. Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ru.cp866 b/rubbos/app/apache2/htdocs/index.html.ru.cp866 new file mode 100644 index 00000000..05fa119b --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ru.cp866 @@ -0,0 +1,34 @@ + + + + + + ⮢ ࠭ ⠭ Apache + + + +᫨ , , ⠭ + -ࢥ Apache ⮩ +⥬ 訫 ᯥ譮. ⥯ ᮤন +४ ࠭. +

+


+
+

+ ࠭?

+ ࠭ 室 ⮬, ⥬ +䨣 ⮣ -ࢥ. , 令 殬, ⢥ᢥ + প ⮣ ࢥ ᭥ ᮢ. Apache Software +Foundation, -ࢥ, ⮩ +⥬, 易 প ⮩ ⥬   +ࠧ ஡ 䨣樨. +

+


+

-ࢥ Apache ਫ + . +

᢮ ᯮ짮 ⮣ࠬ, 室 , -ࢥ, +ᯮ騬 Apache. ᨡ ᯮ짮 Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ru.iso-ru b/rubbos/app/apache2/htdocs/index.html.ru.iso-ru new file mode 100644 index 00000000..ef25c801 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ru.iso-ru @@ -0,0 +1,34 @@ + + + + + + Apache + + + + , , + - Apache + . + . +

+


+
+

+ ?

+ , + -. , , + . Apache Software +Foundation, -, +,   + . +

+


+

- Apache + . +

, , -, + Apache. Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ru.koi8-r b/rubbos/app/apache2/htdocs/index.html.ru.koi8-r new file mode 100644 index 00000000..db6ee830 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ru.koi8-r @@ -0,0 +1,34 @@ + + + + + + Apache + + + + , , + - Apache + . + . +

+


+
+

+ ?

+ , + -. , , + . Apache Software +Foundation, -, +,   + . +

+


+

- Apache + . +

, , -, + Apache. Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.ru.utf8 b/rubbos/app/apache2/htdocs/index.html.ru.utf8 new file mode 100644 index 00000000..fc6694f6 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.ru.utf8 @@ -0,0 +1,34 @@ + + + + + + Тестовая страница установки Apache + + + +Если Вы это видите, это значит, что установка +ПО веб-сервера Apache на этой +системе завершилась успешно. Вы можете теперь добавлять содержимое в эту +директорию и заменить эту страницу. +

+


+
+

+Вы видите это вместо ожидаемой страницы?

+Эта страница находится здесь потому, что администратор системы изменил +конфигурацию этого веб-сервера. Пожалуйста, свяжитесь с лицом, ответсвенным +за поддержку этого сервера для выяснения ваших вопросов. Apache Software +Foundation, автор ПО веб-сервера, которым пользуется администратор этой +системы, не связан с поддержкой этой системы и не может помочь Вам +разрешить проблемы конфигурации. +

+


+

Документация по веб-серверу Apache прилагается +к комплекту ПО. +

Вы можете свободно использовать пиктограмму, находящуюся ниже, на веб-сервере, +использующим ПО Apache. Спасибо за использование Apache! +

+ + + diff --git a/rubbos/app/apache2/htdocs/index.html.sv b/rubbos/app/apache2/htdocs/index.html.sv new file mode 100644 index 00000000..377307f5 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.sv @@ -0,0 +1,43 @@ + + + + Testsida för Apache-installationen + + + +

+ Det fungerade! Apache är installerad på denna maskin! +

+

+ Om du kan se denna sida så har ägaren till denna maskin installerat + webbserverprogramvaran Apache.
+ Denne måste nu placera webbsidor i detta bibliotek och ändra på denna sida, eller + peka servern mot ett annat bibliotek. +

+
+
+ Om du förväntat dig att se något helt annat här än denna sida, kontakta + vänligen administratören för den webbserver du försöker komma i kontakt med. + (Försök att skicka ett brev till <webmaster@domain>.) + Apache Software Foundation har inget med denna webbplats att göra, så det är ingen idé + att skicka mail till författarna av Apache rörande denna webbplats. +
+
+

+ Apache-dokumentationen är inkluderad i denna distribution. +

+

+ Administratören av denna webbplats får gärna använda följande bild till en webbplats som använder Apache.
+ Tack för att ni använder Apache! +

+
+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.var b/rubbos/app/apache2/htdocs/index.html.var new file mode 100644 index 00000000..0b20007f --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.var @@ -0,0 +1,123 @@ +URI: index.html.ca +Content-language: ca +Content-type: text/html + +URI: index.html.cz.iso8859-2 +Content-language: cs +Content-type: text/html;charset=ISO-8859-2 + +URI: index.html.de +Content-language: de +Content-type: text/html + +URI: index.html.dk +Content-language: da +Content-type: text/html + +URI: index.html.ee +Content-language: ee +Content-type: text/html + +URI: index.html.el +Content-language: el +Content-type: text/html + +URI: index.html.en +Content-language: en +Content-type: text/html + +URI: index.html.es +Content-language: es +Content-type: text/html + +URI: index.html.et +Content-language: et +Content-type: text/html + +URI: index.html.fr +Content-language: fr +Content-type: text/html + +URI: index.html.he.iso8859-8 +Content-language: he +Content-type: text/html;charset=ISO-8859-8 + +URI: index.html.hr.iso8859-2 +Content-language: hr +Content-type: text/html;charset=ISO-8859-2 + +URI: index.html.it +Content-language: it +Content-type: text/html + +URI: index.html.ja.iso2022-jp +Content-language: ja +Content-type: text/html;charset=ISO-2022-JP + +URI: index.html.ko.euc-kr +Content-language: ko +Content-type: text/html;charset=EUC-KR + +URI: index.html.ltz.utf8 +Content-language: ltz +Content-type: text/html;charset=UTF-8 + +URI: index.html.lu.utf8 +Content-language: lu +Content-type: text/html;charset=UTF-8 + +URI: index.html.nl +Content-language: nl +Content-type: text/html + +URI: index.html.nn +Content-language: nn +Content-Type: text/html + +URI: index.html.no +Content-language: no +Content-type: text/html + +URI: index.html.po.iso8859-2 +Content-language: pl +Content-type: text/html;charset=ISO-8859-2 + +URI: index.html.pt +Content-language: pt +Content-type: text/html + +URI: index.html.pt-br +Content-language: pt-br +Content-type: text/html + +URI: index.html.ru.cp-1251 +Content-language: ru +Content-type: text/html;charset=WINDOWS-1251 + +URI: index.html.ru.cp866 +Content-language: ru +Content-type: text/html;charset=CP866 + +URI: index.html.ru.iso-ru +Content-language: ru +Content-type: text/html;charset=ISO-8859-5 + +URI: index.html.ru.koi8-r +Content-language: ru +Content-type: text/html;charset=KOI8-r + +URI: index.html.ru.utf8 +Content-language: ru +Content-type: text/html;charset=UTF-8 + +URI: index.html.sv +Content-language: sv +Content-type: text/html + +URI: index.html.zh-cn.gb2312 +Content-language: zh-CN +Content-type: text/html;charset=GB2312 + +URI: index.html.zh-tw.big5 +Content-language: tw, zh-TW +Content-type: text/html;charset=Big5 diff --git a/rubbos/app/apache2/htdocs/index.html.zh-cn.gb2312 b/rubbos/app/apache2/htdocs/index.html.zh-cn.gb2312 new file mode 100644 index 00000000..b31d07da --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.zh-cn.gb2312 @@ -0,0 +1,29 @@ + + + +װApacheIJҳ + + + +

ܿҳ棬˵Apache web +server ѾװɹĿ¼ݣ߰ҳ滻

+ +
+

ⲻ뿴ҳ?

+ +

֮Իῴҳ棬ΪվԱıվá +ʣѯάվԱ +Apache, վʹõվĿߣ +վάҲ޷Ϊϵ⡣

+ +
+

Apache ĵѾڴ˷аС

+ +

ʹApacheվϣɵʹͼƬлʹApache

+ +
+ + diff --git a/rubbos/app/apache2/htdocs/index.html.zh-tw.big5 b/rubbos/app/apache2/htdocs/index.html.zh-tw.big5 new file mode 100644 index 00000000..1ca02124 --- /dev/null +++ b/rubbos/app/apache2/htdocs/index.html.zh-tw.big5 @@ -0,0 +1,46 @@ + + + + w Apache պ + + + + + +

+pGAiHݨAoܧA +Apache Web Server +wgw˦\C +AiHW[eoӥؿAΧoӺC

+ +


+ +

SݨAQݪ ?

+ +

+oӺҥH|boءAO]޲z̤wgoӺ]wC +YD, лP @oӦAHpC +Apache n|A]NO}ooMn骺APõLYA +ӥB]LkAѨM]wWDC + +


+ +

+Apache + +wg]tbӪC + +

+AiHbϥ Apache AWAۥѪϥΤUϥܡA +P±zϥ ApacheI +

+

+ + + diff --git a/rubbos/app/apache2/htdocs/rubbos/RUBBoS_logo.jpg b/rubbos/app/apache2/htdocs/rubbos/RUBBoS_logo.jpg new file mode 100644 index 00000000..a1d15f9c Binary files /dev/null and b/rubbos/app/apache2/htdocs/rubbos/RUBBoS_logo.jpg differ diff --git a/rubbos/app/apache2/htdocs/rubbos/author.html b/rubbos/app/apache2/htdocs/rubbos/author.html new file mode 100644 index 00000000..72a07f4f --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/author.html @@ -0,0 +1,70 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+

Are you really an author ?

+ +
+ +
+ + +
Your nick name:
Your password:
+ +
+

+
  +
+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/browse.html b/rubbos/app/apache2/htdocs/rubbos/browse.html new file mode 100644 index 00000000..2b9dae8f --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/browse.html @@ -0,0 +1,68 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+
+

+What kind of browsing do you want ?

+ +

  +

Browse all stories in a category +
Browse stories of the day +
Browse older stories +
+
  +


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/header.html b/rubbos/app/apache2/htdocs/rubbos/header.html new file mode 100644 index 00000000..0e67c13a --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/header.html @@ -0,0 +1,53 @@ + + + + + + + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
diff --git a/rubbos/app/apache2/htdocs/rubbos/index.html b/rubbos/app/apache2/htdocs/rubbos/index.html new file mode 100644 index 00000000..426528c3 --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/index.html @@ -0,0 +1,82 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+
+

+Welcome to RUBBoS's home page !

+ +


RUBBoS is a bulletin board system prototype that is used to evaluate the +bottlenecks of such application. +
This version is the servlet/edu.rice.rubbos.servlets implementation of RUBBoS. +
  +
  +

+How to use RUBBoS

+RUBBoS can be used from a web browser for testing purposes or with the provided +benchmarking tools. +
Here is how to use RUBBoS from your web browser : +

1. If you are lost, at any time just click on the Home +link that brings you back to this page. +
2. You first have to register yourself as a new user by selecting +Register +
3. You can browse the stories and comments using Browse or Search. +
4. Select Submit a story if you want to submit a new story. +
5. The Author link gives you a report of your personal +information and the current items you are selling or bidding on. +

Good luck ! +

+


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/register.html b/rubbos/app/apache2/htdocs/rubbos/register.html new file mode 100644 index 00000000..0e3de534 --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/register.html @@ -0,0 +1,95 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+

Welcome to RUBBoS online registration

+ +


+

+ +It's completely free !!! +Just fill the following form to register and get your account ! + + + + +
+First Name: + + +
+Last Name: + + +
+Nick Name: + + +
+Password: + + +
+Email address: + + +
+
+
+
+

+ +


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/RUBBoS_logo.jpg b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/RUBBoS_logo.jpg new file mode 100644 index 00000000..a1d15f9c Binary files /dev/null and b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/RUBBoS_logo.jpg differ diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/author.html b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/author.html new file mode 100644 index 00000000..72a07f4f --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/author.html @@ -0,0 +1,70 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+

Are you really an author ?

+ + + +
+ + +
Your nick name:
Your password:
+ +
+

+
  +
+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/browse.html b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/browse.html new file mode 100644 index 00000000..2b9dae8f --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/browse.html @@ -0,0 +1,68 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+
+

+What kind of browsing do you want ?

+ +

  +

Browse all stories in a category +
Browse stories of the day +
Browse older stories +
+
  +


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/header.html b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/header.html new file mode 100644 index 00000000..0e67c13a --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/header.html @@ -0,0 +1,53 @@ + + + + + + + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/index.html b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/index.html new file mode 100644 index 00000000..426528c3 --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/index.html @@ -0,0 +1,82 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+
+

+Welcome to RUBBoS's home page !

+ +


RUBBoS is a bulletin board system prototype that is used to evaluate the +bottlenecks of such application. +
This version is the servlet/edu.rice.rubbos.servlets implementation of RUBBoS. +
  +
  +

+How to use RUBBoS

+RUBBoS can be used from a web browser for testing purposes or with the provided +benchmarking tools. +
Here is how to use RUBBoS from your web browser : +

1. If you are lost, at any time just click on the Home +link that brings you back to this page. +
2. You first have to register yourself as a new user by selecting +Register +
3. You can browse the stories and comments using Browse or Search. +
4. Select Submit a story if you want to submit a new story. +
5. The Author link gives you a report of your personal +information and the current items you are selling or bidding on. +

Good luck ! +

+


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/htdocs/rubbos/rubbos_html/register.html b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/register.html new file mode 100644 index 00000000..0e3de534 --- /dev/null +++ b/rubbos/app/apache2/htdocs/rubbos/rubbos_html/register.html @@ -0,0 +1,95 @@ + + + + + + + RUBBoS: Rice University Bulletin Board System + + +  +
+ + + + + + + + + + + + + + + +
+

Servlets version
+
+
+

+Home

+
+
+

+Register

+
+
+

+Browse

+
+
+

+Search

+
+
+

+Submit a story

+
+
+

+Author

+
+
+

Welcome to RUBBoS online registration

+ +


+

+ +It's completely free !!! +Just fill the following form to register and get your account ! + + + + +
+First Name: + + +
+Last Name: + + +
+Nick Name: + + +
+Password: + + +
+Email address: + + +
+
+
+
+

+ +


+
RUBBoS (C) 2001 - Rice University/INRIA + + diff --git a/rubbos/app/apache2/icons/README b/rubbos/app/apache2/icons/README new file mode 100644 index 00000000..48250d59 --- /dev/null +++ b/rubbos/app/apache2/icons/README @@ -0,0 +1,166 @@ +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). + Andy Polyakov tuned the icon colors and added a few new images. + + If you'd like to contribute additions to this set, contact the httpd + documentation project . + + 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). + +Suggested Uses + +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. + + a.gif + This might be used to represent PostScript or text layout + languages. + + alert.black.gif, alert.red.gif + These can be used to highlight any important items, such as a + README file in a directory. + + back.gif, forward.gif + These can be used as links to go to previous and next areas. + + ball.gray.gif, ball.red.gif + These might be used as bullets. + + binary.gif + This can be used to represent binary files. + + binhex.gif + This can represent BinHex-encoded data. + + blank.gif + This can be used as a placeholder or a spacing element. + + bomb.gif + This can be used to represent core files. + + box1.gif, box2.gif + These icons can be used to represent generic 3D applications and + related files. + + broken.gif + This can represent corrupted data. + + burst.gif + This can call attention to new and important items. + + c.gif + This might represent C source code. + + comp.blue.gif, comp.gray.gif + These little computer icons can stand for telnet or FTP + sessions. + + compressed.gif + This may represent compressed data. + + continued.gif + This can be a link to a continued listing of a directory. + + down.gif, up.gif, left.gif, right.gif + 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. + + f.gif + This might represent FORTRAN or Forth source code. + + folder.gif, folder.open.gif, folder.sec.gif + The folder can represent directories. There is also a version + that can represent secure directories or directories that cannot + be viewed. + + generic.gif, generic.sec.gif, generic.red.gif + These can represent generic files, secure files, and important + files, respectively. + + hand.right.gif, hand.up.gif + These can point out important items (pun intended). + + image1.gif, image2.gif, image3.gif + These can represent image formats of various types. + + index.gif + This might represent a WAIS index or search facility. + + layout.gif + This might represent files and formats that contain graphics as + well as text layout, such as HTML and PDF files. + + link.gif + This might represent files that are symbolic links. + + movie.gif + This can represent various movie formats. + + p.gif + This may stand for Perl or Python source code. + + pie0.gif ... pie8.gif + 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. + + patch.gif + This may stand for patches and diff files. + + portal.gif + This might be a link to an online service or a 3D world. + + 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. + + script.gif + This can represent any of various interpreted languages, such as + Perl, python, TCL, and shell scripts, as well as server + configuration files. + + sound1.gif, sound2.gif + These can represent sound files. + + sphere1.gif, sphere2.gif + 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. + + text.gif + This can represent generic (plain) text files. + + transfer.gif + This can represent FTP transfers or uploads/downloads. + + unknown.gif + This may represent a file of an unknown type. + + uu.gif, uuencoded.gif + This can stand for uuencoded data. + + world1.gif, world2.gif + These can represent 3D worlds or other 3D formats. diff --git a/rubbos/app/apache2/icons/README.html b/rubbos/app/apache2/icons/README.html new file mode 100644 index 00000000..a8b82b99 --- /dev/null +++ b/rubbos/app/apache2/icons/README.html @@ -0,0 +1,815 @@ + + + + + +

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). +Andy Polyakov tuned the icon colors and added few new images.

+ +

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, +provided by Mike Brown (mike@hyperreal.org).

+ +

Suggested Uses

+ +

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.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ a.gif +
a.png
This might be used to represent PostScript or text layout +languages.
+ alert.black.gif +
alert.black.png
+ alert.red.gif +
alert.red.png
These can be used to highlight any important items, +such as a README file in a directory.
+ back.gif +
back.png
+ forward.gif +
forward.png
+ small.gif +
small/back.png
+ small/forward.gif +
small/forward.png
These can be used as links to go to previous and next +areas.
+ ball.gray.gif +
ball.gray.png
+ ball.red.gif +
ball.red.png
These might be used as bullets.
+ binary.gif +
binary.png
+ small/binary.gif +
small/binary.png
This can be used to represent binary files.
+ binhex.gif +
binhex.png
+ small/binhex.gif +
small/binhex.png
This can represent BinHex-encoded data.
+ blank.gif +
blank.png
+ small/blank.gif +
small/blank.png
This can be used as a placeholder or a spacing +element.
+ bomb.gif +
bomb.png
This can be used to represent core files.
+ box1.gif +
box1.png
+ box2.gif +
box2.png
These icons can be used to represent generic 3D +applications and related files.
+ broken.gif +
broken.png
+ small/broken.gif +
small/broken.png
This can represent corrupted data.
+ burst.gif +
burst.png
+ small/burst.gif +
small/burst.png
This can call attention to new and important items.
+ c.gif +
c.png
This might represent C source code.
+ comp.blue.gif +
comp.blue.png
+ comp.gray.gif +
comp.gray.png
+ small/comp1.gif +
small/comp1.png
+ small/comp2.gif +
small/comp2.png
These little computer icons can stand for telnet or FTP +sessions.
+ compressed.gif +
compressed.png
+ small/compressed.gif +
small/compressed.png
This may represent compressed data.
+ continued.gif +
continued.png
+ small/continued.gif +
small/continued.png
This can be a link to a continued listing of a +directory.
+ down.gif +
down.png
+ up.gif +
up.png
+ left.gif +
left.png
+ right.gif +
right.png
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 +
dir.png
Identical to folder.gif (.png) below.
+ diskimg.gif +
diskimg.png
This can represent floppy disk storage.
+ small/doc.gif +
small/doc.png
This can represent document files.
+ dvi.gif +
dvi.png
This can represent DVI files.
+ f.gif +
f.png
This might represent FORTRAN or Forth source code.
+ folder.gif +
folder.png
+ folder.open.gif +
folder.open.png
+ folder.sec.gif +
folder.sec.png
+ small/folder.gif +
small/folder.png
+ small/folder2.gif +
small/folder2.png
The folder can represent directories. There is also a +version that can represent secure directories or directories that cannot +be viewed.
+ generic.gif +
generic.png
+ generic.sec.gif +
generic.sec.png
+ generic.red.gif +
generic.red.png
+ small/generic.gif +
small/generic.png
+ small/generic2.gif +
small/generic2.png
+ small/generic3.gif +
small/generic3.png
These can represent generic files, secure files, and +important files, respectively.
+ hand.right.gif +
hand.right.png
+ hand.up.gif +
hand.up.png
These can point out important items (pun intended).
+ image1.gif +
image1.png
+ image2.gif +
image2.png
+ image3.gif +
image3.png
+ small/image.gif +
small/image.png
+ small/image2.gif +
small/image2.png
These can represent image formats of various types.
+ index.gif +
index.png
+ small/index.gif +
small/index.png
This might represent a WAIS index or search facility.
+ small/key.gif +
small/key.png
This might represent a locked file.
+ layout.gif +
layout.png
This might represent files and formats that contain +graphics as well as text layout, such as HTML and PDF files.
+ link.gif +
link.png
This might represent files that are symbolic links.
+ movie.gif +
movie.png
+ small/movie.gif +
small/movie.png
This can represent various movie formats.
+ p.gif +
p.png
This may stand for Perl or Python source code.
+ pie0.gif +
pie0.png
+ pie1.gif +
pie1.png
+ pie2.gif +
pie2.png
+ pie3.gif +
pie3.png
+ pie4.gif +
pie4.png
+ pie5.gif +
pie5.png
+ pie6.gif +
pie6.png
+ pie7.gif +
pie7.png
+ pie8.gif +
pie8.png
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.
+ patch.gif +
patch.png
+ small/patch.gif +
small/patch.png
This may stand for patches and diff files.
+ portal.gif +
portal.png
This might be a link to an online service or a 3D +world.
+ pdf.gif +
pdf.png
+ ps.gif +
ps.png
+ quill.gif +
quill.png
+ small/ps.gif +
small/ps.png
These may represent PDF and PostScript files.
+ screw1.gif +
screw1.png
+ screw2.gif +
screw2.png
These may represent CAD or engineering data and +formats.
+ script.gif +
script.png
This can represent any of various interpreted languages, +such as Perl, python, TCL, and shell scripts, as well as server configuration +files.
+ sound1.gif +
sound1.png
+ sound2.gif +
sound2.png
+ small/sound.gif +
small/sound.png
+ small/sound2.gif +
small/sound2.png
These can represent sound files.
+ sphere1.gif +
sphere1.png
+ sphere2.gif +
sphere2.png
These can represent 3D worlds or rendering applications and +formats.
+ tar.gif +
tar.png
+ small/tar.gif +
small/tar.png
This can represent TAR archive files.
+ tex.gif +
tex.png
This can represent TeX files.
+ text.gif +
text.png
+ small/text.gif +
small/text.png
This can represent generic (plain) text files.
+ transfer.gif +
transfer.png
+ small/transfer.gif +
small/transfer.png
This can represent FTP transfers or uploads/downloads.
+ unknown.gif +
unknown.png
+ small/unknown.gif +
small/unknown.png
This may represent a file of an unknown type.
+ uu.gif +
uu.png
+ uuencoded.gif +
uuencoded.png
+ small/uu.gif +
small/uu.png
This can stand for uuencoded data.
+ world1.gif +
world1.png
+ world2.gif +
world2.png
These can represent 3D worlds or other 3D formats.
+ + diff --git a/rubbos/app/apache2/icons/a.gif b/rubbos/app/apache2/icons/a.gif new file mode 100644 index 00000000..bb23d971 Binary files /dev/null and b/rubbos/app/apache2/icons/a.gif differ diff --git a/rubbos/app/apache2/icons/a.png b/rubbos/app/apache2/icons/a.png new file mode 100644 index 00000000..8cd63a95 Binary files /dev/null and b/rubbos/app/apache2/icons/a.png differ diff --git a/rubbos/app/apache2/icons/alert.black.gif b/rubbos/app/apache2/icons/alert.black.gif new file mode 100644 index 00000000..eaecd217 Binary files /dev/null and b/rubbos/app/apache2/icons/alert.black.gif differ diff --git a/rubbos/app/apache2/icons/alert.black.png b/rubbos/app/apache2/icons/alert.black.png new file mode 100644 index 00000000..8655d801 Binary files /dev/null and b/rubbos/app/apache2/icons/alert.black.png differ diff --git a/rubbos/app/apache2/icons/alert.red.gif b/rubbos/app/apache2/icons/alert.red.gif new file mode 100644 index 00000000..a4238940 Binary files /dev/null and b/rubbos/app/apache2/icons/alert.red.gif differ diff --git a/rubbos/app/apache2/icons/alert.red.png b/rubbos/app/apache2/icons/alert.red.png new file mode 100644 index 00000000..aa877c09 Binary files /dev/null and b/rubbos/app/apache2/icons/alert.red.png differ diff --git a/rubbos/app/apache2/icons/apache_pb.gif b/rubbos/app/apache2/icons/apache_pb.gif new file mode 100644 index 00000000..3a1c139f Binary files /dev/null and b/rubbos/app/apache2/icons/apache_pb.gif differ diff --git a/rubbos/app/apache2/icons/apache_pb.png b/rubbos/app/apache2/icons/apache_pb.png new file mode 100644 index 00000000..9b55f79f Binary files /dev/null and b/rubbos/app/apache2/icons/apache_pb.png differ diff --git a/rubbos/app/apache2/icons/apache_pb2.gif b/rubbos/app/apache2/icons/apache_pb2.gif new file mode 100644 index 00000000..4e67c711 Binary files /dev/null and b/rubbos/app/apache2/icons/apache_pb2.gif differ diff --git a/rubbos/app/apache2/icons/apache_pb2.png b/rubbos/app/apache2/icons/apache_pb2.png new file mode 100644 index 00000000..1237499f Binary files /dev/null and b/rubbos/app/apache2/icons/apache_pb2.png differ diff --git a/rubbos/app/apache2/icons/apache_pb2_ani.gif b/rubbos/app/apache2/icons/apache_pb2_ani.gif new file mode 100644 index 00000000..fc41c036 Binary files /dev/null and b/rubbos/app/apache2/icons/apache_pb2_ani.gif differ diff --git a/rubbos/app/apache2/icons/back.gif b/rubbos/app/apache2/icons/back.gif new file mode 100644 index 00000000..a694ae1e Binary files /dev/null and b/rubbos/app/apache2/icons/back.gif differ diff --git a/rubbos/app/apache2/icons/back.png b/rubbos/app/apache2/icons/back.png new file mode 100644 index 00000000..27d4dc7a Binary files /dev/null and b/rubbos/app/apache2/icons/back.png differ diff --git a/rubbos/app/apache2/icons/ball.gray.gif b/rubbos/app/apache2/icons/ball.gray.gif new file mode 100644 index 00000000..eb84268c Binary files /dev/null and b/rubbos/app/apache2/icons/ball.gray.gif differ diff --git a/rubbos/app/apache2/icons/ball.gray.png b/rubbos/app/apache2/icons/ball.gray.png new file mode 100644 index 00000000..cac2ce0b Binary files /dev/null and b/rubbos/app/apache2/icons/ball.gray.png differ diff --git a/rubbos/app/apache2/icons/ball.red.gif b/rubbos/app/apache2/icons/ball.red.gif new file mode 100644 index 00000000..a8425cb5 Binary files /dev/null and b/rubbos/app/apache2/icons/ball.red.gif differ diff --git a/rubbos/app/apache2/icons/ball.red.png b/rubbos/app/apache2/icons/ball.red.png new file mode 100644 index 00000000..9c19b941 Binary files /dev/null and b/rubbos/app/apache2/icons/ball.red.png differ diff --git a/rubbos/app/apache2/icons/binary.gif b/rubbos/app/apache2/icons/binary.gif new file mode 100644 index 00000000..9a15cbae Binary files /dev/null and b/rubbos/app/apache2/icons/binary.gif differ diff --git a/rubbos/app/apache2/icons/binary.png b/rubbos/app/apache2/icons/binary.png new file mode 100644 index 00000000..ed0c6608 Binary files /dev/null and b/rubbos/app/apache2/icons/binary.png differ diff --git a/rubbos/app/apache2/icons/binhex.gif b/rubbos/app/apache2/icons/binhex.gif new file mode 100644 index 00000000..62d03631 Binary files /dev/null and b/rubbos/app/apache2/icons/binhex.gif differ diff --git a/rubbos/app/apache2/icons/binhex.png b/rubbos/app/apache2/icons/binhex.png new file mode 100644 index 00000000..df267fb1 Binary files /dev/null and b/rubbos/app/apache2/icons/binhex.png differ diff --git a/rubbos/app/apache2/icons/blank.gif b/rubbos/app/apache2/icons/blank.gif new file mode 100644 index 00000000..0ccf01e1 Binary files /dev/null and b/rubbos/app/apache2/icons/blank.gif differ diff --git a/rubbos/app/apache2/icons/blank.png b/rubbos/app/apache2/icons/blank.png new file mode 100644 index 00000000..33e64770 Binary files /dev/null and b/rubbos/app/apache2/icons/blank.png differ diff --git a/rubbos/app/apache2/icons/bomb.gif b/rubbos/app/apache2/icons/bomb.gif new file mode 100644 index 00000000..270fdb1c Binary files /dev/null and b/rubbos/app/apache2/icons/bomb.gif differ diff --git a/rubbos/app/apache2/icons/bomb.png b/rubbos/app/apache2/icons/bomb.png new file mode 100644 index 00000000..58323a21 Binary files /dev/null and b/rubbos/app/apache2/icons/bomb.png differ diff --git a/rubbos/app/apache2/icons/box1.gif b/rubbos/app/apache2/icons/box1.gif new file mode 100644 index 00000000..65dcd002 Binary files /dev/null and b/rubbos/app/apache2/icons/box1.gif differ diff --git a/rubbos/app/apache2/icons/box1.png b/rubbos/app/apache2/icons/box1.png new file mode 100644 index 00000000..53971329 Binary files /dev/null and b/rubbos/app/apache2/icons/box1.png differ diff --git a/rubbos/app/apache2/icons/box2.gif b/rubbos/app/apache2/icons/box2.gif new file mode 100644 index 00000000..c43bc4fa Binary files /dev/null and b/rubbos/app/apache2/icons/box2.gif differ diff --git a/rubbos/app/apache2/icons/box2.png b/rubbos/app/apache2/icons/box2.png new file mode 100644 index 00000000..0e3812eb Binary files /dev/null and b/rubbos/app/apache2/icons/box2.png differ diff --git a/rubbos/app/apache2/icons/broken.gif b/rubbos/app/apache2/icons/broken.gif new file mode 100644 index 00000000..9f8cbe9f Binary files /dev/null and b/rubbos/app/apache2/icons/broken.gif differ diff --git a/rubbos/app/apache2/icons/broken.png b/rubbos/app/apache2/icons/broken.png new file mode 100644 index 00000000..44ab15d7 Binary files /dev/null and b/rubbos/app/apache2/icons/broken.png differ diff --git a/rubbos/app/apache2/icons/burst.gif b/rubbos/app/apache2/icons/burst.gif new file mode 100644 index 00000000..fbdcf575 Binary files /dev/null and b/rubbos/app/apache2/icons/burst.gif differ diff --git a/rubbos/app/apache2/icons/burst.png b/rubbos/app/apache2/icons/burst.png new file mode 100644 index 00000000..fd504ee3 Binary files /dev/null and b/rubbos/app/apache2/icons/burst.png differ diff --git a/rubbos/app/apache2/icons/c.gif b/rubbos/app/apache2/icons/c.gif new file mode 100644 index 00000000..7555b6c1 Binary files /dev/null and b/rubbos/app/apache2/icons/c.gif differ diff --git a/rubbos/app/apache2/icons/c.png b/rubbos/app/apache2/icons/c.png new file mode 100644 index 00000000..a1fef3e3 Binary files /dev/null and b/rubbos/app/apache2/icons/c.png differ diff --git a/rubbos/app/apache2/icons/comp.blue.gif b/rubbos/app/apache2/icons/comp.blue.gif new file mode 100644 index 00000000..f8d76a8c Binary files /dev/null and b/rubbos/app/apache2/icons/comp.blue.gif differ diff --git a/rubbos/app/apache2/icons/comp.blue.png b/rubbos/app/apache2/icons/comp.blue.png new file mode 100644 index 00000000..8e7e006f Binary files /dev/null and b/rubbos/app/apache2/icons/comp.blue.png differ diff --git a/rubbos/app/apache2/icons/comp.gray.gif b/rubbos/app/apache2/icons/comp.gray.gif new file mode 100644 index 00000000..7664cd03 Binary files /dev/null and b/rubbos/app/apache2/icons/comp.gray.gif differ diff --git a/rubbos/app/apache2/icons/comp.gray.png b/rubbos/app/apache2/icons/comp.gray.png new file mode 100644 index 00000000..8f620bdd Binary files /dev/null and b/rubbos/app/apache2/icons/comp.gray.png differ diff --git a/rubbos/app/apache2/icons/compressed.gif b/rubbos/app/apache2/icons/compressed.gif new file mode 100644 index 00000000..39e73273 Binary files /dev/null and b/rubbos/app/apache2/icons/compressed.gif differ diff --git a/rubbos/app/apache2/icons/compressed.png b/rubbos/app/apache2/icons/compressed.png new file mode 100644 index 00000000..1959b85a Binary files /dev/null and b/rubbos/app/apache2/icons/compressed.png differ diff --git a/rubbos/app/apache2/icons/continued.gif b/rubbos/app/apache2/icons/continued.gif new file mode 100644 index 00000000..b0ffb7e0 Binary files /dev/null and b/rubbos/app/apache2/icons/continued.gif differ diff --git a/rubbos/app/apache2/icons/continued.png b/rubbos/app/apache2/icons/continued.png new file mode 100644 index 00000000..7431262e Binary files /dev/null and b/rubbos/app/apache2/icons/continued.png differ diff --git a/rubbos/app/apache2/icons/dir.gif b/rubbos/app/apache2/icons/dir.gif new file mode 100644 index 00000000..48264601 Binary files /dev/null and b/rubbos/app/apache2/icons/dir.gif differ diff --git a/rubbos/app/apache2/icons/dir.png b/rubbos/app/apache2/icons/dir.png new file mode 100644 index 00000000..971ac3f4 Binary files /dev/null and b/rubbos/app/apache2/icons/dir.png differ diff --git a/rubbos/app/apache2/icons/diskimg.gif b/rubbos/app/apache2/icons/diskimg.gif new file mode 100644 index 00000000..49b12a8d Binary files /dev/null and b/rubbos/app/apache2/icons/diskimg.gif differ diff --git a/rubbos/app/apache2/icons/diskimg.png b/rubbos/app/apache2/icons/diskimg.png new file mode 100644 index 00000000..d8f04c21 Binary files /dev/null and b/rubbos/app/apache2/icons/diskimg.png differ diff --git a/rubbos/app/apache2/icons/down.gif b/rubbos/app/apache2/icons/down.gif new file mode 100644 index 00000000..a354c871 Binary files /dev/null and b/rubbos/app/apache2/icons/down.gif differ diff --git a/rubbos/app/apache2/icons/down.png b/rubbos/app/apache2/icons/down.png new file mode 100644 index 00000000..076ca2e9 Binary files /dev/null and b/rubbos/app/apache2/icons/down.png differ diff --git a/rubbos/app/apache2/icons/dvi.gif b/rubbos/app/apache2/icons/dvi.gif new file mode 100644 index 00000000..791be331 Binary files /dev/null and b/rubbos/app/apache2/icons/dvi.gif differ diff --git a/rubbos/app/apache2/icons/dvi.png b/rubbos/app/apache2/icons/dvi.png new file mode 100644 index 00000000..e77b2821 Binary files /dev/null and b/rubbos/app/apache2/icons/dvi.png differ diff --git a/rubbos/app/apache2/icons/f.gif b/rubbos/app/apache2/icons/f.gif new file mode 100644 index 00000000..fbe353c2 Binary files /dev/null and b/rubbos/app/apache2/icons/f.gif differ diff --git a/rubbos/app/apache2/icons/f.png b/rubbos/app/apache2/icons/f.png new file mode 100644 index 00000000..876e1c9c Binary files /dev/null and b/rubbos/app/apache2/icons/f.png differ diff --git a/rubbos/app/apache2/icons/folder.gif b/rubbos/app/apache2/icons/folder.gif new file mode 100644 index 00000000..48264601 Binary files /dev/null and b/rubbos/app/apache2/icons/folder.gif differ diff --git a/rubbos/app/apache2/icons/folder.open.gif b/rubbos/app/apache2/icons/folder.open.gif new file mode 100644 index 00000000..30979cb5 Binary files /dev/null and b/rubbos/app/apache2/icons/folder.open.gif differ diff --git a/rubbos/app/apache2/icons/folder.open.png b/rubbos/app/apache2/icons/folder.open.png new file mode 100644 index 00000000..7260e840 Binary files /dev/null and b/rubbos/app/apache2/icons/folder.open.png differ diff --git a/rubbos/app/apache2/icons/folder.png b/rubbos/app/apache2/icons/folder.png new file mode 100644 index 00000000..971ac3f4 Binary files /dev/null and b/rubbos/app/apache2/icons/folder.png differ diff --git a/rubbos/app/apache2/icons/folder.sec.gif b/rubbos/app/apache2/icons/folder.sec.gif new file mode 100644 index 00000000..75332d9e Binary files /dev/null and b/rubbos/app/apache2/icons/folder.sec.gif differ diff --git a/rubbos/app/apache2/icons/folder.sec.png b/rubbos/app/apache2/icons/folder.sec.png new file mode 100644 index 00000000..e6198c65 Binary files /dev/null and b/rubbos/app/apache2/icons/folder.sec.png differ diff --git a/rubbos/app/apache2/icons/forward.gif b/rubbos/app/apache2/icons/forward.gif new file mode 100644 index 00000000..b2959b4c Binary files /dev/null and b/rubbos/app/apache2/icons/forward.gif differ diff --git a/rubbos/app/apache2/icons/forward.png b/rubbos/app/apache2/icons/forward.png new file mode 100644 index 00000000..9e7bfeec Binary files /dev/null and b/rubbos/app/apache2/icons/forward.png differ diff --git a/rubbos/app/apache2/icons/generic.gif b/rubbos/app/apache2/icons/generic.gif new file mode 100644 index 00000000..de60b294 Binary files /dev/null and b/rubbos/app/apache2/icons/generic.gif differ diff --git a/rubbos/app/apache2/icons/generic.png b/rubbos/app/apache2/icons/generic.png new file mode 100644 index 00000000..2c75bde9 Binary files /dev/null and b/rubbos/app/apache2/icons/generic.png differ diff --git a/rubbos/app/apache2/icons/generic.red.gif b/rubbos/app/apache2/icons/generic.red.gif new file mode 100644 index 00000000..94743981 Binary files /dev/null and b/rubbos/app/apache2/icons/generic.red.gif differ diff --git a/rubbos/app/apache2/icons/generic.red.png b/rubbos/app/apache2/icons/generic.red.png new file mode 100644 index 00000000..2fcb057c Binary files /dev/null and b/rubbos/app/apache2/icons/generic.red.png differ diff --git a/rubbos/app/apache2/icons/generic.sec.gif b/rubbos/app/apache2/icons/generic.sec.gif new file mode 100644 index 00000000..88d5240c Binary files /dev/null and b/rubbos/app/apache2/icons/generic.sec.gif differ diff --git a/rubbos/app/apache2/icons/generic.sec.png b/rubbos/app/apache2/icons/generic.sec.png new file mode 100644 index 00000000..229ddbfe Binary files /dev/null and b/rubbos/app/apache2/icons/generic.sec.png differ diff --git a/rubbos/app/apache2/icons/hand.right.gif b/rubbos/app/apache2/icons/hand.right.gif new file mode 100644 index 00000000..5cdbc720 Binary files /dev/null and b/rubbos/app/apache2/icons/hand.right.gif differ diff --git a/rubbos/app/apache2/icons/hand.right.png b/rubbos/app/apache2/icons/hand.right.png new file mode 100644 index 00000000..88efd6f8 Binary files /dev/null and b/rubbos/app/apache2/icons/hand.right.png differ diff --git a/rubbos/app/apache2/icons/hand.up.gif b/rubbos/app/apache2/icons/hand.up.gif new file mode 100644 index 00000000..85a5d683 Binary files /dev/null and b/rubbos/app/apache2/icons/hand.up.gif differ diff --git a/rubbos/app/apache2/icons/hand.up.png b/rubbos/app/apache2/icons/hand.up.png new file mode 100644 index 00000000..d892e15c Binary files /dev/null and b/rubbos/app/apache2/icons/hand.up.png differ diff --git a/rubbos/app/apache2/icons/icon.sheet.gif b/rubbos/app/apache2/icons/icon.sheet.gif new file mode 100644 index 00000000..ad1686e4 Binary files /dev/null and b/rubbos/app/apache2/icons/icon.sheet.gif differ diff --git a/rubbos/app/apache2/icons/icon.sheet.png b/rubbos/app/apache2/icons/icon.sheet.png new file mode 100644 index 00000000..8b2a2013 Binary files /dev/null and b/rubbos/app/apache2/icons/icon.sheet.png differ diff --git a/rubbos/app/apache2/icons/image1.gif b/rubbos/app/apache2/icons/image1.gif new file mode 100644 index 00000000..01e442bf Binary files /dev/null and b/rubbos/app/apache2/icons/image1.gif differ diff --git a/rubbos/app/apache2/icons/image1.png b/rubbos/app/apache2/icons/image1.png new file mode 100644 index 00000000..c56991b4 Binary files /dev/null and b/rubbos/app/apache2/icons/image1.png differ diff --git a/rubbos/app/apache2/icons/image2.gif b/rubbos/app/apache2/icons/image2.gif new file mode 100644 index 00000000..751faeea Binary files /dev/null and b/rubbos/app/apache2/icons/image2.gif differ diff --git a/rubbos/app/apache2/icons/image2.png b/rubbos/app/apache2/icons/image2.png new file mode 100644 index 00000000..532432c9 Binary files /dev/null and b/rubbos/app/apache2/icons/image2.png differ diff --git a/rubbos/app/apache2/icons/image3.gif b/rubbos/app/apache2/icons/image3.gif new file mode 100644 index 00000000..4f30484f Binary files /dev/null and b/rubbos/app/apache2/icons/image3.gif differ diff --git a/rubbos/app/apache2/icons/image3.png b/rubbos/app/apache2/icons/image3.png new file mode 100644 index 00000000..90373245 Binary files /dev/null and b/rubbos/app/apache2/icons/image3.png differ diff --git a/rubbos/app/apache2/icons/index.gif b/rubbos/app/apache2/icons/index.gif new file mode 100644 index 00000000..162478fb Binary files /dev/null and b/rubbos/app/apache2/icons/index.gif differ diff --git a/rubbos/app/apache2/icons/index.png b/rubbos/app/apache2/icons/index.png new file mode 100644 index 00000000..ca3cd277 Binary files /dev/null and b/rubbos/app/apache2/icons/index.png differ diff --git a/rubbos/app/apache2/icons/layout.gif b/rubbos/app/apache2/icons/layout.gif new file mode 100644 index 00000000..c96338a1 Binary files /dev/null and b/rubbos/app/apache2/icons/layout.gif differ diff --git a/rubbos/app/apache2/icons/layout.png b/rubbos/app/apache2/icons/layout.png new file mode 100644 index 00000000..8f3bbd25 Binary files /dev/null and b/rubbos/app/apache2/icons/layout.png differ diff --git a/rubbos/app/apache2/icons/left.gif b/rubbos/app/apache2/icons/left.gif new file mode 100644 index 00000000..279e6710 Binary files /dev/null and b/rubbos/app/apache2/icons/left.gif differ diff --git a/rubbos/app/apache2/icons/left.png b/rubbos/app/apache2/icons/left.png new file mode 100644 index 00000000..fa19fd66 Binary files /dev/null and b/rubbos/app/apache2/icons/left.png differ diff --git a/rubbos/app/apache2/icons/link.gif b/rubbos/app/apache2/icons/link.gif new file mode 100644 index 00000000..c5b6889a Binary files /dev/null and b/rubbos/app/apache2/icons/link.gif differ diff --git a/rubbos/app/apache2/icons/link.png b/rubbos/app/apache2/icons/link.png new file mode 100644 index 00000000..5969c45b Binary files /dev/null and b/rubbos/app/apache2/icons/link.png differ diff --git a/rubbos/app/apache2/icons/movie.gif b/rubbos/app/apache2/icons/movie.gif new file mode 100644 index 00000000..00351837 Binary files /dev/null and b/rubbos/app/apache2/icons/movie.gif differ diff --git a/rubbos/app/apache2/icons/movie.png b/rubbos/app/apache2/icons/movie.png new file mode 100644 index 00000000..bb9c9e4d Binary files /dev/null and b/rubbos/app/apache2/icons/movie.png differ diff --git a/rubbos/app/apache2/icons/p.gif b/rubbos/app/apache2/icons/p.gif new file mode 100644 index 00000000..7b917b4e Binary files /dev/null and b/rubbos/app/apache2/icons/p.gif differ diff --git a/rubbos/app/apache2/icons/p.png b/rubbos/app/apache2/icons/p.png new file mode 100644 index 00000000..99bca2c8 Binary files /dev/null and b/rubbos/app/apache2/icons/p.png differ diff --git a/rubbos/app/apache2/icons/patch.gif b/rubbos/app/apache2/icons/patch.gif new file mode 100644 index 00000000..39bc90e7 Binary files /dev/null and b/rubbos/app/apache2/icons/patch.gif differ diff --git a/rubbos/app/apache2/icons/patch.png b/rubbos/app/apache2/icons/patch.png new file mode 100644 index 00000000..a1a7abd8 Binary files /dev/null and b/rubbos/app/apache2/icons/patch.png differ diff --git a/rubbos/app/apache2/icons/pdf.gif b/rubbos/app/apache2/icons/pdf.gif new file mode 100644 index 00000000..c88fd777 Binary files /dev/null and b/rubbos/app/apache2/icons/pdf.gif differ diff --git a/rubbos/app/apache2/icons/pdf.png b/rubbos/app/apache2/icons/pdf.png new file mode 100644 index 00000000..dd478cc5 Binary files /dev/null and b/rubbos/app/apache2/icons/pdf.png differ diff --git a/rubbos/app/apache2/icons/pie0.gif b/rubbos/app/apache2/icons/pie0.gif new file mode 100644 index 00000000..6f7a0ae7 Binary files /dev/null and b/rubbos/app/apache2/icons/pie0.gif differ diff --git a/rubbos/app/apache2/icons/pie0.png b/rubbos/app/apache2/icons/pie0.png new file mode 100644 index 00000000..0418fd5e Binary files /dev/null and b/rubbos/app/apache2/icons/pie0.png differ diff --git a/rubbos/app/apache2/icons/pie1.gif b/rubbos/app/apache2/icons/pie1.gif new file mode 100644 index 00000000..03aa6be7 Binary files /dev/null and b/rubbos/app/apache2/icons/pie1.gif differ diff --git a/rubbos/app/apache2/icons/pie1.png b/rubbos/app/apache2/icons/pie1.png new file mode 100644 index 00000000..9ec6d610 Binary files /dev/null and b/rubbos/app/apache2/icons/pie1.png differ diff --git a/rubbos/app/apache2/icons/pie2.gif b/rubbos/app/apache2/icons/pie2.gif new file mode 100644 index 00000000..b04c5e09 Binary files /dev/null and b/rubbos/app/apache2/icons/pie2.gif differ diff --git a/rubbos/app/apache2/icons/pie2.png b/rubbos/app/apache2/icons/pie2.png new file mode 100644 index 00000000..b74fc719 Binary files /dev/null and b/rubbos/app/apache2/icons/pie2.png differ diff --git a/rubbos/app/apache2/icons/pie3.gif b/rubbos/app/apache2/icons/pie3.gif new file mode 100644 index 00000000..4db9d023 Binary files /dev/null and b/rubbos/app/apache2/icons/pie3.gif differ diff --git a/rubbos/app/apache2/icons/pie3.png b/rubbos/app/apache2/icons/pie3.png new file mode 100644 index 00000000..cad281a2 Binary files /dev/null and b/rubbos/app/apache2/icons/pie3.png differ diff --git a/rubbos/app/apache2/icons/pie4.gif b/rubbos/app/apache2/icons/pie4.gif new file mode 100644 index 00000000..93471fdd Binary files /dev/null and b/rubbos/app/apache2/icons/pie4.gif differ diff --git a/rubbos/app/apache2/icons/pie4.png b/rubbos/app/apache2/icons/pie4.png new file mode 100644 index 00000000..e6d01d2d Binary files /dev/null and b/rubbos/app/apache2/icons/pie4.png differ diff --git a/rubbos/app/apache2/icons/pie5.gif b/rubbos/app/apache2/icons/pie5.gif new file mode 100644 index 00000000..57aee93f Binary files /dev/null and b/rubbos/app/apache2/icons/pie5.gif differ diff --git a/rubbos/app/apache2/icons/pie5.png b/rubbos/app/apache2/icons/pie5.png new file mode 100644 index 00000000..8851abf8 Binary files /dev/null and b/rubbos/app/apache2/icons/pie5.png differ diff --git a/rubbos/app/apache2/icons/pie6.gif b/rubbos/app/apache2/icons/pie6.gif new file mode 100644 index 00000000..0dc327b5 Binary files /dev/null and b/rubbos/app/apache2/icons/pie6.gif differ diff --git a/rubbos/app/apache2/icons/pie6.png b/rubbos/app/apache2/icons/pie6.png new file mode 100644 index 00000000..8dc4df56 Binary files /dev/null and b/rubbos/app/apache2/icons/pie6.png differ diff --git a/rubbos/app/apache2/icons/pie7.gif b/rubbos/app/apache2/icons/pie7.gif new file mode 100644 index 00000000..8661337f Binary files /dev/null and b/rubbos/app/apache2/icons/pie7.gif differ diff --git a/rubbos/app/apache2/icons/pie7.png b/rubbos/app/apache2/icons/pie7.png new file mode 100644 index 00000000..242957ea Binary files /dev/null and b/rubbos/app/apache2/icons/pie7.png differ diff --git a/rubbos/app/apache2/icons/pie8.gif b/rubbos/app/apache2/icons/pie8.gif new file mode 100644 index 00000000..59ddb34c Binary files /dev/null and b/rubbos/app/apache2/icons/pie8.gif differ diff --git a/rubbos/app/apache2/icons/pie8.png b/rubbos/app/apache2/icons/pie8.png new file mode 100644 index 00000000..c5f2d0d5 Binary files /dev/null and b/rubbos/app/apache2/icons/pie8.png differ diff --git a/rubbos/app/apache2/icons/portal.gif b/rubbos/app/apache2/icons/portal.gif new file mode 100644 index 00000000..0e6e506e Binary files /dev/null and b/rubbos/app/apache2/icons/portal.gif differ diff --git a/rubbos/app/apache2/icons/portal.png b/rubbos/app/apache2/icons/portal.png new file mode 100644 index 00000000..ed733272 Binary files /dev/null and b/rubbos/app/apache2/icons/portal.png differ diff --git a/rubbos/app/apache2/icons/ps.gif b/rubbos/app/apache2/icons/ps.gif new file mode 100644 index 00000000..0f565bc1 Binary files /dev/null and b/rubbos/app/apache2/icons/ps.gif differ diff --git a/rubbos/app/apache2/icons/ps.png b/rubbos/app/apache2/icons/ps.png new file mode 100644 index 00000000..4058cfbb Binary files /dev/null and b/rubbos/app/apache2/icons/ps.png differ diff --git a/rubbos/app/apache2/icons/quill.gif b/rubbos/app/apache2/icons/quill.gif new file mode 100644 index 00000000..818a5cdc Binary files /dev/null and b/rubbos/app/apache2/icons/quill.gif differ diff --git a/rubbos/app/apache2/icons/quill.png b/rubbos/app/apache2/icons/quill.png new file mode 100644 index 00000000..550efbbc Binary files /dev/null and b/rubbos/app/apache2/icons/quill.png differ diff --git a/rubbos/app/apache2/icons/right.gif b/rubbos/app/apache2/icons/right.gif new file mode 100644 index 00000000..b256e5f7 Binary files /dev/null and b/rubbos/app/apache2/icons/right.gif differ diff --git a/rubbos/app/apache2/icons/right.png b/rubbos/app/apache2/icons/right.png new file mode 100644 index 00000000..ded7110e Binary files /dev/null and b/rubbos/app/apache2/icons/right.png differ diff --git a/rubbos/app/apache2/icons/screw1.gif b/rubbos/app/apache2/icons/screw1.gif new file mode 100644 index 00000000..af6ba2b0 Binary files /dev/null and b/rubbos/app/apache2/icons/screw1.gif differ diff --git a/rubbos/app/apache2/icons/screw1.png b/rubbos/app/apache2/icons/screw1.png new file mode 100644 index 00000000..3815cb70 Binary files /dev/null and b/rubbos/app/apache2/icons/screw1.png differ diff --git a/rubbos/app/apache2/icons/screw2.gif b/rubbos/app/apache2/icons/screw2.gif new file mode 100644 index 00000000..06dccb3e Binary files /dev/null and b/rubbos/app/apache2/icons/screw2.gif differ diff --git a/rubbos/app/apache2/icons/screw2.png b/rubbos/app/apache2/icons/screw2.png new file mode 100644 index 00000000..3f4c5a28 Binary files /dev/null and b/rubbos/app/apache2/icons/screw2.png differ diff --git a/rubbos/app/apache2/icons/script.gif b/rubbos/app/apache2/icons/script.gif new file mode 100644 index 00000000..d8a853bc Binary files /dev/null and b/rubbos/app/apache2/icons/script.gif differ diff --git a/rubbos/app/apache2/icons/script.png b/rubbos/app/apache2/icons/script.png new file mode 100644 index 00000000..8064d073 Binary files /dev/null and b/rubbos/app/apache2/icons/script.png differ diff --git a/rubbos/app/apache2/icons/small/back.gif b/rubbos/app/apache2/icons/small/back.gif new file mode 100644 index 00000000..e3314547 Binary files /dev/null and b/rubbos/app/apache2/icons/small/back.gif differ diff --git a/rubbos/app/apache2/icons/small/back.png b/rubbos/app/apache2/icons/small/back.png new file mode 100644 index 00000000..e339315a Binary files /dev/null and b/rubbos/app/apache2/icons/small/back.png differ diff --git a/rubbos/app/apache2/icons/small/binary.gif b/rubbos/app/apache2/icons/small/binary.gif new file mode 100644 index 00000000..995f79b9 Binary files /dev/null and b/rubbos/app/apache2/icons/small/binary.gif differ diff --git a/rubbos/app/apache2/icons/small/binary.png b/rubbos/app/apache2/icons/small/binary.png new file mode 100644 index 00000000..b836c7c0 Binary files /dev/null and b/rubbos/app/apache2/icons/small/binary.png differ diff --git a/rubbos/app/apache2/icons/small/binhex.gif b/rubbos/app/apache2/icons/small/binhex.gif new file mode 100644 index 00000000..3d54a545 Binary files /dev/null and b/rubbos/app/apache2/icons/small/binhex.gif differ diff --git a/rubbos/app/apache2/icons/small/binhex.png b/rubbos/app/apache2/icons/small/binhex.png new file mode 100644 index 00000000..cc61dd16 Binary files /dev/null and b/rubbos/app/apache2/icons/small/binhex.png differ diff --git a/rubbos/app/apache2/icons/small/blank.gif b/rubbos/app/apache2/icons/small/blank.gif new file mode 100644 index 00000000..606787a8 Binary files /dev/null and b/rubbos/app/apache2/icons/small/blank.gif differ diff --git a/rubbos/app/apache2/icons/small/blank.png b/rubbos/app/apache2/icons/small/blank.png new file mode 100644 index 00000000..89edd4d5 Binary files /dev/null and b/rubbos/app/apache2/icons/small/blank.png differ diff --git a/rubbos/app/apache2/icons/small/broken.gif b/rubbos/app/apache2/icons/small/broken.gif new file mode 100644 index 00000000..1bcc57f2 Binary files /dev/null and b/rubbos/app/apache2/icons/small/broken.gif differ diff --git a/rubbos/app/apache2/icons/small/broken.png b/rubbos/app/apache2/icons/small/broken.png new file mode 100644 index 00000000..7a6b2db8 Binary files /dev/null and b/rubbos/app/apache2/icons/small/broken.png differ diff --git a/rubbos/app/apache2/icons/small/burst.gif b/rubbos/app/apache2/icons/small/burst.gif new file mode 100644 index 00000000..d882ceba Binary files /dev/null and b/rubbos/app/apache2/icons/small/burst.gif differ diff --git a/rubbos/app/apache2/icons/small/burst.png b/rubbos/app/apache2/icons/small/burst.png new file mode 100644 index 00000000..1155c676 Binary files /dev/null and b/rubbos/app/apache2/icons/small/burst.png differ diff --git a/rubbos/app/apache2/icons/small/comp1.gif b/rubbos/app/apache2/icons/small/comp1.gif new file mode 100644 index 00000000..712f36af Binary files /dev/null and b/rubbos/app/apache2/icons/small/comp1.gif differ diff --git a/rubbos/app/apache2/icons/small/comp1.png b/rubbos/app/apache2/icons/small/comp1.png new file mode 100644 index 00000000..bbc3d0ec Binary files /dev/null and b/rubbos/app/apache2/icons/small/comp1.png differ diff --git a/rubbos/app/apache2/icons/small/comp2.gif b/rubbos/app/apache2/icons/small/comp2.gif new file mode 100644 index 00000000..7759eb11 Binary files /dev/null and b/rubbos/app/apache2/icons/small/comp2.gif differ diff --git a/rubbos/app/apache2/icons/small/comp2.png b/rubbos/app/apache2/icons/small/comp2.png new file mode 100644 index 00000000..8243345e Binary files /dev/null and b/rubbos/app/apache2/icons/small/comp2.png differ diff --git a/rubbos/app/apache2/icons/small/compressed.gif b/rubbos/app/apache2/icons/small/compressed.gif new file mode 100644 index 00000000..d3b15607 Binary files /dev/null and b/rubbos/app/apache2/icons/small/compressed.gif differ diff --git a/rubbos/app/apache2/icons/small/compressed.png b/rubbos/app/apache2/icons/small/compressed.png new file mode 100644 index 00000000..c7856f73 Binary files /dev/null and b/rubbos/app/apache2/icons/small/compressed.png differ diff --git a/rubbos/app/apache2/icons/small/continued.gif b/rubbos/app/apache2/icons/small/continued.gif new file mode 100644 index 00000000..e1c9f2cf Binary files /dev/null and b/rubbos/app/apache2/icons/small/continued.gif differ diff --git a/rubbos/app/apache2/icons/small/continued.png b/rubbos/app/apache2/icons/small/continued.png new file mode 100644 index 00000000..a9a7c09c Binary files /dev/null and b/rubbos/app/apache2/icons/small/continued.png differ diff --git a/rubbos/app/apache2/icons/small/dir.gif b/rubbos/app/apache2/icons/small/dir.gif new file mode 100644 index 00000000..7b37b099 Binary files /dev/null and b/rubbos/app/apache2/icons/small/dir.gif differ diff --git a/rubbos/app/apache2/icons/small/dir.png b/rubbos/app/apache2/icons/small/dir.png new file mode 100644 index 00000000..9bd6256b Binary files /dev/null and b/rubbos/app/apache2/icons/small/dir.png differ diff --git a/rubbos/app/apache2/icons/small/dir2.gif b/rubbos/app/apache2/icons/small/dir2.gif new file mode 100644 index 00000000..425d6e4b Binary files /dev/null and b/rubbos/app/apache2/icons/small/dir2.gif differ diff --git a/rubbos/app/apache2/icons/small/dir2.png b/rubbos/app/apache2/icons/small/dir2.png new file mode 100644 index 00000000..836daf49 Binary files /dev/null and b/rubbos/app/apache2/icons/small/dir2.png differ diff --git a/rubbos/app/apache2/icons/small/doc.gif b/rubbos/app/apache2/icons/small/doc.gif new file mode 100644 index 00000000..0fcf18db Binary files /dev/null and b/rubbos/app/apache2/icons/small/doc.gif differ diff --git a/rubbos/app/apache2/icons/small/doc.png b/rubbos/app/apache2/icons/small/doc.png new file mode 100644 index 00000000..99472681 Binary files /dev/null and b/rubbos/app/apache2/icons/small/doc.png differ diff --git a/rubbos/app/apache2/icons/small/forward.gif b/rubbos/app/apache2/icons/small/forward.gif new file mode 100644 index 00000000..2997466e Binary files /dev/null and b/rubbos/app/apache2/icons/small/forward.gif differ diff --git a/rubbos/app/apache2/icons/small/forward.png b/rubbos/app/apache2/icons/small/forward.png new file mode 100644 index 00000000..8187d389 Binary files /dev/null and b/rubbos/app/apache2/icons/small/forward.png differ diff --git a/rubbos/app/apache2/icons/small/generic.gif b/rubbos/app/apache2/icons/small/generic.gif new file mode 100644 index 00000000..f8da6ff9 Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic.gif differ diff --git a/rubbos/app/apache2/icons/small/generic.png b/rubbos/app/apache2/icons/small/generic.png new file mode 100644 index 00000000..bd36b085 Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic.png differ diff --git a/rubbos/app/apache2/icons/small/generic2.gif b/rubbos/app/apache2/icons/small/generic2.gif new file mode 100644 index 00000000..992f1333 Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic2.gif differ diff --git a/rubbos/app/apache2/icons/small/generic2.png b/rubbos/app/apache2/icons/small/generic2.png new file mode 100644 index 00000000..11231d91 Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic2.png differ diff --git a/rubbos/app/apache2/icons/small/generic3.gif b/rubbos/app/apache2/icons/small/generic3.gif new file mode 100644 index 00000000..85aa275e Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic3.gif differ diff --git a/rubbos/app/apache2/icons/small/generic3.png b/rubbos/app/apache2/icons/small/generic3.png new file mode 100644 index 00000000..3874aa3e Binary files /dev/null and b/rubbos/app/apache2/icons/small/generic3.png differ diff --git a/rubbos/app/apache2/icons/small/image.gif b/rubbos/app/apache2/icons/small/image.gif new file mode 100644 index 00000000..dc3d95ce Binary files /dev/null and b/rubbos/app/apache2/icons/small/image.gif differ diff --git a/rubbos/app/apache2/icons/small/image.png b/rubbos/app/apache2/icons/small/image.png new file mode 100644 index 00000000..50fbb847 Binary files /dev/null and b/rubbos/app/apache2/icons/small/image.png differ diff --git a/rubbos/app/apache2/icons/small/image2.gif b/rubbos/app/apache2/icons/small/image2.gif new file mode 100644 index 00000000..a5c40f15 Binary files /dev/null and b/rubbos/app/apache2/icons/small/image2.gif differ diff --git a/rubbos/app/apache2/icons/small/image2.png b/rubbos/app/apache2/icons/small/image2.png new file mode 100644 index 00000000..4aeff456 Binary files /dev/null and b/rubbos/app/apache2/icons/small/image2.png differ diff --git a/rubbos/app/apache2/icons/small/index.gif b/rubbos/app/apache2/icons/small/index.gif new file mode 100644 index 00000000..526df6b0 Binary files /dev/null and b/rubbos/app/apache2/icons/small/index.gif differ diff --git a/rubbos/app/apache2/icons/small/index.png b/rubbos/app/apache2/icons/small/index.png new file mode 100644 index 00000000..97df00e0 Binary files /dev/null and b/rubbos/app/apache2/icons/small/index.png differ diff --git a/rubbos/app/apache2/icons/small/key.gif b/rubbos/app/apache2/icons/small/key.gif new file mode 100644 index 00000000..8dfd6c09 Binary files /dev/null and b/rubbos/app/apache2/icons/small/key.gif differ diff --git a/rubbos/app/apache2/icons/small/key.png b/rubbos/app/apache2/icons/small/key.png new file mode 100644 index 00000000..44760746 Binary files /dev/null and b/rubbos/app/apache2/icons/small/key.png differ diff --git a/rubbos/app/apache2/icons/small/movie.gif b/rubbos/app/apache2/icons/small/movie.gif new file mode 100644 index 00000000..7b4a42e7 Binary files /dev/null and b/rubbos/app/apache2/icons/small/movie.gif differ diff --git a/rubbos/app/apache2/icons/small/movie.png b/rubbos/app/apache2/icons/small/movie.png new file mode 100644 index 00000000..87adc23c Binary files /dev/null and b/rubbos/app/apache2/icons/small/movie.png differ diff --git a/rubbos/app/apache2/icons/small/patch.gif b/rubbos/app/apache2/icons/small/patch.gif new file mode 100644 index 00000000..100484e5 Binary files /dev/null and b/rubbos/app/apache2/icons/small/patch.gif differ diff --git a/rubbos/app/apache2/icons/small/patch.png b/rubbos/app/apache2/icons/small/patch.png new file mode 100644 index 00000000..78148ed7 Binary files /dev/null and b/rubbos/app/apache2/icons/small/patch.png differ diff --git a/rubbos/app/apache2/icons/small/ps.gif b/rubbos/app/apache2/icons/small/ps.gif new file mode 100644 index 00000000..fa4bcfce Binary files /dev/null and b/rubbos/app/apache2/icons/small/ps.gif differ diff --git a/rubbos/app/apache2/icons/small/ps.png b/rubbos/app/apache2/icons/small/ps.png new file mode 100644 index 00000000..23e42ad4 Binary files /dev/null and b/rubbos/app/apache2/icons/small/ps.png differ diff --git a/rubbos/app/apache2/icons/small/rainbow.gif b/rubbos/app/apache2/icons/small/rainbow.gif new file mode 100644 index 00000000..8216b89b Binary files /dev/null and b/rubbos/app/apache2/icons/small/rainbow.gif differ diff --git a/rubbos/app/apache2/icons/small/rainbow.png b/rubbos/app/apache2/icons/small/rainbow.png new file mode 100644 index 00000000..16e63fa6 Binary files /dev/null and b/rubbos/app/apache2/icons/small/rainbow.png differ diff --git a/rubbos/app/apache2/icons/small/sound.gif b/rubbos/app/apache2/icons/small/sound.gif new file mode 100644 index 00000000..a7a89ffd Binary files /dev/null and b/rubbos/app/apache2/icons/small/sound.gif differ diff --git a/rubbos/app/apache2/icons/small/sound.png b/rubbos/app/apache2/icons/small/sound.png new file mode 100644 index 00000000..1bbc5825 Binary files /dev/null and b/rubbos/app/apache2/icons/small/sound.png differ diff --git a/rubbos/app/apache2/icons/small/sound2.gif b/rubbos/app/apache2/icons/small/sound2.gif new file mode 100644 index 00000000..07706e07 Binary files /dev/null and b/rubbos/app/apache2/icons/small/sound2.gif differ diff --git a/rubbos/app/apache2/icons/small/sound2.png b/rubbos/app/apache2/icons/small/sound2.png new file mode 100644 index 00000000..06a6c879 Binary files /dev/null and b/rubbos/app/apache2/icons/small/sound2.png differ diff --git a/rubbos/app/apache2/icons/small/tar.gif b/rubbos/app/apache2/icons/small/tar.gif new file mode 100644 index 00000000..59c3ffb9 Binary files /dev/null and b/rubbos/app/apache2/icons/small/tar.gif differ diff --git a/rubbos/app/apache2/icons/small/tar.png b/rubbos/app/apache2/icons/small/tar.png new file mode 100644 index 00000000..66ee8a2b Binary files /dev/null and b/rubbos/app/apache2/icons/small/tar.png differ diff --git a/rubbos/app/apache2/icons/small/text.gif b/rubbos/app/apache2/icons/small/text.gif new file mode 100644 index 00000000..66ceefbc Binary files /dev/null and b/rubbos/app/apache2/icons/small/text.gif differ diff --git a/rubbos/app/apache2/icons/small/text.png b/rubbos/app/apache2/icons/small/text.png new file mode 100644 index 00000000..4c1c626f Binary files /dev/null and b/rubbos/app/apache2/icons/small/text.png differ diff --git a/rubbos/app/apache2/icons/small/transfer.gif b/rubbos/app/apache2/icons/small/transfer.gif new file mode 100644 index 00000000..d460d3ff Binary files /dev/null and b/rubbos/app/apache2/icons/small/transfer.gif differ diff --git a/rubbos/app/apache2/icons/small/transfer.png b/rubbos/app/apache2/icons/small/transfer.png new file mode 100644 index 00000000..ff2f88ac Binary files /dev/null and b/rubbos/app/apache2/icons/small/transfer.png differ diff --git a/rubbos/app/apache2/icons/small/unknown.gif b/rubbos/app/apache2/icons/small/unknown.gif new file mode 100644 index 00000000..7bf0bbc1 Binary files /dev/null and b/rubbos/app/apache2/icons/small/unknown.gif differ diff --git a/rubbos/app/apache2/icons/small/unknown.png b/rubbos/app/apache2/icons/small/unknown.png new file mode 100644 index 00000000..dbd518ba Binary files /dev/null and b/rubbos/app/apache2/icons/small/unknown.png differ diff --git a/rubbos/app/apache2/icons/small/uu.gif b/rubbos/app/apache2/icons/small/uu.gif new file mode 100644 index 00000000..8c793f8a Binary files /dev/null and b/rubbos/app/apache2/icons/small/uu.gif differ diff --git a/rubbos/app/apache2/icons/small/uu.png b/rubbos/app/apache2/icons/small/uu.png new file mode 100644 index 00000000..52117a2c Binary files /dev/null and b/rubbos/app/apache2/icons/small/uu.png differ diff --git a/rubbos/app/apache2/icons/sound1.gif b/rubbos/app/apache2/icons/sound1.gif new file mode 100644 index 00000000..8efb49f5 Binary files /dev/null and b/rubbos/app/apache2/icons/sound1.gif differ diff --git a/rubbos/app/apache2/icons/sound1.png b/rubbos/app/apache2/icons/sound1.png new file mode 100644 index 00000000..16bb332c Binary files /dev/null and b/rubbos/app/apache2/icons/sound1.png differ diff --git a/rubbos/app/apache2/icons/sound2.gif b/rubbos/app/apache2/icons/sound2.gif new file mode 100644 index 00000000..48e6a7fb Binary files /dev/null and b/rubbos/app/apache2/icons/sound2.gif differ diff --git a/rubbos/app/apache2/icons/sound2.png b/rubbos/app/apache2/icons/sound2.png new file mode 100644 index 00000000..0b11d761 Binary files /dev/null and b/rubbos/app/apache2/icons/sound2.png differ diff --git a/rubbos/app/apache2/icons/sphere1.gif b/rubbos/app/apache2/icons/sphere1.gif new file mode 100644 index 00000000..7067070d Binary files /dev/null and b/rubbos/app/apache2/icons/sphere1.gif differ diff --git a/rubbos/app/apache2/icons/sphere1.png b/rubbos/app/apache2/icons/sphere1.png new file mode 100644 index 00000000..5dddd042 Binary files /dev/null and b/rubbos/app/apache2/icons/sphere1.png differ diff --git a/rubbos/app/apache2/icons/sphere2.gif b/rubbos/app/apache2/icons/sphere2.gif new file mode 100644 index 00000000..a9e462a3 Binary files /dev/null and b/rubbos/app/apache2/icons/sphere2.gif differ diff --git a/rubbos/app/apache2/icons/sphere2.png b/rubbos/app/apache2/icons/sphere2.png new file mode 100644 index 00000000..1fb64deb Binary files /dev/null and b/rubbos/app/apache2/icons/sphere2.png differ diff --git a/rubbos/app/apache2/icons/tar.gif b/rubbos/app/apache2/icons/tar.gif new file mode 100644 index 00000000..4032c1bd Binary files /dev/null and b/rubbos/app/apache2/icons/tar.gif differ diff --git a/rubbos/app/apache2/icons/tar.png b/rubbos/app/apache2/icons/tar.png new file mode 100644 index 00000000..533fd6f0 Binary files /dev/null and b/rubbos/app/apache2/icons/tar.png differ diff --git a/rubbos/app/apache2/icons/tex.gif b/rubbos/app/apache2/icons/tex.gif new file mode 100644 index 00000000..45e43233 Binary files /dev/null and b/rubbos/app/apache2/icons/tex.gif differ diff --git a/rubbos/app/apache2/icons/tex.png b/rubbos/app/apache2/icons/tex.png new file mode 100644 index 00000000..ca8e7893 Binary files /dev/null and b/rubbos/app/apache2/icons/tex.png differ diff --git a/rubbos/app/apache2/icons/text.gif b/rubbos/app/apache2/icons/text.gif new file mode 100644 index 00000000..4c623909 Binary files /dev/null and b/rubbos/app/apache2/icons/text.gif differ diff --git a/rubbos/app/apache2/icons/text.png b/rubbos/app/apache2/icons/text.png new file mode 100644 index 00000000..ad068b90 Binary files /dev/null and b/rubbos/app/apache2/icons/text.png differ diff --git a/rubbos/app/apache2/icons/transfer.gif b/rubbos/app/apache2/icons/transfer.gif new file mode 100644 index 00000000..33697dbb Binary files /dev/null and b/rubbos/app/apache2/icons/transfer.gif differ diff --git a/rubbos/app/apache2/icons/transfer.png b/rubbos/app/apache2/icons/transfer.png new file mode 100644 index 00000000..bd4f325f Binary files /dev/null and b/rubbos/app/apache2/icons/transfer.png differ diff --git a/rubbos/app/apache2/icons/unknown.gif b/rubbos/app/apache2/icons/unknown.gif new file mode 100644 index 00000000..32b1ea23 Binary files /dev/null and b/rubbos/app/apache2/icons/unknown.gif differ diff --git a/rubbos/app/apache2/icons/unknown.png b/rubbos/app/apache2/icons/unknown.png new file mode 100644 index 00000000..8277602b Binary files /dev/null and b/rubbos/app/apache2/icons/unknown.png differ diff --git a/rubbos/app/apache2/icons/up.gif b/rubbos/app/apache2/icons/up.gif new file mode 100644 index 00000000..6d6d6d1e Binary files /dev/null and b/rubbos/app/apache2/icons/up.gif differ diff --git a/rubbos/app/apache2/icons/up.png b/rubbos/app/apache2/icons/up.png new file mode 100644 index 00000000..b8d32f58 Binary files /dev/null and b/rubbos/app/apache2/icons/up.png differ diff --git a/rubbos/app/apache2/icons/uu.gif b/rubbos/app/apache2/icons/uu.gif new file mode 100644 index 00000000..4387d529 Binary files /dev/null and b/rubbos/app/apache2/icons/uu.gif differ diff --git a/rubbos/app/apache2/icons/uu.png b/rubbos/app/apache2/icons/uu.png new file mode 100644 index 00000000..483fb8d6 Binary files /dev/null and b/rubbos/app/apache2/icons/uu.png differ diff --git a/rubbos/app/apache2/icons/uuencoded.gif b/rubbos/app/apache2/icons/uuencoded.gif new file mode 100644 index 00000000..4387d529 Binary files /dev/null and b/rubbos/app/apache2/icons/uuencoded.gif differ diff --git a/rubbos/app/apache2/icons/uuencoded.png b/rubbos/app/apache2/icons/uuencoded.png new file mode 100644 index 00000000..483fb8d6 Binary files /dev/null and b/rubbos/app/apache2/icons/uuencoded.png differ diff --git a/rubbos/app/apache2/icons/world1.gif b/rubbos/app/apache2/icons/world1.gif new file mode 100644 index 00000000..05b4ec20 Binary files /dev/null and b/rubbos/app/apache2/icons/world1.gif differ diff --git a/rubbos/app/apache2/icons/world1.png b/rubbos/app/apache2/icons/world1.png new file mode 100644 index 00000000..fbe0167e Binary files /dev/null and b/rubbos/app/apache2/icons/world1.png differ diff --git a/rubbos/app/apache2/icons/world2.gif b/rubbos/app/apache2/icons/world2.gif new file mode 100644 index 00000000..e3203f7a Binary files /dev/null and b/rubbos/app/apache2/icons/world2.gif differ diff --git a/rubbos/app/apache2/icons/world2.png b/rubbos/app/apache2/icons/world2.png new file mode 100644 index 00000000..0d33fb67 Binary files /dev/null and b/rubbos/app/apache2/icons/world2.png differ diff --git a/rubbos/app/apache2/include/ap_compat.h b/rubbos/app/apache2/include/ap_compat.h new file mode 100644 index 00000000..4985bc4d --- /dev/null +++ b/rubbos/app/apache2/include/ap_compat.h @@ -0,0 +1,28 @@ +/* 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. + */ + +#ifndef AP_COMPAT_H +#define AP_COMPAT_H + +/* Drag in apu (and therefore apr) renamed symbols */ +#include "apu_compat.h" + +/* redefine 1.3.x symbols to the new symbol names */ + +#define MODULE_VAR_EXPORT AP_MODULE_DECLARE_DATA +#define ap_send_http_header(r) ; + +#endif /* AP_COMPAT_H */ diff --git a/rubbos/app/apache2/include/ap_config.h b/rubbos/app/apache2/include/ap_config.h new file mode 100644 index 00000000..9d8db24b --- /dev/null +++ b/rubbos/app/apache2/include/ap_config.h @@ -0,0 +1,256 @@ +/* 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. + */ + +#ifndef AP_CONFIG_H +#define AP_CONFIG_H + +#include "apr.h" +#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 */ + +#ifdef DOXYGEN +/* define these just so doxygen documents them */ + +/** + * AP_DECLARE_STATIC is defined when including Apache's Core headers, + * to provide static linkage when the dynamic library may be unavailable. + * + * @see AP_DECLARE_EXPORT + * + * AP_DECLARE_STATIC and AP_DECLARE_EXPORT are left undefined when + * including Apache's Core headers, to import and link the symbols from the + * dynamic Apache Core library and assure appropriate indirection and calling + * conventions at compile time. + */ +# define AP_DECLARE_STATIC +/** + * AP_DECLARE_EXPORT is defined when building the Apache Core dynamic + * library, so that all public symbols are exported. + * + * @see AP_DECLARE_STATIC + */ +# define AP_DECLARE_EXPORT + +#endif /* def DOXYGEN */ + +#if !defined(WIN32) +/** + * Apache Core dso functions are declared with AP_DECLARE(), so they may + * use the most appropriate calling convention. Hook functions and other + * Core functions with variable arguments must use AP_DECLARE_NONSTD(). + * @code + * AP_DECLARE(rettype) ap_func(args) + * @endcode + */ +#define AP_DECLARE(type) type + +/** + * Apache Core dso variable argument and hook functions are declared with + * AP_DECLARE_NONSTD(), as they must use the C language calling convention. + * @see AP_DECLARE + * @code + * AP_DECLARE_NONSTD(rettype) ap_func(args [...]) + * @endcode + */ +#define AP_DECLARE_NONSTD(type) type + +/** + * Apache Core dso variables are declared with AP_MODULE_DECLARE_DATA. + * This assures the appropriate indirection is invoked at compile time. + * + * @note AP_DECLARE_DATA extern type apr_variable; syntax is required for + * declarations within headers to properly import the variable. + * @code + * AP_DECLARE_DATA type apr_variable + * @endcode + */ +#define AP_DECLARE_DATA + +#elif defined(AP_DECLARE_STATIC) +#define AP_DECLARE(type) type __stdcall +#define AP_DECLARE_NONSTD(type) type +#define AP_DECLARE_DATA +#elif defined(AP_DECLARE_EXPORT) +#define AP_DECLARE(type) __declspec(dllexport) type __stdcall +#define AP_DECLARE_NONSTD(type) __declspec(dllexport) type +#define AP_DECLARE_DATA __declspec(dllexport) +#else +#define AP_DECLARE(type) __declspec(dllimport) type __stdcall +#define AP_DECLARE_NONSTD(type) __declspec(dllimport) type +#define AP_DECLARE_DATA __declspec(dllimport) +#endif + +#if !defined(WIN32) || defined(AP_MODULE_DECLARE_STATIC) +/** + * Declare a dso module's exported module structure as AP_MODULE_DECLARE_DATA. + * + * Unless AP_MODULE_DECLARE_STATIC is defined at compile time, symbols + * declared with AP_MODULE_DECLARE_DATA are always exported. + * @code + * module AP_MODULE_DECLARE_DATA mod_tag + * @endcode + */ +#if defined(WIN32) +#define AP_MODULE_DECLARE(type) type __stdcall +#else +#define AP_MODULE_DECLARE(type) type +#endif +#define AP_MODULE_DECLARE_NONSTD(type) type +#define AP_MODULE_DECLARE_DATA +#else +/** + * AP_MODULE_DECLARE_EXPORT is a no-op. Unless contradicted by the + * AP_MODULE_DECLARE_STATIC compile-time symbol, it is assumed and defined. + * + * The old SHARED_MODULE compile-time symbol is now the default behavior, + * so it is no longer referenced anywhere with Apache 2.0. + */ +#define AP_MODULE_DECLARE_EXPORT +#define AP_MODULE_DECLARE(type) __declspec(dllexport) type __stdcall +#define AP_MODULE_DECLARE_NONSTD(type) __declspec(dllexport) type +#define AP_MODULE_DECLARE_DATA __declspec(dllexport) +#endif + +/** + * Declare a hook function + * @param ret The return type of the hook + * @param name The hook's name (as a literal) + * @param args The arguments the hook function takes, in brackets. + */ +#define AP_DECLARE_HOOK(ret,name,args) \ + APR_DECLARE_EXTERNAL_HOOK(ap,AP,ret,name,args) + +/** @internal */ +#define AP_IMPLEMENT_HOOK_BASE(name) \ + APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ap,AP,name) + +/** + * Implement an Apache core hook that has no return code, and + * therefore runs all of the registered functions. The implementation + * is called ap_run_name. + * + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook, for example + * "(int x,void *y)" + * @param args_use The arguments for the hook as used in a call, for example + * "(x,y)" + * @note If IMPLEMENTing a hook that is not linked into the Apache core, + * (e.g. within a dso) see APR_IMPLEMENT_EXTERNAL_HOOK_VOID. + */ +#define AP_IMPLEMENT_HOOK_VOID(name,args_decl,args_use) \ + APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ap,AP,name,args_decl,args_use) + +/** + * Implement an Apache core hook that runs until one of the functions + * returns something other than ok or decline. That return value is + * then returned from the hook runner. If the hooks run to completion, + * then ok is returned. Note that if no hook runs it would probably be + * more correct to return decline, but this currently does not do + * so. The implementation is called ap_run_name. + * + * @param ret The return type of the hook (and the hook runner) + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook, for example + * "(int x,void *y)" + * @param args_use The arguments for the hook as used in a call, for example + * "(x,y)" + * @param ok The "ok" return value + * @param decline The "decline" return value + * @return ok, decline or an error. + * @note If IMPLEMENTing a hook that is not linked into the Apache core, + * (e.g. within a dso) see APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL. + */ +#define AP_IMPLEMENT_HOOK_RUN_ALL(ret,name,args_decl,args_use,ok,decline) \ + APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ap,AP,ret,name,args_decl, \ + args_use,ok,decline) + +/** + * Implement a hook that runs until a function returns something other than + * decline. If all functions return decline, the hook runner returns decline. + * The implementation is called ap_run_name. + * + * @param ret The return type of the hook (and the hook runner) + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook, for example + * "(int x,void *y)" + * @param args_use The arguments for the hook as used in a call, for example + * "(x,y)" + * @param decline The "decline" return value + * @return decline or an error. + * @note If IMPLEMENTing a hook that is not linked into the Apache core + * (e.g. within a dso) see APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST. + */ +#define AP_IMPLEMENT_HOOK_RUN_FIRST(ret,name,args_decl,args_use,decline) \ + APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ap,AP,ret,name,args_decl, \ + args_use,decline) + +/* Note that the other optional hook implementations are straightforward but + * have not yet been needed + */ + +/** + * Implement an optional hook. This is exactly the same as a standard hook + * implementation, except the hook is optional. + * @see AP_IMPLEMENT_HOOK_RUN_ALL + */ +#define AP_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ret,name,args_decl,args_use,ok, \ + decline) \ + APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ap,AP,ret,name,args_decl, \ + args_use,ok,decline) + +/** + * Hook an optional hook. Unlike static hooks, this uses a macro instead of a + * function. + */ +#define AP_OPTIONAL_HOOK(name,fn,pre,succ,order) \ + APR_OPTIONAL_HOOK(ap,name,fn,pre,succ,order) + +#include "os.h" +#if !defined(WIN32) && !defined(NETWARE) +#include "ap_config_auto.h" +#include "ap_config_layout.h" +#endif +#if defined(NETWARE) +#define AP_NONBLOCK_WHEN_MULTI_LISTEN 1 +#endif + +/* TODO - We need to put OS detection back to make all the following work */ + +#if defined(SUNOS4) || defined(IRIX) || defined(NEXT) || defined(AUX3) \ + || defined (UW) || defined(LYNXOS) || defined(TPF) +/* These systems don't do well with any lingering close code; I don't know + * why -- manoj */ +#define NO_LINGCLOSE +#endif + +/* If APR has OTHER_CHILD logic, use reliable piped logs. */ +#if APR_HAS_OTHER_CHILD +#define AP_HAVE_RELIABLE_PIPED_LOGS TRUE +#endif + +#if APR_CHARSET_EBCDIC && !defined(APACHE_XLATE) +#define APACHE_XLATE +#endif + +#endif /* AP_CONFIG_H */ diff --git a/rubbos/app/apache2/include/ap_config_auto.h b/rubbos/app/apache2/include/ap_config_auto.h new file mode 100644 index 00000000..701a99e1 --- /dev/null +++ b/rubbos/app/apache2/include/ap_config_auto.h @@ -0,0 +1,250 @@ +/* include/ap_config_auto.h. Generated from ap_config_auto.h.in by configure. */ +/* include/ap_config_auto.h.in. Generated from configure.in by autoheader. */ +/* Define this if struct tm has a field tm_gmtoff */ +#define HAVE_GMTOFF 1 + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* Location of the source for the current MPM */ +#define APACHE_MPM_DIR "server/mpm/worker" + +/* SuExec root directory */ +/* #undef AP_DOC_ROOT */ + +/* Allow modules to run hook after a fatal exception */ +/* #undef AP_ENABLE_EXCEPTION_HOOK */ + +/* Allow IPv4 connections on IPv6 listening sockets */ +#define AP_ENABLE_V4_MAPPED 1 + +/* Minimum allowed GID */ +/* #undef AP_GID_MIN */ + +/* User allowed to call SuExec */ +/* #undef AP_HTTPD_USER */ + +/* SuExec log file */ +/* #undef AP_LOG_EXEC */ + +/* Listening sockets are non-blocking when there are more than 1 */ +#define AP_NONBLOCK_WHEN_MULTI_LISTEN 1 + +/* safe shell path for SuExec */ +/* #undef AP_SAFE_PATH */ + +/* 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" + +/* umask for suexec'd process */ +/* #undef AP_SUEXEC_UMASK */ + +/* Location of the MIME types config file, relative to the Apache root + directory */ +#define AP_TYPES_CONFIG_FILE "conf/mime.types" + +/* Minimum allowed UID */ +/* #undef AP_UID_MIN */ + +/* byte order is unknown due to cross-compilation */ +/* #undef AP_UNKNOWN_BYTE_ORDER */ + +/* User subdirectory */ +/* #undef AP_USERDIR_SUFFIX */ + +/* Using autoconf to configure Apache */ +#define AP_USING_AUTOCONF 1 + +/* Define to 1 if you have the `bindprocessor' function. */ +/* #undef HAVE_BINDPROCESSOR */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_BSTRING_H */ + +/* Define to 1 if you have the `getgrnam' function. */ +#define HAVE_GETGRNAM 1 + +/* Define to 1 if you have the `getpwnam' function. */ +#define HAVE_GETPWNAM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_GRP_H 1 + +/* Define to 1 if you have the `initgroups' function. */ +#define HAVE_INITGROUPS 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `killpg' function. */ +#define HAVE_KILLPG 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `prctl' function. */ +#define HAVE_PRCTL 1 + +/* Define to 1 if you have the `pthread_kill' function. */ +#define HAVE_PTHREAD_KILL 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_PWD_H 1 + +/* Define to 1 if you have the `setsid' function. */ +#define HAVE_SETSID 1 + +/* Define to 1 if you have the `SSL_set_cert_store' function. */ +/* #undef HAVE_SSL_SET_CERT_STORE */ + +/* Define to 1 if you have the `SSL_set_state' function. */ +/* #undef HAVE_SSL_SET_STATE */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `syslog' function. */ +#define HAVE_SYSLOG 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_IPC_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PRCTL_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PROCESSOR_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_RESOURCE_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SEM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIMES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#define HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the `timegm' function. */ +#define HAVE_TIMEGM 1 + +/* Define to 1 if you have the `times' function. */ +#define HAVE_TIMES 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_ZUTIL_H */ + +/* Root directory of the Apache install area */ +#define HTTPD_ROOT "/bottlenecks/rubbos/app/apache2" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Location of the config file, relative to the Apache root directory */ +#define SERVER_CONFIG_FILE "conf/httpd.conf" + +/* This platform doesn't suffer from the thundering herd problem */ +/* #undef SINGLE_LISTEN_UNSERIALIZED_ACCEPT */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Path to suexec binary */ +/* #undef SUEXEC_BIN */ + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# define _ALL_SOURCE 1 +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# define _TANDEM_SOURCE 1 +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# define __EXTENSIONS__ 1 +#endif + + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +/* #undef _POSIX_SOURCE */ + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to 'int' if doesn't define it for us */ +/* #undef rlim_t */ diff --git a/rubbos/app/apache2/include/ap_config_layout.h b/rubbos/app/apache2/include/ap_config_layout.h new file mode 100644 index 00000000..968d8f34 --- /dev/null +++ b/rubbos/app/apache2/include/ap_config_layout.h @@ -0,0 +1,59 @@ +/* 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. + */ + +#ifndef AP_CONFIG_LAYOUT_H +#define AP_CONFIG_LAYOUT_H + +/* Configured Apache directory layout */ +#define DEFAULT_PREFIX "/bottlenecks/rubbos/app/apache2" +#define DEFAULT_EXP_EXEC_PREFIX "/bottlenecks/rubbos/app/apache2" +#define DEFAULT_REL_EXEC_PREFIX "" +#define DEFAULT_EXP_BINDIR "/bottlenecks/rubbos/app/apache2/bin" +#define DEFAULT_REL_BINDIR "bin" +#define DEFAULT_EXP_SBINDIR "/bottlenecks/rubbos/app/apache2/bin" +#define DEFAULT_REL_SBINDIR "bin" +#define DEFAULT_EXP_LIBEXECDIR "/bottlenecks/rubbos/app/apache2/modules" +#define DEFAULT_REL_LIBEXECDIR "modules" +#define DEFAULT_EXP_MANDIR "/bottlenecks/rubbos/app/apache2/man" +#define DEFAULT_REL_MANDIR "man" +#define DEFAULT_EXP_SYSCONFDIR "/bottlenecks/rubbos/app/apache2/conf" +#define DEFAULT_REL_SYSCONFDIR "conf" +#define DEFAULT_EXP_DATADIR "/bottlenecks/rubbos/app/apache2" +#define DEFAULT_REL_DATADIR "" +#define DEFAULT_EXP_INSTALLBUILDDIR "/bottlenecks/rubbos/app/apache2/build" +#define DEFAULT_REL_INSTALLBUILDDIR "build" +#define DEFAULT_EXP_ERRORDIR "/bottlenecks/rubbos/app/apache2/error" +#define DEFAULT_REL_ERRORDIR "error" +#define DEFAULT_EXP_ICONSDIR "/bottlenecks/rubbos/app/apache2/icons" +#define DEFAULT_REL_ICONSDIR "icons" +#define DEFAULT_EXP_HTDOCSDIR "/bottlenecks/rubbos/app/apache2/htdocs" +#define DEFAULT_REL_HTDOCSDIR "htdocs" +#define DEFAULT_EXP_MANUALDIR "/bottlenecks/rubbos/app/apache2/manual" +#define DEFAULT_REL_MANUALDIR "manual" +#define DEFAULT_EXP_CGIDIR "/bottlenecks/rubbos/app/apache2/cgi-bin" +#define DEFAULT_REL_CGIDIR "cgi-bin" +#define DEFAULT_EXP_INCLUDEDIR "/bottlenecks/rubbos/app/apache2/include" +#define DEFAULT_REL_INCLUDEDIR "include" +#define DEFAULT_EXP_LOCALSTATEDIR "/bottlenecks/rubbos/app/apache2" +#define DEFAULT_REL_LOCALSTATEDIR "" +#define DEFAULT_EXP_RUNTIMEDIR "/bottlenecks/rubbos/app/apache2/logs" +#define DEFAULT_REL_RUNTIMEDIR "logs" +#define DEFAULT_EXP_LOGFILEDIR "/bottlenecks/rubbos/app/apache2/logs" +#define DEFAULT_REL_LOGFILEDIR "logs" +#define DEFAULT_EXP_PROXYCACHEDIR "/bottlenecks/rubbos/app/apache2/proxy" +#define DEFAULT_REL_PROXYCACHEDIR "proxy" + +#endif /* AP_CONFIG_LAYOUT_H */ diff --git a/rubbos/app/apache2/include/ap_listen.h b/rubbos/app/apache2/include/ap_listen.h new file mode 100644 index 00000000..291b8266 --- /dev/null +++ b/rubbos/app/apache2/include/ap_listen.h @@ -0,0 +1,119 @@ +/* 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. + */ + +#ifndef AP_LISTEN_H +#define AP_LISTEN_H + +#include "apr_network_io.h" +#include "httpd.h" +#include "http_config.h" + +/** + * @package Apache Listeners Library + */ + +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 + * to setup all of the sockets for the MPM to listen to and accept on. + */ +struct ap_listen_rec { + /** + * The next listener in the list + */ + ap_listen_rec *next; + /** + * The actual socket + */ + apr_socket_t *sd; + /** + * The sockaddr the socket should bind to + */ + apr_sockaddr_t *bind_addr; + /** + * The accept function for this socket + */ + accept_function accept_func; + /** + * Is this socket currently active + */ + int active; +/* more stuff here, like which protocol is bound to the port */ +}; + +/** + * The global list of ap_listen_rec structures + */ +AP_DECLARE_DATA extern ap_listen_rec *ap_listeners; + +/** + * Setup all of the defaults for the listener list + */ +void ap_listen_pre_config(void); +#if !defined(SPMT_OS2_MPM) +/** + * Loop through the global ap_listen_rec list and create all of the required + * sockets. This executes the listen and bind on the sockets. + * @param s The global server_rec + * @return The number of open sockets. + * @warning This function is not available to Windows platforms, or the + * Prefork or SPMT_OS2 MPMs. + */ +int ap_setup_listeners(server_rec *s); +#endif +/* Split into two #if's to make the exports scripts easier. + */ +#if defined(SPMT_OS2_MPM) +/** + * Create and open a socket on the specified port. This includes listening + * and binding the socket. + * @param process The process record for the currently running server + * @param port The port to open a socket on. + * @return The number of open sockets + * @warning This function is only available to Windows platforms, or the + * Prefork or SPMT_OS2 MPMs. + */ +int ap_listen_open(process_rec *process, apr_port_t port); +#endif + +/* 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 + * should not ever be called by external modules. ALL MPMs should include + * LISTEN_COMMANDS in their command_rec table so that these functions are + * called. + */ +const char *ap_set_listenbacklog(cmd_parms *cmd, void *dummy, const char *arg); +const char *ap_set_listener(cmd_parms *cmd, void *dummy, const char *ips); +const char *ap_set_send_buffer_size(cmd_parms *cmd, void *dummy, + const char *arg); +AP_DECLARE_NONSTD(const char *) ap_set_receive_buffer_size(cmd_parms *cmd, + void *dummy, + const char *arg); + +#define LISTEN_COMMANDS \ +AP_INIT_TAKE1("ListenBacklog", ap_set_listenbacklog, NULL, RSRC_CONF, \ + "Maximum length of the queue of pending connections, as used by listen(2)"), \ +AP_INIT_TAKE1("Listen", ap_set_listener, NULL, RSRC_CONF, \ + "A port number or a numeric IP address and a port number"), \ +AP_INIT_TAKE1("SendBufferSize", ap_set_send_buffer_size, NULL, RSRC_CONF, \ + "Send buffer size in bytes"), \ +AP_INIT_TAKE1("ReceiveBufferSize", ap_set_receive_buffer_size, NULL, \ + RSRC_CONF, "Receive buffer size in bytes") + +#endif diff --git a/rubbos/app/apache2/include/ap_mmn.h b/rubbos/app/apache2/include/ap_mmn.h new file mode 100644 index 00000000..a3704803 --- /dev/null +++ b/rubbos/app/apache2/include/ap_mmn.h @@ -0,0 +1,127 @@ +/* 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. + */ + +#ifndef APACHE_AP_MMN_H +#define APACHE_AP_MMN_H + +/** + * @package Module Magic Number + */ + +/* + * MODULE_MAGIC_NUMBER_MAJOR + * Major API changes that could cause compatibility problems for older modules + * such as structure size changes. No binary compatibility is possible across + * a change in the major version. + * + * MODULE_MAGIC_NUMBER_MINOR + * 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. + */ + +/* + * 20010224 (2.0.13-dev) MODULE_MAGIC_COOKIE reset to "AP20" + * 20010523 (2.0.19-dev) bump for scoreboard structure reordering + * 20010627 (2.0.19-dev) more API changes than I can count + * 20010726 (2.0.22-dev) more big API changes + * 20010808 (2.0.23-dev) dir d_is_absolute bit introduced, bucket changes, etc + * 20010825 (2.0.25-dev) removed d_is_absolute, introduced map_to_storage hook + * 20011002 (2.0.26-dev) removed 1.3-depreciated request_rec.content_language + * 20011127 (2.0.29-dev) bump for postconfig hook change, and removal of socket + * from connection record + * 20011212 (2.0.30-dev) bump for new used_path_info member of request_rec + * 20011218 (2.0.30-dev) bump for new sbh member of conn_rec, different + * declarations for scoreboard, new parameter to + * create_connection hook + * 20020102 (2.0.30-dev) bump for changed type of limit_req_body in + * core_dir_config + * 20020109 (2.0.31-dev) bump for changed shm and scoreboard declarations + * 20020111 (2.0.31-dev) bump for ETag fields added at end of cor_dir_config + * 20020114 (2.0.31-dev) mod_dav changed how it asks its provider to fulfill + * a GET request + * 20020118 (2.0.31-dev) Input filtering split of blocking and mode + * 20020127 (2.0.31-dev) bump for pre_mpm hook change + * 20020128 (2.0.31-dev) bump for pre_config hook change + * 20020218 (2.0.33-dev) bump for AddOutputFilterByType directive + * 20020220 (2.0.33-dev) bump for scoreboard.h structure change + * 20020302 (2.0.33-dev) bump for protocol_filter additions. + * 20020306 (2.0.34-dev) bump for filter type renames. + * 20020318 (2.0.34-dev) mod_dav's API for REPORT generation changed + * 20020319 (2.0.34-dev) M_INVALID changed, plus new M_* methods for RFC 3253 + * 20020327 (2.0.35-dev) Add parameter to quick_handler hook + * 20020329 (2.0.35-dev) bump for addition of freelists to bucket API + * 20020329.1 (2.0.36) minor bump for new arg to opt fn ap_cgi_build_command + * 20020506 (2.0.37-dev) Removed r->boundary in request_rec. + * 20020529 (2.0.37-dev) Standardized the names of some apr_pool_*_set funcs + * 20020602 (2.0.37-dev) Bucket API change (metadata buckets) + * 20020612 (2.0.38-dev) Changed server_rec->[keep_alive_]timeout to apr time + * 20020625 (2.0.40-dev) Changed conn_rec->keepalive to an enumeration + * 20020628 (2.0.40-dev) Added filter_init to filter registration functions + * 20020903 (2.0.41-dev) APR's error constants changed + * 20020903.2 (2.0.46-dev) add ap_escape_logitem + * 20020903.3 (2.0.46-dev) allow_encoded_slashes added to core_dir_config + * 20020903.4 (2.0.47-dev) add ap_is_recursion_limit_exceeded() + * 20020903.5 (2.0.49-dev) add ap_escape_errorlog_item() + * 20020903.6 (2.0.49-dev) add insert_error_filter hook + * 20020903.7 (2.0.49-dev) added XHTML Doctypes + * 20020903.8 (2.0.50-dev) export ap_set_sub_req_protocol and + * ap_finalize_sub_req_protocol on Win32 and NetWare + * 20020903.9 (2.0.51-dev) create pcommands and initialize arrays before + * calling ap_setup_prelinked_modules + * 20020903.10 (2.0.55-dev) add ap_log_cerror() + * 20020903.11 (2.0.55-dev) added trace_enable to core_server_config + * 20020903.12 (2.0.56-dev) added ap_get_server_revision / ap_version_t + * 20020903.13 (2.0.62-dev) Add *ftp_directory_charset to proxy_dir_conf + * 20020903.14 (2.0.64-dev) added ap_vhost_iterate_given_conn + */ + +#define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */ + +#ifndef MODULE_MAGIC_NUMBER_MAJOR +#define MODULE_MAGIC_NUMBER_MAJOR 20020903 +#endif +#define MODULE_MAGIC_NUMBER_MINOR 14 /* 0...n */ + +/** + * Determine if the server's current MODULE_MAGIC_NUMBER is at least a + * specified value. + *
+ * Useful for testing for features.
+ * For example, suppose you wish to use the apr_table_overlap
+ *    function.  You can do this:
+ * 
+ * #if AP_MODULE_MAGIC_AT_LEAST(19980812,2)
+ *     ... use apr_table_overlap()
+ * #else
+ *     ... alternative code which doesn't use apr_table_overlap()
+ * #endif
+ * 
+ * @param major The major module magic number + * @param minor The minor module magic number + * @deffunc AP_MODULE_MAGIC_AT_LEAST(int major, int minor) + */ +#define AP_MODULE_MAGIC_AT_LEAST(major,minor) \ + ((major) < MODULE_MAGIC_NUMBER_MAJOR \ + || ((major) == MODULE_MAGIC_NUMBER_MAJOR \ + && (minor) <= MODULE_MAGIC_NUMBER_MINOR)) + +/** @deprecated present for backwards compatibility */ +#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR +#define MODULE_MAGIC_AT_LEAST old_broken_macro_we_hope_you_are_not_using + +#endif /* !APACHE_AP_MMN_H */ diff --git a/rubbos/app/apache2/include/ap_mpm.h b/rubbos/app/apache2/include/ap_mpm.h new file mode 100644 index 00000000..9e41e904 --- /dev/null +++ b/rubbos/app/apache2/include/ap_mpm.h @@ -0,0 +1,176 @@ +/* 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. + */ + +#ifndef AP_MPM_H +#define AP_MPM_H + +#include "apr_thread_proc.h" + +/** + * @package Multi-Processing Module library + */ + +/* + The MPM, "multi-processing model" provides an abstraction of the + interface with the OS for distributing incoming connections to + threads/process for processing. http_main invokes the MPM, and + the MPM runs until a shutdown/restart has been indicated. + The MPM calls out to the apache core via the ap_process_connection + function when a connection arrives. + + The MPM may or may not be multithreaded. In the event that it is + multithreaded, at any instant it guarantees a 1:1 mapping of threads + ap_process_connection invocations. + + Note: In the future it will be possible for ap_process_connection + to return to the MPM prior to finishing the entire connection; and + the MPM will proceed with asynchronous handling for the connection; + in the future the MPM may call ap_process_connection again -- but + does not guarantee it will occur on the same thread as the first call. + + The MPM further guarantees that no asynchronous behaviour such as + longjmps and signals will interfere with the user code that is + invoked through ap_process_connection. The MPM may reserve some + signals for its use (i.e. SIGUSR1), but guarantees that these signals + are ignored when executing outside the MPM code itself. (This + allows broken user code that does not handle EINTR to function + properly.) + + The suggested server restart and stop behaviour will be "graceful". + However the MPM may choose to terminate processes when the user + requests a non-graceful restart/stop. When this occurs, the MPM kills + all threads with extreme prejudice, and destroys the pchild pool. + User cleanups registered in the pchild apr_pool_t will be invoked at + this point. (This can pose some complications, the user cleanups + are asynchronous behaviour not unlike longjmp/signal... but if the + admin is asking for a non-graceful shutdown, how much effort should + we put into doing it in a nice way?) + + unix/posix notes: + - The MPM does not set a SIGALRM handler, user code may use SIGALRM. + But the preferred method of handling timeouts is to use the + timeouts provided by the BUFF abstraction. + - The proper setting for SIGPIPE is SIG_IGN, if user code changes it + for any of their own processing, it must be restored to SIG_IGN + prior to executing or returning to any apache code. + TODO: add SIGPIPE debugging check somewhere to make sure it's SIG_IGN +*/ + +/** + * This is the function that MPMs must create. This function is responsible + * for controlling the parent and child processes. It will run until a + * restart/shutdown is indicated. + * @param pconf the configuration pool, reset before the config file is read + * @param plog the log pool, reset after the config file is read + * @param server_conf the global server config. + * @return 1 for shutdown 0 otherwise. + * @deffunc int ap_mpm_run(apr_pool_t *pconf, apr_pool_t *plog, server_rec *server_conf) + */ +AP_DECLARE(int) ap_mpm_run(apr_pool_t *pconf, apr_pool_t *plog, server_rec *server_conf); + +/** + * predicate indicating if a graceful stop has been requested ... + * used by the connection loop + * @return 1 if a graceful stop has been requested, 0 otherwise + * @deffunc int ap_graceful_stop_signalled(*void) + */ +AP_DECLARE(int) ap_graceful_stop_signalled(void); + +/** + * Spawn a process with privileges that another module has requested + * @param r The request_rec of the current request + * @param newproc The resulting process handle. + * @param progname The program to run + * @param const_args the arguments to pass to the new program. The first + * one should be the program name. + * @param env The new environment apr_table_t for the new process. This + * should be a list of NULL-terminated strings. + * @param attr the procattr we should use to determine how to create the new + * process + * @param p The pool to use. + */ +AP_DECLARE(apr_status_t) ap_os_create_privileged_process( + const request_rec *r, + apr_proc_t *newproc, + const char *progname, + const char * const *args, + const char * const *env, + apr_procattr_t *attr, + apr_pool_t *p); + +/* Subtypes/Values for AP_MPMQ_IS_THREADED and AP_MPMQ_IS_FORKED */ +#define AP_MPMQ_NOT_SUPPORTED 0 /* This value specifies whether */ + /* an MPM is capable of */ + /* threading or forking. */ +#define AP_MPMQ_STATIC 1 /* This value specifies whether */ + /* an MPM is using a static # */ + /* threads or daemons. */ +#define AP_MPMQ_DYNAMIC 2 /* This value specifies whether */ + /* an MPM is using a dynamic # */ + /* threads or daemons. */ + +/* Values returned for AP_MPMQ_MPM_STATE */ +#define AP_MPMQ_STARTING 0 +#define AP_MPMQ_RUNNING 1 +#define AP_MPMQ_STOPPING 2 + +#define AP_MPMQ_MAX_DAEMON_USED 1 /* Max # of daemons used so far */ +#define AP_MPMQ_IS_THREADED 2 /* MPM can do threading */ +#define AP_MPMQ_IS_FORKED 3 /* MPM can do forking */ +#define AP_MPMQ_HARD_LIMIT_DAEMONS 4 /* The compiled max # daemons */ +#define AP_MPMQ_HARD_LIMIT_THREADS 5 /* The compiled max # threads */ +#define AP_MPMQ_MAX_THREADS 6 /* # of threads/child by config */ +#define AP_MPMQ_MIN_SPARE_DAEMONS 7 /* Min # of spare daemons */ +#define AP_MPMQ_MIN_SPARE_THREADS 8 /* Min # of spare threads */ +#define AP_MPMQ_MAX_SPARE_DAEMONS 9 /* Max # of spare daemons */ +#define AP_MPMQ_MAX_SPARE_THREADS 10 /* Max # of spare threads */ +#define AP_MPMQ_MAX_REQUESTS_DAEMON 11 /* Max # of requests per daemon */ +#define AP_MPMQ_MAX_DAEMONS 12 /* Max # of daemons by config */ +#define AP_MPMQ_MPM_STATE 13 /* starting, running, stopping */ + +/** + * Query a property of the current MPM. + * @param query_code One of APM_MPMQ_* + * @param result A location to place the result of the query + * @return APR_SUCCESS or APR_ENOTIMPL + * @deffunc int ap_mpm_query(int query_code, int *result) + */ +AP_DECLARE(apr_status_t) ap_mpm_query(int query_code, int *result); + +/* Defining GPROF when compiling uses the moncontrol() function to + * disable gprof profiling in the parent, and enable it only for + * request processing in children (or in one_process mode). It's + * absolutely required to get useful gprof results under linux + * because the profile itimers and such are disabled across a + * fork(). It's probably useful elsewhere as well. + */ +#ifdef GPROF +extern void moncontrol(int); +#define AP_MONCONTROL(x) moncontrol(x) +#else +#define AP_MONCONTROL(x) +#endif + +#if AP_ENABLE_EXCEPTION_HOOK +typedef struct ap_exception_info_t { + int sig; + pid_t pid; +} ap_exception_info_t; + +AP_DECLARE_HOOK(int,fatal_exception,(ap_exception_info_t *ei)) +#endif /*AP_ENABLE_EXCEPTION_HOOK*/ + +#endif diff --git a/rubbos/app/apache2/include/ap_provider.h b/rubbos/app/apache2/include/ap_provider.h new file mode 100644 index 00000000..e9045bae --- /dev/null +++ b/rubbos/app/apache2/include/ap_provider.h @@ -0,0 +1,54 @@ +/* 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. + */ + +#ifndef AP_PROVIDER_H +#define AP_PROVIDER_H + +#include "ap_config.h" + +/** + * @package Provider API + */ + +/** + * This function is used to register a provider with the global + * provider pool. + * @param pool The pool to create any storage from + * @param provider_group The group to store the provider in + * @param provider_name The name for this provider + * @param provider_version The version for this provider + * @param provider Opaque structure for this provider + * @return APR_SUCCESS if all went well + */ +AP_DECLARE(apr_status_t) ap_register_provider(apr_pool_t *pool, + const char *provider_group, + const char *provider_name, + const char *provider_version, + const void *provider); + +/** + * This function is used to retrieve a provider from the global + * provider pool. + * @param provider_group The group to look for this provider in + * @param provider_name The name for the provider + * @param provider_version The version for the provider + * @return provider pointer to provider if found, NULL otherwise + */ +AP_DECLARE(void *) ap_lookup_provider(const char *provider_group, + const char *provider_name, + const char *provider_version); + +#endif diff --git a/rubbos/app/apache2/include/ap_regkey.h b/rubbos/app/apache2/include/ap_regkey.h new file mode 100644 index 00000000..d3f41297 --- /dev/null +++ b/rubbos/app/apache2/include/ap_regkey.h @@ -0,0 +1,218 @@ +/* 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. + */ + +#ifndef AP_REGKEY_H +#define AP_REGKEY_H + +#if defined(WIN32) || defined(DOXYGEN) + +#include "apr.h" +#include "apr_pools.h" +#include "ap_config.h" /* Just for AP_DECLARE */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ap_regkey_t ap_regkey_t; + +/* Used to recover AP_REGKEY_* constants + */ +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() + */ +#define AP_REGKEY_CLASSES_ROOT ap_regkey_const(0) +#define AP_REGKEY_CURRENT_CONFIG ap_regkey_const(1) +#define AP_REGKEY_CURRENT_USER ap_regkey_const(2) +#define AP_REGKEY_LOCAL_MACHINE ap_regkey_const(3) +#define AP_REGKEY_USERS ap_regkey_const(4) +#define AP_REGKEY_PERFORMANCE_DATA ap_regkey_const(5) +#define AP_REGKEY_DYN_DATA ap_regkey_const(6) + +/** + * Win32 Only: Flags for ap_regkey_value_set() + */ +#define AP_REGKEY_EXPAND 0x0001 + +/** + * Win32 Only: Open the specified registry key. + * @param newkey The opened registry key + * @param parentkey The open registry key of the parent, or one of + *
+ *           AP_REGKEY_CLASSES_ROOT
+ *           AP_REGKEY_CURRENT_CONFIG
+ *           AP_REGKEY_CURRENT_USER
+ *           AP_REGKEY_LOCAL_MACHINE
+ *           AP_REGKEY_USERS
+ *           AP_REGKEY_PERFORMANCE_DATA 
+ *           AP_REGKEY_DYN_DATA 
+ * 
+ * @param keyname The path of the key relative to the parent key + * @param flags Or'ed value of: + *
+ *           APR_READ             open key for reading
+ *           APR_WRITE            open key for writing
+ *           APR_CREATE           create the key if it doesn't exist
+ *           APR_EXCL             return error if APR_CREATE and key exists
+ * 
+ * @param pool The pool in which newkey is allocated + */ +AP_DECLARE(apr_status_t) ap_regkey_open(ap_regkey_t **newkey, + const ap_regkey_t *parentkey, + const char *keyname, + apr_int32_t flags, + apr_pool_t *pool); + +/** + * Win32 Only: Close the registry key opened or created by ap_regkey_open(). + * @param key The registry key to close + */ +AP_DECLARE(apr_status_t) ap_regkey_close(ap_regkey_t *key); + +/** + * Win32 Only: Remove the given registry key. + * @param parentkey The open registry key of the parent, or one of + *
+ *           AP_REGKEY_CLASSES_ROOT
+ *           AP_REGKEY_CURRENT_CONFIG
+ *           AP_REGKEY_CURRENT_USER
+ *           AP_REGKEY_LOCAL_MACHINE
+ *           AP_REGKEY_USERS
+ *           AP_REGKEY_PERFORMANCE_DATA 
+ *           AP_REGKEY_DYN_DATA 
+ * 
+ * @param keyname The path of the key relative to the parent key + * @param pool The pool used for temp allocations + * @remark ap_regkey_remove() is not recursive, although it removes + * all values within the given keyname, it will not remove a key + * containing subkeys. + */ +AP_DECLARE(apr_status_t) ap_regkey_remove(const ap_regkey_t *parent, + const char *keyname, + apr_pool_t *pool); + +/** + * Win32 Only: Retrieve a registry value string from an open key. + * @param result The string value retrieved + * @param key The registry key to retrieve the value from + * @param valuename The named value to retrieve (pass "" for the default) + * @param pool The pool used to store the result + * @remark There is no toggle to prevent environment variable expansion + * if the registry value is set with AP_REG_EXPAND (REG_EXPAND_SZ), such + * expansions are always performed. + */ +AP_DECLARE(apr_status_t) ap_regkey_value_get(char **result, + ap_regkey_t *key, + const char *valuename, + apr_pool_t *pool); + +/** + * Win32 Only: Store a registry value string into an open key. + * @param key The registry key to store the value into + * @param valuename The named value to store (pass "" for the default) + * @param value The string to store for the named value + * @param flags The option AP_REGKEY_EXPAND or 0, where AP_REGKEY_EXPAND + * values will find all %foo% variables expanded from the environment. + * @param pool The pool used for temp allocations + */ +AP_DECLARE(apr_status_t) ap_regkey_value_set(ap_regkey_t *key, + const char *valuename, + const char *value, + apr_int32_t flags, + apr_pool_t *pool); + +/** + * Win32 Only: Retrieve a raw byte value from an open key. + * @param result The raw bytes value retrieved + * @param resultsize Pointer to a variable to store the number raw bytes retrieved + * @param key The registry key to retrieve the value from + * @param valuename The named value to retrieve (pass "" for the default) + * @param pool The pool used to store the result + */ +AP_DECLARE(apr_status_t) ap_regkey_value_raw_get(void **result, + apr_size_t *resultsize, + apr_int32_t *resulttype, + ap_regkey_t *key, + const char *valuename, + apr_pool_t *pool); + +/** + * Win32 Only: Store a raw bytes value into an open key. + * @param key The registry key to store the value into + * @param valuename The named value to store (pass "" for the default) + * @param value The bytes to store for the named value + * @param valuesize The number of bytes for value + * @param valuetype The + * values will find all %foo% variables expanded from the environment. + * @param pool The pool used for temp allocations + */ +AP_DECLARE(apr_status_t) ap_regkey_value_raw_set(ap_regkey_t *key, + const char *valuename, + const void *value, + apr_size_t valuesize, + apr_int32_t valuetype, + apr_pool_t *pool); + +/** + * Win32 Only: Retrieve a registry value string from an open key. + * @param result The string elements retrieved from a REG_MULTI_SZ string array + * @param key The registry key to retrieve the value from + * @param valuename The named value to retrieve (pass "" for the default) + * @param pool The pool used to store the result + */ +AP_DECLARE(apr_status_t) ap_regkey_value_array_get(apr_array_header_t **result, + ap_regkey_t *key, + const char *valuename, + apr_pool_t *pool); + +/** + * Win32 Only: Store a registry value string array into an open key. + * @param key The registry key to store the value into + * @param valuename The named value to store (pass "" for the default) + * @param nelts The string elements to store in a REG_MULTI_SZ string array + * @param elts The number of elements in the elts string array + * @param pool The pool used for temp allocations + */ +AP_DECLARE(apr_status_t) ap_regkey_value_array_set(ap_regkey_t *key, + const char *valuename, + int nelts, + const char * const * elts, + apr_pool_t *pool); + +/** + * Win32 Only: Remove a registry value from an open key. + * @param key The registry key to remove the value from + * @param valuename The named value to remove (pass "" for the default) + * @param pool The pool used for temp allocations + */ +AP_DECLARE(apr_status_t) ap_regkey_value_remove(const ap_regkey_t *key, + const char *valuename, + apr_pool_t *pool); + +#ifdef __cplusplus +} +#endif + +#endif /* def WIN32 || def DOXYGEN */ + +#endif /* AP_REGKEY_H */ diff --git a/rubbos/app/apache2/include/ap_release.h b/rubbos/app/apache2/include/ap_release.h new file mode 100644 index 00000000..9fee3f4f --- /dev/null +++ b/rubbos/app/apache2/include/ap_release.h @@ -0,0 +1,56 @@ +/* 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. + */ + +#ifndef AP_RELEASE_H +#define AP_RELEASE_H + +#include "apr_general.h" /* stringify */ + +#define AP_SERVER_COPYRIGHT \ + "Copyright 2009 The Apache Software Foundation." + +/* + * The below defines the base string of the Server: header. Additional + * tokens can be added via the ap_add_version_component() API call. + * + * 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 + * advertizing or other non-essential information is explicitly forbidden." + * + * Example: "Apache/1.1.0 MrWidget/0.1-alpha" + */ +#define AP_SERVER_BASEVENDOR "Apache Software Foundation" +#define AP_SERVER_BASEPRODUCT "Apache" + +#define AP_SERVER_MAJORVERSION_NUMBER 2 +#define AP_SERVER_MINORVERSION_NUMBER 0 +#define AP_SERVER_PATCHLEVEL_NUMBER 64 +#define AP_SERVER_ADD_STRING "" + +/* keep old macros as well */ +#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 +#define AP_SERVER_BASEREVISION AP_SERVER_MINORREVISION "." AP_SERVER_PATCHLEVEL +#define AP_SERVER_BASEVERSION AP_SERVER_BASEPRODUCT "/" AP_SERVER_BASEREVISION +#define AP_SERVER_VERSION AP_SERVER_BASEVERSION + +#endif diff --git a/rubbos/app/apache2/include/apr.h b/rubbos/app/apache2/include/apr.h new file mode 100644 index 00000000..276e0ab6 --- /dev/null +++ b/rubbos/app/apache2/include/apr.h @@ -0,0 +1,414 @@ +/* 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. + */ + + +#ifndef APR_H +#define APR_H + +/* GENERATED FILE WARNING! DO NOT EDIT apr.h + * + * You must modify apr.h.in instead. + * + * And please, make an effort to stub apr.hw and apr.hnw in the process. + */ + +/** + * @file apr.h + * @brief APR Platform Definitions + * @remark This is a generated header generated from include/apr.h.in by + * ./configure, or copied from include/apr.hw or include/apr.hnw + * for Win32 or Netware by those build environments, respectively. + */ + +/** + * @defgroup APR Apache Portability Runtime library + * @{ + */ +/** + * @defgroup apr_platform Platform Definitions + * @{ + * @warning + * The actual values of macros and typedefs on this page
+ * are platform specific and should NOT be relied upon!
+ */ + +/* So that we can use inline on some critical functions, and use + * GNUC attributes (such as to get -Wall warnings for printf-like + * functions). Only do this in gcc 2.7 or later ... it may work + * on earlier stuff, but why chance it. + * + * We've since discovered that the gcc shipped with NeXT systems + * as "cc" is completely broken. It claims to be __GNUC__ and so + * on, but it doesn't implement half of the things that __GNUC__ + * means. In particular it's missing inline and the __attribute__ + * stuff. So we hack around it. PR#1613. -djg + */ +#if !defined(__GNUC__) || __GNUC__ < 2 || \ + (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ||\ + defined(NEXT) +#ifndef __attribute__ +#define __attribute__(__x) +#endif +#define APR_INLINE +#define APR_HAS_INLINE 0 +#else +#define APR_INLINE __inline__ +#define APR_HAS_INLINE 1 +#endif + +#define APR_HAVE_ARPA_INET_H 1 +#define APR_HAVE_CONIO_H 0 +#define APR_HAVE_CRYPT_H 1 +#define APR_HAVE_CTYPE_H 1 +#define APR_HAVE_DIRENT_H 1 +#define APR_HAVE_ERRNO_H 1 +#define APR_HAVE_FCNTL_H 1 +#define APR_HAVE_IO_H 0 +#define APR_HAVE_LIMITS_H 1 +#define APR_HAVE_NETDB_H 1 +#define APR_HAVE_NETINET_IN_H 1 +#define APR_HAVE_NETINET_SCTP_H 0 +#define APR_HAVE_NETINET_SCTP_UIO_H 0 +#define APR_HAVE_NETINET_TCP_H 1 +#define APR_HAVE_PTHREAD_H 1 +#define APR_HAVE_SEMAPHORE_H 1 +#define APR_HAVE_SIGNAL_H 1 +#define APR_HAVE_STDARG_H 1 +#define APR_HAVE_STDINT_H 1 +#define APR_HAVE_STDIO_H 1 +#define APR_HAVE_STDLIB_H 1 +#define APR_HAVE_STRING_H 1 +#define APR_HAVE_STRINGS_H 1 +#define APR_HAVE_SYS_IOCTL_H 1 +#define APR_HAVE_SYS_SENDFILE_H 1 +#define APR_HAVE_SYS_SIGNAL_H 1 +#define APR_HAVE_SYS_SOCKET_H 1 +#define APR_HAVE_SYS_SOCKIO_H 0 +#define APR_HAVE_SYS_SYSLIMITS_H 0 +#define APR_HAVE_SYS_TIME_H 1 +#define APR_HAVE_SYS_TYPES_H 1 +#define APR_HAVE_SYS_UIO_H 1 +#define APR_HAVE_SYS_UN_H 1 +#define APR_HAVE_SYS_WAIT_H 1 +#define APR_HAVE_TIME_H 1 +#define APR_HAVE_UNISTD_H 1 + +/** @} */ + +/* We don't include our conditional headers within the doxyblocks + * or the extern "C" namespace + */ + +#if APR_HAVE_SYS_TYPES_H +#include +#endif + +#if APR_HAVE_SYS_SOCKET_H +#include +#endif + +#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) +/* C99 7.18.4 requires that stdint.h only exposes INT64_C + * and UINT64_C for C++ implementations if this is defined: */ +#define __STDC_CONSTANT_MACROS +#endif + +#if APR_HAVE_STDINT_H +#include +#endif + +#if APR_HAVE_SYS_WAIT_H +#include +#endif + +#ifdef OS2 +#define INCL_DOS +#define INCL_DOSERRORS +#include +#endif + +/* header files for PATH_MAX, _POSIX_PATH_MAX */ +#if APR_HAVE_LIMITS_H +#include +#else +#if APR_HAVE_SYS_SYSLIMITS_H +#include +#endif +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup apr_platform + * @ingroup APR + * @{ + */ + +#define APR_HAVE_SHMEM_MMAP_TMP 1 +#define APR_HAVE_SHMEM_MMAP_SHM 1 +#define APR_HAVE_SHMEM_MMAP_ZERO 1 +#define APR_HAVE_SHMEM_SHMGET_ANON 1 +#define APR_HAVE_SHMEM_SHMGET 1 +#define APR_HAVE_SHMEM_MMAP_ANON 1 +#define APR_HAVE_SHMEM_BEOS 0 + +#define APR_USE_SHMEM_MMAP_TMP 0 +#define APR_USE_SHMEM_MMAP_SHM 0 +#define APR_USE_SHMEM_MMAP_ZERO 0 +#define APR_USE_SHMEM_SHMGET_ANON 0 +#define APR_USE_SHMEM_SHMGET 1 +#define APR_USE_SHMEM_MMAP_ANON 1 +#define APR_USE_SHMEM_BEOS 0 + +#define APR_USE_FLOCK_SERIALIZE 0 +#define APR_USE_SYSVSEM_SERIALIZE 1 +#define APR_USE_POSIXSEM_SERIALIZE 0 +#define APR_USE_FCNTL_SERIALIZE 0 +#define APR_USE_PROC_PTHREAD_SERIALIZE 0 +#define APR_USE_PTHREAD_SERIALIZE 1 + +#define APR_HAS_FLOCK_SERIALIZE 1 +#define APR_HAS_SYSVSEM_SERIALIZE 1 +#define APR_HAS_POSIXSEM_SERIALIZE 0 +#define APR_HAS_FCNTL_SERIALIZE 1 +#define APR_HAS_PROC_PTHREAD_SERIALIZE 1 +#define APR_HAS_RWLOCK_SERIALIZE 0 + +#define APR_PROCESS_LOCK_IS_GLOBAL 0 + +#define APR_HAVE_CORKABLE_TCP 1 +#define APR_HAVE_GETRLIMIT 1 +#define APR_HAVE_IN_ADDR 1 +#define APR_HAVE_INET_ADDR 1 +#define APR_HAVE_INET_NETWORK 1 +#define APR_HAVE_IPV6 1 +#define APR_HAVE_MEMMOVE 1 +#define APR_HAVE_SETRLIMIT 1 +#define APR_HAVE_SIGACTION 1 +#define APR_HAVE_SIGSUSPEND 1 +#define APR_HAVE_SIGWAIT 1 +#define APR_HAVE_STRCASECMP 1 +#define APR_HAVE_STRDUP 1 +#define APR_HAVE_STRICMP 0 +#define APR_HAVE_STRNCASECMP 1 +#define APR_HAVE_STRNICMP 0 +#define APR_HAVE_STRSTR 1 +#define APR_HAVE_MEMCHR 1 +#define APR_HAVE_STRUCT_RLIMIT 1 +#define APR_HAVE_UNION_SEMUN 0 +#define APR_HAVE_SCTP 0 + +/* APR Feature Macros */ +#define APR_HAS_SHARED_MEMORY 1 +#define APR_HAS_THREADS 1 +#define APR_HAS_SENDFILE 1 +#define APR_HAS_MMAP 1 +#define APR_HAS_FORK 1 +#define APR_HAS_RANDOM 1 +#define APR_HAS_OTHER_CHILD 1 +#define APR_HAS_DSO 1 +#define APR_HAS_SO_ACCEPTFILTER 0 +#define APR_HAS_UNICODE_FS 0 +#define APR_HAS_PROC_INVOKED 0 +#define APR_HAS_USER 1 +#define APR_HAS_LARGE_FILES 0 +#define APR_HAS_XTHREAD_FILES 0 +#define APR_HAS_OS_UUID 0 + +/* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible + * to poll on files/pipes. On such a system, the application can + * call apr_socket_from_file() to get an APR socket representation and + * then pass the socket representation to apr_poll_socket_add(). + */ +#define APR_FILES_AS_SOCKETS 1 + +/* Not all platforms have a real INADDR_NONE. This macro replaces INADDR_NONE + * on all platforms. + */ +#define APR_INADDR_NONE INADDR_NONE + +/* This macro indicates whether or not EBCDIC is the native character set. + */ +#define APR_CHARSET_EBCDIC 0 + +/* If we have a TCP implementation that can be "corked", what flag + * do we use? + */ +#define APR_TCP_NOPUSH_FLAG TCP_CORK + +/* Is the TCP_NODELAY socket option inherited from listening sockets? +*/ +#define APR_TCP_NODELAY_INHERITED 1 + +/* Is the O_NONBLOCK flag inherited from listening sockets? +*/ +#define APR_O_NONBLOCK_INHERITED 0 + +/* Typedefs that APR needs. */ + +typedef unsigned char apr_byte_t; + +typedef short apr_int16_t; +typedef unsigned short apr_uint16_t; + +typedef int apr_int32_t; +typedef unsigned int apr_uint32_t; + +typedef long apr_int64_t; +typedef unsigned long apr_uint64_t; + +typedef size_t apr_size_t; +typedef ssize_t apr_ssize_t; +typedef off_t apr_off_t; +typedef socklen_t apr_socklen_t; + +typedef unsigned long apr_ino_t; + +#define APR_SIZEOF_VOIDP 8 + +/* Mechanisms to properly type numeric literals */ +#define APR_INT64_C(val) INT64_C(val) + +/* Definitions that APR programs need to work properly. */ + +/** + * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, + * so that they follow the platform's calling convention. + * @example + */ +/** void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data); + */ +#define APR_THREAD_FUNC + +/** + * The public APR functions are declared with APR_DECLARE(), so they may + * use the most appropriate calling convention. Public APR functions with + * variable arguments must use APR_DECLARE_NONSTD(). + * + * @remark Both the declaration and implementations must use the same macro. + * @example + */ +/** APR_DECLARE(rettype) apr_func(args) + * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA + * @remark Note that when APR compiles the library itself, it passes the + * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) + * to export public symbols from the dynamic library build.\n + * The user must define the APR_DECLARE_STATIC when compiling to target + * the static APR library on some platforms (e.g. Win32.) The public symbols + * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n + * By default, compiling an application and including the APR public + * headers, without defining APR_DECLARE_STATIC, will prepare the code to be + * linked to the dynamic library. + */ +#define APR_DECLARE(type) type + +/** + * The public APR functions using variable arguments are declared with + * APR_DECLARE_NONSTD(), as they must follow the C language calling convention. + * @see APR_DECLARE @see APR_DECLARE_DATA + * @remark Both the declaration and implementations must use the same macro. + * @example + */ +/** APR_DECLARE_NONSTD(rettype) apr_func(args, ...); + */ +#define APR_DECLARE_NONSTD(type) type + +/** + * The public APR variables are declared with AP_MODULE_DECLARE_DATA. + * This assures the appropriate indirection is invoked at compile time. + * @see APR_DECLARE @see APR_DECLARE_NONSTD + * @remark Note that the declaration and implementations use different forms, + * but both must include the macro. + * @example + */ +/** extern APR_DECLARE_DATA type apr_variable;\n + * APR_DECLARE_DATA type apr_variable = value; + */ +#define APR_DECLARE_DATA + +/* Define APR_SSIZE_T_FMT. + * If ssize_t is an integer we define it to be "d", + * if ssize_t is a long int we define it to be "ld", + * if ssize_t is neither we declare an error here. + * I looked for a better way to define this here, but couldn't find one, so + * to find the logic for this definition search for "ssize_t_fmt" in + * configure.in. + */ +#define APR_SSIZE_T_FMT "ld" + +/* And APR_SIZE_T_FMT */ +#define APR_SIZE_T_FMT "ld" + +/* And APR_OFF_T_FMT */ +#define APR_OFF_T_FMT "ld" + +/* And APR_PID_T_FMT */ +#define APR_PID_T_FMT "d" + +/* And APR_INT64_T_FMT */ +#define APR_INT64_T_FMT "ld" +#define APR_INT64_T_FMT_LEN 2 + +/* And APR_UINT64_T_FMT */ +#define APR_UINT64_T_FMT "lu" +#define APR_UINT64_T_FMT_LEN 2 + +/* And APR_UINT64_T_HEX_FMT */ +#define APR_UINT64_T_HEX_FMT "lx" +#define APR_UINT64_T_HEX_FMT_LEN (sizeof(APR_UINT64_T_HEX_FMT) - 1) + +/* Deal with atoi64 variables ... these should move to apr_private.h */ +#define APR_HAVE_INT64_STRFN 1 +#define APR_INT64_STRFN strtol + +/* are we going to force the generic atomic operations */ +#define APR_FORCE_ATOMIC_GENERIC 1 + +/* Does the proc mutex lock threads too */ +#define APR_PROC_MUTEX_IS_GLOBAL 0 + +/* Local machine definition for console and log output. */ +#define APR_EOL_STR "\n" + + +#if APR_HAVE_SYS_WAIT_H +#ifdef WEXITSTATUS +#define apr_wait_t int +#else +#define apr_wait_t union wait +#define WEXITSTATUS(status) (int)((status).w_retcode) +#define WTERMSIG(status) (int)((status).w_termsig) +#endif /* !WEXITSTATUS */ +#endif /* HAVE_SYS_WAIT_H */ + +#if defined(PATH_MAX) +#define APR_PATH_MAX PATH_MAX +#elif defined(_POSIX_PATH_MAX) +#define APR_PATH_MAX _POSIX_PATH_MAX +#else +#error no decision has been made on APR_PATH_MAX for your platform +#endif + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* APR_H */ diff --git a/rubbos/app/apache2/include/apr_allocator.h b/rubbos/app/apache2/include/apr_allocator.h new file mode 100644 index 00000000..b880c4e2 --- /dev/null +++ b/rubbos/app/apache2/include/apr_allocator.h @@ -0,0 +1,170 @@ +/* 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. + */ + +#ifndef APR_ALLOCATOR_H +#define APR_ALLOCATOR_H + +/** + * @file apr_allocator.h + * @brief APR Internal Memory Allocation + */ + +#include "apr.h" +#include "apr_errno.h" +#define APR_WANT_MEMFUNC /**< For no good reason? */ +#include "apr_want.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_allocator Internal Memory Allocation + * @ingroup APR + * @{ + */ + +/** the allocator structure */ +typedef struct apr_allocator_t apr_allocator_t; +/** the structure which holds information about the allocation */ +typedef struct apr_memnode_t apr_memnode_t; + +/** basic memory node structure */ +struct apr_memnode_t { + apr_memnode_t *next; /**< next memnode */ + apr_memnode_t **ref; /**< reference to self */ + apr_uint32_t index; /**< size */ + apr_uint32_t free_index; /**< how much free */ + char *first_avail; /**< pointer to first free memory */ + char *endp; /**< pointer to end of free memory */ +}; + +/** The base size of a memory node - aligned. */ +#define APR_MEMNODE_T_SIZE APR_ALIGN_DEFAULT(sizeof(apr_memnode_t)) + +/** Symbolic constants */ +#define APR_ALLOCATOR_MAX_FREE_UNLIMITED 0 + +/** + * Create a new allocator + * @param allocator The allocator we have just created. + * + */ +APR_DECLARE(apr_status_t) apr_allocator_create(apr_allocator_t **allocator); + +/** + * Destroy an allocator + * @param allocator The allocator to be destroyed + * @remark Any memnodes not given back to the allocator prior to destroying + * will _not_ be free()d. + */ +APR_DECLARE(void) apr_allocator_destroy(apr_allocator_t *allocator); + +/** + * Allocate a block of mem from the allocator + * @param allocator The allocator to allocate from + * @param size The size of the mem to allocate (excluding the + * memnode structure) + */ +APR_DECLARE(apr_memnode_t *) apr_allocator_alloc(apr_allocator_t *allocator, + apr_size_t size); + +/** + * Free a block of mem, giving it back to the allocator + * @param allocator The allocator to give the mem back to + * @param memnode The memory node to return + */ +APR_DECLARE(void) apr_allocator_free(apr_allocator_t *allocator, + apr_memnode_t *memnode); + +#include "apr_pools.h" + +/** + * Set the owner of the allocator + * @param allocator The allocator to set the owner for + * @param pool The pool that is to own the allocator + * @remark Typically pool is the highest level pool using the allocator + */ +/* + * XXX: see if we can come up with something a bit better. Currently + * you can make a pool an owner, but if the pool doesn't use the allocator + * the allocator will never be destroyed. + */ +APR_DECLARE(void) apr_allocator_owner_set(apr_allocator_t *allocator, + apr_pool_t *pool); + +/** @deprecated @see apr_allocator_owner_set */ +APR_DECLARE(void) apr_allocator_set_owner(apr_allocator_t *allocator, + apr_pool_t *pool); + +/** + * Get the current owner of the allocator + * @param allocator The allocator to get the owner from + */ +APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator); + +/** @deprecated @see apr_allocator_owner_get */ +APR_DECLARE(apr_pool_t *) apr_allocator_get_owner( + apr_allocator_t *allocator); + +/** + * Set the current threshold at which the allocator should start + * giving blocks back to the system. + * @param allocator The allocator the set the threshold on + * @param size The threshold. 0 == unlimited. + */ +APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator, + apr_size_t size); + +/** @deprecated @see apr_allocator_max_free_set */ +APR_DECLARE(void) apr_allocator_set_max_free(apr_allocator_t *allocator, + apr_size_t size); + +#include "apr_thread_mutex.h" + +#if APR_HAS_THREADS +/** + * Set a mutex for the allocator to use + * @param allocator The allocator to set the mutex for + * @param mutex The mutex + */ +APR_DECLARE(void) apr_allocator_mutex_set(apr_allocator_t *allocator, + apr_thread_mutex_t *mutex); + +/** @deprecated @see apr_allocator_mutex_set */ +APR_DECLARE(void) apr_allocator_set_mutex(apr_allocator_t *allocator, + apr_thread_mutex_t *mutex); + +/** + * Get the mutex currently set for the allocator + * @param allocator The allocator + */ +APR_DECLARE(apr_thread_mutex_t *) apr_allocator_mutex_get( + apr_allocator_t *allocator); + +/** @deprecated @see apr_allocator_mutex_get */ +APR_DECLARE(apr_thread_mutex_t *) apr_allocator_get_mutex( + apr_allocator_t *allocator); + +#endif /* APR_HAS_THREADS */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APR_ALLOCATOR_H */ diff --git a/rubbos/app/apache2/include/apr_anylock.h b/rubbos/app/apache2/include/apr_anylock.h new file mode 100644 index 00000000..6b724de2 --- /dev/null +++ b/rubbos/app/apache2/include/apr_anylock.h @@ -0,0 +1,128 @@ +/* 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 + * + * 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. + */ + +/** + * @file apr_anylock.h + * @brief APR-Util transparent any lock flavor wrapper + */ +#ifndef APR_ANYLOCK_H +#define APR_ANYLOCK_H + +#include "apr_proc_mutex.h" +#include "apr_thread_mutex.h" +#include "apr_thread_rwlock.h" + +/** Structure that may contain any APR lock type */ +typedef struct apr_anylock_t { + /** Indicates what type of lock is in lock */ + enum tm_lock { + apr_anylock_none, /**< None */ + apr_anylock_procmutex, /**< Process-based */ + apr_anylock_threadmutex, /**< Thread-based */ + apr_anylock_readlock, /**< Read lock */ + apr_anylock_writelock /**< Write lock */ + } type; + /** Union of all possible APR locks */ + union apr_anylock_u_t { + apr_proc_mutex_t *pm; /**< Process mutex */ +#if APR_HAS_THREADS + apr_thread_mutex_t *tm; /**< Thread mutex */ + apr_thread_rwlock_t *rw; /**< Read-write lock */ +#endif + } lock; +} apr_anylock_t; + +#if APR_HAS_THREADS + +/** Lock an apr_anylock_t structure */ +#define APR_ANYLOCK_LOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_threadmutex) \ + ? apr_thread_mutex_lock((lck)->lock.tm) \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_lock((lck)->lock.pm) \ + : (((lck)->type == apr_anylock_readlock) \ + ? apr_thread_rwlock_rdlock((lck)->lock.rw) \ + : (((lck)->type == apr_anylock_writelock) \ + ? apr_thread_rwlock_wrlock((lck)->lock.rw) \ + : APR_EINVAL))))) + +#else /* APR_HAS_THREADS */ + +#define APR_ANYLOCK_LOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_lock((lck)->lock.pm) \ + : APR_EINVAL)) + +#endif /* APR_HAS_THREADS */ + +#if APR_HAS_THREADS + +/** Try to lock an apr_anylock_t structure */ +#define APR_ANYLOCK_TRYLOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_threadmutex) \ + ? apr_thread_mutex_trylock((lck)->lock.tm) \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_trylock((lck)->lock.pm) \ + : (((lck)->type == apr_anylock_readlock) \ + ? apr_thread_rwlock_tryrdlock((lck)->lock.rw) \ + : (((lck)->type == apr_anylock_writelock) \ + ? apr_thread_rwlock_trywrlock((lck)->lock.rw) \ + : APR_EINVAL))))) + +#else /* APR_HAS_THREADS */ + +#define APR_ANYLOCK_TRYLOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_trylock((lck)->lock.pm) \ + : APR_EINVAL)) + +#endif /* APR_HAS_THREADS */ + +#if APR_HAS_THREADS + +/** Unlock an apr_anylock_t structure */ +#define APR_ANYLOCK_UNLOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_threadmutex) \ + ? apr_thread_mutex_unlock((lck)->lock.tm) \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_unlock((lck)->lock.pm) \ + : ((((lck)->type == apr_anylock_readlock) || \ + ((lck)->type == apr_anylock_writelock)) \ + ? apr_thread_rwlock_unlock((lck)->lock.rw) \ + : APR_EINVAL)))) + +#else /* APR_HAS_THREADS */ + +#define APR_ANYLOCK_UNLOCK(lck) \ + (((lck)->type == apr_anylock_none) \ + ? APR_SUCCESS \ + : (((lck)->type == apr_anylock_procmutex) \ + ? apr_proc_mutex_unlock((lck)->lock.pm) \ + : APR_EINVAL)) + +#endif /* APR_HAS_THREADS */ + +#endif /* !APR_ANYLOCK_H */ diff --git a/rubbos/app/apache2/include/apr_atomic.h b/rubbos/app/apache2/include/apr_atomic.h new file mode 100644 index 00000000..87889292 --- /dev/null +++ b/rubbos/app/apache2/include/apr_atomic.h @@ -0,0 +1,314 @@ +/* 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. + */ + +#ifndef APR_ATOMIC_H +#define APR_ATOMIC_H + +/** + * @file apr_atomic.h + * @brief APR Atomic Operations + */ + +#include "apr.h" +#include "apr_pools.h" + +/* Platform includes for atomics */ +#if defined(NETWARE) || defined(__MVS__) /* OS/390 */ +#include +#elif defined(__FreeBSD__) +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_atomic Atomic Operations + * @ingroup APR + * @{ + */ + +/* easiest way to get these documented for the moment */ +#if defined(DOXYGEN) +/** + * structure for holding a atomic value. + * this number >only< has a 24 bit size on some platforms + */ +typedef apr_atomic_t; + +/** + * this function is required on some platforms to initialize the + * atomic operation's internal structures + * @param p pool + * @return APR_SUCCESS on successful completion + */ +apr_status_t apr_atomic_init(apr_pool_t *p); +/** + * read the value stored in a atomic variable + * @param mem the pointer + * @warning on certain platforms this number is not stored + * directly in the pointer. in others it is + */ +apr_uint32_t apr_atomic_read(volatile apr_atomic_t *mem); +/** + * set the value for atomic. + * @param mem the pointer + * @param val the value + */ +void apr_atomic_set(volatile apr_atomic_t *mem, apr_uint32_t val); +/** + * Add 'val' to the atomic variable + * @param mem pointer to the atomic value + * @param val the addition + */ +void apr_atomic_add(volatile apr_atomic_t *mem, apr_uint32_t val); + +/** + * increment the atomic variable by 1 + * @param mem pointer to the atomic value + */ +void apr_atomic_inc(volatile apr_atomic_t *mem); + +/** + * decrement the atomic variable by 1 + * @param mem pointer to the atomic value + * @return zero if the value is zero, otherwise non-zero + */ +int apr_atomic_dec(volatile apr_atomic_t *mem); + +/** + * compare the atomic's value with cmp. + * If they are the same swap the value with 'with' + * @param mem pointer to the atomic value + * @param with what to swap it with + * @param cmp the value to compare it to + * @return the old value of the atomic + * @warning do not mix apr_atomic's with the CAS function. + * on some platforms they may be implemented by different mechanisms + */ +apr_uint32_t apr_atomic_cas(volatile apr_uint32_t *mem, long with, long cmp); + +/** + * compare the pointer's value with cmp. + * If they are the same swap the value with 'with' + * @param mem pointer to the pointer + * @param with what to swap it with + * @param cmp the value to compare it to + * @return the old value of the pointer + */ +void *apr_atomic_casptr(volatile void **mem, void *with, const void *cmp); +#else /* !DOXYGEN */ + +/* The following definitions provide optimized, OS-specific + * implementations of the APR atomic functions on various + * platforms. Any atomic operation that isn't redefined as + * a macro here will be declared as a function later, and + * apr_atomic.c will provide a mutex-based default implementation. + */ + +#if defined(WIN32) + +#define apr_atomic_t LONG + +#define apr_atomic_add(mem, val) InterlockedExchangeAdd(mem,val) +#define apr_atomic_dec(mem) InterlockedDecrement(mem) +#define apr_atomic_inc(mem) InterlockedIncrement(mem) +#define apr_atomic_set(mem, val) InterlockedExchange(mem, val) +#define apr_atomic_read(mem) (*mem) +#define apr_atomic_cas(mem,with,cmp) InterlockedCompareExchange(mem,with,cmp) +#define apr_atomic_init(pool) APR_SUCCESS +#define apr_atomic_casptr(mem,with,cmp) InterlockedCompareExchangePointer(mem,with,cmp) + +#elif defined(NETWARE) + +#define apr_atomic_t unsigned long + +#define apr_atomic_add(mem, val) atomic_add(mem,val) +#define apr_atomic_inc(mem) atomic_inc(mem) +#define apr_atomic_set(mem, val) (*mem = val) +#define apr_atomic_read(mem) (*mem) +#define apr_atomic_init(pool) APR_SUCCESS +#define apr_atomic_cas(mem,with,cmp) atomic_cmpxchg((unsigned long *)(mem),(unsigned long)(cmp),(unsigned long)(with)) + +int apr_atomic_dec(apr_atomic_t *mem); +void *apr_atomic_casptr(void **mem, void *with, const void *cmp); +#define APR_OVERRIDE_ATOMIC_DEC 1 +#define APR_OVERRIDE_ATOMIC_CASPTR 1 + +inline int apr_atomic_dec(apr_atomic_t *mem) +{ + return (atomic_xchgadd(mem, 0xFFFFFFFF) - 1); +} + +inline void *apr_atomic_casptr(void **mem, void *with, const void *cmp) +{ + return (void*)atomic_cmpxchg((unsigned long *)mem,(unsigned long)cmp,(unsigned long)with); +} + +#elif defined(__FreeBSD__) + +#define apr_atomic_t apr_uint32_t +#define apr_atomic_add(mem, val) (atomic_add_int(mem,val),mem) +#define apr_atomic_dec(mem) (atomic_subtract_int(mem,1),mem) +#define apr_atomic_inc(mem) (atomic_add_int(mem,1),mem) +#define apr_atomic_set(mem, val) (atomic_set_int(mem, val),mem) +#define apr_atomic_read(mem) (*mem) + +#elif (defined(__linux__) || defined(__EMX__)) && defined(__i386__) && !APR_FORCE_ATOMIC_GENERIC + +#define apr_atomic_t apr_uint32_t +#define apr_atomic_cas(mem,with,cmp) \ +({ apr_atomic_t prev; \ + asm volatile ("lock; cmpxchgl %1, %2" \ + : "=a" (prev) \ + : "r" (with), "m" (*(mem)), "0"(cmp) \ + : "memory"); \ + prev;}) + +#define apr_atomic_add(mem, val) \ +({ register apr_atomic_t last; \ + do { \ + last = *(mem); \ + } while (apr_atomic_cas((mem), last + (val), last) != last); \ + }) + +#define apr_atomic_dec(mem) \ +({ register apr_atomic_t last; \ + do { \ + last = *(mem); \ + } while (apr_atomic_cas((mem), last - 1, last) != last); \ + (--last != 0); }) + +#define apr_atomic_inc(mem) \ +({ register apr_atomic_t last; \ + do { \ + last = *(mem); \ + } while (apr_atomic_cas((mem), last + 1, last) != last); \ + }) + +#define apr_atomic_set(mem, val) (*(mem) = val) +#define apr_atomic_read(mem) (*(mem)) +#define apr_atomic_init(pool) APR_SUCCESS + +#elif defined(__MVS__) /* OS/390 */ + +#define apr_atomic_t cs_t + +apr_int32_t apr_atomic_add(volatile apr_atomic_t *mem, apr_int32_t val); +apr_uint32_t apr_atomic_cas(volatile apr_atomic_t *mem, apr_uint32_t swap, + apr_uint32_t cmp); +#define APR_OVERRIDE_ATOMIC_ADD 1 +#define APR_OVERRIDE_ATOMIC_CAS 1 + +#define apr_atomic_inc(mem) apr_atomic_add(mem, 1) +#define apr_atomic_dec(mem) apr_atomic_add(mem, -1) +#define apr_atomic_init(pool) APR_SUCCESS + +/* warning: the following two operations, _read and _set, are atomic + * if the memory variables are aligned (the usual case). + * + * If you try really hard and manage to mis-align them, they are not + * guaranteed to be atomic on S/390. But then your program will blow up + * with SIGBUS on a sparc, or with a S0C6 abend if you use the mis-aligned + * variables with other apr_atomic_* operations on OS/390. + */ + +#define apr_atomic_read(p) (*p) +#define apr_atomic_set(mem, val) (*mem = val) + +#endif /* end big if-elseif switch for platform-specifics */ + + +/* Default implementation of the atomic API + * The definitions above may override some or all of the + * atomic functions with optimized, platform-specific versions. + * Any operation that hasn't been overridden as a macro above + * is declared as a function here, unless APR_OVERRIDE_ATOMIC_[OPERATION] + * is defined. (The purpose of the APR_OVERRIDE_ATOMIC_* is + * to allow a platform to declare an apr_atomic_*() function + * with a different signature than the default.) + */ + +#if !defined(apr_atomic_t) +#define apr_atomic_t apr_uint32_t +#endif + +#if !defined(apr_atomic_init) && !defined(APR_OVERRIDE_ATOMIC_INIT) +apr_status_t apr_atomic_init(apr_pool_t *p); +#endif + +#if !defined(apr_atomic_read) && !defined(APR_OVERRIDE_ATOMIC_READ) +#define apr_atomic_read(p) *p +#endif + +#if !defined(apr_atomic_set) && !defined(APR_OVERRIDE_ATOMIC_SET) +void apr_atomic_set(volatile apr_atomic_t *mem, apr_uint32_t val); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif + +#if !defined(apr_atomic_add) && !defined(APR_OVERRIDE_ATOMIC_ADD) +void apr_atomic_add(volatile apr_atomic_t *mem, apr_uint32_t val); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif + +#if !defined(apr_atomic_inc) && !defined(APR_OVERRIDE_ATOMIC_INC) +void apr_atomic_inc(volatile apr_atomic_t *mem); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif + +#if !defined(apr_atomic_dec) && !defined(APR_OVERRIDE_ATOMIC_DEC) +int apr_atomic_dec(volatile apr_atomic_t *mem); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif + +#if !defined(apr_atomic_cas) && !defined(APR_OVERRIDE_ATOMIC_CAS) +apr_uint32_t apr_atomic_cas(volatile apr_uint32_t *mem,long with,long cmp); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif + +#if !defined(apr_atomic_casptr) && !defined(APR_OVERRIDE_ATOMIC_CASPTR) +#if APR_SIZEOF_VOIDP == 4 +#define apr_atomic_casptr(mem, with, cmp) (void *)apr_atomic_cas((apr_uint32_t *)(mem), (long)(with), (long)cmp) +#else +void *apr_atomic_casptr(volatile void **mem, void *with, const void *cmp); +#define APR_ATOMIC_NEED_DEFAULT_INIT 1 +#endif +#endif + +#ifndef APR_ATOMIC_NEED_DEFAULT_INIT +#define APR_ATOMIC_NEED_DEFAULT_INIT 0 +#endif + +/* If we're using the default versions of any of the atomic functions, + * we'll need the atomic init to set up mutexes. If a platform-specific + * override above has replaced the atomic_init with a macro, it's an error. + */ +#if APR_ATOMIC_NEED_DEFAULT_INIT +#if defined(apr_atomic_init) || defined(APR_OVERRIDE_ATOMIC_INIT) +#error Platform has redefined apr_atomic_init, but other default default atomics require a default apr_atomic_init +#endif +#endif /* APR_ATOMIC_NEED_DEFAULT_INIT */ + +#endif /* !DOXYGEN */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APR_ATOMIC_H */ diff --git a/rubbos/app/apache2/include/apr_base64.h b/rubbos/app/apache2/include/apr_base64.h new file mode 100644 index 00000000..f37614dc --- /dev/null +++ b/rubbos/app/apache2/include/apr_base64.h @@ -0,0 +1,112 @@ +/* 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 + * + * 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. + * The apr_vsnprintf/apr_snprintf functions are based on, and used with the + * permission of, the SIO stdio-replacement strx_* functions by Panos + * Tsirigotis for xinetd. + */ + +/** + * @file apr_base64.h + * @brief APR-UTIL Base64 Encoding + */ +#ifndef APR_BASE64_H +#define APR_BASE64_H + +#include "apu.h" +#include "apr_general.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_Base64 Base64 Encoding + * @ingroup APR_Util + * @{ + */ + +/* Simple BASE64 encode/decode functions. + * + * As we might encode binary strings, hence we require the length of + * the incoming plain source. And return the length of what we decoded. + * + * The decoding function takes any non valid char (i.e. whitespace, \0 + * or anything non A-Z,0-9 etc as terminal. + * + * plain strings/binary sequences are not assumed '\0' terminated. Encoded + * strings are neither. But probably should. + * + */ + +/** + * Given the length of an un-encrypted string, get the length of the + * encrypted string. + * @param len the length of an unencrypted string. + * @return the length of the string after it is encrypted + */ +APU_DECLARE(int) apr_base64_encode_len(int len); + +/** + * Encode a text string using base64encoding. + * @param coded_dst The destination string for the encoded string. + * @param plain_src The original string in plain text + * @param len_plain_src The length of the plain text string + * @return the length of the encoded string + */ +APU_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src, + int len_plain_src); + +/** + * Encode an EBCDIC string using base64encoding. + * @param coded_dst The destination string for the encoded string. + * @param plain_src The original string in plain text + * @param len_plain_src The length of the plain text string + * @return the length of the encoded string + */ +APU_DECLARE(int) apr_base64_encode_binary(char * coded_dst, + const unsigned char *plain_src, + int len_plain_src); + +/** + * Determine the maximum buffer length required to decode the plain text + * string given the encoded string. + * @param coded_src The encoded string + * @return the maximum required buffer length for the plain text string + */ +APU_DECLARE(int) apr_base64_decode_len(const char * coded_src); + +/** + * Decode a string to plain text + * @param plain_dst The destination string for the plain text + * @param coded_src The encoded string + * @return the length of the plain text string + */ +APU_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src); + +/** + * Decode an EBCDIC string to plain text + * @param plain_dst The destination string for the plain text + * @param coded_src The encoded string + * @return the length of the plain text string + */ +APU_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst, + const char *coded_src); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_BASE64_H */ diff --git a/rubbos/app/apache2/include/apr_buckets.h b/rubbos/app/apache2/include/apr_buckets.h new file mode 100644 index 00000000..7f1b05ff --- /dev/null +++ b/rubbos/app/apache2/include/apr_buckets.h @@ -0,0 +1,1495 @@ +/* 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 + * + * 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. + */ +/** + * @file apr_buckets.h + * @brief APR-UTIL Buckets/Bucket Brigades + */ + +#ifndef APR_BUCKETS_H +#define APR_BUCKETS_H + +#if defined(APR_BUCKET_DEBUG) && !defined(APR_RING_DEBUG) +#define APR_RING_DEBUG +#endif + +#include "apu.h" +#include "apr_network_io.h" +#include "apr_file_io.h" +#include "apr_general.h" +#include "apr_mmap.h" +#include "apr_errno.h" +#include "apr_ring.h" +#include "apr.h" +#if APR_HAVE_SYS_UIO_H +#include /* for struct iovec */ +#endif +#if APR_HAVE_STDARG_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_Bucket_Brigades Bucket Brigades + * @ingroup APR_Util + * @{ + */ + +/** default bucket buffer size - 8KB minus room for memory allocator headers */ +#define APR_BUCKET_BUFF_SIZE 8000 + +/** Determines how a bucket or brigade should be read */ +typedef enum { + APR_BLOCK_READ, /**< block until data becomes available */ + APR_NONBLOCK_READ /**< return immediately if no data is available */ +} apr_read_type_e; + +/** + * The one-sentence buzzword-laden overview: Bucket brigades represent + * a complex data stream that can be passed through a layered IO + * system without unnecessary copying. A longer overview follows... + * + * A bucket brigade is a doubly linked list (ring) of buckets, so we + * aren't limited to inserting at the front and removing at the end. + * Buckets are only passed around as members of a brigade, although + * singleton buckets can occur for short periods of time. + * + * Buckets are data stores of various types. They can refer to data in + * memory, or part of a file or mmap area, or the output of a process, + * etc. Buckets also have some type-dependent accessor functions: + * read, split, copy, setaside, and destroy. + * + * read returns the address and size of the data in the bucket. If the + * data isn't in memory then it is read in and the bucket changes type + * so that it can refer to the new location of the data. If all the + * data doesn't fit in the bucket then a new bucket is inserted into + * the brigade to hold the rest of it. + * + * split divides the data in a bucket into two regions. After a split + * the original bucket refers to the first part of the data and a new + * bucket inserted into the brigade after the original bucket refers + * to the second part of the data. Reference counts are maintained as + * necessary. + * + * setaside ensures that the data in the bucket has a long enough + * lifetime. Sometimes it is convenient to create a bucket referring + * to data on the stack in the expectation that it will be consumed + * (output to the network) before the stack is unwound. If that + * expectation turns out not to be valid, the setaside function is + * called to move the data somewhere safer. + * + * copy makes a duplicate of the bucket structure as long as it's + * possible to have multiple references to a single copy of the + * data itself. Not all bucket types can be copied. + * + * destroy maintains the reference counts on the resources used by a + * bucket and frees them if necessary. + * + * Note: all of the above functions have wrapper macros (apr_bucket_read(), + * apr_bucket_destroy(), etc), and those macros should be used rather + * than using the function pointers directly. + * + * To write a bucket brigade, they are first made into an iovec, so that we + * don't write too little data at one time. Currently we ignore compacting the + * buckets into as few buckets as possible, but if we really want good + * performance, then we need to compact the buckets before we convert to an + * iovec, or possibly while we are converting to an iovec. + */ + +/* + * Forward declaration of the main types. + */ + +/** @see apr_bucket_brigade */ +typedef struct apr_bucket_brigade apr_bucket_brigade; +/** @see apr_bucket */ +typedef struct apr_bucket apr_bucket; +/** @see apr_bucket_alloc_t */ +typedef struct apr_bucket_alloc_t apr_bucket_alloc_t; + +/** @see apr_bucket_type_t */ +typedef struct apr_bucket_type_t apr_bucket_type_t; + +/** + * Basic bucket type + */ +struct apr_bucket_type_t { + /** + * The name of the bucket type + */ + const char *name; + /** + * The number of functions this bucket understands. Can not be less than + * five. + */ + int num_func; + /** + * Whether the bucket contains metadata (ie, information that + * describes the regular contents of the brigade). The metadata + * is not returned by apr_bucket_read() and is not indicated by + * the ->length of the apr_bucket itself. In other words, an + * empty bucket is safe to arbitrarily remove if and only if it + * contains no metadata. In this sense, "data" is just raw bytes + * that are the "content" of the brigade and "metadata" describes + * that data but is not a proper part of it. + */ + enum { + /** This bucket type represents actual data to send to the client. */ + APR_BUCKET_DATA = 0, + /** This bucket type represents metadata. */ + APR_BUCKET_METADATA = 1 + } is_metadata; + /** + * Free the private data and any resources used by the bucket (if they + * aren't shared with another bucket). This function is required to be + * implemented for all bucket types, though it might be a no-op on some + * of them (namely ones that never allocate any private data structures). + * @param data The private data pointer from the bucket to be destroyed + */ + void (*destroy)(void *data); + + /** + * Read the data from the bucket. This is required to be implemented + * for all bucket types. + * @param b The bucket to read from + * @param str A place to store the data read. Allocation should only be + * done if absolutely necessary. + * @param len The amount of data read. + * @param block Should this read function block if there is more data that + * cannot be read immediately. + */ + apr_status_t (*read)(apr_bucket *b, const char **str, apr_size_t *len, + apr_read_type_e block); + + /** + * Make it possible to set aside the data for at least as long as the + * given pool. Buckets containing data that could potentially die before + * this pool (e.g. the data resides on the stack, in a child pool of + * the given pool, or in a disjoint pool) must somehow copy, shift, or + * transform the data to have the proper lifetime. + * @param e The bucket to convert + * @remark Some bucket types contain data that will always outlive the + * bucket itself. For example no data (EOS and FLUSH), or the data + * resides in global, constant memory (IMMORTAL), or the data is on + * the heap (HEAP). For these buckets, apr_bucket_setaside_noop can + * be used. + */ + apr_status_t (*setaside)(apr_bucket *e, apr_pool_t *pool); + + /** + * Split one bucket in two at the specified position by duplicating + * the bucket structure (not the data) and modifying any necessary + * start/end/offset information. If it's not possible to do this + * for the bucket type (perhaps the length of the data is indeterminate, + * as with pipe and socket buckets), then APR_ENOTIMPL is returned. + * @param e The bucket to split + * @param point The offset of the first byte in the new bucket + */ + apr_status_t (*split)(apr_bucket *e, apr_size_t point); + + /** + * Copy the bucket structure (not the data), assuming that this is + * possible for the bucket type. If it's not, APR_ENOTIMPL is returned. + * @param e The bucket to copy + * @param c Returns a pointer to the new bucket + */ + apr_status_t (*copy)(apr_bucket *e, apr_bucket **c); + +}; + +/** + * apr_bucket structures are allocated on the malloc() heap and + * their lifetime is controlled by the parent apr_bucket_brigade + * structure. Buckets can move from one brigade to another e.g. by + * calling APR_BRIGADE_CONCAT(). In general the data in a bucket has + * the same lifetime as the bucket and is freed when the bucket is + * destroyed; if the data is shared by more than one bucket (e.g. + * after a split) the data is freed when the last bucket goes away. + */ +struct apr_bucket { + /** Links to the rest of the brigade */ + APR_RING_ENTRY(apr_bucket) link; + /** The type of bucket. */ + const apr_bucket_type_t *type; + /** The length of the data in the bucket. This could have been implemented + * with a function, but this is an optimization, because the most + * common thing to do will be to get the length. If the length is unknown, + * the value of this field will be (apr_size_t)(-1). + */ + apr_size_t length; + /** The start of the data in the bucket relative to the private base + * pointer. The vast majority of bucket types allow a fixed block of + * data to be referenced by multiple buckets, each bucket pointing to + * a different segment of the data. That segment starts at base+start + * and ends at base+start+length. + * If the length == (apr_size_t)(-1), then start == -1. + */ + apr_off_t start; + /** type-dependent data hangs off this pointer */ + void *data; + /** + * Pointer to function used to free the bucket. This function should + * always be defined and it should be consistent with the memory + * function used to allocate the bucket. For example, if malloc() is + * used to allocate the bucket, this pointer should point to free(). + * @param e Pointer to the bucket being freed + */ + void (*free)(void *e); + /** The freelist from which this bucket was allocated */ + apr_bucket_alloc_t *list; +}; + +/** A list of buckets */ +struct apr_bucket_brigade { + /** The pool to associate the brigade with. The data is not allocated out + * of the pool, but a cleanup is registered with this pool. If the + * brigade is destroyed by some mechanism other than pool destruction, + * the destroying function is responsible for killing the cleanup. + */ + apr_pool_t *p; + /** The buckets in the brigade are on this list. */ + /* + * The apr_bucket_list structure doesn't actually need a name tag + * because it has no existence independent of struct apr_bucket_brigade; + * the ring macros are designed so that you can leave the name tag + * argument empty in this situation but apparently the Windows compiler + * doesn't like that. + */ + APR_RING_HEAD(apr_bucket_list, apr_bucket) list; + /** The freelist from which this bucket was allocated */ + apr_bucket_alloc_t *bucket_alloc; +}; + + +/** + * Function called when a brigade should be flushed + */ +typedef apr_status_t (*apr_brigade_flush)(apr_bucket_brigade *bb, void *ctx); + +/* + * define APR_BUCKET_DEBUG if you want your brigades to be checked for + * validity at every possible instant. this will slow your code down + * substantially but is a very useful debugging tool. + */ +#ifdef APR_BUCKET_DEBUG + +#define APR_BRIGADE_CHECK_CONSISTENCY(b) \ + APR_RING_CHECK_CONSISTENCY(&(b)->list, apr_bucket, link) + +#define APR_BUCKET_CHECK_CONSISTENCY(e) \ + APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link) + +#else +/** + * checks the ring pointers in a bucket brigade for consistency. an + * abort() will be triggered if any inconsistencies are found. + * note: this is a no-op unless APR_BUCKET_DEBUG is defined. + * @param b The brigade + */ +#define APR_BRIGADE_CHECK_CONSISTENCY(b) +/** + * checks the brigade a bucket is in for ring consistency. an + * abort() will be triggered if any inconsistencies are found. + * note: this is a no-op unless APR_BUCKET_DEBUG is defined. + * @param e The bucket + */ +#define APR_BUCKET_CHECK_CONSISTENCY(e) +#endif + + +/** + * Wrappers around the RING macros to reduce the verbosity of the code + * that handles bucket brigades. + */ +/** + * The magic pointer value that indicates the head of the brigade + * @remark This is used to find the beginning and end of the brigade, eg: + *
+ *      while (e != APR_BRIGADE_SENTINEL(b)) {
+ *          ...
+ *          e = APR_BUCKET_NEXT(e);
+ *      }
+ * 
+ * @param b The brigade + * @return The magic pointer value + */ +#define APR_BRIGADE_SENTINEL(b) APR_RING_SENTINEL(&(b)->list, apr_bucket, link) + +/** + * Determine if the bucket brigade is empty + * @param b The brigade to check + * @return true or false + */ +#define APR_BRIGADE_EMPTY(b) APR_RING_EMPTY(&(b)->list, apr_bucket, link) + +/** + * Return the first bucket in a brigade + * @param b The brigade to query + * @return The first bucket in the brigade + */ +#define APR_BRIGADE_FIRST(b) APR_RING_FIRST(&(b)->list) +/** + * Return the last bucket in a brigade + * @param b The brigade to query + * @return The last bucket in the brigade + */ +#define APR_BRIGADE_LAST(b) APR_RING_LAST(&(b)->list) + +/** + * Iterate through a bucket brigade + * @param e The current bucket + * @param b The brigade to iterate over + * @remark This is the same as either: + *
+ *	e = APR_BRIGADE_FIRST(b);
+ * 	while (e != APR_BRIGADE_SENTINEL(b)) {
+ *	    ...
+ * 	    e = APR_BUCKET_NEXT(e);
+ * 	}
+ *  OR
+ * 	for (e = APR_BRIGADE_FIRST(b);
+ *           e != APR_BRIGADE_SENTINEL(b);
+ *           e = APR_BUCKET_NEXT(e)) {
+ *	    ...
+ * 	}
+ * 
+ * @warning Be aware that you cannot change the value of e within + * the foreach loop, nor can you destroy the bucket it points to. + * Modifying the prev and next pointers of the bucket is dangerous + * but can be done if you're careful. If you change e's value or + * destroy the bucket it points to, then APR_BRIGADE_FOREACH + * will have no way to find out what bucket to use for its next + * iteration. The reason for this can be seen by looking closely + * at the equivalent loops given in the tip above. So, for example, + * if you are writing a loop that empties out a brigade one bucket + * at a time, APR_BRIGADE_FOREACH just won't work for you. Do it + * by hand, like so: + *
+ *      while (!APR_BRIGADE_EMPTY(b)) {
+ *          e = APR_BRIGADE_FIRST(b);
+ *          ...
+ *          apr_bucket_delete(e);
+ *      }
+ * 
+ * @deprecated This macro causes more headaches than it's worth. Use + * one of the alternatives documented here instead; the clarity gained + * in what's really going on is well worth the extra line or two of code. + * This macro will be removed at some point in the future. + */ +#define APR_BRIGADE_FOREACH(e, b) \ + APR_RING_FOREACH((e), &(b)->list, apr_bucket, link) + +/** + * Insert a list of buckets at the front of a brigade + * @param b The brigade to add to + * @param e The first bucket in a list of buckets to insert + */ +#define APR_BRIGADE_INSERT_HEAD(b, e) do { \ + apr_bucket *ap__b = (e); \ + APR_RING_INSERT_HEAD(&(b)->list, ap__b, apr_bucket, link); \ + APR_BRIGADE_CHECK_CONSISTENCY((b)); \ + } while (0) + +/** + * Insert a list of buckets at the end of a brigade + * @param b The brigade to add to + * @param e The first bucket in a list of buckets to insert + */ +#define APR_BRIGADE_INSERT_TAIL(b, e) do { \ + apr_bucket *ap__b = (e); \ + APR_RING_INSERT_TAIL(&(b)->list, ap__b, apr_bucket, link); \ + APR_BRIGADE_CHECK_CONSISTENCY((b)); \ + } while (0) + +/** + * Concatenate brigade b onto the end of brigade a, leaving brigade b empty + * @param a The first brigade + * @param b The second brigade + */ +#define APR_BRIGADE_CONCAT(a, b) do { \ + APR_RING_CONCAT(&(a)->list, &(b)->list, apr_bucket, link); \ + APR_BRIGADE_CHECK_CONSISTENCY((a)); \ + } while (0) + +/** + * Prepend brigade b onto the beginning of brigade a, leaving brigade b empty + * @param a The first brigade + * @param b The second brigade + */ +#define APR_BRIGADE_PREPEND(a, b) do { \ + APR_RING_PREPEND(&(a)->list, &(b)->list, apr_bucket, link); \ + APR_BRIGADE_CHECK_CONSISTENCY((a)); \ + } while (0) + +/** + * Insert a list of buckets before a specified bucket + * @param a The bucket to insert before + * @param b The buckets to insert + */ +#define APR_BUCKET_INSERT_BEFORE(a, b) do { \ + apr_bucket *ap__a = (a), *ap__b = (b); \ + APR_RING_INSERT_BEFORE(ap__a, ap__b, link); \ + APR_BUCKET_CHECK_CONSISTENCY(ap__a); \ + } while (0) + +/** + * Insert a list of buckets after a specified bucket + * @param a The bucket to insert after + * @param b The buckets to insert + */ +#define APR_BUCKET_INSERT_AFTER(a, b) do { \ + apr_bucket *ap__a = (a), *ap__b = (b); \ + APR_RING_INSERT_AFTER(ap__a, ap__b, link); \ + APR_BUCKET_CHECK_CONSISTENCY(ap__a); \ + } while (0) + +/** + * Get the next bucket in the list + * @param e The current bucket + * @return The next bucket + */ +#define APR_BUCKET_NEXT(e) APR_RING_NEXT((e), link) +/** + * Get the previous bucket in the list + * @param e The current bucket + * @return The previous bucket + */ +#define APR_BUCKET_PREV(e) APR_RING_PREV((e), link) + +/** + * Remove a bucket from its bucket brigade + * @param e The bucket to remove + */ +#define APR_BUCKET_REMOVE(e) APR_RING_REMOVE((e), link) + +/** + * Initialize a new bucket's prev/next pointers + * @param e The bucket to initialize + */ +#define APR_BUCKET_INIT(e) APR_RING_ELEM_INIT((e), link) + +/** + * Determine if a bucket contains metadata. An empty bucket is + * safe to arbitrarily remove if and only if this is false. + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_METADATA(e) ((e)->type->is_metadata) + +/** + * Determine if a bucket is a FLUSH bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_FLUSH(e) ((e)->type == &apr_bucket_type_flush) +/** + * Determine if a bucket is an EOS bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_EOS(e) ((e)->type == &apr_bucket_type_eos) +/** + * Determine if a bucket is a FILE bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_FILE(e) ((e)->type == &apr_bucket_type_file) +/** + * Determine if a bucket is a PIPE bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_PIPE(e) ((e)->type == &apr_bucket_type_pipe) +/** + * Determine if a bucket is a SOCKET bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_SOCKET(e) ((e)->type == &apr_bucket_type_socket) +/** + * Determine if a bucket is a HEAP bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_HEAP(e) ((e)->type == &apr_bucket_type_heap) +/** + * Determine if a bucket is a TRANSIENT bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_TRANSIENT(e) ((e)->type == &apr_bucket_type_transient) +/** + * Determine if a bucket is a IMMORTAL bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_IMMORTAL(e) ((e)->type == &apr_bucket_type_immortal) +#if APR_HAS_MMAP +/** + * Determine if a bucket is a MMAP bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_MMAP(e) ((e)->type == &apr_bucket_type_mmap) +#endif +/** + * Determine if a bucket is a POOL bucket + * @param e The bucket to inspect + * @return true or false + */ +#define APR_BUCKET_IS_POOL(e) ((e)->type == &apr_bucket_type_pool) + +/* + * General-purpose reference counting for the various bucket types. + * + * Any bucket type that keeps track of the resources it uses (i.e. + * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to + * attach a reference count to the resource so that it can be freed + * when the last bucket that uses it goes away. Resource-sharing may + * occur because of bucket splits or buckets that refer to globally + * cached data. */ + +/** @see apr_bucket_refcount */ +typedef struct apr_bucket_refcount apr_bucket_refcount; +/** + * The structure used to manage the shared resource must start with an + * apr_bucket_refcount which is updated by the general-purpose refcount + * code. A pointer to the bucket-type-dependent private data structure + * can be cast to a pointer to an apr_bucket_refcount and vice versa. + */ +struct apr_bucket_refcount { + /** The number of references to this bucket */ + int refcount; +}; + +/* ***** Reference-counted bucket types ***** */ + +/** @see apr_bucket_heap */ +typedef struct apr_bucket_heap apr_bucket_heap; +/** + * A bucket referring to data allocated off the heap. + */ +struct apr_bucket_heap { + /** Number of buckets using this memory */ + apr_bucket_refcount refcount; + /** The start of the data actually allocated. This should never be + * modified, it is only used to free the bucket. + */ + char *base; + /** how much memory was allocated */ + apr_size_t alloc_len; + /** function to use to delete the data */ + void (*free_func)(void *data); +}; + +/** @see apr_bucket_pool */ +typedef struct apr_bucket_pool apr_bucket_pool; +/** + * A bucket referring to data allocated from a pool + */ +struct apr_bucket_pool { + /** The pool bucket must be able to be easily morphed to a heap + * bucket if the pool gets cleaned up before all references are + * destroyed. This apr_bucket_heap structure is populated automatically + * when the pool gets cleaned up, and subsequent calls to pool_read() + * will result in the apr_bucket in question being morphed into a + * regular heap bucket. (To avoid having to do many extra refcount + * manipulations and b->data manipulations, the apr_bucket_pool + * struct actually *contains* the apr_bucket_heap struct that it + * will become as its first element; the two share their + * apr_bucket_refcount members.) + */ + apr_bucket_heap heap; + /** The block of data actually allocated from the pool. + * Segments of this block are referenced by adjusting + * the start and length of the apr_bucket accordingly. + * This will be NULL after the pool gets cleaned up. + */ + const char *base; + /** The pool the data was allocated from. When the pool + * is cleaned up, this gets set to NULL as an indicator + * to pool_read() that the data is now on the heap and + * so it should morph the bucket into a regular heap + * bucket before continuing. + */ + apr_pool_t *pool; + /** The freelist this structure was allocated from, which is + * needed in the cleanup phase in order to allocate space on the heap + */ + apr_bucket_alloc_t *list; +}; + +#if APR_HAS_MMAP +/** @see apr_bucket_mmap */ +typedef struct apr_bucket_mmap apr_bucket_mmap; +/** + * A bucket referring to an mmap()ed file + */ +struct apr_bucket_mmap { + /** Number of buckets using this memory */ + apr_bucket_refcount refcount; + /** The mmap this sub_bucket refers to */ + apr_mmap_t *mmap; +}; +#endif + +/** @see apr_bucket_file */ +typedef struct apr_bucket_file apr_bucket_file; +/** + * A bucket referring to an file + */ +struct apr_bucket_file { + /** Number of buckets using this memory */ + apr_bucket_refcount refcount; + /** The file this bucket refers to */ + apr_file_t *fd; + /** The pool into which any needed structures should + * be created while reading from this file bucket */ + apr_pool_t *readpool; +#if APR_HAS_MMAP + /** Whether this bucket should be memory-mapped if + * a caller tries to read from it */ + int can_mmap; +#endif /* APR_HAS_MMAP */ +}; + +/** @see apr_bucket_structs */ +typedef union apr_bucket_structs apr_bucket_structs; +/** + * A union of all bucket structures so we know what + * the max size is. + */ +union apr_bucket_structs { + apr_bucket b; /**< Bucket */ + apr_bucket_heap heap; /**< Heap */ + apr_bucket_pool pool; /**< Pool */ +#if APR_HAS_MMAP + apr_bucket_mmap mmap; /**< MMap */ +#endif + apr_bucket_file file; /**< File */ +}; + +/** + * The amount that apr_bucket_alloc() should allocate in the common case. + * Note: this is twice as big as apr_bucket_structs to allow breathing + * room for third-party bucket types. + */ +#define APR_BUCKET_ALLOC_SIZE APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs)) + +/* ***** Bucket Brigade Functions ***** */ +/** + * Create a new bucket brigade. The bucket brigade is originally empty. + * @param p The pool to associate with the brigade. Data is not allocated out + * of the pool, but a cleanup is registered. + * @param list The bucket allocator to use + * @return The empty bucket brigade + */ +APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p, + apr_bucket_alloc_t *list); + +/** + * destroy an entire bucket brigade. This includes destroying all of the + * buckets within the bucket brigade's bucket list. + * @param b The bucket brigade to destroy + */ +APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b); + +/** + * empty out an entire bucket brigade. This includes destroying all of the + * buckets within the bucket brigade's bucket list. This is similar to + * apr_brigade_destroy(), except that it does not deregister the brigade's + * pool cleanup function. + * @param data The bucket brigade to clean up + * @remark Generally, you should use apr_brigade_destroy(). This function + * can be useful in situations where you have a single brigade that + * you wish to reuse many times by destroying all of the buckets in + * the brigade and putting new buckets into it later. + */ +APU_DECLARE(apr_status_t) apr_brigade_cleanup(void *data); + +/** + * Split a bucket brigade into two, such that the given bucket is the + * first in the new bucket brigade. This function is useful when a + * filter wants to pass only the initial part of a brigade to the next + * filter. + * @param b The brigade to split + * @param e The first element of the new brigade + * @return The new brigade + */ +APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b, + apr_bucket *e); + +/** + * Partition a bucket brigade at a given offset (in bytes from the start of + * the brigade). This is useful whenever a filter wants to use known ranges + * of bytes from the brigade; the ranges can even overlap. + * @param b The brigade to partition + * @param point The offset at which to partition the brigade + * @param after_point Returns a pointer to the first bucket after the partition + */ +APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b, + apr_off_t point, + apr_bucket **after_point); + +#if APR_NOT_DONE_YET +/** + * consume nbytes from beginning of b -- call apr_bucket_destroy as + * appropriate, and/or modify start on last element + * @param b The brigade to consume data from + * @param nbytes The number of bytes to consume + */ +APU_DECLARE(void) apr_brigade_consume(apr_bucket_brigade *b, + apr_off_t nbytes); +#endif + +/** + * Return the total length of the brigade. + * @param bb The brigade to compute the length of + * @param read_all Read unknown-length buckets to force a size + * @param length Returns the length of the brigade, or -1 if the brigade has + * buckets of indeterminate length and read_all is 0. + */ +APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb, + int read_all, + apr_off_t *length); + +/** + * Take a bucket brigade and store the data in a flat char* + * @param bb The bucket brigade to create the char* from + * @param c The char* to write into + * @param len The maximum length of the char array. On return, it is the + * actual length of the char array. + */ +APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb, + char *c, + apr_size_t *len); + +/** + * Creates a pool-allocated string representing a flat bucket brigade + * @param bb The bucket brigade to create the char array from + * @param c On return, the allocated char array + * @param len On return, the length of the char array. + * @param pool The pool to allocate the string from. + */ +APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb, + char **c, + apr_size_t *len, + apr_pool_t *pool); + +/** + * Split a brigade to represent one LF line. + * @param bbOut The bucket brigade that will have the LF line appended to. + * @param bbIn The input bucket brigade to search for a LF-line. + * @param block The blocking mode to be used to split the line. + * @param maxbytes The maximum bytes to read. If this many bytes are seen + * without a LF, the brigade will contain a partial line. + */ +APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut, + apr_bucket_brigade *bbIn, + apr_read_type_e block, + apr_off_t maxbytes); + +/** + * create an iovec of the elements in a bucket_brigade... return number + * of elements used. This is useful for writing to a file or to the + * network efficiently. + * @param b The bucket brigade to create the iovec from + * @param vec The iovec to create + * @param nvec The number of elements in the iovec. On return, it is the + * number of iovec elements actually filled out. + */ +APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b, + struct iovec *vec, int *nvec); + +/** + * This function writes a list of strings into a bucket brigade. + * @param b The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param va A list of strings to add + * @return APR_SUCCESS or error code. + */ +APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b, + apr_brigade_flush flush, + void *ctx, + va_list va); + +/** + * This function writes a string into a bucket brigade. + * @param b The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param str The string to add + * @param nbyte The number of bytes to write + * @return APR_SUCCESS or error code + */ +APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b, + apr_brigade_flush flush, void *ctx, + const char *str, apr_size_t nbyte); + +/** + * This function writes multiple strings into a bucket brigade. + * @param b The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param vec The strings to add (address plus length for each) + * @param nvec The number of entries in iovec + * @return APR_SUCCESS or error code + */ +APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b, + apr_brigade_flush flush, + void *ctx, + const struct iovec *vec, + apr_size_t nvec); + +/** + * This function writes a string into a bucket brigade. + * @param bb The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param str The string to add + * @return APR_SUCCESS or error code + */ +APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb, + apr_brigade_flush flush, void *ctx, + const char *str); + +/** + * This function writes a character into a bucket brigade. + * @param b The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param c The character to add + * @return APR_SUCCESS or error code + */ +APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b, + apr_brigade_flush flush, void *ctx, + const char c); + +/** + * This function writes an unspecified number of strings into a bucket brigade. + * @param b The bucket brigade to add to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param ... The strings to add + * @return APR_SUCCESS or error code + */ +APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b, + apr_brigade_flush flush, + void *ctx, ...); + +/** + * Evaluate a printf and put the resulting string at the end + * of the bucket brigade. + * @param b The brigade to write to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param fmt The format of the string to write + * @param ... The arguments to fill out the format + * @return APR_SUCCESS or error code + */ +APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b, + apr_brigade_flush flush, + void *ctx, + const char *fmt, ...) + __attribute__((format(printf,4,5))); + +/** + * Evaluate a printf and put the resulting string at the end + * of the bucket brigade. + * @param b The brigade to write to + * @param flush The flush function to use if the brigade is full + * @param ctx The structure to pass to the flush function + * @param fmt The format of the string to write + * @param va The arguments to fill out the format + * @return APR_SUCCESS or error code + */ +APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b, + apr_brigade_flush flush, + void *ctx, + const char *fmt, va_list va); + +/* ***** Bucket freelist functions ***** */ +/** + * Create a bucket allocator. + * @param p This pool's underlying apr_allocator_t is used to allocate memory + * for the bucket allocator. When the pool is destroyed, the bucket + * allocator's cleanup routine will free all memory that has been + * allocated from it. + * @remark The reason the allocator gets its memory from the pool's + * apr_allocator_t rather than from the pool itself is because + * the bucket allocator will free large memory blocks back to the + * allocator when it's done with them, thereby preventing memory + * footprint growth that would occur if we allocated from the pool. + * @warning The allocator must never be used by more than one thread at a time. + */ +APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p); + +/** + * Create a bucket allocator. + * @param allocator This apr_allocator_t is used to allocate both the bucket + * allocator and all memory handed out by the bucket allocator. The + * caller is responsible for destroying the bucket allocator and the + * apr_allocator_t -- no automatic cleanups will happen. + * @warning The allocator must never be used by more than one thread at a time. + */ +APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator); + +/** + * Destroy a bucket allocator. + * @param list The allocator to be destroyed + */ +APU_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list); + +/** + * Allocate memory for use by the buckets. + * @param size The amount to allocate. + * @param list The allocator from which to allocate the memory. + */ +APU_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list); + +/** + * Free memory previously allocated with apr_bucket_alloc(). + * @param block The block of memory to be freed. + */ +APU_DECLARE_NONSTD(void) apr_bucket_free(void *block); + + +/* ***** Bucket Functions ***** */ +/** + * Free the resources used by a bucket. If multiple buckets refer to + * the same resource it is freed when the last one goes away. + * @see apr_bucket_delete() + * @param e The bucket to destroy + */ +#define apr_bucket_destroy(e) do { \ + (e)->type->destroy((e)->data); \ + (e)->free(e); \ + } while (0) + +/** + * Delete a bucket by removing it from its brigade (if any) and then + * destroying it. + * @remark This mainly acts as an aid in avoiding code verbosity. It is + * the preferred exact equivalent to: + *
+ *      APR_BUCKET_REMOVE(e);
+ *      apr_bucket_destroy(e);
+ * 
+ * @param e The bucket to delete + */ +#define apr_bucket_delete(e) do { \ + APR_BUCKET_REMOVE(e); \ + apr_bucket_destroy(e); \ + } while (0) + +/** + * read the data from the bucket + * @param e The bucket to read from + * @param str The location to store the data in + * @param len The amount of data read + * @param block Whether the read function blocks + */ +#define apr_bucket_read(e,str,len,block) (e)->type->read(e, str, len, block) + +/** + * Setaside data so that stack data is not destroyed on returning from + * the function + * @param e The bucket to setaside + * @param p The pool to setaside into + */ +#define apr_bucket_setaside(e,p) (e)->type->setaside(e,p) + +/** + * Split one bucket in two. + * @param e The bucket to split + * @param point The offset to split the bucket at + */ +#define apr_bucket_split(e,point) (e)->type->split(e, point) + +/** + * Copy a bucket. + * @param e The bucket to copy + * @param c Returns a pointer to the new bucket + */ +#define apr_bucket_copy(e,c) (e)->type->copy(e, c) + +/* Bucket type handling */ + +/** + * This function simply returns APR_SUCCESS to denote that the bucket does + * not require anything to happen for its setaside() function. This is + * appropriate for buckets that have "immortal" data -- the data will live + * at least as long as the bucket. + * @param data The bucket to setaside + * @param pool The pool defining the desired lifetime of the bucket data + * @return APR_SUCCESS + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data, + apr_pool_t *pool); + +/** + * A place holder function that signifies that the setaside function was not + * implemented for this bucket + * @param data The bucket to setaside + * @param pool The pool defining the desired lifetime of the bucket data + * @return APR_ENOTIMPL + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data, + apr_pool_t *pool); + +/** + * A place holder function that signifies that the split function was not + * implemented for this bucket + * @param data The bucket to split + * @param point The location to split the bucket + * @return APR_ENOTIMPL + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data, + apr_size_t point); + +/** + * A place holder function that signifies that the copy function was not + * implemented for this bucket + * @param e The bucket to copy + * @param c Returns a pointer to the new bucket + * @return APR_ENOTIMPL + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e, + apr_bucket **c); + +/** + * A place holder function that signifies that this bucket does not need + * to do anything special to be destroyed. That's only the case for buckets + * that either have no data (metadata buckets) or buckets whose data pointer + * points to something that's not a bucket-type-specific structure, as with + * simple buckets where data points to a string and pipe buckets where data + * points directly to the apr_file_t. + * @param data The bucket data to destroy + */ +APU_DECLARE_NONSTD(void) apr_bucket_destroy_noop(void *data); + +/** + * There is no apr_bucket_destroy_notimpl, because destruction is required + * to be implemented (it could be a noop, but only if that makes sense for + * the bucket type) + */ + +/* There is no apr_bucket_read_notimpl, because it is a required function + */ + + +/* All of the bucket types implemented by the core */ +/** + * The flush bucket type. This signifies that all data should be flushed to + * the next filter. The flush bucket should be sent with the other buckets. + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_flush; +/** + * The EOS bucket type. This signifies that there will be no more data, ever. + * All filters MUST send all data to the next filter when they receive a + * bucket of this type + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_eos; +/** + * The FILE bucket type. This bucket represents a file on disk + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_file; +/** + * The HEAP bucket type. This bucket represents a data allocated from the + * heap. + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_heap; +#if APR_HAS_MMAP +/** + * The MMAP bucket type. This bucket represents an MMAP'ed file + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_mmap; +#endif +/** + * The POOL bucket type. This bucket represents a data that was allocated + * from a pool. IF this bucket is still available when the pool is cleared, + * the data is copied on to the heap. + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pool; +/** + * The PIPE bucket type. This bucket represents a pipe to another program. + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pipe; +/** + * The IMMORTAL bucket type. This bucket represents a segment of data that + * the creator is willing to take responsibility for. The core will do + * nothing with the data in an immortal bucket + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_immortal; +/** + * The TRANSIENT bucket type. This bucket represents a data allocated off + * the stack. When the setaside function is called, this data is copied on + * to the heap + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_transient; +/** + * The SOCKET bucket type. This bucket represents a socket to another machine + */ +APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_socket; + + +/* ***** Simple buckets ***** */ + +/** + * Split a simple bucket into two at the given point. Most non-reference + * counting buckets that allow multiple references to the same block of + * data (eg transient and immortal) will use this as their split function + * without any additional type-specific handling. + * @param b The bucket to be split + * @param point The offset of the first byte in the new bucket + * @return APR_EINVAL if the point is not within the bucket; + * APR_ENOMEM if allocation failed; + * or APR_SUCCESS + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *b, + apr_size_t point); + +/** + * Copy a simple bucket. Most non-reference-counting buckets that allow + * multiple references to the same block of data (eg transient and immortal) + * will use this as their copy function without any additional type-specific + * handling. + * @param a The bucket to copy + * @param b Returns a pointer to the new bucket + * @return APR_ENOMEM if allocation failed; + * or APR_SUCCESS + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a, + apr_bucket **b); + + +/* ***** Shared, reference-counted buckets ***** */ + +/** + * Initialize a bucket containing reference-counted data that may be + * shared. The caller must allocate the bucket if necessary and + * initialize its type-dependent fields, and allocate and initialize + * its own private data structure. This function should only be called + * by type-specific bucket creation functions. + * @param b The bucket to initialize + * @param data A pointer to the private data structure + * with the reference count at the start + * @param start The start of the data in the bucket + * relative to the private base pointer + * @param length The length of the data in the bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, void *data, + apr_off_t start, + apr_size_t length); + +/** + * Decrement the refcount of the data in the bucket. This function + * should only be called by type-specific bucket destruction functions. + * @param data The private data pointer from the bucket to be destroyed + * @return TRUE or FALSE; TRUE if the reference count is now + * zero, indicating that the shared resource itself can + * be destroyed by the caller. + */ +APU_DECLARE(int) apr_bucket_shared_destroy(void *data); + +/** + * Split a bucket into two at the given point, and adjust the refcount + * to the underlying data. Most reference-counting bucket types will + * be able to use this function as their split function without any + * additional type-specific handling. + * @param b The bucket to be split + * @param point The offset of the first byte in the new bucket + * @return APR_EINVAL if the point is not within the bucket; + * APR_ENOMEM if allocation failed; + * or APR_SUCCESS + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *b, + apr_size_t point); + +/** + * Copy a refcounted bucket, incrementing the reference count. Most + * reference-counting bucket types will be able to use this function + * as their copy function without any additional type-specific handling. + * @param a The bucket to copy + * @param b Returns a pointer to the new bucket + * @return APR_ENOMEM if allocation failed; + or APR_SUCCESS + */ +APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a, + apr_bucket **b); + + +/* ***** Functions to Create Buckets of varying types ***** */ +/* + * Each bucket type foo has two initialization functions: + * apr_bucket_foo_make which sets up some already-allocated memory as a + * bucket of type foo; and apr_bucket_foo_create which allocates memory + * for the bucket, calls apr_bucket_make_foo, and initializes the + * bucket's list pointers. The apr_bucket_foo_make functions are used + * inside the bucket code to change the type of buckets in place; + * other code should call apr_bucket_foo_create. All the initialization + * functions change nothing if they fail. + */ + +/** + * Create an End of Stream bucket. This indicates that there is no more data + * coming from down the filter stack. All filters should flush at this point. + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in an EOS bucket. This indicates that there is no + * more data coming from down the filter stack. All filters should flush at + * this point. + * @param b The bucket to make into an EOS bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b); + +/** + * Create a flush bucket. This indicates that filters should flush their + * data. There is no guarantee that they will flush it, but this is the + * best we can do. + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a FLUSH bucket. This indicates that filters + * should flush their data. There is no guarantee that they will flush it, + * but this is the best we can do. + * @param b The bucket to make into a FLUSH bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b); + +/** + * Create a bucket referring to long-lived data. + * @param buf The data to insert into the bucket + * @param nbyte The size of the data to insert. + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf, + apr_size_t nbyte, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to long-lived data + * @param b The bucket to make into a IMMORTAL bucket + * @param buf The data to insert into the bucket + * @param nbyte The size of the data to insert. + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b, + const char *buf, + apr_size_t nbyte); + +/** + * Create a bucket referring to data on the stack. + * @param buf The data to insert into the bucket + * @param nbyte The size of the data to insert. + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf, + apr_size_t nbyte, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to stack data + * @param b The bucket to make into a TRANSIENT bucket + * @param buf The data to insert into the bucket + * @param nbyte The size of the data to insert. + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b, + const char *buf, + apr_size_t nbyte); + +/** + * Create a bucket referring to memory on the heap. If the caller asks + * for the data to be copied, this function always allocates 4K of + * memory so that more data can be added to the bucket without + * requiring another allocation. Therefore not all the data may be put + * into the bucket. If copying is not requested then the bucket takes + * over responsibility for free()ing the memory. + * @param buf The buffer to insert into the bucket + * @param nbyte The size of the buffer to insert. + * @param free_func Function to use to free the data; NULL indicates that the + * bucket should make a copy of the data + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf, + apr_size_t nbyte, + void (*free_func)(void *data), + apr_bucket_alloc_t *list); +/** + * Make the bucket passed in a bucket refer to heap data + * @param b The bucket to make into a HEAP bucket + * @param buf The buffer to insert into the bucket + * @param nbyte The size of the buffer to insert. + * @param free_func Function to use to free the data; NULL indicates that the + * bucket should make a copy of the data + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const char *buf, + apr_size_t nbyte, + void (*free_func)(void *data)); + +/** + * Create a bucket referring to memory allocated from a pool. + * + * @param buf The buffer to insert into the bucket + * @param length The number of bytes referred to by this bucket + * @param pool The pool the memory was allocated from + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf, + apr_size_t length, + apr_pool_t *pool, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to pool data + * @param b The bucket to make into a pool bucket + * @param buf The buffer to insert into the bucket + * @param length The number of bytes referred to by this bucket + * @param pool The pool the memory was allocated from + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b, const char *buf, + apr_size_t length, + apr_pool_t *pool); + +#if APR_HAS_MMAP +/** + * Create a bucket referring to mmap()ed memory. + * @param mm The mmap to insert into the bucket + * @param start The offset of the first byte in the mmap + * that this bucket refers to + * @param length The number of bytes referred to by this bucket + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm, + apr_off_t start, + apr_size_t length, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to an MMAP'ed file + * @param b The bucket to make into a MMAP bucket + * @param mm The mmap to insert into the bucket + * @param start The offset of the first byte in the mmap + * that this bucket refers to + * @param length The number of bytes referred to by this bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm, + apr_off_t start, + apr_size_t length); +#endif + +/** + * Create a bucket referring to a socket. + * @param thissock The socket to put in the bucket + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock, + apr_bucket_alloc_t *list); +/** + * Make the bucket passed in a bucket refer to a socket + * @param b The bucket to make into a SOCKET bucket + * @param thissock The socket to put in the bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b, + apr_socket_t *thissock); + +/** + * Create a bucket referring to a pipe. + * @param thispipe The pipe to put in the bucket + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to a pipe + * @param b The bucket to make into a PIPE bucket + * @param thispipe The pipe to put in the bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b, + apr_file_t *thispipe); + +/** + * Create a bucket referring to a file. + * @param fd The file to put in the bucket + * @param offset The offset where the data of interest begins in the file + * @param len The amount of data in the file we are interested in + * @param p The pool into which any needed structures should be created + * while reading from this file bucket + * @param list The freelist from which this bucket should be allocated + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd, + apr_off_t offset, + apr_size_t len, + apr_pool_t *p, + apr_bucket_alloc_t *list); + +/** + * Make the bucket passed in a bucket refer to a file + * @param b The bucket to make into a FILE bucket + * @param fd The file to put in the bucket + * @param offset The offset where the data of interest begins in the file + * @param len The amount of data in the file we are interested in + * @param p The pool into which any needed structures should be created + * while reading from this file bucket + * @return The new bucket, or NULL if allocation failed + */ +APU_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd, + apr_off_t offset, + apr_size_t len, apr_pool_t *p); + +/** + * Enable or disable memory-mapping for a FILE bucket (default is enabled) + * @param b The bucket + * @param enabled Whether memory-mapping should be enabled + * @return APR_SUCCESS normally, or an error code if the operation fails + */ +APU_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *b, + int enabled); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_BUCKETS_H */ diff --git a/rubbos/app/apache2/include/apr_compat.h b/rubbos/app/apache2/include/apr_compat.h new file mode 100644 index 00000000..45500c0a --- /dev/null +++ b/rubbos/app/apache2/include/apr_compat.h @@ -0,0 +1,231 @@ +/* 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. + */ + +#ifndef APR_COMPAT_H +#define APR_COMPAT_H + + /** + * @file apr_compat.h + * @brief APR Legacy Apache 1.3 Compatibility + * @deprecated These defines are only present for historical purposes + */ + +/** + * @defgroup apr_compat APR Legacy Apache 1.3 Compatibility + * @ingroup APR + * @{ + */ + +/* redefine 1.3.x symbols to those that now live in libapr */ + +/** @see APR_INLINE */ +#define ap_inline APR_INLINE + +/** @deprecated @see apr_md5_ctx_t */ +#define ap_md5_ctx_t apr_md5_ctx_t +/** @deprecated @see apr_md5_encode */ +#define ap_MD5Encode apr_md5_encode +/** @deprecated @see apr_md5_final */ +#define ap_MD5Final apr_md5_final +/** @deprecated @see apr_md5_init */ +#define ap_MD5Init apr_md5_init +/** @deprecated @see apr_md5_update */ +#define ap_MD5Update apr_md5_update +/** @deprecated @see apr_array_append */ +#define ap_append_arrays apr_array_append +/** @deprecated @see apr_array_cat */ +#define ap_array_cat apr_array_cat +/** @deprecated @see apr_array_header_t */ +#define ap_array_header_t apr_array_header_t +/** @deprecated @see apr_array_pstrcat */ +#define ap_array_pstrcat apr_array_pstrcat +/** @deprecated @see apr_pool_free_blocks_num_bytes */ +#define ap_bytes_in_free_blocks apr_pool_free_blocks_num_bytes +/** @deprecated @see apr_pool_num_bytes */ +#define ap_bytes_in_pool apr_pool_num_bytes +/** @deprecated @see apr_check_file_time */ +#define ap_check_file_time apr_check_file_time +/** @deprecated @see apr_filetype_e */ +#define ap_filetype_e apr_filetype_e +/** @deprecated @see apr_pool_cleanup_for_exec */ +#define ap_cleanup_for_exec apr_pool_cleanup_for_exec +/** @deprecated @see apr_pool_clear */ +#define ap_clear_pool apr_pool_clear +/** @deprecated @see apr_table_clear */ +#define ap_clear_table apr_table_clear +/** @deprecated @see apr_array_copy */ +#define ap_copy_array apr_array_copy +/** @deprecated @see apr_array_copy_hdr */ +#define ap_copy_array_hdr apr_array_copy_hdr +/** @deprecated @see apr_table_copy */ +#define ap_copy_table apr_table_copy +/** @deprecated @see apr_cpystrn */ +#define ap_cpystrn apr_cpystrn +/** @deprecated @see apr_day_snames */ +#define ap_day_snames apr_day_snames +/** @deprecated @see apr_pool_destroy */ +#define ap_destroy_pool apr_pool_destroy +/** @deprecated @see apr_time_exp_t */ +#define ap_exploded_time_t apr_time_exp_t +/** @deprecated @see apr_fnmatch */ +#define ap_fnmatch apr_fnmatch +/** @deprecated @see apr_getopt */ +#define ap_getopt apr_getopt +/** @deprecated @see apr_inet_addr */ +#define ap_inet_addr apr_inet_addr +/** @deprecated @see apr_pool_alloc_init */ +#define ap_init_alloc apr_pool_alloc_init +/** @deprecated @see apr_is_empty_table */ +#define ap_is_empty_table apr_is_empty_table +/** @deprecated @see apr_fnmatch_test */ +#define ap_is_fnmatch apr_fnmatch_test +/** @deprecated @see apr_pool_cleanup_kill */ +#define ap_kill_cleanup apr_pool_cleanup_kill +/** @deprecated @see apr_array_make */ +#define ap_make_array apr_array_make +/** @deprecated @see apr_pool_sub_make */ +#define ap_make_sub_pool apr_pool_sub_make +/** @deprecated @see apr_table_make */ +#define ap_make_table apr_table_make +/** @deprecated @see apr_month_snames */ +#define ap_month_snames apr_month_snames +/** @deprecated @see apr_pool_note_subprocess*/ +#define ap_note_subprocess apr_pool_note_subprocess +/** @deprecated @see apr_pool_cleanup_null */ +#define ap_null_cleanup apr_pool_cleanup_null +/** @deprecated @see apr_filepath_merge */ +#define ap_os_canonical_filename apr_filepath_merge +/** @deprecated @see apr_filepath_merge */ +#define ap_os_case_canonical_filename apr_filepath_merge +/** @deprecated @see apr_dso_load */ +#define ap_os_dso_load apr_dso_load +/** @deprecated @see apr_dso_unload */ +#define ap_os_dso_unload apr_dso_unload +/** @deprecated @see apr_dso_sym */ +#define ap_os_dso_sym apr_dso_sym +/** @deprecated @see apr_dso_error */ +#define ap_os_dso_error apr_dso_error +/** @deprecated @see apr_filepath_merge + * @warning apr_filepath_merge rejects invalid filenames */ +#define ap_os_is_filename_valid apr_filepath_merge +/** @deprecated @see apr_proc_kill */ +#define ap_os_kill apr_proc_kill +/** @deprecated @see apr_filepath_merge */ +#define ap_os_systemcase_canonical_filename apr_filepath_merge +/** @deprecated @see apr_table_overlap */ +#define ap_overlap_tables apr_table_overlap +/** @deprecated @see apr_table_overlay */ +#define ap_overlay_tables apr_table_overlay +/** @deprecated @see apr_palloc */ +#define ap_palloc apr_palloc +/** @deprecated @see apr_pcalloc */ +#define ap_pcalloc apr_pcalloc +/** @deprecated @see apr_pool_join */ +#define ap_pool_join apr_pool_join +/** @deprecated @see apr_psprintf */ +#define ap_psprintf apr_psprintf +/** @deprecated @see apr_pstrcat */ +#define ap_pstrcat apr_pstrcat +/** @deprecated @see apr_pstrdup */ +#define ap_pstrdup apr_pstrdup +/** @deprecated @see apr_pstrndup */ +#define ap_pstrndup apr_pstrndup +/** @deprecated @see apr_array_push */ +#define ap_push_array apr_array_push +/** @deprecated @see apr_pvsprintf */ +#define ap_pvsprintf apr_pvsprintf +/** @deprecated @see apr_pool_cleanup_register */ +#define ap_register_cleanup apr_pool_cleanup_register +/** @deprecated @see apr_proc_other_child_register */ +#define ap_register_other_child apr_proc_other_child_register +/** @deprecated @see apr_pool_cleanup_run */ +#define ap_run_cleanup apr_pool_cleanup_run +/** @deprecated @see apr_signal */ +#define ap_signal apr_signal +/** @deprecated @see apr_snprintf */ +#define ap_snprintf apr_snprintf +/** @deprecated @see apr_table_add */ +#define ap_table_add apr_table_add +/** @deprecated @see apr_table_addn */ +#define ap_table_addn apr_table_addn +/** @deprecated @see apr_table_do */ +#define ap_table_do apr_table_do +/** @deprecated @see apr_table_elts */ +#define ap_table_elts apr_table_elts +/** @deprecated @see apr_table_get */ +#define ap_table_get apr_table_get +/** @deprecated @see apr_table_merge */ +#define ap_table_merge apr_table_merge +/** @deprecated @see apr_table_mergen */ +#define ap_table_mergen apr_table_mergen +/** @deprecated @see apr_table_set */ +#define ap_table_set apr_table_set +/** @deprecated @see apr_table_setn */ +#define ap_table_setn apr_table_setn +/** @deprecated @see apr_table_unset */ +#define ap_table_unset apr_table_unset +/** @deprecated @see apr_proc_other_child_unregister */ +#define ap_unregister_other_child apr_proc_other_child_unregister +/** @deprecated @see apr_password_validate */ +#define ap_validate_password apr_password_validate +/** @deprecated @see apr_vformatter */ +#define ap_vformatter apr_vformatter +/** @deprecated @see apr_vsnprintf */ +#define ap_vsnprintf apr_vsnprintf +/** @deprecated @see apr_wait_t */ +#define ap_wait_t apr_wait_t + +/** @deprecated @see apr_isalnum */ +#define ap_isalnum apr_isalnum +/** @deprecated @see apr_isalpha*/ +#define ap_isalpha apr_isalpha +/** @deprecated @see apr_iscntrl */ +#define ap_iscntrl apr_iscntrl +/** @deprecated @see apr_isdigit */ +#define ap_isdigit apr_isdigit +/** @deprecated @see apr_isgraph */ +#define ap_isgraph apr_isgraph +/** @deprecated @see apr_islower */ +#define ap_islower apr_islower +/** @deprecated @see apr_isascii */ +#define ap_isascii apr_isascii +/** @deprecated @see apr_isprint */ +#define ap_isprint apr_isprint +/** @deprecated @see apr_ispunct */ +#define ap_ispunct apr_ispunct +/** @deprecated @see apr_isspace */ +#define ap_isspace apr_isspace +/** @deprecated @see apr_isupper */ +#define ap_isupper apr_isupper +/** @deprecated @see apr_isxdigit */ +#define ap_isxdigit apr_isxdigit +/** @deprecated @see apr_tolower */ +#define ap_tolower apr_tolower +/** @deprecated @see apr_toupper */ +#define ap_toupper apr_toupper + +/** @deprecated @see APR_USEC_PER_SEC */ +#define AP_USEC_PER_SEC APR_USEC_PER_SEC +/** @deprecated @see APR_RFC822_DATE_LEN */ +#define AP_RFC822_DATE_LEN APR_RFC822_DATE_LEN +/** @deprecated @see APR_OVERLAP_TABLES_MERGE */ +#define AP_OVERLAP_TABLES_MERGE APR_OVERLAP_TABLES_MERGE +/** @deprecated @see APR_OVERLAP_TABLES_SET */ +#define AP_OVERLAP_TABLES_SET APR_OVERLAP_TABLES_SET + +/** @} */ + +#endif /* APR_COMPAT_H */ diff --git a/rubbos/app/apache2/include/apr_date.h b/rubbos/app/apache2/include/apr_date.h new file mode 100644 index 00000000..87500a33 --- /dev/null +++ b/rubbos/app/apache2/include/apr_date.h @@ -0,0 +1,106 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_DATE_H +#define APR_DATE_H + +/** + * @file apr_date.h + * @brief APR-UTIL date routines + */ + +/** + * @defgroup APR_Util_Date Date routines + * @ingroup APR_Util + * @{ + */ + +/* + * apr_date.h: prototypes for date parsing utility routines + */ + +#include "apu.h" +#include "apr_time.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** A bad date. */ +#define APR_DATE_BAD ((apr_time_t)0) + +/** + * Compare a string to a mask + * @param data The string to compare + * @param mask Mask characters (arbitrary maximum is 256 characters): + *
+ *   '\@' - uppercase letter
+ *   '\$' - lowercase letter
+ *   '\&' - hex digit
+ *   '#' - digit
+ *   '~' - digit or space
+ *   '*' - swallow remaining characters
+ * 
+ * @remark The mask tests for an exact match for any other character + * @return 1 if the string matches, 0 otherwise + */ +APU_DECLARE(int) apr_date_checkmask(const char *data, const char *mask); + +/** + * Parses an HTTP date in one of three standard forms: + *
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ * 
+ * @param date The date in one of the three formats above + * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or + * 0 if this would be out of range or if the date is invalid. + */ +APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date); + +/** + * Parses a string resembling an RFC 822 date. This is meant to be + * leinent in its parsing of dates. Hence, this will parse a wider + * range of dates than apr_date_parse_http. + * + * The prominent mailer (or poster, if mailer is unknown) that has + * been seen in the wild is included for the unknown formats. + *
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ *     Sun, 6 Nov 1994 08:49:37 GMT   ; RFC 822, updated by RFC 1123
+ *     Sun, 06 Nov 94 08:49:37 GMT    ; RFC 822
+ *     Sun, 6 Nov 94 08:49:37 GMT     ; RFC 822
+ *     Sun, 06 Nov 94 08:49 GMT       ; Unknown [drtr\@ast.cam.ac.uk] 
+ *     Sun, 6 Nov 94 08:49 GMT        ; Unknown [drtr\@ast.cam.ac.uk]
+ *     Sun, 06 Nov 94 8:49:37 GMT     ; Unknown [Elm 70.85]
+ *     Sun, 6 Nov 94 8:49:37 GMT      ; Unknown [Elm 70.85] 
+ * 
+ * + * @param date The date in one of the formats above + * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or + * 0 if this would be out of range or if the date is invalid. + */ +APU_DECLARE(apr_time_t) apr_date_parse_rfc(const char *date); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_DATE_H */ diff --git a/rubbos/app/apache2/include/apr_dbm.h b/rubbos/app/apache2/include/apr_dbm.h new file mode 100644 index 00000000..d34f9ad3 --- /dev/null +++ b/rubbos/app/apache2/include/apr_dbm.h @@ -0,0 +1,224 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_DBM_H +#define APR_DBM_H + +#include "apu.h" +#include "apr.h" +#include "apr_errno.h" +#include "apr_pools.h" +#include "apr_file_info.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file apr_dbm.h + * @brief APR-UTIL DBM library + */ +/** + * @defgroup APR_Util_DBM DBM routines + * @ingroup APR_Util + * @{ + */ +/** + * Structure for referencing a dbm + */ +typedef struct apr_dbm_t apr_dbm_t; + +/** + * Structure for referencing the datum record within a dbm + */ +typedef struct +{ + /** pointer to the 'data' to retrieve/store in the DBM */ + char *dptr; + /** size of the 'data' to retrieve/store in the DBM */ + apr_size_t dsize; +} apr_datum_t; + +/* modes to open the DB */ +#define APR_DBM_READONLY 1 /**< open for read-only access */ +#define APR_DBM_READWRITE 2 /**< open for read-write access */ +#define APR_DBM_RWCREATE 3 /**< open for r/w, create if needed */ +#define APR_DBM_RWTRUNC 4 /**< open for r/w, truncating an existing + DB if present */ +/** + * Open a dbm file by file name and type of DBM + * @param dbm The newly opened database + * @param type The type of the DBM (not all may be available at run time) + *
+ *  GDBM for GDBM files
+ *  SDBM for SDBM files
+ *  DB   for berkeley DB files
+ *  NDBM for NDBM files
+ *  default for the default DBM type
+ *  
+ * @param name The dbm file name to open + * @param mode The flag value + *
+ *           APR_DBM_READONLY   open for read-only access
+ *           APR_DBM_READWRITE  open for read-write access
+ *           APR_DBM_RWCREATE   open for r/w, create if needed
+ *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
+ * 
+ * @param perm Permissions to apply to if created + * @param cntxt The pool to use when creating the dbm + * @remark The dbm name may not be a true file name, as many dbm packages + * append suffixes for seperate data and index files. + */ + +APU_DECLARE(apr_status_t) apr_dbm_open_ex(apr_dbm_t **dbm, const char* type, + const char *name, + apr_int32_t mode, apr_fileperms_t perm, + apr_pool_t *cntxt); + + +/** + * Open a dbm file by file name + * @param dbm The newly opened database + * @param name The dbm file name to open + * @param mode The flag value + *
+ *           APR_DBM_READONLY   open for read-only access
+ *           APR_DBM_READWRITE  open for read-write access
+ *           APR_DBM_RWCREATE   open for r/w, create if needed
+ *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
+ * 
+ * @param perm Permissions to apply to if created + * @param cntxt The pool to use when creating the dbm + * @remark The dbm name may not be a true file name, as many dbm packages + * append suffixes for seperate data and index files. + */ +APU_DECLARE(apr_status_t) apr_dbm_open(apr_dbm_t **dbm, const char *name, + apr_int32_t mode, apr_fileperms_t perm, + apr_pool_t *cntxt); + +/** + * Close a dbm file previously opened by apr_dbm_open + * @param dbm The database to close + */ +APU_DECLARE(void) apr_dbm_close(apr_dbm_t *dbm); + +/** + * Fetch a dbm record value by key + * @param dbm The database + * @param key The key datum to find this record + * @param pvalue The value datum retrieved for this record + */ +APU_DECLARE(apr_status_t) apr_dbm_fetch(apr_dbm_t *dbm, apr_datum_t key, + apr_datum_t *pvalue); +/** + * Store a dbm record value by key + * @param dbm The database + * @param key The key datum to store this record by + * @param value The value datum to store in this record + */ +APU_DECLARE(apr_status_t) apr_dbm_store(apr_dbm_t *dbm, apr_datum_t key, + apr_datum_t value); + +/** + * Delete a dbm record value by key + * @param dbm The database + * @param key The key datum of the record to delete + * @remark It is not an error to delete a non-existent record. + */ +APU_DECLARE(apr_status_t) apr_dbm_delete(apr_dbm_t *dbm, apr_datum_t key); + +/** + * Search for a key within the dbm + * @param dbm The database + * @param key The datum describing a key to test + */ +APU_DECLARE(int) apr_dbm_exists(apr_dbm_t *dbm, apr_datum_t key); + +/** + * Retrieve the first record key from a dbm + * @param dbm The database + * @param pkey The key datum of the first record + */ +APU_DECLARE(apr_status_t) apr_dbm_firstkey(apr_dbm_t *dbm, apr_datum_t *pkey); + +/** + * Retrieve the next record key from a dbm + * @param dbm The database + * @param pkey The key datum of the next record + */ +APU_DECLARE(apr_status_t) apr_dbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey); + +/** + * Proactively toss any memory associated with the apr_datum_t. + * @param dbm The database + * @param data The datum to free. + */ +APU_DECLARE(void) apr_dbm_freedatum(apr_dbm_t *dbm, apr_datum_t data); + +/** + * Report more information when an apr_dbm function fails. + * @param dbm The database + * @param errcode A DBM-specific value for the error (for logging). If this + * isn't needed, it may be NULL. + * @param errbuf Location to store the error text + * @param errbufsize The size of the provided buffer + * @return The errbuf parameter, for convenience. + */ +APU_DECLARE(char *) apr_dbm_geterror(apr_dbm_t *dbm, int *errcode, + char *errbuf, apr_size_t errbufsize); +/** + * If the specified file/path were passed to apr_dbm_open(), return the + * actual file/path names which would be (created and) used. At most, two + * files may be used; used2 may be NULL if only one file is used. + * @param pool The pool for allocating used1 and used2. + * @param type The type of DBM you require info on + * @param pathname The path name to generate used-names from. + * @param used1 The first pathname used by the apr_dbm implementation. + * @param used2 The second pathname used by apr_dbm. If only one file is + * used by the specific implementation, this will be set to NULL. + * @return An error if the specified type is invalid. + * @remark The dbm file(s) don't need to exist. This function only manipulates + * the pathnames. + */ +APU_DECLARE(apr_status_t) apr_dbm_get_usednames_ex(apr_pool_t *pool, + const char *type, + const char *pathname, + const char **used1, + const char **used2); + +/** + * If the specified file/path were passed to apr_dbm_open(), return the + * actual file/path names which would be (created and) used. At most, two + * files may be used; used2 may be NULL if only one file is used. + * @param pool The pool for allocating used1 and used2. + * @param pathname The path name to generate used-names from. + * @param used1 The first pathname used by the apr_dbm implementation. + * @param used2 The second pathname used by apr_dbm. If only one file is + * used by the specific implementation, this will be set to NULL. + * @remark The dbm file(s) don't need to exist. This function only manipulates + * the pathnames. + */ +APU_DECLARE(void) apr_dbm_get_usednames(apr_pool_t *pool, + const char *pathname, + const char **used1, + const char **used2); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_DBM_H */ diff --git a/rubbos/app/apache2/include/apr_dso.h b/rubbos/app/apache2/include/apr_dso.h new file mode 100644 index 00000000..ac701cfd --- /dev/null +++ b/rubbos/app/apache2/include/apr_dso.h @@ -0,0 +1,94 @@ +/* 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. + */ + +#ifndef APR_DSO_DOT_H +#define APR_DSO_DOT_H + +/** + * @file apr_dso.h + * @brief APR Dynamic Object Handling Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_dso Dynamic Object Handling + * @ingroup APR + * @{ + */ + +#if APR_HAS_DSO || defined(DOXYGEN) + +/** + * Structure for referencing dynamic objects + */ +typedef struct apr_dso_handle_t apr_dso_handle_t; + +/** + * Structure for referencing symbols from dynamic objects + */ +typedef void * apr_dso_handle_sym_t; + +/** + * Load a DSO library. + * @param res_handle Location to store new handle for the DSO. + * @param path Path to the DSO library + * @param ctx Pool to use. + * @bug We aught to provide an alternative to RTLD_GLOBAL, which + * is the only supported method of loading DSOs today. + */ +APR_DECLARE(apr_status_t) apr_dso_load(apr_dso_handle_t **res_handle, + const char *path, apr_pool_t *ctx); + +/** + * Close a DSO library. + * @param handle handle to close. + */ +APR_DECLARE(apr_status_t) apr_dso_unload(apr_dso_handle_t *handle); + +/** + * Load a symbol from a DSO handle. + * @param ressym Location to store the loaded symbol + * @param handle handle to load the symbol from. + * @param symname Name of the symbol to load. + */ +APR_DECLARE(apr_status_t) apr_dso_sym(apr_dso_handle_sym_t *ressym, + apr_dso_handle_t *handle, + const char *symname); + +/** + * Report more information when a DSO function fails. + * @param dso The dso handle that has been opened + * @param buf Location to store the dso error + * @param bufsize The size of the provided buffer + */ +APR_DECLARE(const char *) apr_dso_error(apr_dso_handle_t *dso, char *buf, apr_size_t bufsize); + +#endif /* APR_HAS_DSO */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/rubbos/app/apache2/include/apr_env.h b/rubbos/app/apache2/include/apr_env.h new file mode 100644 index 00000000..05419c37 --- /dev/null +++ b/rubbos/app/apache2/include/apr_env.h @@ -0,0 +1,67 @@ +/* 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. + */ + +#ifndef APR_ENV_H +#define APR_ENV_H +/** + * @file apr_env.h + * @brief APR Environment functions + */ +#include "apr_errno.h" +#include "apr_pools.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_env Functions for manupulating the environment + * @ingroup APR + * @{ + */ + +/** + * Get the value of an environment variable + * @param value the returned value, allocated from @a pool + * @param envvar the name of the environment variable + * @param pool where to allocate @a value and any temporary storage from + */ +APR_DECLARE(apr_status_t) apr_env_get(char **value, const char *envvar, + apr_pool_t *pool); + +/** + * Set the value of an environment variable + * @param envvar the name of the environment variable + * @param value the value to set + * @param pool where to allocate temporary storage from + */ +APR_DECLARE(apr_status_t) apr_env_set(const char *envvar, const char *value, + apr_pool_t *pool); + +/** + * Delete a variable from the environment + * @param envvar the name of the environment variable + * @param pool where to allocate temporary storage from + */ +APR_DECLARE(apr_status_t) apr_env_delete(const char *envvar, apr_pool_t *pool); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_ENV_H */ diff --git a/rubbos/app/apache2/include/apr_errno.h b/rubbos/app/apache2/include/apr_errno.h new file mode 100644 index 00000000..9d1d8447 --- /dev/null +++ b/rubbos/app/apache2/include/apr_errno.h @@ -0,0 +1,1219 @@ +/* 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. + */ + +#ifndef APR_ERRNO_H +#define APR_ERRNO_H + +/** + * @file apr_errno.h + * @brief APR Error Codes + */ + +#include "apr.h" + +#if APR_HAVE_ERRNO_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_errno Error Codes + * @ingroup APR + * @{ + */ + +/** + * Type for specifying an error or status code. + */ +typedef int apr_status_t; + +/** + * Return a human readable string describing the specified error. + * @param statcode The error code the get a string for. + * @param buf A buffer to hold the error string. + * @param bufsize Size of the buffer to hold the string. + */ +APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, + apr_size_t bufsize); + +#if defined(DOXYGEN) +/** + * @def APR_FROM_OS_ERROR(os_err_type syserr) + * Fold a platform specific error into an apr_status_t code. + * @return apr_status_t + * @param e The platform os error code. + * @warning macro implementation; the syserr argument may be evaluated + * multiple times. + */ +#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR) + +/** + * @def APR_TO_OS_ERROR(apr_status_t statcode) + * @return os_err_type + * Fold an apr_status_t code back to the native platform defined error. + * @param e The apr_status_t folded platform os error code. + * @warning macro implementation; the statcode argument may be evaluated + * multiple times. If the statcode was not created by apr_get_os_error + * or APR_FROM_OS_ERROR, the results are undefined. + */ +#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) + +/** @def apr_get_os_error() + * @return apr_status_t the last platform error, folded into apr_status_t, on most platforms + * @remark This retrieves errno, or calls a GetLastError() style function, and + * folds it with APR_FROM_OS_ERROR. Some platforms (such as OS2) have no + * such mechanism, so this call may be unsupported. Do NOT use this + * call for socket errors from socket, send, recv etc! + */ + +/** @def apr_set_os_error(e) + * Reset the last platform error, unfolded from an apr_status_t, on some platforms + * @param e The OS error folded in a prior call to APR_FROM_OS_ERROR() + * @warning This is a macro implementation; the statcode argument may be evaluated + * multiple times. If the statcode was not created by apr_get_os_error + * or APR_FROM_OS_ERROR, the results are undefined. This macro sets + * errno, or calls a SetLastError() style function, unfolding statcode + * with APR_TO_OS_ERROR. Some platforms (such as OS2) have no such + * mechanism, so this call may be unsupported. + */ + +/** @def apr_get_netos_error() + * Return the last socket error, folded into apr_status_t, on all platforms + * @remark This retrieves errno or calls a GetLastSocketError() style function, + * and folds it with APR_FROM_OS_ERROR. + */ + +/** @def apr_set_netos_error(e) + * Reset the last socket error, unfolded from an apr_status_t + * @param e The socket error folded in a prior call to APR_FROM_OS_ERROR() + * @warning This is a macro implementation; the statcode argument may be evaluated + * multiple times. If the statcode was not created by apr_get_os_error + * or APR_FROM_OS_ERROR, the results are undefined. This macro sets + * errno, or calls a WSASetLastError() style function, unfolding + * socketcode with APR_TO_OS_ERROR. + */ + +#endif /* defined(DOXYGEN) */ + +/** + * APR_OS_START_ERROR is where the APR specific error values start. + */ +#define APR_OS_START_ERROR 20000 +/** + * APR_OS_ERRSPACE_SIZE is the maximum number of errors you can fit + * into one of the error/status ranges below -- except for + * APR_OS_START_USERERR, which see. + */ +#define APR_OS_ERRSPACE_SIZE 50000 +/** + * APR_OS_START_STATUS is where the APR specific status codes start. + */ +#define APR_OS_START_STATUS (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE) +/** + * APR_OS_START_USERERR are reserved for applications that use APR that + * layer their own error codes along with APR's. Note that the + * error immediately following this one is set ten times farther + * away than usual, so that users of apr have a lot of room in + * which to declare custom error codes. + */ +#define APR_OS_START_USERERR (APR_OS_START_STATUS + APR_OS_ERRSPACE_SIZE) +/** + * APR_OS_START_USEERR is obsolete, defined for compatibility only. + * Use APR_OS_START_USERERR instead. + */ +#define APR_OS_START_USEERR APR_OS_START_USERERR +/** + * APR_OS_START_CANONERR is where APR versions of errno values are defined + * on systems which don't have the corresponding errno. + */ +#define APR_OS_START_CANONERR (APR_OS_START_USERERR \ + + (APR_OS_ERRSPACE_SIZE * 10)) +/** + * APR_OS_START_EAIERR folds EAI_ error codes from getaddrinfo() into + * apr_status_t values. + */ +#define APR_OS_START_EAIERR (APR_OS_START_CANONERR + APR_OS_ERRSPACE_SIZE) +/** + * APR_OS_START_SYSERR folds platform-specific system error values into + * apr_status_t values. + */ +#define APR_OS_START_SYSERR (APR_OS_START_EAIERR + APR_OS_ERRSPACE_SIZE) + +/** no error. @see APR_STATUS_IS_SUCCESS */ +#define APR_SUCCESS 0 + +/** + * @defgroup APR_Error APR Error Values + *
+ * APR ERROR VALUES
+ * APR_ENOSTAT      APR was unable to perform a stat on the file 
+ * APR_ENOPOOL      APR was not provided a pool with which to allocate memory
+ * APR_EBADDATE     APR was given an invalid date 
+ * APR_EINVALSOCK   APR was given an invalid socket
+ * APR_ENOPROC      APR was not given a process structure
+ * APR_ENOTIME      APR was not given a time structure
+ * APR_ENODIR       APR was not given a directory structure
+ * APR_ENOLOCK      APR was not given a lock structure
+ * APR_ENOPOLL      APR was not given a poll structure
+ * APR_ENOSOCKET    APR was not given a socket
+ * APR_ENOTHREAD    APR was not given a thread structure
+ * APR_ENOTHDKEY    APR was not given a thread key structure
+ * APR_ENOSHMAVAIL  There is no more shared memory available
+ * APR_EDSOOPEN     APR was unable to open the dso object.  For more 
+ *                  information call apr_dso_error().
+ * APR_EGENERAL     General failure (specific information not available)
+ * APR_EBADIP       The specified IP address is invalid
+ * APR_EBADMASK     The specified netmask is invalid
+ * APR_ESYMNOTFOUND Could not find the requested symbol
+ * 
+ * + *
+ * APR STATUS VALUES
+ * APR_INCHILD        Program is currently executing in the child
+ * APR_INPARENT       Program is currently executing in the parent
+ * APR_DETACH         The thread is detached
+ * APR_NOTDETACH      The thread is not detached
+ * APR_CHILD_DONE     The child has finished executing
+ * APR_CHILD_NOTDONE  The child has not finished executing
+ * APR_TIMEUP         The operation did not finish before the timeout
+ * APR_INCOMPLETE     The operation was incomplete although some processing
+ *                    was performed and the results are partially valid
+ * APR_BADCH          Getopt found an option not in the option string
+ * APR_BADARG         Getopt found an option that is missing an argument 
+ *                    and an argument was specified in the option string
+ * APR_EOF            APR has encountered the end of the file
+ * APR_NOTFOUND       APR was unable to find the socket in the poll structure
+ * APR_ANONYMOUS      APR is using anonymous shared memory
+ * APR_FILEBASED      APR is using a file name as the key to the shared memory
+ * APR_KEYBASED       APR is using a shared key as the key to the shared memory
+ * APR_EINIT          Ininitalizer value.  If no option has been found, but 
+ *                    the status variable requires a value, this should be used
+ * APR_ENOTIMPL       The APR function has not been implemented on this 
+ *                    platform, either because nobody has gotten to it yet, 
+ *                    or the function is impossible on this platform.
+ * APR_EMISMATCH      Two passwords do not match.
+ * APR_EABSOLUTE      The given path was absolute.
+ * APR_ERELATIVE      The given path was relative.
+ * APR_EINCOMPLETE    The given path was neither relative nor absolute.
+ * APR_EABOVEROOT     The given path was above the root path.
+ * APR_EBUSY          The given lock was busy.
+ * APR_EPROC_UNKNOWN  The given process wasn't recognized by APR
+ * 
+ * @{ + */ +/** @see APR_STATUS_IS_ENOSTAT */ +#define APR_ENOSTAT (APR_OS_START_ERROR + 1) +/** @see APR_STATUS_IS_ENOPOOL */ +#define APR_ENOPOOL (APR_OS_START_ERROR + 2) +/* empty slot: +3 */ +/** @see APR_STATUS_IS_EBADDATE */ +#define APR_EBADDATE (APR_OS_START_ERROR + 4) +/** @see APR_STATUS_IS_EINVALSOCK */ +#define APR_EINVALSOCK (APR_OS_START_ERROR + 5) +/** @see APR_STATUS_IS_ENOPROC */ +#define APR_ENOPROC (APR_OS_START_ERROR + 6) +/** @see APR_STATUS_IS_ENOTIME */ +#define APR_ENOTIME (APR_OS_START_ERROR + 7) +/** @see APR_STATUS_IS_ENODIR */ +#define APR_ENODIR (APR_OS_START_ERROR + 8) +/** @see APR_STATUS_IS_ENOLOCK */ +#define APR_ENOLOCK (APR_OS_START_ERROR + 9) +/** @see APR_STATUS_IS_ENOPOLL */ +#define APR_ENOPOLL (APR_OS_START_ERROR + 10) +/** @see APR_STATUS_IS_ENOSOCKET */ +#define APR_ENOSOCKET (APR_OS_START_ERROR + 11) +/** @see APR_STATUS_IS_ENOTHREAD */ +#define APR_ENOTHREAD (APR_OS_START_ERROR + 12) +/** @see APR_STATUS_IS_ENOTHDKEY */ +#define APR_ENOTHDKEY (APR_OS_START_ERROR + 13) +/** @see APR_STATUS_IS_EGENERAL */ +#define APR_EGENERAL (APR_OS_START_ERROR + 14) +/** @see APR_STATUS_IS_ENOSHMAVAIL */ +#define APR_ENOSHMAVAIL (APR_OS_START_ERROR + 15) +/** @see APR_STATUS_IS_EBADIP */ +#define APR_EBADIP (APR_OS_START_ERROR + 16) +/** @see APR_STATUS_IS_EBADMASK */ +#define APR_EBADMASK (APR_OS_START_ERROR + 17) +/* empty slot: +18 */ +/** @see APR_STATUS_IS_EDSOPEN */ +#define APR_EDSOOPEN (APR_OS_START_ERROR + 19) +/** @see APR_STATUS_IS_EABSOLUTE */ +#define APR_EABSOLUTE (APR_OS_START_ERROR + 20) +/** @see APR_STATUS_IS_ERELATIVE */ +#define APR_ERELATIVE (APR_OS_START_ERROR + 21) +/** @see APR_STATUS_IS_EINCOMPLETE */ +#define APR_EINCOMPLETE (APR_OS_START_ERROR + 22) +/** @see APR_STATUS_IS_EABOVEROOT */ +#define APR_EABOVEROOT (APR_OS_START_ERROR + 23) +/** @see APR_STATUS_IS_EBADPATH */ +#define APR_EBADPATH (APR_OS_START_ERROR + 24) +/** @see APR_STATUS_IS_EPATHWILD */ +#define APR_EPATHWILD (APR_OS_START_ERROR + 25) +/** @see APR_STATUS_IS_ESYMNOTFOUND */ +#define APR_ESYMNOTFOUND (APR_OS_START_ERROR + 26) +/** @see APR_STATUS_IS_EPROC_UNKNOWN */ +#define APR_EPROC_UNKNOWN (APR_OS_START_ERROR + 27) +/** @} */ + +/** + * @defgroup APR_STATUS_IS Status Value Tests + * @warning For any particular error condition, more than one of these tests + * may match. This is because platform-specific error codes may not + * always match the semantics of the POSIX codes these tests (and the + * correcponding APR error codes) are named after. A notable example + * are the APR_STATUS_IS_ENOENT and APR_STATUS_IS_ENOTDIR tests on + * Win32 platforms. The programmer should always be aware of this and + * adjust the order of the tests accordingly. + * @{ + */ +/** + * APR was unable to perform a stat on the file + * @warning always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_ENOSTAT(s) ((s) == APR_ENOSTAT) +/** + * APR was not provided a pool with which to allocate memory + * @warning always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_ENOPOOL(s) ((s) == APR_ENOPOOL) +/** APR was given an invalid date */ +#define APR_STATUS_IS_EBADDATE(s) ((s) == APR_EBADDATE) +/** APR was given an invalid socket */ +#define APR_STATUS_IS_EINVALSOCK(s) ((s) == APR_EINVALSOCK) +/** APR was not given a process structure */ +#define APR_STATUS_IS_ENOPROC(s) ((s) == APR_ENOPROC) +/** APR was not given a time structure */ +#define APR_STATUS_IS_ENOTIME(s) ((s) == APR_ENOTIME) +/** APR was not given a directory structure */ +#define APR_STATUS_IS_ENODIR(s) ((s) == APR_ENODIR) +/** APR was not given a lock structure */ +#define APR_STATUS_IS_ENOLOCK(s) ((s) == APR_ENOLOCK) +/** APR was not given a poll structure */ +#define APR_STATUS_IS_ENOPOLL(s) ((s) == APR_ENOPOLL) +/** APR was not given a socket */ +#define APR_STATUS_IS_ENOSOCKET(s) ((s) == APR_ENOSOCKET) +/** APR was not given a thread structure */ +#define APR_STATUS_IS_ENOTHREAD(s) ((s) == APR_ENOTHREAD) +/** APR was not given a thread key structure */ +#define APR_STATUS_IS_ENOTHDKEY(s) ((s) == APR_ENOTHDKEY) +/** Generic Error which can not be put into another spot */ +#define APR_STATUS_IS_EGENERAL(s) ((s) == APR_EGENERAL) +/** There is no more shared memory available */ +#define APR_STATUS_IS_ENOSHMAVAIL(s) ((s) == APR_ENOSHMAVAIL) +/** The specified IP address is invalid */ +#define APR_STATUS_IS_EBADIP(s) ((s) == APR_EBADIP) +/** The specified netmask is invalid */ +#define APR_STATUS_IS_EBADMASK(s) ((s) == APR_EBADMASK) +/* empty slot: +18 */ +/** + * APR was unable to open the dso object. + * For more information call apr_dso_error(). + */ +#if defined(WIN32) +#define APR_STATUS_IS_EDSOOPEN(s) ((s) == APR_EDSOOPEN \ + || APR_TO_OS_ERROR(s) == ERROR_MOD_NOT_FOUND) +#else +#define APR_STATUS_IS_EDSOOPEN(s) ((s) == APR_EDSOOPEN) +#endif +/** The given path was absolute. */ +#define APR_STATUS_IS_EABSOLUTE(s) ((s) == APR_EABSOLUTE) +/** The given path was relative. */ +#define APR_STATUS_IS_ERELATIVE(s) ((s) == APR_ERELATIVE) +/** The given path was neither relative nor absolute. */ +#define APR_STATUS_IS_EINCOMPLETE(s) ((s) == APR_EINCOMPLETE) +/** The given path was above the root path. */ +#define APR_STATUS_IS_EABOVEROOT(s) ((s) == APR_EABOVEROOT) +/** The given path was bad. */ +#define APR_STATUS_IS_EBADPATH(s) ((s) == APR_EBADPATH) +/** The given path contained wildcards. */ +#define APR_STATUS_IS_EPATHWILD(s) ((s) == APR_EPATHWILD) +/** Could not find the requested symbol. + * For more information call apr_dso_error(). + */ +#if defined(WIN32) +#define APR_STATUS_IS_ESYMNOTFOUND(s) ((s) == APR_ESYMNOTFOUND \ + || APR_TO_OS_ERROR(s) == ERROR_PROC_NOT_FOUND) +#else +#define APR_STATUS_IS_ESYMNOTFOUND(s) ((s) == APR_ESYMNOTFOUND) +#endif +/** The given process was not recognized by APR. */ +#define APR_STATUS_IS_EPROC_UNKNOWN(s) ((s) == APR_EPROC_UNKNOWN) + +/** @} */ + +/** + * @addtogroup APR_Error + * @{ + */ +/** @see APR_STATUS_IS_INCHILD */ +#define APR_INCHILD (APR_OS_START_STATUS + 1) +/** @see APR_STATUS_IS_INPARENT */ +#define APR_INPARENT (APR_OS_START_STATUS + 2) +/** @see APR_STATUS_IS_DETACH */ +#define APR_DETACH (APR_OS_START_STATUS + 3) +/** @see APR_STATUS_IS_NOTDETACH */ +#define APR_NOTDETACH (APR_OS_START_STATUS + 4) +/** @see APR_STATUS_IS_CHILD_DONE */ +#define APR_CHILD_DONE (APR_OS_START_STATUS + 5) +/** @see APR_STATUS_IS_CHILD_NOTDONE */ +#define APR_CHILD_NOTDONE (APR_OS_START_STATUS + 6) +/** @see APR_STATUS_IS_TIMEUP */ +#define APR_TIMEUP (APR_OS_START_STATUS + 7) +/** @see APR_STATUS_IS_INCOMPLETE */ +#define APR_INCOMPLETE (APR_OS_START_STATUS + 8) +/* empty slot: +9 */ +/* empty slot: +10 */ +/* empty slot: +11 */ +/** @see APR_STATUS_IS_BADCH */ +#define APR_BADCH (APR_OS_START_STATUS + 12) +/** @see APR_STATUS_IS_BADARG */ +#define APR_BADARG (APR_OS_START_STATUS + 13) +/** @see APR_STATUS_IS_EOF */ +#define APR_EOF (APR_OS_START_STATUS + 14) +/** @see APR_STATUS_IS_NOTFOUND */ +#define APR_NOTFOUND (APR_OS_START_STATUS + 15) +/* empty slot: +16 */ +/* empty slot: +17 */ +/* empty slot: +18 */ +/** @see APR_STATUS_IS_ANONYMOUS */ +#define APR_ANONYMOUS (APR_OS_START_STATUS + 19) +/** @see APR_STATUS_IS_FILEBASED */ +#define APR_FILEBASED (APR_OS_START_STATUS + 20) +/** @see APR_STATUS_IS_KEYBASED */ +#define APR_KEYBASED (APR_OS_START_STATUS + 21) +/** @see APR_STATUS_IS_EINIT */ +#define APR_EINIT (APR_OS_START_STATUS + 22) +/** @see APR_STATUS_IS_ENOTIMPL */ +#define APR_ENOTIMPL (APR_OS_START_STATUS + 23) +/** @see APR_STATUS_IS_EMISMATCH */ +#define APR_EMISMATCH (APR_OS_START_STATUS + 24) +/** @see APR_STATUS_IS_EBUSY */ +#define APR_EBUSY (APR_OS_START_STATUS + 25) +/** @} */ + +/** + * @addtogroup APR_STATUS_IS + * @{ + */ +/** + * Program is currently executing in the child + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code */ +#define APR_STATUS_IS_INCHILD(s) ((s) == APR_INCHILD) +/** + * Program is currently executing in the parent + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_INPARENT(s) ((s) == APR_INPARENT) +/** + * The thread is detached + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_DETACH(s) ((s) == APR_DETACH) +/** + * The thread is not detached + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_NOTDETACH(s) ((s) == APR_NOTDETACH) +/** + * The child has finished executing + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_CHILD_DONE(s) ((s) == APR_CHILD_DONE) +/** + * The child has not finished executing + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_CHILD_NOTDONE(s) ((s) == APR_CHILD_NOTDONE) +/** + * The operation did not finish before the timeout + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_TIMEUP(s) ((s) == APR_TIMEUP) +/** + * The operation was incomplete although some processing was performed + * and the results are partially valid. + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_INCOMPLETE(s) ((s) == APR_INCOMPLETE) +/* empty slot: +9 */ +/* empty slot: +10 */ +/* empty slot: +11 */ +/** + * Getopt found an option not in the option string + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_BADCH(s) ((s) == APR_BADCH) +/** + * Getopt found an option not in the option string and an argument was + * specified in the option string + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_BADARG(s) ((s) == APR_BADARG) +/** + * APR has encountered the end of the file + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_EOF(s) ((s) == APR_EOF) +/** + * APR was unable to find the socket in the poll structure + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_NOTFOUND(s) ((s) == APR_NOTFOUND) +/* empty slot: +16 */ +/* empty slot: +17 */ +/* empty slot: +18 */ +/** + * APR is using anonymous shared memory + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_ANONYMOUS(s) ((s) == APR_ANONYMOUS) +/** + * APR is using a file name as the key to the shared memory + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_FILEBASED(s) ((s) == APR_FILEBASED) +/** + * APR is using a shared key as the key to the shared memory + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_KEYBASED(s) ((s) == APR_KEYBASED) +/** + * Ininitalizer value. If no option has been found, but + * the status variable requires a value, this should be used + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_EINIT(s) ((s) == APR_EINIT) +/** + * The APR function has not been implemented on this + * platform, either because nobody has gotten to it yet, + * or the function is impossible on this platform. + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_ENOTIMPL(s) ((s) == APR_ENOTIMPL) +/** + * Two passwords do not match. + * @warning + * always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_EMISMATCH(s) ((s) == APR_EMISMATCH) +/** + * The given lock was busy + * @warning always use this test, as platform-specific variances may meet this + * more than one error code + */ +#define APR_STATUS_IS_EBUSY(s) ((s) == APR_EBUSY) + +/** @} */ + +/** + * @addtogroup APR_Error APR Error Values + * @{ + */ +/* APR CANONICAL ERROR VALUES */ +/** @see APR_STATUS_IS_EACCES */ +#ifdef EACCES +#define APR_EACCES EACCES +#else +#define APR_EACCES (APR_OS_START_CANONERR + 1) +#endif + +/** @see APR_STATUS_IS_EXIST */ +#ifdef EEXIST +#define APR_EEXIST EEXIST +#else +#define APR_EEXIST (APR_OS_START_CANONERR + 2) +#endif + +/** @see APR_STATUS_IS_ENAMETOOLONG */ +#ifdef ENAMETOOLONG +#define APR_ENAMETOOLONG ENAMETOOLONG +#else +#define APR_ENAMETOOLONG (APR_OS_START_CANONERR + 3) +#endif + +/** @see APR_STATUS_IS_ENOENT */ +#ifdef ENOENT +#define APR_ENOENT ENOENT +#else +#define APR_ENOENT (APR_OS_START_CANONERR + 4) +#endif + +/** @see APR_STATUS_IS_ENOTDIR */ +#ifdef ENOTDIR +#define APR_ENOTDIR ENOTDIR +#else +#define APR_ENOTDIR (APR_OS_START_CANONERR + 5) +#endif + +/** @see APR_STATUS_IS_ENOSPC */ +#ifdef ENOSPC +#define APR_ENOSPC ENOSPC +#else +#define APR_ENOSPC (APR_OS_START_CANONERR + 6) +#endif + +/** @see APR_STATUS_IS_ENOMEM */ +#ifdef ENOMEM +#define APR_ENOMEM ENOMEM +#else +#define APR_ENOMEM (APR_OS_START_CANONERR + 7) +#endif + +/** @see APR_STATUS_IS_EMFILE */ +#ifdef EMFILE +#define APR_EMFILE EMFILE +#else +#define APR_EMFILE (APR_OS_START_CANONERR + 8) +#endif + +/** @see APR_STATUS_IS_ENFILE */ +#ifdef ENFILE +#define APR_ENFILE ENFILE +#else +#define APR_ENFILE (APR_OS_START_CANONERR + 9) +#endif + +/** @see APR_STATUS_IS_EBADF */ +#ifdef EBADF +#define APR_EBADF EBADF +#else +#define APR_EBADF (APR_OS_START_CANONERR + 10) +#endif + +/** @see APR_STATUS_IS_EINVAL */ +#ifdef EINVAL +#define APR_EINVAL EINVAL +#else +#define APR_EINVAL (APR_OS_START_CANONERR + 11) +#endif + +/** @see APR_STATUS_IS_ESPIPE */ +#ifdef ESPIPE +#define APR_ESPIPE ESPIPE +#else +#define APR_ESPIPE (APR_OS_START_CANONERR + 12) +#endif + +/** + * @see APR_STATUS_IS_EAGAIN + * @warning use APR_STATUS_IS_EAGAIN instead of just testing this value + */ +#ifdef EAGAIN +#define APR_EAGAIN EAGAIN +#elif defined(EWOULDBLOCK) +#define APR_EAGAIN EWOULDBLOCK +#else +#define APR_EAGAIN (APR_OS_START_CANONERR + 13) +#endif + +/** @see APR_STATUS_IS_EINTR */ +#ifdef EINTR +#define APR_EINTR EINTR +#else +#define APR_EINTR (APR_OS_START_CANONERR + 14) +#endif + +/** @see APR_STATUS_IS_ENOTSOCK */ +#ifdef ENOTSOCK +#define APR_ENOTSOCK ENOTSOCK +#else +#define APR_ENOTSOCK (APR_OS_START_CANONERR + 15) +#endif + +/** @see APR_STATUS_IS_ECONNREFUSED */ +#ifdef ECONNREFUSED +#define APR_ECONNREFUSED ECONNREFUSED +#else +#define APR_ECONNREFUSED (APR_OS_START_CANONERR + 16) +#endif + +/** @see APR_STATUS_IS_EINPROGRESS */ +#ifdef EINPROGRESS +#define APR_EINPROGRESS EINPROGRESS +#else +#define APR_EINPROGRESS (APR_OS_START_CANONERR + 17) +#endif + +/** + * @see APR_STATUS_IS_ECONNABORTED + * @warning use APR_STATUS_IS_ECONNABORTED instead of just testing this value + */ + +#ifdef ECONNABORTED +#define APR_ECONNABORTED ECONNABORTED +#else +#define APR_ECONNABORTED (APR_OS_START_CANONERR + 18) +#endif + +/** @see APR_STATUS_IS_ECONNRESET */ +#ifdef ECONNRESET +#define APR_ECONNRESET ECONNRESET +#else +#define APR_ECONNRESET (APR_OS_START_CANONERR + 19) +#endif + +/** @see APR_STATUS_IS_ETIMEDOUT */ +#ifdef ETIMEDOUT +#define APR_ETIMEDOUT ETIMEDOUT +#else +#define APR_ETIMEDOUT (APR_OS_START_CANONERR + 20) +#endif + +/** @see APR_STATUS_IS_EHOSTUNREACH */ +#ifdef EHOSTUNREACH +#define APR_EHOSTUNREACH EHOSTUNREACH +#else +#define APR_EHOSTUNREACH (APR_OS_START_CANONERR + 21) +#endif + +/** @see APR_STATUS_IS_ENETUNREACH */ +#ifdef ENETUNREACH +#define APR_ENETUNREACH ENETUNREACH +#else +#define APR_ENETUNREACH (APR_OS_START_CANONERR + 22) +#endif + +/** @see APR_STATUS_IS_EFTYPE */ +#ifdef EFTYPE +#define APR_EFTYPE EFTYPE +#else +#define APR_EFTYPE (APR_OS_START_CANONERR + 23) +#endif + +/** @see APR_STATUS_IS_EPIPE */ +#ifdef EPIPE +#define APR_EPIPE EPIPE +#else +#define APR_EPIPE (APR_OS_START_CANONERR + 24) +#endif + +/** @see APR_STATUS_IS_EXDEV */ +#ifdef EXDEV +#define APR_EXDEV EXDEV +#else +#define APR_EXDEV (APR_OS_START_CANONERR + 25) +#endif + +/** @see APR_STATUS_IS_ENOTEMPTY */ +#ifdef ENOTEMPTY +#define APR_ENOTEMPTY ENOTEMPTY +#else +#define APR_ENOTEMPTY (APR_OS_START_CANONERR + 26) +#endif + +/** @} */ + +#if defined(OS2) && !defined(DOXYGEN) + +#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR) +#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) + +#define INCL_DOSERRORS +#define INCL_DOS + +/* Leave these undefined. + * OS2 doesn't rely on the errno concept. + * The API calls always return a result codes which + * should be filtered through APR_FROM_OS_ERROR(). + * + * #define apr_get_os_error() (APR_FROM_OS_ERROR(GetLastError())) + * #define apr_set_os_error(e) (SetLastError(APR_TO_OS_ERROR(e))) + */ + +/* A special case, only socket calls require this; + */ +#define apr_get_netos_error() (APR_FROM_OS_ERROR(errno)) +#define apr_set_netos_error(e) (errno = APR_TO_OS_ERROR(e)) + +/* And this needs to be greped away for good: + */ +#define APR_OS2_STATUS(e) (APR_FROM_OS_ERROR(e)) + +#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \ + || (s) == APR_OS_START_SYSERR + NO_ERROR) + +/* These can't sit in a private header, so in spite of the extra size, + * they need to be made available here. + */ +#define SOCBASEERR 10000 +#define SOCEPERM (SOCBASEERR+1) /* Not owner */ +#define SOCESRCH (SOCBASEERR+3) /* No such process */ +#define SOCEINTR (SOCBASEERR+4) /* Interrupted system call */ +#define SOCENXIO (SOCBASEERR+6) /* No such device or address */ +#define SOCEBADF (SOCBASEERR+9) /* Bad file number */ +#define SOCEACCES (SOCBASEERR+13) /* Permission denied */ +#define SOCEFAULT (SOCBASEERR+14) /* Bad address */ +#define SOCEINVAL (SOCBASEERR+22) /* Invalid argument */ +#define SOCEMFILE (SOCBASEERR+24) /* Too many open files */ +#define SOCEPIPE (SOCBASEERR+32) /* Broken pipe */ +#define SOCEOS2ERR (SOCBASEERR+100) /* OS/2 Error */ +#define SOCEWOULDBLOCK (SOCBASEERR+35) /* Operation would block */ +#define SOCEINPROGRESS (SOCBASEERR+36) /* Operation now in progress */ +#define SOCEALREADY (SOCBASEERR+37) /* Operation already in progress */ +#define SOCENOTSOCK (SOCBASEERR+38) /* Socket operation on non-socket */ +#define SOCEDESTADDRREQ (SOCBASEERR+39) /* Destination address required */ +#define SOCEMSGSIZE (SOCBASEERR+40) /* Message too long */ +#define SOCEPROTOTYPE (SOCBASEERR+41) /* Protocol wrong type for socket */ +#define SOCENOPROTOOPT (SOCBASEERR+42) /* Protocol not available */ +#define SOCEPROTONOSUPPORT (SOCBASEERR+43) /* Protocol not supported */ +#define SOCESOCKTNOSUPPORT (SOCBASEERR+44) /* Socket type not supported */ +#define SOCEOPNOTSUPP (SOCBASEERR+45) /* Operation not supported on socket */ +#define SOCEPFNOSUPPORT (SOCBASEERR+46) /* Protocol family not supported */ +#define SOCEAFNOSUPPORT (SOCBASEERR+47) /* Address family not supported by protocol family */ +#define SOCEADDRINUSE (SOCBASEERR+48) /* Address already in use */ +#define SOCEADDRNOTAVAIL (SOCBASEERR+49) /* Can't assign requested address */ +#define SOCENETDOWN (SOCBASEERR+50) /* Network is down */ +#define SOCENETUNREACH (SOCBASEERR+51) /* Network is unreachable */ +#define SOCENETRESET (SOCBASEERR+52) /* Network dropped connection on reset */ +#define SOCECONNABORTED (SOCBASEERR+53) /* Software caused connection abort */ +#define SOCECONNRESET (SOCBASEERR+54) /* Connection reset by peer */ +#define SOCENOBUFS (SOCBASEERR+55) /* No buffer space available */ +#define SOCEISCONN (SOCBASEERR+56) /* Socket is already connected */ +#define SOCENOTCONN (SOCBASEERR+57) /* Socket is not connected */ +#define SOCESHUTDOWN (SOCBASEERR+58) /* Can't send after socket shutdown */ +#define SOCETOOMANYREFS (SOCBASEERR+59) /* Too many references: can't splice */ +#define SOCETIMEDOUT (SOCBASEERR+60) /* Connection timed out */ +#define SOCECONNREFUSED (SOCBASEERR+61) /* Connection refused */ +#define SOCELOOP (SOCBASEERR+62) /* Too many levels of symbolic links */ +#define SOCENAMETOOLONG (SOCBASEERR+63) /* File name too long */ +#define SOCEHOSTDOWN (SOCBASEERR+64) /* Host is down */ +#define SOCEHOSTUNREACH (SOCBASEERR+65) /* No route to host */ +#define SOCENOTEMPTY (SOCBASEERR+66) /* Directory not empty */ + +/* APR CANONICAL ERROR TESTS */ +#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES \ + || (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED \ + || (s) == APR_OS_START_SYSERR + ERROR_SHARING_VIOLATION) +#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST \ + || (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED \ + || (s) == APR_OS_START_SYSERR + ERROR_FILE_EXISTS \ + || (s) == APR_OS_START_SYSERR + ERROR_ALREADY_EXISTS \ + || (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED) +#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG \ + || (s) == APR_OS_START_SYSERR + ERROR_FILENAME_EXCED_RANGE \ + || (s) == APR_OS_START_SYSERR + SOCENAMETOOLONG) +#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \ + || (s) == APR_OS_START_SYSERR + ERROR_FILE_NOT_FOUND \ + || (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \ + || (s) == APR_OS_START_SYSERR + ERROR_NO_MORE_FILES \ + || (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED) +#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR) +#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC \ + || (s) == APR_OS_START_SYSERR + ERROR_DISK_FULL) +#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM) +#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE \ + || (s) == APR_OS_START_SYSERR + ERROR_TOO_MANY_OPEN_FILES) +#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE) +#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE) +#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_PARAMETER \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_FUNCTION) +#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE \ + || (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK) +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \ + || (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \ + || (s) == APR_OS_START_SYSERR + SOCEWOULDBLOCK \ + || (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION) +#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \ + || (s) == APR_OS_START_SYSERR + SOCEINTR) +#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \ + || (s) == APR_OS_START_SYSERR + SOCENOTSOCK) +#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \ + || (s) == APR_OS_START_SYSERR + SOCECONNREFUSED) +#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \ + || (s) == APR_OS_START_SYSERR + SOCEINPROGRESS) +#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \ + || (s) == APR_OS_START_SYSERR + SOCECONNABORTED) +#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \ + || (s) == APR_OS_START_SYSERR + SOCECONNRESET) +#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \ + || (s) == APR_OS_START_SYSERR + SOCETIMEDOUT) +#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \ + || (s) == APR_OS_START_SYSERR + SOCEHOSTUNREACH) +#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \ + || (s) == APR_OS_START_SYSERR + SOCENETUNREACH) +#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE) +#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE \ + || (s) == APR_OS_START_SYSERR + ERROR_BROKEN_PIPE \ + || (s) == APR_OS_START_SYSERR + SOCEPIPE) +#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV \ + || (s) == APR_OS_START_SYSERR + ERROR_NOT_SAME_DEVICE) +#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY \ + || (s) == APR_OS_START_SYSERR + ERROR_DIR_NOT_EMPTY \ + || (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED) + +/* + Sorry, too tired to wrap this up for OS2... feel free to + fit the following into their best matches. + + { ERROR_NO_SIGNAL_SENT, ESRCH }, + { SOCEALREADY, EALREADY }, + { SOCEDESTADDRREQ, EDESTADDRREQ }, + { SOCEMSGSIZE, EMSGSIZE }, + { SOCEPROTOTYPE, EPROTOTYPE }, + { SOCENOPROTOOPT, ENOPROTOOPT }, + { SOCEPROTONOSUPPORT, EPROTONOSUPPORT }, + { SOCESOCKTNOSUPPORT, ESOCKTNOSUPPORT }, + { SOCEOPNOTSUPP, EOPNOTSUPP }, + { SOCEPFNOSUPPORT, EPFNOSUPPORT }, + { SOCEAFNOSUPPORT, EAFNOSUPPORT }, + { SOCEADDRINUSE, EADDRINUSE }, + { SOCEADDRNOTAVAIL, EADDRNOTAVAIL }, + { SOCENETDOWN, ENETDOWN }, + { SOCENETRESET, ENETRESET }, + { SOCENOBUFS, ENOBUFS }, + { SOCEISCONN, EISCONN }, + { SOCENOTCONN, ENOTCONN }, + { SOCESHUTDOWN, ESHUTDOWN }, + { SOCETOOMANYREFS, ETOOMANYREFS }, + { SOCELOOP, ELOOP }, + { SOCEHOSTDOWN, EHOSTDOWN }, + { SOCENOTEMPTY, ENOTEMPTY }, + { SOCEPIPE, EPIPE } +*/ + +#elif defined(WIN32) && !defined(DOXYGEN) /* !defined(OS2) */ + +#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR) +#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) + +#define apr_get_os_error() (APR_FROM_OS_ERROR(GetLastError())) +#define apr_set_os_error(e) (SetLastError(APR_TO_OS_ERROR(e))) + +/* A special case, only socket calls require this: + */ +#define apr_get_netos_error() (APR_FROM_OS_ERROR(WSAGetLastError())) +#define apr_set_netos_error(e) (WSASetLastError(APR_TO_OS_ERROR(e))) + +#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS \ + || (s) == APR_OS_START_SYSERR + ERROR_SUCCESS) + +/* APR CANONICAL ERROR TESTS */ +#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES \ + || (s) == APR_OS_START_SYSERR + ERROR_ACCESS_DENIED \ + || (s) == APR_OS_START_SYSERR + ERROR_CANNOT_MAKE \ + || (s) == APR_OS_START_SYSERR + ERROR_CURRENT_DIRECTORY \ + || (s) == APR_OS_START_SYSERR + ERROR_DRIVE_LOCKED \ + || (s) == APR_OS_START_SYSERR + ERROR_FAIL_I24 \ + || (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION \ + || (s) == APR_OS_START_SYSERR + ERROR_LOCK_FAILED \ + || (s) == APR_OS_START_SYSERR + ERROR_NOT_LOCKED \ + || (s) == APR_OS_START_SYSERR + ERROR_NETWORK_ACCESS_DENIED \ + || (s) == APR_OS_START_SYSERR + ERROR_SHARING_VIOLATION) +#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST \ + || (s) == APR_OS_START_SYSERR + ERROR_FILE_EXISTS \ + || (s) == APR_OS_START_SYSERR + ERROR_ALREADY_EXISTS) +#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG \ + || (s) == APR_OS_START_SYSERR + ERROR_FILENAME_EXCED_RANGE \ + || (s) == APR_OS_START_SYSERR + WSAENAMETOOLONG) +#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \ + || (s) == APR_OS_START_SYSERR + ERROR_FILE_NOT_FOUND \ + || (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \ + || (s) == APR_OS_START_SYSERR + ERROR_OPEN_FAILED \ + || (s) == APR_OS_START_SYSERR + ERROR_NO_MORE_FILES) +#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR \ + || (s) == APR_OS_START_SYSERR + ERROR_PATH_NOT_FOUND \ + || (s) == APR_OS_START_SYSERR + ERROR_BAD_NETPATH \ + || (s) == APR_OS_START_SYSERR + ERROR_BAD_NET_NAME \ + || (s) == APR_OS_START_SYSERR + ERROR_BAD_PATHNAME \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_DRIVE) +#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC \ + || (s) == APR_OS_START_SYSERR + ERROR_DISK_FULL) +#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM \ + || (s) == APR_OS_START_SYSERR + ERROR_ARENA_TRASHED \ + || (s) == APR_OS_START_SYSERR + ERROR_NOT_ENOUGH_MEMORY \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_BLOCK \ + || (s) == APR_OS_START_SYSERR + ERROR_NOT_ENOUGH_QUOTA \ + || (s) == APR_OS_START_SYSERR + ERROR_OUTOFMEMORY) +#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE \ + || (s) == APR_OS_START_SYSERR + ERROR_TOO_MANY_OPEN_FILES) +#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE) +#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_TARGET_HANDLE) +#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_ACCESS \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_DATA \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_FUNCTION \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_HANDLE \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_PARAMETER \ + || (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK) +#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE \ + || (s) == APR_OS_START_SYSERR + ERROR_SEEK_ON_DEVICE \ + || (s) == APR_OS_START_SYSERR + ERROR_NEGATIVE_SEEK) +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \ + || (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \ + || (s) == APR_OS_START_SYSERR + ERROR_NO_PROC_SLOTS \ + || (s) == APR_OS_START_SYSERR + ERROR_NESTING_NOT_ALLOWED \ + || (s) == APR_OS_START_SYSERR + ERROR_MAX_THRDS_REACHED \ + || (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION \ + || (s) == APR_OS_START_SYSERR + WSAEWOULDBLOCK) +#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \ + || (s) == APR_OS_START_SYSERR + WSAEINTR) +#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \ + || (s) == APR_OS_START_SYSERR + WSAENOTSOCK) +#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \ + || (s) == APR_OS_START_SYSERR + WSAECONNREFUSED) +#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \ + || (s) == APR_OS_START_SYSERR + WSAEINPROGRESS) +#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \ + || (s) == APR_OS_START_SYSERR + WSAECONNABORTED) +#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \ + || (s) == APR_OS_START_SYSERR + ERROR_NETNAME_DELETED \ + || (s) == APR_OS_START_SYSERR + WSAECONNRESET) +#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \ + || (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \ + || (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT) +#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \ + || (s) == APR_OS_START_SYSERR + WSAEHOSTUNREACH) +#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \ + || (s) == APR_OS_START_SYSERR + WSAENETUNREACH) +#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE \ + || (s) == APR_OS_START_SYSERR + ERROR_EXE_MACHINE_TYPE_MISMATCH \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_DLL \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_MODULETYPE \ + || (s) == APR_OS_START_SYSERR + ERROR_BAD_EXE_FORMAT \ + || (s) == APR_OS_START_SYSERR + ERROR_INVALID_EXE_SIGNATURE \ + || (s) == APR_OS_START_SYSERR + ERROR_FILE_CORRUPT \ + || (s) == APR_OS_START_SYSERR + ERROR_BAD_FORMAT) +#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE \ + || (s) == APR_OS_START_SYSERR + ERROR_BROKEN_PIPE) +#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV \ + || (s) == APR_OS_START_SYSERR + ERROR_NOT_SAME_DEVICE) +#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY \ + || (s) == APR_OS_START_SYSERR + ERROR_DIR_NOT_EMPTY) + +#elif defined(NETWARE) && !defined(DOXYGEN) /* !defined(OS2) && !defined(WIN32) */ + +#define APR_FROM_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e + APR_OS_START_SYSERR) +#define APR_TO_OS_ERROR(e) (e == 0 ? APR_SUCCESS : e - APR_OS_START_SYSERR) + +#define apr_get_os_error() (errno) +#define apr_set_os_error(e) (errno = (e)) + +/* A special case, only socket calls require this: */ +#define apr_get_netos_error() (APR_FROM_OS_ERROR(WSAGetLastError())) +#define apr_set_netos_error(e) (WSASetLastError(APR_TO_OS_ERROR(e))) + +#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS) + +/* APR CANONICAL ERROR TESTS */ +#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES) +#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST) +#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG) +#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT) +#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR) +#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC) +#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM) +#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE) +#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE) +#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF) +#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL) +#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE) + +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \ + || (s) == EWOULDBLOCK \ + || (s) == APR_OS_START_SYSERR + WSAEWOULDBLOCK) +#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR \ + || (s) == APR_OS_START_SYSERR + WSAEINTR) +#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK \ + || (s) == APR_OS_START_SYSERR + WSAENOTSOCK) +#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED \ + || (s) == APR_OS_START_SYSERR + WSAECONNREFUSED) +#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS \ + || (s) == APR_OS_START_SYSERR + WSAEINPROGRESS) +#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \ + || (s) == APR_OS_START_SYSERR + WSAECONNABORTED) +#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET \ + || (s) == APR_OS_START_SYSERR + WSAECONNRESET) +#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT \ + || (s) == APR_OS_START_SYSERR + WSAETIMEDOUT \ + || (s) == APR_OS_START_SYSERR + WAIT_TIMEOUT) +#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH \ + || (s) == APR_OS_START_SYSERR + WSAEHOSTUNREACH) +#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH \ + || (s) == APR_OS_START_SYSERR + WSAENETUNREACH) +#define APR_STATUS_IS_ENETDOWN(s) ((s) == APR_OS_START_SYSERR + WSAENETDOWN) +#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE) +#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE) +#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV) +#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY) + +#else /* !defined(NETWARE) && !defined(OS2) && !defined(WIN32) */ + +/* + * os error codes are clib error codes + */ +#define APR_FROM_OS_ERROR(e) (e) +#define APR_TO_OS_ERROR(e) (e) + +#define apr_get_os_error() (errno) +#define apr_set_os_error(e) (errno = (e)) + +/* A special case, only socket calls require this: + */ +#define apr_get_netos_error() (errno) +#define apr_set_netos_error(e) (errno = (e)) +/** @} */ + +/** + * @addtogroup APR_STATUS_IS + * @{ + */ +/** no error */ +#define APR_STATUS_IS_SUCCESS(s) ((s) == APR_SUCCESS) + +/** permission denied */ +#define APR_STATUS_IS_EACCES(s) ((s) == APR_EACCES) +/** file exists */ +#define APR_STATUS_IS_EEXIST(s) ((s) == APR_EEXIST) +/** path name is too long */ +#define APR_STATUS_IS_ENAMETOOLONG(s) ((s) == APR_ENAMETOOLONG) +/** + * no such file or directory + * @remark + * EMVSCATLG can be returned by the automounter on z/OS for + * paths which do not exist. + */ +#ifdef EMVSCATLG +#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT \ + || (s) == EMVSCATLG) +#else +#define APR_STATUS_IS_ENOENT(s) ((s) == APR_ENOENT) +#endif +/** not a directory */ +#define APR_STATUS_IS_ENOTDIR(s) ((s) == APR_ENOTDIR) +/** no space left on device */ +#define APR_STATUS_IS_ENOSPC(s) ((s) == APR_ENOSPC) +/** not enough memory */ +#define APR_STATUS_IS_ENOMEM(s) ((s) == APR_ENOMEM) +/** too many open files */ +#define APR_STATUS_IS_EMFILE(s) ((s) == APR_EMFILE) +/** file table overflow */ +#define APR_STATUS_IS_ENFILE(s) ((s) == APR_ENFILE) +/** bad file # */ +#define APR_STATUS_IS_EBADF(s) ((s) == APR_EBADF) +/** invalid argument */ +#define APR_STATUS_IS_EINVAL(s) ((s) == APR_EINVAL) +/** illegal seek */ +#define APR_STATUS_IS_ESPIPE(s) ((s) == APR_ESPIPE) + +/** operation would block */ +#if !defined(EWOULDBLOCK) || !defined(EAGAIN) +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN) +#elif (EWOULDBLOCK == EAGAIN) +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN) +#else +#define APR_STATUS_IS_EAGAIN(s) ((s) == APR_EAGAIN \ + || (s) == EWOULDBLOCK) +#endif + +/** interrupted system call */ +#define APR_STATUS_IS_EINTR(s) ((s) == APR_EINTR) +/** socket operation on a non-socket */ +#define APR_STATUS_IS_ENOTSOCK(s) ((s) == APR_ENOTSOCK) +/** Connection Refused */ +#define APR_STATUS_IS_ECONNREFUSED(s) ((s) == APR_ECONNREFUSED) +/** operation now in progress */ +#define APR_STATUS_IS_EINPROGRESS(s) ((s) == APR_EINPROGRESS) + +/** + * Software caused connection abort + * @remark + * EPROTO on certain older kernels really means ECONNABORTED, so we need to + * ignore it for them. See discussion in new-httpd archives nh.9701 & nh.9603 + * + * There is potentially a bug in Solaris 2.x x<6, and other boxes that + * implement tcp sockets in userland (i.e. on top of STREAMS). On these + * systems, EPROTO can actually result in a fatal loop. See PR#981 for + * example. It's hard to handle both uses of EPROTO. + */ +#ifdef EPROTO +#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED \ + || (s) == EPROTO) +#else +#define APR_STATUS_IS_ECONNABORTED(s) ((s) == APR_ECONNABORTED) +#endif + +/** Connection Reset by peer */ +#define APR_STATUS_IS_ECONNRESET(s) ((s) == APR_ECONNRESET) +/** Operation timed out */ +#define APR_STATUS_IS_ETIMEDOUT(s) ((s) == APR_ETIMEDOUT) +/** no route to host */ +#define APR_STATUS_IS_EHOSTUNREACH(s) ((s) == APR_EHOSTUNREACH) +/** network is unreachable */ +#define APR_STATUS_IS_ENETUNREACH(s) ((s) == APR_ENETUNREACH) +/** inappropiate file type or format */ +#define APR_STATUS_IS_EFTYPE(s) ((s) == APR_EFTYPE) +/** broken pipe */ +#define APR_STATUS_IS_EPIPE(s) ((s) == APR_EPIPE) +/** cross device link */ +#define APR_STATUS_IS_EXDEV(s) ((s) == APR_EXDEV) +/** Directory Not Empty */ +#define APR_STATUS_IS_ENOTEMPTY(s) ((s) == APR_ENOTEMPTY || \ + (s) == APR_EEXIST) +/** @} */ + +#endif /* !defined(NETWARE) && !defined(OS2) && !defined(WIN32) */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_ERRNO_H */ diff --git a/rubbos/app/apache2/include/apr_file_info.h b/rubbos/app/apache2/include/apr_file_info.h new file mode 100644 index 00000000..7e613d85 --- /dev/null +++ b/rubbos/app/apache2/include/apr_file_info.h @@ -0,0 +1,421 @@ +/* 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. + */ + +#ifndef APR_FILE_INFO_H +#define APR_FILE_INFO_H + +/** + * @file apr_file_info.h + * @brief APR File Information + */ + +#include "apr.h" +#include "apr_user.h" +#include "apr_pools.h" +#include "apr_tables.h" +#include "apr_time.h" +#include "apr_errno.h" + +#if APR_HAVE_SYS_UIO_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_file_info File Information + * @ingroup APR + * @{ + */ + +/* Many applications use the type member to determine the + * existance of a file or initialization of the file info, + * so the APR_NOFILE value must be distinct from APR_UNKFILE. + */ + +/** apr_filetype_e values for the filetype member of the + * apr_file_info_t structure + * @warning: Not all of the filetypes below can be determined. + * For example, a given platform might not correctly report + * a socket descriptor as APR_SOCK if that type isn't + * well-identified on that platform. In such cases where + * a filetype exists but cannot be described by the recognized + * flags below, the filetype will be APR_UNKFILE. If the + * filetype member is not determined, the type will be APR_NOFILE. + */ + +typedef enum { + APR_NOFILE = 0, /**< no file type determined */ + APR_REG, /**< a regular file */ + APR_DIR, /**< a directory */ + APR_CHR, /**< a character device */ + APR_BLK, /**< a block device */ + APR_PIPE, /**< a FIFO / pipe */ + APR_LNK, /**< a symbolic link */ + APR_SOCK, /**< a [unix domain] socket */ + APR_UNKFILE = 127 /**< a file of some other unknown type */ +} apr_filetype_e; + +/** + * @defgroup apr_file_permissions File Permissions flags + * @{ + */ + +#define APR_USETID 0x8000 /**< Set user id */ +#define APR_UREAD 0x0400 /**< Read by user */ +#define APR_UWRITE 0x0200 /**< Write by user */ +#define APR_UEXECUTE 0x0100 /**< Execute by user */ + +#define APR_GSETID 0x4000 /**< Set group id */ +#define APR_GREAD 0x0040 /**< Read by group */ +#define APR_GWRITE 0x0020 /**< Write by group */ +#define APR_GEXECUTE 0x0010 /**< Execute by group */ + +#define APR_WSTICKY 0x2000 /**< Sticky bit */ +#define APR_WREAD 0x0004 /**< Read by others */ +#define APR_WWRITE 0x0002 /**< Write by others */ +#define APR_WEXECUTE 0x0001 /**< Execute by others */ + +#define APR_OS_DEFAULT 0x0FFF /**< use OS's default permissions */ + +/* additional permission flags for apr_file_copy and apr_file_append */ +#define APR_FILE_SOURCE_PERMS 0x1000 /**< Copy source file's permissions */ + +/** @} */ + + +/** + * Structure for referencing directories. + */ +typedef struct apr_dir_t apr_dir_t; +/** + * Structure for determining file permissions. + */ +typedef apr_int32_t apr_fileperms_t; +#if (defined WIN32) || (defined NETWARE) +/** + * Structure for determining the device the file is on. + */ +typedef apr_uint32_t apr_dev_t; +#else +/** + * Structure for determining the device the file is on. + */ +typedef dev_t apr_dev_t; +#endif + +/** + * @defgroup apr_file_stat Stat Functions + * @{ + */ +/** file info structure */ +typedef struct apr_finfo_t apr_finfo_t; + +#define APR_FINFO_LINK 0x00000001 /**< Stat the link not the file itself if it is a link */ +#define APR_FINFO_MTIME 0x00000010 /**< Modification Time */ +#define APR_FINFO_CTIME 0x00000020 /**< Creation Time */ +#define APR_FINFO_ATIME 0x00000040 /**< Access Time */ +#define APR_FINFO_SIZE 0x00000100 /**< Size of the file */ +#define APR_FINFO_CSIZE 0x00000200 /**< Storage size consumed by the file */ +#define APR_FINFO_DEV 0x00001000 /**< Device */ +#define APR_FINFO_INODE 0x00002000 /**< Inode */ +#define APR_FINFO_NLINK 0x00004000 /**< Number of links */ +#define APR_FINFO_TYPE 0x00008000 /**< Type */ +#define APR_FINFO_USER 0x00010000 /**< User */ +#define APR_FINFO_GROUP 0x00020000 /**< Group */ +#define APR_FINFO_UPROT 0x00100000 /**< User protection bits */ +#define APR_FINFO_GPROT 0x00200000 /**< Group protection bits */ +#define APR_FINFO_WPROT 0x00400000 /**< World protection bits */ +#define APR_FINFO_ICASE 0x01000000 /**< if dev is case insensitive */ +#define APR_FINFO_NAME 0x02000000 /**< ->name in proper case */ + +#define APR_FINFO_MIN 0x00008170 /**< type, mtime, ctime, atime, size */ +#define APR_FINFO_IDENT 0x00003000 /**< dev and inode */ +#define APR_FINFO_OWNER 0x00030000 /**< user and group */ +#define APR_FINFO_PROT 0x00700000 /**< all protections */ +#define APR_FINFO_NORM 0x0073b170 /**< an atomic unix apr_stat() */ +#define APR_FINFO_DIRENT 0x02000000 /**< an atomic unix apr_dir_read() */ + +/** + * The file information structure. This is analogous to the POSIX + * stat structure. + */ +struct apr_finfo_t { + /** Allocates memory and closes lingering handles in the specified pool */ + apr_pool_t *pool; + /** The bitmask describing valid fields of this apr_finfo_t structure + * including all available 'wanted' fields and potentially more */ + apr_int32_t valid; + /** The access permissions of the file. Mimics Unix access rights. */ + apr_fileperms_t protection; + /** The type of file. One of APR_REG, APR_DIR, APR_CHR, APR_BLK, APR_PIPE, + * APR_LNK or APR_SOCK. If the type is undetermined, the value is APR_NOFILE. + * If the type cannot be determined, the value is APR_UNKFILE. + */ + apr_filetype_e filetype; + /** The user id that owns the file */ + apr_uid_t user; + /** The group id that owns the file */ + apr_gid_t group; + /** The inode of the file. */ + apr_ino_t inode; + /** The id of the device the file is on. */ + apr_dev_t device; + /** The number of hard links to the file. */ + apr_int32_t nlink; + /** The size of the file */ + apr_off_t size; + /** The storage size consumed by the file */ + apr_off_t csize; + /** The time the file was last accessed */ + apr_time_t atime; + /** The time the file was last modified */ + apr_time_t mtime; + /** The time the file was last changed */ + apr_time_t ctime; + /** The pathname of the file (possibly unrooted) */ + const char *fname; + /** The file's name (no path) in filesystem case */ + const char *name; + /** The file's handle, if accessed (can be submitted to apr_duphandle) */ + struct apr_file_t *filehand; +}; + +/** + * get the specified file's stats. The file is specified by filename, + * instead of using a pre-opened file. + * @param finfo Where to store the information about the file, which is + * never touched if the call fails. + * @param fname The name of the file to stat. + * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ + values + * @param cont the pool to use to allocate the new file. + * + * @note If @c APR_INCOMPLETE is returned all the fields in @a finfo may + * not be filled in, and you need to check the @c finfo->valid bitmask + * to verify that what you're looking for is there. + */ +APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, + apr_int32_t wanted, apr_pool_t *cont); + +/** + * get the specified file's stats. The file is specified by filename, + * instead of using a pre-opened file. If the file is a symlink, this function + * will get the stats for the symlink not the file the symlink refers to. + * @param finfo Where to store the information about the file, which is + * never touched if the call fails. + * @param fname The name of the file to stat. + * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values + * @param cont the pool to use to allocate the new file. + * @deprecated This function is deprecated, it's equivalent to calling apr_stat with + * the wanted flag value APR_FINFO_LINK + */ +APR_DECLARE(apr_status_t) apr_lstat(apr_finfo_t *finfo, const char *fname, + apr_int32_t wanted, apr_pool_t *cont); +/** @} */ +/** + * @defgroup apr_dir Directory Manipulation Functions + * @{ + */ + +/** + * Open the specified directory. + * @param new_dir The opened directory descriptor. + * @param dirname The full path to the directory (use / on all systems) + * @param cont The pool to use. + */ +APR_DECLARE(apr_status_t) apr_dir_open(apr_dir_t **new_dir, + const char *dirname, + apr_pool_t *cont); + +/** + * close the specified directory. + * @param thedir the directory descriptor to close. + */ +APR_DECLARE(apr_status_t) apr_dir_close(apr_dir_t *thedir); + +/** + * Read the next entry from the specified directory. + * @param finfo the file info structure and filled in by apr_dir_read + * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ + values + * @param thedir the directory descriptor returned from apr_dir_open + * @remark No ordering is guaranteed for the entries read. + * + * @note If @c APR_INCOMPLETE is returned all the fields in @a finfo may + * not be filled in, and you need to check the @c finfo->valid bitmask + * to verify that what you're looking for is there. + */ +APR_DECLARE(apr_status_t) apr_dir_read(apr_finfo_t *finfo, apr_int32_t wanted, + apr_dir_t *thedir); + +/** + * Rewind the directory to the first entry. + * @param thedir the directory descriptor to rewind. + */ +APR_DECLARE(apr_status_t) apr_dir_rewind(apr_dir_t *thedir); +/** @} */ + +/** + * @defgroup apr_filepath Filepath Manipulation Functions + * @{ + */ + +/** Cause apr_filepath_merge to fail if addpath is above rootpath */ +#define APR_FILEPATH_NOTABOVEROOT 0x01 + +/** internal: Only meaningful with APR_FILEPATH_NOTABOVEROOT */ +#define APR_FILEPATH_SECUREROOTTEST 0x02 + +/** Cause apr_filepath_merge to fail if addpath is above rootpath, + * even given a rootpath /foo/bar and an addpath ../bar/bash + */ +#define APR_FILEPATH_SECUREROOT 0x03 + +/** Fail apr_filepath_merge if the merged path is relative */ +#define APR_FILEPATH_NOTRELATIVE 0x04 + +/** Fail apr_filepath_merge if the merged path is absolute */ +#define APR_FILEPATH_NOTABSOLUTE 0x08 + +/** Return the file system's native path format (e.g. path delimiters + * of ':' on MacOS9, '\' on Win32, etc.) */ +#define APR_FILEPATH_NATIVE 0x10 + +/** Resolve the true case of existing directories and file elements + * of addpath, (resolving any aliases on Win32) and append a proper + * trailing slash if a directory + */ +#define APR_FILEPATH_TRUENAME 0x20 + +/** + * Extract the rootpath from the given filepath + * @param rootpath the root file path returned with APR_SUCCESS or APR_EINCOMPLETE + * @param filepath the pathname to parse for its root component + * @param flags the desired rules to apply, from + *
+ *      APR_FILEPATH_NATIVE    Use native path seperators (e.g. '\' on Win32)
+ *      APR_FILEPATH_TRUENAME  Tests that the root exists, and makes it proper
+ * 
+ * @param p the pool to allocate the new path string from + * @remark on return, filepath points to the first non-root character in the + * given filepath. In the simplest example, given a filepath of "/foo", + * returns the rootpath of "/" and filepath points at "foo". This is far + * more complex on other platforms, which will canonicalize the root form + * to a consistant format, given the APR_FILEPATH_TRUENAME flag, and also + * test for the validity of that root (e.g., that a drive d:/ or network + * share //machine/foovol/). + * The function returns APR_ERELATIVE if filepath isn't rooted (an + * error), APR_EINCOMPLETE if the root path is ambigious (but potentially + * legitimate, e.g. "/" on Windows is incomplete because it doesn't specify + * the drive letter), or APR_EBADPATH if the root is simply invalid. + * APR_SUCCESS is returned if filepath is an absolute path. + */ +APR_DECLARE(apr_status_t) apr_filepath_root(const char **rootpath, + const char **filepath, + apr_int32_t flags, + apr_pool_t *p); + +/** + * Merge additional file path onto the previously processed rootpath + * @param newpath the merged paths returned + * @param rootpath the root file path (NULL uses the current working path) + * @param addpath the path to add to the root path + * @param flags the desired APR_FILEPATH_ rules to apply when merging + * @param p the pool to allocate the new path string from + * @remark if the flag APR_FILEPATH_TRUENAME is given, and the addpath + * contains wildcard characters ('*', '?') on platforms that don't support + * such characters within filenames, the paths will be merged, but the + * result code will be APR_EPATHWILD, and all further segments will not + * reflect the true filenames including the wildcard and following segments. + */ +APR_DECLARE(apr_status_t) apr_filepath_merge(char **newpath, + const char *rootpath, + const char *addpath, + apr_int32_t flags, + apr_pool_t *p); + +/** + * Split a search path into separate components + * @param pathelts the returned components of the search path + * @param liststr the search path (e.g., getenv("PATH")) + * @param p the pool to allocate the array and path components from + * @remark empty path componenta do not become part of @a pathelts. + * @remark the path separator in @a liststr is system specific; + * e.g., ':' on Unix, ';' on Windows, etc. + */ +APR_DECLARE(apr_status_t) apr_filepath_list_split(apr_array_header_t **pathelts, + const char *liststr, + apr_pool_t *p); + +/** + * Merge a list of search path components into a single search path + * @param liststr the returned search path; may be NULL if @a pathelts is empty + * @param pathelts the components of the search path + * @param p the pool to allocate the search path from + * @remark emtpy strings in the source array are ignored. + * @remark the path separator in @a liststr is system specific; + * e.g., ':' on Unix, ';' on Windows, etc. + */ +APR_DECLARE(apr_status_t) apr_filepath_list_merge(char **liststr, + apr_array_header_t *pathelts, + apr_pool_t *p); + +/** + * Return the default file path (for relative file names) + * @param path the default path string returned + * @param flags optional flag APR_FILEPATH_NATIVE to retrieve the + * default file path in os-native format. + * @param p the pool to allocate the default path string from + */ +APR_DECLARE(apr_status_t) apr_filepath_get(char **path, apr_int32_t flags, + apr_pool_t *p); + +/** + * Set the default file path (for relative file names) + * @param path the default path returned + * @param p the pool to allocate any working storage + */ +APR_DECLARE(apr_status_t) apr_filepath_set(const char *path, apr_pool_t *p); + +/** The FilePath character encoding is unknown */ +#define APR_FILEPATH_ENCODING_UNKNOWN 0 + +/** The FilePath character encoding is locale-dependent */ +#define APR_FILEPATH_ENCODING_LOCALE 1 + +/** The FilePath character encoding is UTF-8 */ +#define APR_FILEPATH_ENCODING_UTF8 2 + +/** + * Determine the encoding used internally by the FilePath functions + * @param style points to a variable which receives the encoding style flag + * @param p the pool to allocate any working storage + * @remark Use @c apr_os_locale_encoding and/or @c apr_os_default_encoding + * to get the name of the path encoding if it's not UTF-8. + */ +APR_DECLARE(apr_status_t) apr_filepath_encoding(int *style, apr_pool_t *p); +/** @} */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_FILE_INFO_H */ diff --git a/rubbos/app/apache2/include/apr_file_io.h b/rubbos/app/apache2/include/apr_file_io.h new file mode 100644 index 00000000..bfa7a1bf --- /dev/null +++ b/rubbos/app/apache2/include/apr_file_io.h @@ -0,0 +1,766 @@ +/* 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. + */ + +#ifndef APR_FILE_IO_H +#define APR_FILE_IO_H + +/** + * @file apr_file_io.h + * @brief APR File I/O Handling + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_time.h" +#include "apr_errno.h" +#include "apr_file_info.h" +#include "apr_inherit.h" + +#define APR_WANT_STDIO /**< for SEEK_* */ +#define APR_WANT_IOVEC /**< for apr_file_writev */ +#include "apr_want.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_file_io File I/O Handling Functions + * @ingroup APR + * @{ + */ + +/** + * @defgroup apr_file_open_flags File Open Flags/Routines + * @{ + */ + +/* Note to implementors: Values in the range 0x00100000--0x80000000 + are reserved for platform-specific values. */ + +#define APR_READ 0x00001 /**< Open the file for reading */ +#define APR_WRITE 0x00002 /**< Open the file for writing */ +#define APR_CREATE 0x00004 /**< Create the file if not there */ +#define APR_APPEND 0x00008 /**< Append to the end of the file */ +#define APR_TRUNCATE 0x00010 /**< Open the file and truncate to 0 length */ +#define APR_BINARY 0x00020 /**< Open the file in binary mode */ +#define APR_EXCL 0x00040 /**< Open should fail if APR_CREATE and file + exists. */ +#define APR_BUFFERED 0x00080 /**< Open the file for buffered I/O */ +#define APR_DELONCLOSE 0x00100 /**< Delete the file after close */ +#define APR_XTHREAD 0x00200 /**< Platform dependent tag to open the file + for use across multiple threads */ +#define APR_SHARELOCK 0x00400 /**< Platform dependent support for higher + level locked read/write access to support + writes across process/machines */ +#define APR_FILE_NOCLEANUP 0x00800 /**< Do not register a cleanup when the file + is opened */ +#define APR_SENDFILE_ENABLED 0x01000 /**< Advisory flag that this file should + support apr_sendfile operation */ +#define APR_LARGEFILE 0x04000 /**< Platform dependent flag to enable large file + support; WARNING see below. */ + +/** @warning The APR_LARGEFILE flag only has effect on some platforms + * where sizeof(apr_off_t) == 4. Where implemented, it allows opening + * and writing to a file which exceeds the size which can be + * represented by apr_off_t (2 gigabytes). When a file's size does + * exceed 2Gb, apr_file_info_get() will fail with an error on the + * descriptor, likewise apr_stat()/apr_lstat() will fail on the + * filename. apr_dir_read() will fail with APR_INCOMPLETE on a + * directory entry for a large file depending on the particular + * APR_FINFO_* flags. Generally, it is not recommended to use this + * flag. */ + +/** @} */ + +/** + * @defgroup apr_file_seek_flags File Seek Flags + * @{ + */ + +/* flags for apr_file_seek */ +/** Set the file position */ +#define APR_SET SEEK_SET +/** Current */ +#define APR_CUR SEEK_CUR +/** Go to end of file */ +#define APR_END SEEK_END +/** @} */ + +/** + * @defgroup apr_file_attrs_set_flags File Attribute Flags + * @{ + */ + +/* flags for apr_file_attrs_set */ +#define APR_FILE_ATTR_READONLY 0x01 /**< File is read-only */ +#define APR_FILE_ATTR_EXECUTABLE 0x02 /**< File is executable */ +#define APR_FILE_ATTR_HIDDEN 0x04 /**< File is hidden */ +/** @} */ + +/** File attributes */ +typedef apr_uint32_t apr_fileattrs_t; + +/** should be same as whence type in lseek, POSIX defines this as int */ +typedef int apr_seek_where_t; + +/** + * Structure for referencing files. + */ +typedef struct apr_file_t apr_file_t; + +/* File lock types/flags */ +/** + * @defgroup apr_file_lock_types File Lock Types + * @{ + */ + +#define APR_FLOCK_SHARED 1 /**< Shared lock. More than one process + or thread can hold a shared lock + at any given time. Essentially, + this is a "read lock", preventing + writers from establishing an + exclusive lock. */ +#define APR_FLOCK_EXCLUSIVE 2 /**< Exclusive lock. Only one process + may hold an exclusive lock at any + given time. This is analogous to + a "write lock". */ + +#define APR_FLOCK_TYPEMASK 0x000F /**< mask to extract lock type */ +#define APR_FLOCK_NONBLOCK 0x0010 /**< do not block while acquiring the + file lock */ +/** @} */ + +/** + * Open the specified file. + * @param newf The opened file descriptor. + * @param fname The full path to the file (using / on all systems) + * @param flag Or'ed value of: + *
+ *         APR_READ              open for reading
+ *         APR_WRITE             open for writing
+ *         APR_CREATE            create the file if not there
+ *         APR_APPEND            file ptr is set to end prior to all writes
+ *         APR_TRUNCATE          set length to zero if file exists
+ *         APR_BINARY            not a text file (This flag is ignored on 
+ *                               UNIX because it has no meaning)
+ *         APR_BUFFERED          buffer the data.  Default is non-buffered
+ *         APR_EXCL              return error if APR_CREATE and file exists
+ *         APR_DELONCLOSE        delete the file after closing.
+ *         APR_XTHREAD           Platform dependent tag to open the file
+ *                               for use across multiple threads
+ *         APR_SHARELOCK         Platform dependent support for higher
+ *                               level locked read/write access to support
+ *                               writes across process/machines
+ *         APR_FILE_NOCLEANUP    Do not register a cleanup with the pool 
+ *                               passed in on the cont argument (see below).
+ *                               The apr_os_file_t handle in apr_file_t will not
+ *                               be closed when the pool is destroyed.
+ *         APR_SENDFILE_ENABLED  Open with appropriate platform semantics
+ *                               for sendfile operations.  Advisory only,
+ *                               apr_sendfile does not check this flag.
+ * 
+ * @param perm Access permissions for file. + * @param pool The pool to use. + * @remark If perm is APR_OS_DEFAULT and the file is being created, appropriate + * default permissions will be used. *arg1 must point to a valid file_t, + * or NULL (in which case it will be allocated) + */ +APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **newf, const char *fname, + apr_int32_t flag, apr_fileperms_t perm, + apr_pool_t *pool); + +/** + * Close the specified file. + * @param file The file descriptor to close. + */ +APR_DECLARE(apr_status_t) apr_file_close(apr_file_t *file); + +/** + * delete the specified file. + * @param path The full path to the file (using / on all systems) + * @param cont The pool to use. + * @remark If the file is open, it won't be removed until all instances are closed. + */ +APR_DECLARE(apr_status_t) apr_file_remove(const char *path, apr_pool_t *cont); + +/** + * rename the specified file. + * @param from_path The full path to the original file (using / on all systems) + * @param to_path The full path to the new file (using / on all systems) + * @param pool The pool to use. + * @warning If a file exists at the new location, then it will be overwritten. + * Moving files or directories across devices may not be possible. + */ +APR_DECLARE(apr_status_t) apr_file_rename(const char *from_path, + const char *to_path, + apr_pool_t *pool); + +/** + * copy the specified file to another file. + * @param from_path The full path to the original file (using / on all systems) + * @param to_path The full path to the new file (using / on all systems) + * @param perms Access permissions for the new file if it is created. + * In place of the usual or'd combination of file permissions, the + * value APR_FILE_SOURCE_PERMS may be given, in which case the source + * file's permissions are copied. + * @param pool The pool to use. + * @remark The new file does not need to exist, it will be created if required. + * @warning If the new file already exists, its contents will be overwritten. + */ +APR_DECLARE(apr_status_t) apr_file_copy(const char *from_path, + const char *to_path, + apr_fileperms_t perms, + apr_pool_t *pool); + +/** + * append the specified file to another file. + * @param from_path The full path to the source file (using / on all systems) + * @param to_path The full path to the destination file (using / on all systems) + * @param perms Access permissions for the destination file if it is created. + * In place of the usual or'd combination of file permissions, the + * value APR_FILE_SOURCE_PERMS may be given, in which case the source + * file's permissions are copied. + * @param pool The pool to use. + * @remark The new file does not need to exist, it will be created if required. + */ +APR_DECLARE(apr_status_t) apr_file_append(const char *from_path, + const char *to_path, + apr_fileperms_t perms, + apr_pool_t *pool); + +/** + * Are we at the end of the file + * @param fptr The apr file we are testing. + * @remark Returns APR_EOF if we are at the end of file, APR_SUCCESS otherwise. + */ +APR_DECLARE(apr_status_t) apr_file_eof(apr_file_t *fptr); + +/** + * open standard error as an apr file pointer. + * @param thefile The apr file to use as stderr. + * @param cont The pool to allocate the file out of. + * + * @remark The only reason that the apr_file_open_std* functions exist + * is that you may not always have a stderr/out/in on Windows. This + * is generally a problem with newer versions of Windows and services. + * + * The other problem is that the C library functions generally work + * differently on Windows and Unix. So, by using apr_file_open_std* + * functions, you can get a handle to an APR struct that works with + * the APR functions which are supposed to work identically on all + * platforms. + */ +APR_DECLARE(apr_status_t) apr_file_open_stderr(apr_file_t **thefile, + apr_pool_t *cont); + +/** + * open standard output as an apr file pointer. + * @param thefile The apr file to use as stdout. + * @param cont The pool to allocate the file out of. + * + * @remark The only reason that the apr_file_open_std* functions exist + * is that you may not always have a stderr/out/in on Windows. This + * is generally a problem with newer versions of Windows and services. + * + * The other problem is that the C library functions generally work + * differently on Windows and Unix. So, by using apr_file_open_std* + * functions, you can get a handle to an APR struct that works with + * the APR functions which are supposed to work identically on all + * platforms. + */ +APR_DECLARE(apr_status_t) apr_file_open_stdout(apr_file_t **thefile, + apr_pool_t *cont); + +/** + * open standard input as an apr file pointer. + * @param thefile The apr file to use as stdin. + * @param cont The pool to allocate the file out of. + * + * @remark The only reason that the apr_file_open_std* functions exist + * is that you may not always have a stderr/out/in on Windows. This + * is generally a problem with newer versions of Windows and services. + * + * The other problem is that the C library functions generally work + * differently on Windows and Unix. So, by using apr_file_open_std* + * functions, you can get a handle to an APR struct that works with + * the APR functions which are supposed to work identically on all + * platforms. + */ +APR_DECLARE(apr_status_t) apr_file_open_stdin(apr_file_t **thefile, + apr_pool_t *cont); + +/** + * Read data from the specified file. + * @param thefile The file descriptor to read from. + * @param buf The buffer to store the data to. + * @param nbytes On entry, the number of bytes to read; on exit, the number of bytes read. + * @remark apr_file_read will read up to the specified number of bytes, but + * never more. If there isn't enough data to fill that number of + * bytes, all of the available data is read. The third argument is + * modified to reflect the number of bytes read. If a char was put + * back into the stream via ungetc, it will be the first character + * returned. + * + * It is not possible for both bytes to be read and an APR_EOF or other + * error to be returned. + * + * APR_EINTR is never returned. + */ +APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, + apr_size_t *nbytes); + +/** + * Write data to the specified file. + * @param thefile The file descriptor to write to. + * @param buf The buffer which contains the data. + * @param nbytes On entry, the number of bytes to write; on exit, the number + * of bytes written. + * @remark apr_file_write will write up to the specified number of bytes, but never + * more. If the OS cannot write that many bytes, it will write as many + * as it can. The third argument is modified to reflect the * number + * of bytes written. + * + * It is possible for both bytes to be written and an error to be returned. + * + * APR_EINTR is never returned. + */ +APR_DECLARE(apr_status_t) apr_file_write(apr_file_t *thefile, const void *buf, + apr_size_t *nbytes); + +/** + * Write data from iovec array to the specified file. + * @param thefile The file descriptor to write to. + * @param vec The array from which to get the data to write to the file. + * @param nvec The number of elements in the struct iovec array. This must + * be smaller than APR_MAX_IOVEC_SIZE. If it isn't, the function + * will fail with APR_EINVAL. + * @param nbytes The number of bytes written. + * @remark It is possible for both bytes to be written and an error to be returned. + * APR_EINTR is never returned. + * + * apr_file_writev is available even if the underlying operating system + * + * doesn't provide writev(). + */ +APR_DECLARE(apr_status_t) apr_file_writev(apr_file_t *thefile, + const struct iovec *vec, + apr_size_t nvec, apr_size_t *nbytes); + +/** + * Read data from the specified file, ensuring that the buffer is filled + * before returning. + * @param thefile The file descriptor to read from. + * @param buf The buffer to store the data to. + * @param nbytes The number of bytes to read. + * @param bytes_read If non-NULL, this will contain the number of bytes read. + * @remark apr_file_read will read up to the specified number of bytes, but never + * more. If there isn't enough data to fill that number of bytes, + * then the process/thread will block until it is available or EOF + * is reached. If a char was put back into the stream via ungetc, + * it will be the first character returned. + * + * It is possible for both bytes to be read and an error to be + * returned. And if *bytes_read is less than nbytes, an + * accompanying error is _always_ returned. + * + * APR_EINTR is never returned. + */ +APR_DECLARE(apr_status_t) apr_file_read_full(apr_file_t *thefile, void *buf, + apr_size_t nbytes, + apr_size_t *bytes_read); + +/** + * Write data to the specified file, ensuring that all of the data is + * written before returning. + * @param thefile The file descriptor to write to. + * @param buf The buffer which contains the data. + * @param nbytes The number of bytes to write. + * @param bytes_written If non-NULL, this will contain the number of bytes written. + * @remark apr_file_write will write up to the specified number of bytes, but never + * more. If the OS cannot write that many bytes, the process/thread + * will block until they can be written. Exceptional error such as + * "out of space" or "pipe closed" will terminate with an error. + * + * It is possible for both bytes to be written and an error to be + * returned. And if *bytes_written is less than nbytes, an + * accompanying error is _always_ returned. + * + * APR_EINTR is never returned. + */ +APR_DECLARE(apr_status_t) apr_file_write_full(apr_file_t *thefile, const void *buf, + apr_size_t nbytes, + apr_size_t *bytes_written); + +/** + * put a character into the specified file. + * @param ch The character to write. + * @param thefile The file descriptor to write to + */ +APR_DECLARE(apr_status_t) apr_file_putc(char ch, apr_file_t *thefile); + +/** + * get a character from the specified file. + * @param ch The character to read into + * @param thefile The file descriptor to read from + */ +APR_DECLARE(apr_status_t) apr_file_getc(char *ch, apr_file_t *thefile); + +/** + * put a character back onto a specified stream. + * @param ch The character to write. + * @param thefile The file descriptor to write to + */ +APR_DECLARE(apr_status_t) apr_file_ungetc(char ch, apr_file_t *thefile); + +/** + * Get a string from a specified file. + * @param str The buffer to store the string in. + * @param len The length of the string + * @param thefile The file descriptor to read from + * @remark The buffer will be '\0'-terminated if any characters are stored. + */ +APR_DECLARE(apr_status_t) apr_file_gets(char *str, int len, apr_file_t *thefile); + +/** + * Put the string into a specified file. + * @param str The string to write. + * @param thefile The file descriptor to write to + */ +APR_DECLARE(apr_status_t) apr_file_puts(const char *str, apr_file_t *thefile); + +/** + * Flush the file's buffer. + * @param thefile The file descriptor to flush + */ +APR_DECLARE(apr_status_t) apr_file_flush(apr_file_t *thefile); + +/** + * duplicate the specified file descriptor. + * @param new_file The structure to duplicate into. + * @param old_file The file to duplicate. + * @param p The pool to use for the new file. + * @remark *new_file must point to a valid apr_file_t, or point to NULL + */ +APR_DECLARE(apr_status_t) apr_file_dup(apr_file_t **new_file, + apr_file_t *old_file, + apr_pool_t *p); + +/** + * duplicate the specified file descriptor and close the original + * @param new_file The old file that is to be closed and reused + * @param old_file The file to duplicate + * @param p The pool to use for the new file + * + * @remark new_file MUST point at a valid apr_file_t. It cannot be NULL + */ +APR_DECLARE(apr_status_t) apr_file_dup2(apr_file_t *new_file, + apr_file_t *old_file, + apr_pool_t *p); + +/** + * move the specified file descriptor to a new pool + * @param new_file Pointer in which to return the new apr_file_t + * @param old_file The file to move + * @param p The pool to which the descriptor is to be moved + * @remark Unlike apr_file_dup2(), this function doesn't do an + * OS dup() operation on the underlying descriptor; it just + * moves the descriptor's apr_file_t wrapper to a new pool. + * @remark The new pool need not be an ancestor of old_file's pool. + * @remark After calling this function, old_file may not be used + */ +APR_DECLARE(apr_status_t) apr_file_setaside(apr_file_t **new_file, + apr_file_t *old_file, + apr_pool_t *p); + +/** + * Move the read/write file offset to a specified byte within a file. + * @param thefile The file descriptor + * @param where How to move the pointer, one of: + *
+ *            APR_SET  --  set the offset to offset
+ *            APR_CUR  --  add the offset to the current position 
+ *            APR_END  --  add the offset to the current file size 
+ * 
+ * @param offset The offset to move the pointer to. + * @remark The third argument is modified to be the offset the pointer + was actually moved to. + */ +APR_DECLARE(apr_status_t) apr_file_seek(apr_file_t *thefile, + apr_seek_where_t where, + apr_off_t *offset); + +/** + * Create an anonymous pipe. + * @param in The file descriptor to use as input to the pipe. + * @param out The file descriptor to use as output from the pipe. + * @param cont The pool to operate on. + */ +APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out, + apr_pool_t *cont); + +/** + * Create a named pipe. + * @param filename The filename of the named pipe + * @param perm The permissions for the newly created pipe. + * @param cont The pool to operate on. + */ +APR_DECLARE(apr_status_t) apr_file_namedpipe_create(const char *filename, + apr_fileperms_t perm, + apr_pool_t *cont); + +/** + * Get the timeout value for a pipe or manipulate the blocking state. + * @param thepipe The pipe we are getting a timeout for. + * @param timeout The current timeout value in microseconds. + */ +APR_DECLARE(apr_status_t) apr_file_pipe_timeout_get(apr_file_t *thepipe, + apr_interval_time_t *timeout); + +/** + * Set the timeout value for a pipe or manipulate the blocking state. + * @param thepipe The pipe we are setting a timeout on. + * @param timeout The timeout value in microseconds. Values < 0 mean wait + * forever, 0 means do not wait at all. + */ +APR_DECLARE(apr_status_t) apr_file_pipe_timeout_set(apr_file_t *thepipe, + apr_interval_time_t timeout); + +/** file (un)locking functions. */ + +/** + * Establish a lock on the specified, open file. The lock may be advisory + * or mandatory, at the discretion of the platform. The lock applies to + * the file as a whole, rather than a specific range. Locks are established + * on a per-thread/process basis; a second lock by the same thread will not + * block. + * @param thefile The file to lock. + * @param type The type of lock to establish on the file. + */ +APR_DECLARE(apr_status_t) apr_file_lock(apr_file_t *thefile, int type); + +/** + * Remove any outstanding locks on the file. + * @param thefile The file to unlock. + */ +APR_DECLARE(apr_status_t) apr_file_unlock(apr_file_t *thefile); + +/**accessor and general file_io functions. */ + +/** + * return the file name of the current file. + * @param new_path The path of the file. + * @param thefile The currently open file. + */ +APR_DECLARE(apr_status_t) apr_file_name_get(const char **new_path, + apr_file_t *thefile); + +/** + * Return the data associated with the current file. + * @param data The user data associated with the file. + * @param key The key to use for retreiving data associated with this file. + * @param file The currently open file. + */ +APR_DECLARE(apr_status_t) apr_file_data_get(void **data, const char *key, + apr_file_t *file); + +/** + * Set the data associated with the current file. + * @param file The currently open file. + * @param data The user data to associate with the file. + * @param key The key to use for assocaiteing data with the file. + * @param cleanup The cleanup routine to use when the file is destroyed. + */ +APR_DECLARE(apr_status_t) apr_file_data_set(apr_file_t *file, void *data, + const char *key, + apr_status_t (*cleanup)(void *)); + +/** + * Write a string to a file using a printf format. + * @param fptr The file to write to. + * @param format The format string + * @param ... The values to substitute in the format string + * @return The number of bytes written + */ +APR_DECLARE_NONSTD(int) apr_file_printf(apr_file_t *fptr, + const char *format, ...) + __attribute__((format(printf,2,3))); + +/** + * set the specified file's permission bits. + * @param fname The file (name) to apply the permissions to. + * @param perms The permission bits to apply to the file. + * @warning Some platforms may not be able to apply all of the available + * permission bits; APR_INCOMPLETE will be returned if some permissions + * are specified which could not be set. + * + * Platforms which do not implement this feature will return APR_ENOTIMPL. + */ +APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname, + apr_fileperms_t perms); + +/** + * Set attributes of the specified file. + * @param fname The full path to the file (using / on all systems) + * @param attributes Or'd combination of + *
+ *            APR_FILE_ATTR_READONLY   - make the file readonly
+ *            APR_FILE_ATTR_EXECUTABLE - make the file executable
+ *            APR_FILE_ATTR_HIDDEN     - make the file hidden
+ * 
+ * @param attr_mask Mask of valid bits in attributes. + * @param cont the pool to use. + * @remark This function should be used in preference to explict manipulation + * of the file permissions, because the operations to provide these + * attributes are platform specific and may involve more than simply + * setting permission bits. + * @warning Platforms which do not implement this feature will return + * APR_ENOTIMPL. + */ +APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname, + apr_fileattrs_t attributes, + apr_fileattrs_t attr_mask, + apr_pool_t *cont); + +/** + * Set the mtime of the specified file. + * @param fname The full path to the file (using / on all systems) + * @param mtime The mtime to apply to the file. + * @param pool The pool to use. + * @warning Platforms which do not implement this feature will return + * APR_ENOTIMPL. + */ +APR_DECLARE(apr_status_t) apr_file_mtime_set(const char *fname, + apr_time_t mtime, + apr_pool_t *pool); + +/** + * Create a new directory on the file system. + * @param path the path for the directory to be created. (use / on all systems) + * @param perm Permissions for the new direcoty. + * @param cont the pool to use. + */ +APR_DECLARE(apr_status_t) apr_dir_make(const char *path, apr_fileperms_t perm, + apr_pool_t *cont); + +/** Creates a new directory on the file system, but behaves like + * 'mkdir -p'. Creates intermediate directories as required. No error + * will be reported if PATH already exists. + * @param path the path for the directory to be created. (use / on all systems) + * @param perm Permissions for the new direcoty. + * @param pool the pool to use. + */ +APR_DECLARE(apr_status_t) apr_dir_make_recursive(const char *path, + apr_fileperms_t perm, + apr_pool_t *pool); + +/** + * Remove directory from the file system. + * @param path the path for the directory to be removed. (use / on all systems) + * @param cont the pool to use. + */ +APR_DECLARE(apr_status_t) apr_dir_remove(const char *path, apr_pool_t *cont); + +/** + * get the specified file's stats. + * @param finfo Where to store the information about the file. + * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values + * @param thefile The file to get information about. + */ +APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo, + apr_int32_t wanted, + apr_file_t *thefile); + + +/** + * Truncate the file's length to the specified offset + * @param fp The file to truncate + * @param offset The offset to truncate to. + * @remark The read/write file offset is repositioned to offset. + */ +APR_DECLARE(apr_status_t) apr_file_trunc(apr_file_t *fp, apr_off_t offset); + +/** + * Retrieve the flags that were passed into apr_file_open() + * when the file was opened. + * @return apr_int32_t the flags + */ +APR_DECLARE(apr_int32_t) apr_file_flags_get(apr_file_t *f); + +/** + * Get the pool used by the file. + */ +APR_POOL_DECLARE_ACCESSOR(file); + +/** + * Set a file to be inherited by child processes. + * + */ +APR_DECLARE_INHERIT_SET(file); + +/** @deprecated @see apr_file_inherit_set */ +APR_DECLARE(void) apr_file_set_inherit(apr_file_t *file); + +/** + * Unset a file from being inherited by child processes. + */ +APR_DECLARE_INHERIT_UNSET(file); + +/** @deprecated @see apr_file_inherit_unset */ +APR_DECLARE(void) apr_file_unset_inherit(apr_file_t *file); + +/** + * Open a temporary file + * @param fp The apr file to use as a temporary file. + * @param templ The template to use when creating a temp file. + * @param flags The flags to open the file with. If this is zero, + * the file is opened with + * APR_CREATE | APR_READ | APR_WRITE | APR_EXCL | APR_DELONCLOSE + * @param p The pool to allocate the file out of. + * @remark + * This function generates a unique temporary file name from template. + * The last six characters of template must be XXXXXX and these are replaced + * with a string that makes the filename unique. Since it will be modified, + * template must not be a string constant, but should be declared as a character + * array. + * + */ +APR_DECLARE(apr_status_t) apr_file_mktemp(apr_file_t **fp, char *templ, + apr_int32_t flags, apr_pool_t *p); + + +/** + * Find an existing directory suitable as a temporary storage location. + * @param temp_dir The temp directory. + * @param p The pool to use for any necessary allocations. + * @remark + * This function uses an algorithm to search for a directory that an + * an application can use for temporary storage. Once such a + * directory is found, that location is cached by the library. Thus, + * callers only pay the cost of this algorithm once if that one time + * is successful. + * + */ +APR_DECLARE(apr_status_t) apr_temp_dir_get(const char **temp_dir, + apr_pool_t *p); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_FILE_IO_H */ diff --git a/rubbos/app/apache2/include/apr_fnmatch.h b/rubbos/app/apache2/include/apr_fnmatch.h new file mode 100644 index 00000000..8be40fc8 --- /dev/null +++ b/rubbos/app/apache2/include/apr_fnmatch.h @@ -0,0 +1,105 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS 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 REGENTS OR 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. + * + * @(#)fnmatch.h 8.1 (Berkeley) 6/2/93 + */ + +/* This file has been modified by the Apache Software Foundation. */ +#ifndef _APR_FNMATCH_H_ +#define _APR_FNMATCH_H_ + +/** + * @file apr_fnmatch.h + * @brief APR FNMatch Functions + */ + +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_fnmatch Filename Matching Functions + * @ingroup APR + * @{ + */ + +#define APR_FNM_NOMATCH 1 /**< Match failed. */ + +#define APR_FNM_NOESCAPE 0x01 /**< Disable backslash escaping. */ +#define APR_FNM_PATHNAME 0x02 /**< Slash must be matched by slash. */ +#define APR_FNM_PERIOD 0x04 /**< Period must be matched by period. */ +#define APR_FNM_CASE_BLIND 0x08 /**< Compare characters case-insensitively. + * @remark This flag is an Apache addition + */ + +#define FNM_NOMATCH APR_FNM_NOMATCH /**< @deprecated @see APR_FNM_NOMATCH */ +#define FNM_NOESCAPE APR_FNM_NOESCAPE /**< @deprecated @see APR_FNM_NOESCAPE */ +#define FNM_PATHNAME APR_FNM_PATHNAME /**< @deprecated @see APR_FNM_PATHNAME */ +#define FNM_PERIOD APR_FNM_PERIOD /**< @deprecated @see APR_FNM_PERIOD */ +#define FNM_CASE_BLIND APR_FNM_CASE_BLIND /**< @deprecated @see APR_FNM_CASE_BLIND */ + +/** + * Try to match the string to the given pattern, return APR_SUCCESS if + * match, else return APR_FNM_NOMATCH. + * @param pattern The pattern to match to + * @param strings The string we are trying to match + * @param flags flags to use in the match. Bitwise OR of: + *
+ *              APR_FNM_NOESCAPE       Disable backslash escaping
+ *              APR_FNM_PATHNAME       Slash must be matched by slash
+ *              APR_FNM_PERIOD         Period must be matched by period
+ *              APR_FNM_CASE_BLIND     Compare characters case-insensitively.
+ * 
+ */ + +APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern, + const char *strings, int flags); + +/** + * Determine if the given pattern is a regular expression. + * @param pattern The pattern to search for glob characters. + * @return non-zero if pattern has any glob characters in it + */ +APR_DECLARE(int) apr_fnmatch_test(const char *pattern); + +/** @deprecated @see apr_fnmatch_test */ +APR_DECLARE(int) apr_is_fnmatch(const char *pattern); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_APR_FNMATCH_H_ */ diff --git a/rubbos/app/apache2/include/apr_general.h b/rubbos/app/apache2/include/apr_general.h new file mode 100644 index 00000000..10e150b9 --- /dev/null +++ b/rubbos/app/apache2/include/apr_general.h @@ -0,0 +1,249 @@ +/* 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. + */ + +#ifndef APR_GENERAL_H +#define APR_GENERAL_H + +/** + * @file apr_general.h + * This is collection of oddballs that didn't fit anywhere else, + * and might move to more appropriate headers with the release + * of APR 1.0. + * @brief APR Miscellaneous library routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#if APR_HAVE_SIGNAL_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_general Miscellaneous library routines + * @ingroup APR + * This is collection of oddballs that didn't fit anywhere else, + * and might move to more appropriate headers with the release + * of APR 1.0. + * @{ + */ + +/** FALSE */ +#ifndef FALSE +#define FALSE 0 +#endif +/** TRUE */ +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +/** a space */ +#define APR_ASCII_BLANK '\040' +/** a carrige return */ +#define APR_ASCII_CR '\015' +/** a line feed */ +#define APR_ASCII_LF '\012' +/** a tab */ +#define APR_ASCII_TAB '\011' + +/** signal numbers typedef */ +typedef int apr_signum_t; + +/** + * Finding offsets of elements within structures. + * Taken from the X code... they've sweated portability of this stuff + * so we don't have to. Sigh... + * @param p_type pointer type name + * @param field data field within the structure pointed to + * @return offset + */ + +#if defined(CRAY) || (defined(__arm) && !defined(LINUX)) +#ifdef __STDC__ +#define APR_OFFSET(p_type,field) _Offsetof(p_type,field) +#else +#ifdef CRAY2 +#define APR_OFFSET(p_type,field) \ + (sizeof(int)*((unsigned int)&(((p_type)NULL)->field))) + +#else /* !CRAY2 */ + +#define APR_OFFSET(p_type,field) ((unsigned int)&(((p_type)NULL)->field)) + +#endif /* !CRAY2 */ +#endif /* __STDC__ */ +#else /* ! (CRAY || __arm) */ + +#define APR_OFFSET(p_type,field) \ + ((long) (((char *) (&(((p_type)NULL)->field))) - ((char *) NULL))) + +#endif /* !CRAY */ + +/** + * Finding offsets of elements within structures. + * @param s_type structure type name + * @param field data field within the structure + * @return offset + */ +#if defined(offsetof) && !defined(__cplusplus) +#define APR_OFFSETOF(s_type,field) offsetof(s_type,field) +#else +#define APR_OFFSETOF(s_type,field) APR_OFFSET(s_type*,field) +#endif + +/** @deprecated @see APR_OFFSET */ +#define APR_XtOffset APR_OFFSET + +/** @deprecated @see APR_OFFSETOF */ +#define APR_XtOffsetOf APR_OFFSETOF + +#ifndef DOXYGEN + +/* A couple of prototypes for functions in case some platform doesn't + * have it + */ +#if (!APR_HAVE_STRCASECMP) && (APR_HAVE_STRICMP) +#define strcasecmp(s1, s2) stricmp(s1, s2) +#elif (!APR_HAVE_STRCASECMP) +int strcasecmp(const char *a, const char *b); +#endif + +#if (!APR_HAVE_STRNCASECMP) && (APR_HAVE_STRNICMP) +#define strncasecmp(s1, s2, n) strnicmp(s1, s2, n) +#elif (!APR_HAVE_STRNCASECMP) +int strncasecmp(const char *a, const char *b, size_t n); +#endif + +#endif + +/** + * Alignment macros + */ + +/* APR_ALIGN() is only to be used to align on a power of 2 boundary */ +#define APR_ALIGN(size, boundary) \ + (((size) + ((boundary) - 1)) & ~((boundary) - 1)) + +/** Default alignment */ +#define APR_ALIGN_DEFAULT(size) APR_ALIGN(size, 8) + + +/** + * String and memory functions + */ + +/** 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 + +#if (!APR_HAVE_MEMMOVE) +#define memmove(a,b,c) bcopy(b,a,c) +#endif + +#if (!APR_HAVE_MEMCHR) +void *memchr(const void *s, int c, size_t n); +#endif + +/** @} */ + +/** + * @defgroup apr_library Library initialization and termination + * @{ + */ + +/** + * Setup any APR internal data structures. This MUST be the first function + * called for any APR library. + * @remark See apr_app_initialize if this is an application, rather than + * a library consumer of apr. + */ +APR_DECLARE(apr_status_t) apr_initialize(void); + +/** + * Set up an application with normalized argc, argv (and optionally env) in + * order to deal with platform-specific oddities, such as Win32 services, + * code pages and signals. This must be the first function called for any + * APR program. + * @param argc Pointer to the argc that may be corrected + * @param argv Pointer to the argv that may be corrected + * @param env Pointer to the env that may be corrected, may be NULL + * @remark See apr_initialize if this is a library consumer of apr. + * Otherwise, this call is identical to apr_initialize, and must be closed + * with a call to apr_terminate at the end of program execution. + */ +APR_DECLARE(apr_status_t) apr_app_initialize(int *argc, + char const * const * *argv, + char const * const * *env); + +/** + * Tear down any APR internal data structures which aren't torn down + * automatically. + * @remark An APR program must call this function at termination once it + * has stopped using APR services. The APR developers suggest using + * atexit to ensure this is called. When using APR from a language + * other than C that has problems with the calling convention, use + * apr_terminate2() instead. + */ +APR_DECLARE_NONSTD(void) apr_terminate(void); + +/** + * Tear down any APR internal data structures which aren't torn down + * automatically, same as apr_terminate + * @remark An APR program must call either the apr_terminate or apr_terminate2 + * function once it it has finished using APR services. The APR + * developers suggest using atexit(apr_terminate) to ensure this is done. + * apr_terminate2 exists to allow non-c language apps to tear down apr, + * while apr_terminate is recommended from c language applications. + */ +APR_DECLARE(void) apr_terminate2(void); + +/** @} */ + +/** + * @defgroup apr_random Random Functions + * @{ + */ + +#if APR_HAS_RANDOM || defined(DOXYGEN) + +/* TODO: I'm not sure this is the best place to put this prototype...*/ +/** + * Generate random bytes. + * @param buf Buffer to fill with random bytes + * @param length Length of buffer in bytes (becomes apr_size_t in APR 1.0) + */ +#ifdef APR_ENABLE_FOR_1_0 +APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char * buf, + apr_size_t length); +#else +APR_DECLARE(apr_status_t) apr_generate_random_bytes(unsigned char * buf, + int length); +#endif + +#endif +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_GENERAL_H */ diff --git a/rubbos/app/apache2/include/apr_getopt.h b/rubbos/app/apache2/include/apr_getopt.h new file mode 100644 index 00000000..131aa4b3 --- /dev/null +++ b/rubbos/app/apache2/include/apr_getopt.h @@ -0,0 +1,158 @@ +/* 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. + */ + +#ifndef APR_GETOPT_H +#define APR_GETOPT_H + +/** + * @file apr_getopt.h + * @brief APR Command Arguments (getopt) + */ + +#include "apr_pools.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_getopt Command Argument Parsing + * @ingroup APR + * @{ + */ + +/** + * defintion of a error function + */ +typedef void (apr_getopt_err_fn_t)(void *arg, const char *err, ...); + +/** @see apr_getopt_t */ +typedef struct apr_getopt_t apr_getopt_t; + +/** + * Structure to store command line argument information. + */ +struct apr_getopt_t { + /** context for processing */ + apr_pool_t *cont; + /** function to print error message (NULL == no messages) */ + apr_getopt_err_fn_t *errfn; + /** user defined first arg to pass to error message */ + void *errarg; + /** index into parent argv vector */ + int ind; + /** character checked for validity */ + int opt; + /** reset getopt */ + int reset; + /** count of arguments */ + int argc; + /** array of pointers to arguments */ + const char **argv; + /** argument associated with option */ + char const* place; + /** set to nonzero to support interleaving options with regular args */ + int interleave; + /** start of non-option arguments skipped for interleaving */ + int skip_start; + /** end of non-option arguments skipped for interleaving */ + int skip_end; +}; + +/** @see apr_getopt_option_t */ +typedef struct apr_getopt_option_t apr_getopt_option_t; + +/** + * Structure used to describe options that getopt should search for. + */ +struct apr_getopt_option_t { + /** long option name, or NULL if option has no long name */ + const char *name; + /** option letter, or a value greater than 255 if option has no letter */ + int optch; + /** nonzero if option takes an argument */ + int has_arg; + /** a description of the option */ + const char *description; +}; + +/** + * Initialize the arguments for parsing by apr_getopt(). + * @param os The options structure created for apr_getopt() + * @param cont The pool to operate on + * @param argc The number of arguments to parse + * @param argv The array of arguments to parse + * @remark Arguments 2 and 3 are most commonly argc and argv from main(argc, argv) + * The errfn is initialized to fprintf(stderr... but may be overridden. + */ +APR_DECLARE(apr_status_t) apr_getopt_init(apr_getopt_t **os, apr_pool_t *cont, + int argc, const char * const *argv); + +/** + * Parse the options initialized by apr_getopt_init(). + * @param os The apr_opt_t structure returned by apr_getopt_init() + * @param opts A string of characters that are acceptable options to the + * program. Characters followed by ":" are required to have an + * option associated + * @param option_ch The next option character parsed + * @param option_arg The argument following the option character: + * @return There are four potential status values on exit. They are: + *
+ *             APR_EOF      --  No more options to parse
+ *             APR_BADCH    --  Found a bad option character
+ *             APR_BADARG   --  No argument followed the option flag
+ *             APR_SUCCESS  --  The next option was found.
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_getopt(apr_getopt_t *os, const char *opts, + char *option_ch, const char **option_arg); + +/** + * Parse the options initialized by apr_getopt_init(), accepting long + * options beginning with "--" in addition to single-character + * options beginning with "-". + * @param os The apr_getopt_t structure created by apr_getopt_init() + * @param opts A pointer to a list of apr_getopt_option_t structures, which + * can be initialized with { "name", optch, has_args }. has_args + * is nonzero if the option requires an argument. A structure + * with an optch value of 0 terminates the list. + * @param option_ch Receives the value of "optch" from the apr_getopt_option_t + * structure corresponding to the next option matched. + * @param option_arg Receives the argument following the option, if any. + * @return There are four potential status values on exit. They are: + *
+ *             APR_EOF      --  No more options to parse
+ *             APR_BADCH    --  Found a bad option character
+ *             APR_BADARG   --  No argument followed the option flag
+ *             APR_SUCCESS  --  The next option was found.
+ * 
+ * When APR_SUCCESS is returned, os->ind gives the index of the first + * non-option argument. On error, a message will be printed to stdout unless + * os->err is set to 0. If os->interleave is set to nonzero, options can come + * after arguments, and os->argv will be permuted to leave non-option arguments + * at the end (the original argv is unaffected). + */ +APR_DECLARE(apr_status_t) apr_getopt_long(apr_getopt_t *os, + const apr_getopt_option_t *opts, + int *option_ch, + const char **option_arg); +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_GETOPT_H */ diff --git a/rubbos/app/apache2/include/apr_global_mutex.h b/rubbos/app/apache2/include/apr_global_mutex.h new file mode 100644 index 00000000..9316001c --- /dev/null +++ b/rubbos/app/apache2/include/apr_global_mutex.h @@ -0,0 +1,153 @@ +/* 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. + */ + +#ifndef APR_GLOBAL_MUTEX_H +#define APR_GLOBAL_MUTEX_H + +/** + * @file apr_global_mutex.h + * @brief APR Global Locking Routines + */ + +#include "apr.h" +#include "apr_proc_mutex.h" /* only for apr_lockmech_e */ +#include "apr_pools.h" +#include "apr_errno.h" +#if APR_PROC_MUTEX_IS_GLOBAL +#include "apr_proc_mutex.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup APR_GlobalMutex Global Locking Routines + * @ingroup APR + * @{ + */ + +#if !APR_PROC_MUTEX_IS_GLOBAL || defined(DOXYGEN) + +/** Opaque global mutex structure. */ +typedef struct apr_global_mutex_t apr_global_mutex_t; + +/* Function definitions */ + +/** + * Create and initialize a mutex that can be used to synchronize both + * processes and threads. Note: There is considerable overhead in using + * this API if only cross-process or cross-thread mutual exclusion is + * required. See apr_proc_mutex.h and apr_thread_mutex.h for more + * specialized lock routines. + * @param mutex the memory address where the newly created mutex will be + * stored. + * @param fname A file name to use if the lock mechanism requires one. This + * argument should always be provided. The lock code itself will + * determine if it should be used. + * @param mech The mechanism to use for the interprocess lock, if any; one of + *
+ *            APR_LOCK_FCNTL
+ *            APR_LOCK_FLOCK
+ *            APR_LOCK_SYSVSEM
+ *            APR_LOCK_POSIXSEM
+ *            APR_LOCK_PROC_PTHREAD
+ *            APR_LOCK_DEFAULT     pick the default mechanism for the platform
+ * 
+ * @param pool the pool from which to allocate the mutex. + * @warning Check APR_HAS_foo_SERIALIZE defines to see if the platform supports + * APR_LOCK_foo. Only APR_LOCK_DEFAULT is portable. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_create(apr_global_mutex_t **mutex, + const char *fname, + apr_lockmech_e mech, + apr_pool_t *pool); + +/** + * Re-open a mutex in a child process. + * @param mutex The newly re-opened mutex structure. + * @param fname A file name to use if the mutex mechanism requires one. This + * argument should always be provided. The mutex code itself will + * determine if it should be used. This filename should be the + * same one that was passed to apr_global_mutex_create(). + * @param pool The pool to operate on. + * @remark This function must be called to maintain portability, even + * if the underlying lock mechanism does not require it. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_child_init( + apr_global_mutex_t **mutex, + const char *fname, + apr_pool_t *pool); + +/** + * Acquire the lock for the given mutex. If the mutex is already locked, + * the current thread will be put to sleep until the lock becomes available. + * @param mutex the mutex on which to acquire the lock. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_lock(apr_global_mutex_t *mutex); + +/** + * Attempt to acquire the lock for the given mutex. If the mutex has already + * been acquired, the call returns immediately with APR_EBUSY. Note: it + * is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine + * if the return value was APR_EBUSY, for portability reasons. + * @param mutex the mutex on which to attempt the lock acquiring. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_trylock(apr_global_mutex_t *mutex); + +/** + * Release the lock for the given mutex. + * @param mutex the mutex from which to release the lock. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_unlock(apr_global_mutex_t *mutex); + +/** + * Destroy the mutex and free the memory associated with the lock. + * @param mutex the mutex to destroy. + */ +APR_DECLARE(apr_status_t) apr_global_mutex_destroy(apr_global_mutex_t *mutex); + +/** + * Get the pool used by this global_mutex. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(global_mutex); + +#else /* APR_PROC_MUTEX_IS_GLOBAL */ + +/* Some platforms [e.g. Win32] have cross process locks that are truly + * global locks, since there isn't the concept of cross-process locks. + * Define these platforms in terms of an apr_proc_mutex_t. + */ + +#define apr_global_mutex_t apr_proc_mutex_t +#define apr_global_mutex_create apr_proc_mutex_create +#define apr_global_mutex_child_init apr_proc_mutex_child_init +#define apr_global_mutex_lock apr_proc_mutex_lock +#define apr_global_mutex_trylock apr_proc_mutex_trylock +#define apr_global_mutex_unlock apr_proc_mutex_unlock +#define apr_global_mutex_destroy apr_proc_mutex_destroy +#define apr_global_mutex_pool_get apr_proc_mutex_pool_get + +#endif + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ndef APR_GLOBAL_MUTEX_H */ diff --git a/rubbos/app/apache2/include/apr_hash.h b/rubbos/app/apache2/include/apr_hash.h new file mode 100644 index 00000000..87795c4a --- /dev/null +++ b/rubbos/app/apache2/include/apr_hash.h @@ -0,0 +1,201 @@ +/* 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. + */ + +#ifndef APR_HASH_H +#define APR_HASH_H + +/** + * @file apr_hash.h + * @brief APR Hash Tables + */ + +#include "apr_pools.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_hash Hash Tables + * @ingroup APR + * @{ + */ + +/** + * When passing a key to apr_hash_set or apr_hash_get, this value can be + * passed to indicate a string-valued key, and have apr_hash compute the + * length automatically. + * + * @remark apr_hash will use strlen(key) for the length. The null-terminator + * is not included in the hash value (why throw a constant in?). + * Since the hash table merely references the provided key (rather + * than copying it), apr_hash_this() will return the null-term'd key. + */ +#define APR_HASH_KEY_STRING (-1) + +/** + * Abstract type for hash tables. + */ +typedef struct apr_hash_t apr_hash_t; + +/** + * Abstract type for scanning hash tables. + */ +typedef struct apr_hash_index_t apr_hash_index_t; + +/** + * Create a hash table. + * @param pool The pool to allocate the hash table out of + * @return The hash table just created + */ +APR_DECLARE(apr_hash_t *) apr_hash_make(apr_pool_t *pool); + +/** + * Make a copy of a hash table + * @param pool The pool from which to allocate the new hash table + * @param h The hash table to clone + * @return The hash table just created + * @remark Makes a shallow copy + */ +APR_DECLARE(apr_hash_t *) apr_hash_copy(apr_pool_t *pool, + const apr_hash_t *h); + +/** + * Associate a value with a key in a hash table. + * @param ht The hash table + * @param key Pointer to the key + * @param klen Length of the key. Can be APR_HASH_KEY_STRING to use the string length. + * @param val Value to associate with the key + * @remark If the value is NULL the hash entry is deleted. + */ +APR_DECLARE(void) apr_hash_set(apr_hash_t *ht, const void *key, + apr_ssize_t klen, const void *val); + +/** + * Look up the value associated with a key in a hash table. + * @param ht The hash table + * @param key Pointer to the key + * @param klen Length of the key. Can be APR_HASH_KEY_STRING to use the string length. + * @return Returns NULL if the key is not present. + */ +APR_DECLARE(void *) apr_hash_get(apr_hash_t *ht, const void *key, + apr_ssize_t klen); + +/** + * Start iterating over the entries in a hash table. + * @param p The pool to allocate the apr_hash_index_t iterator. If this + * pool is NULL, then an internal, non-thread-safe iterator is used. + * @param ht The hash table + * @remark There is no restriction on adding or deleting hash entries during + * an iteration (although the results may be unpredictable unless all you do + * is delete the current entry) and multiple iterations can be in + * progress at the same time. + + * @example + */ +/** + *
+ * 
+ * int sum_values(apr_pool_t *p, apr_hash_t *ht)
+ * {
+ *     apr_hash_index_t *hi;
+ *     void *val;
+ *     int sum = 0;
+ *     for (hi = apr_hash_first(p, ht); hi; hi = apr_hash_next(hi)) {
+ *         apr_hash_this(hi, NULL, NULL, &val);
+ *         sum += *(int *)val;
+ *     }
+ *     return sum;
+ * }
+ * 
+ */ +APR_DECLARE(apr_hash_index_t *) apr_hash_first(apr_pool_t *p, apr_hash_t *ht); + +/** + * Continue iterating over the entries in a hash table. + * @param hi The iteration state + * @return a pointer to the updated iteration state. NULL if there are no more + * entries. + */ +APR_DECLARE(apr_hash_index_t *) apr_hash_next(apr_hash_index_t *hi); + +/** + * Get the current entry's details from the iteration state. + * @param hi The iteration state + * @param key Return pointer for the pointer to the key. + * @param klen Return pointer for the key length. + * @param val Return pointer for the associated value. + * @remark The return pointers should point to a variable that will be set to the + * corresponding data, or they may be NULL if the data isn't interesting. + */ +APR_DECLARE(void) apr_hash_this(apr_hash_index_t *hi, const void **key, + apr_ssize_t *klen, void **val); + +/** + * Get the number of key/value pairs in the hash table. + * @param ht The hash table + * @return The number of key/value pairs in the hash table. + */ +APR_DECLARE(unsigned int) apr_hash_count(apr_hash_t *ht); + +/** + * Merge two hash tables into one new hash table. The values of the overlay + * hash override the values of the base if both have the same key. + * @param p The pool to use for the new hash table + * @param overlay The table to add to the initial table + * @param base The table that represents the initial values of the new table + * @return A new hash table containing all of the data from the two passed in + */ +APR_DECLARE(apr_hash_t *) apr_hash_overlay(apr_pool_t *p, + const apr_hash_t *overlay, + const apr_hash_t *base); + +/** + * Merge two hash tables into one new hash table. If the same key + * is present in both tables, call the supplied merge function to + * produce a merged value for the key in the new table. + * @param p The pool to use for the new hash table + * @param h1 The first of the tables to merge + * @param h2 The second of the tables to merge + * @param merger A callback function to merge values, or NULL to + * make values from h1 override values from h2 (same semantics as + * apr_hash_overlay()) + * @param data Client data to pass to the merger function + * @return A new hash table containing all of the data from the two passed in + */ +APR_DECLARE(apr_hash_t *) apr_hash_merge(apr_pool_t *p, + const apr_hash_t *h1, + const apr_hash_t *h2, + void * (*merger)(apr_pool_t *p, + const void *key, + apr_ssize_t klen, + const void *h1_val, + const void *h2_val, + const void *data), + const void *data); + +/** + * Get a pointer to the pool which the hash table was created in + */ +APR_POOL_DECLARE_ACCESSOR(hash); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APR_HASH_H */ diff --git a/rubbos/app/apache2/include/apr_hooks.h b/rubbos/app/apache2/include/apr_hooks.h new file mode 100644 index 00000000..73435b82 --- /dev/null +++ b/rubbos/app/apache2/include/apr_hooks.h @@ -0,0 +1,273 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_HOOKS_H +#define APR_HOOKS_H + +#include "apu.h" +/* For apr_array_header_t */ +#include "apr_tables.h" + +/** + * @file apr_hooks.h + * @brief Apache hook functions + */ + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @defgroup APR_Util_Hook Hook Functions + * @ingroup APR_Util + * @{ + */ +/** macro to return the prototype of the hook function */ +#define APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \ +link##_DECLARE(apr_array_header_t *) ns##_hook_get_##name(void) + +/** macro to declare the hook correctly */ +#define APR_DECLARE_EXTERNAL_HOOK(ns,link,ret,name,args) \ +typedef ret ns##_HOOK_##name##_t args; \ +link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf, \ + const char * const *aszPre, \ + const char * const *aszSucc, int nOrder); \ +link##_DECLARE(ret) ns##_run_##name args; \ +APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name); \ +typedef struct ns##_LINK_##name##_t \ + { \ + ns##_HOOK_##name##_t *pFunc; \ + const char *szName; \ + const char * const *aszPredecessors; \ + const char * const *aszSuccessors; \ + int nOrder; \ + } ns##_LINK_##name##_t; + +/** macro to declare the hook structure */ +#define APR_HOOK_STRUCT(members) \ +static struct { members } _hooks; + +/** macro to link the hook structure */ +#define APR_HOOK_LINK(name) \ + apr_array_header_t *link_##name; + +/** macro to implement the hook */ +#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \ +link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf,const char * const *aszPre, \ + const char * const *aszSucc,int nOrder) \ + { \ + ns##_LINK_##name##_t *pHook; \ + if(!_hooks.link_##name) \ + { \ + _hooks.link_##name=apr_array_make(apr_hook_global_pool,1,sizeof(ns##_LINK_##name##_t)); \ + apr_hook_sort_register(#name,&_hooks.link_##name); \ + } \ + pHook=apr_array_push(_hooks.link_##name); \ + pHook->pFunc=pf; \ + pHook->aszPredecessors=aszPre; \ + pHook->aszSuccessors=aszSucc; \ + pHook->nOrder=nOrder; \ + pHook->szName=apr_hook_debug_current; \ + if(apr_hook_debug_enabled) \ + apr_hook_debug_show(#name,aszPre,aszSucc); \ + } \ + APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \ + { \ + return _hooks.link_##name; \ + } + +/** + * Implement a hook that has no return code, and therefore runs all of the + * registered functions + * @param ns The namespace prefix of the hook functions + * @param link The linkage declaration prefix of the hook + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook + * @param args_use The names for the arguments for the hook + * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which + * provide export linkage from the module that IMPLEMENTs the hook, and + * import linkage from external modules that link to the hook's module. + */ +#define APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ns,link,name,args_decl,args_use) \ +APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \ +link##_DECLARE(void) ns##_run_##name args_decl \ + { \ + ns##_LINK_##name##_t *pHook; \ + int n; \ +\ + if(!_hooks.link_##name) \ + return; \ +\ + pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \ + for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \ + pHook[n].pFunc args_use; \ + } + +/* FIXME: note that this returns ok when nothing is run. I suspect it should + really return decline, but that breaks Apache currently - Ben +*/ +/** + * Implement a hook that runs until one of the functions returns something + * other than OK or DECLINE + * @param ns The namespace prefix of the hook functions + * @param link The linkage declaration prefix of the hook + * @param ret Type to return + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook + * @param args_use The names for the arguments for the hook + * @param ok Success value + * @param decline Decline value + * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which + * provide export linkage from the module that IMPLEMENTs the hook, and + * import linkage from external modules that link to the hook's module. + */ +#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \ +APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \ +link##_DECLARE(ret) ns##_run_##name args_decl \ + { \ + ns##_LINK_##name##_t *pHook; \ + int n; \ + ret rv; \ +\ + if(!_hooks.link_##name) \ + return ok; \ +\ + pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \ + for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \ + { \ + rv=pHook[n].pFunc args_use; \ +\ + if(rv != ok && rv != decline) \ + return rv; \ + } \ + return ok; \ + } + + +/** + * Implement a hook that runs until the first function returns something + * other than the value of decline + * @param ns The namespace prefix of the hook functions + * @param link The linkage declaration prefix of the hook + * @param name The name of the hook + * @param ret Type to return + * @param args_decl The declaration of the arguments for the hook + * @param args_use The names for the arguments for the hook + * @param decline Decline value + * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which + * provide export linkage from the module that IMPLEMENTs the hook, and + * import linkage from external modules that link to the hook's module. + */ +#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ns,link,ret,name,args_decl,args_use,decline) \ +APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \ +link##_DECLARE(ret) ns##_run_##name args_decl \ + { \ + ns##_LINK_##name##_t *pHook; \ + int n; \ + ret rv; \ +\ + if(!_hooks.link_##name) \ + return decline; \ +\ + pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \ + for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \ + { \ + rv=pHook[n].pFunc args_use; \ +\ + if(rv != decline) \ + return rv; \ + } \ + return decline; \ + } + + /* Hook orderings */ +/** run this hook first, before ANYTHING */ +#define APR_HOOK_REALLY_FIRST (-10) +/** run this hook first */ +#define APR_HOOK_FIRST 0 +/** run this hook somewhere */ +#define APR_HOOK_MIDDLE 10 +/** run this hook after every other hook which is defined*/ +#define APR_HOOK_LAST 20 +/** run this hook last, after EVERYTHING */ +#define APR_HOOK_REALLY_LAST 30 + +/** + * The global pool used to allocate any memory needed by the hooks. + */ +APU_DECLARE_DATA extern apr_pool_t *apr_hook_global_pool; + +/** @deprecated @see apr_hook_global_pool */ +APU_DECLARE_DATA extern apr_pool_t *apr_global_hook_pool; + +/** + * A global variable to determine if debugging information about the + * hooks functions should be printed + */ +APU_DECLARE_DATA extern int apr_hook_debug_enabled; + +/** @deprecated @see apr_hook_debug_enabled */ +APU_DECLARE_DATA extern int apr_debug_module_hooks; + +/** + * The name of the module that is currently registering a function + */ +APU_DECLARE_DATA extern const char *apr_hook_debug_current; + +/** @deprecated @see apr_hook_debug_current */ +APU_DECLARE_DATA extern const char *apr_current_hooking_module; + +/** + * Register a hook function to be sorted + * @param szHookName The name of the Hook the function is registered for + * @param aHooks The array which stores all of the functions for this hook + */ +APU_DECLARE(void) apr_hook_sort_register(const char *szHookName, + apr_array_header_t **aHooks); +/** + * Sort all of the registerd functions for a given hook + */ +APU_DECLARE(void) apr_hook_sort_all(void); + +/** @deprecated @see apr_hook_sort_all */ +APU_DECLARE(void) apr_sort_hooks(void); + +/** + * Print all of the information about the current hook. This is used for + * debugging purposes. + * @param szName The name of the hook + * @param aszPre All of the functions in the predecessor array + * @param aszSucc All of the functions in the successor array + */ +APU_DECLARE(void) apr_hook_debug_show(const char *szName, + const char * const *aszPre, + const char * const *aszSucc); + +/** @deprecated @see apr_hook_debug_show */ +APU_DECLARE(void) apr_show_hook(const char *szName, + const char * const *aszPre, + const char * const *aszSucc); + +/** + * Remove all currently registered functions. + */ +APU_DECLARE(void) apr_hook_deregister_all(void); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* APR_HOOKS_H */ diff --git a/rubbos/app/apache2/include/apr_inherit.h b/rubbos/app/apache2/include/apr_inherit.h new file mode 100644 index 00000000..b7f7480f --- /dev/null +++ b/rubbos/app/apache2/include/apr_inherit.h @@ -0,0 +1,51 @@ +/* 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. + */ + +#ifndef APR_INHERIT_H +#define APR_INHERIT_H + +/** + * @file apr_inherit.h + * @brief APR File Handle Inheritance Helpers + * @remark This internal header includes internal declaration helpers + * for other headers to declare apr_foo_inherit_[un]set functions. + */ + +/** + * Prototype for type-specific declarations of apr_foo_inherit_set + * functions. + * @remark Doxygen unwraps this macro (via doxygen.conf) to provide + * actual help for each specific occurance of apr_foo_inherit_set. + * @remark the linkage is specified for APR. It would be possible to expand + * the macros to support other linkages. + */ +#define APR_DECLARE_INHERIT_SET(type) \ + APR_DECLARE(apr_status_t) apr_##type##_inherit_set( \ + apr_##type##_t *the##type) + +/** + * Prototype for type-specific declarations of apr_foo_inherit_unset + * functions. + * @remark Doxygen unwraps this macro (via doxygen.conf) to provide + * actual help for each specific occurance of apr_foo_inherit_unset. + * @remark the linkage is specified for APR. It would be possible to expand + * the macros to support other linkages. + */ +#define APR_DECLARE_INHERIT_UNSET(type) \ + APR_DECLARE(apr_status_t) apr_##type##_inherit_unset( \ + apr_##type##_t *the##type) + +#endif /* ! APR_INHERIT_H */ diff --git a/rubbos/app/apache2/include/apr_ldap.h b/rubbos/app/apache2/include/apr_ldap.h new file mode 100644 index 00000000..fc737456 --- /dev/null +++ b/rubbos/app/apache2/include/apr_ldap.h @@ -0,0 +1,176 @@ +/* Copyright 2002-2004 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 + * + * 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. + */ + +/* + * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h + */ +/** + * @file apr_ldap.h + * @brief APR-UTIL LDAP + */ +#ifndef APU_LDAP_H +#define APU_LDAP_H + +/** + * @defgroup APR_Util_LDAP LDAP + * @ingroup APR_Util + * @{ + */ + + +/* + * This switches LDAP support on or off. + */ + +/* this will be defined if LDAP support was compiled into apr-util */ +#define APR_HAS_LDAP 0 + +/* this whole thing disappears if LDAP is not enabled */ +#if !APR_HAS_LDAP + +#define APR_HAS_NETSCAPE_LDAPSDK 0 +#define APR_HAS_NOVELL_LDAPSDK 0 +#define APR_HAS_OPENLDAP_LDAPSDK 0 +#define APR_HAS_MICROSOFT_LDAPSDK 0 +#define APR_HAS_OTHER_LDAPSDK 0 + +#define APR_HAS_LDAP_SSL 0 +#define APR_HAS_LDAP_URL_PARSE 0 + + +#else /* ldap support available */ + +#ifdef APR_NOT_READY_YET +/* FIXME: this code awaits support from apu-conf.m4 */ + + /* There a several LDAPv3 SDKs available on various platforms + * define which LDAP SDK is used + */ +#define APR_HAS_NETSCAPE_LDAPSDK @apu_has_ldap_netscape@ +#define APR_HAS_NOVELL_LDAPSDK @apu_has_ldap_novell@ +#define APR_HAS_OPENLDAP_LDAPSDK @apu_has_ldap_openldap@ +#define APR_HAS_MICROSOFT_LDAPSDK @apu_has_ldap_microsoft@ +#define APR_HAS_OTHER_LDAPSDK @apu_has_ldap_other@ + + /* define if LDAP SSL support is available + */ +#define APR_HAS_LDAP_SSL @apu_has_ldap_ssl@ + +#else /* APR_NOT_READY_YET */ + +/* FIXME: remove this when above code works. Default to build with + * OpenLDAP until apu-conf.m4 support exists */ +#define APR_HAS_OPENLDAP_LDAPSDK 1 +#define APR_HAS_LDAP_SSL 1 + +#endif /* APR_NOT_READY_YET */ + + /* If no APR_HAS_xxx_LDAPSDK is defined error out + * Define if the SDK supports the ldap_url_parse function + */ +#if APR_HAS_NETSCAPE_LDAPSDK + #define APR_HAS_LDAP_URL_PARSE 1 +#elif APR_HAS_NOVELL_LDAPSDK + #define APR_HAS_LDAP_URL_PARSE 1 +#elif APR_HAS_OPENLDAP_LDAPSDK + #define APR_HAS_LDAP_URL_PARSE 1 +#elif APR_HAS_MICROSOFT_LDAPSDK + #define APR_HAS_LDAP_URL_PARSE 0 +#elif APR_HAS_OTHER_LDAPSDK + #define APR_HAS_LDAP_URL_PARSE 0 +#else + #define APR_HAS_LDAP_URL_PARSE 0 + #error "ERROR no LDAP SDK defined!" +#endif + +/* These are garbage, our public macros are always APR_HAS_ prefixed, + * and use 0/1 values, not defined/undef semantics. + * + * Will be deprecated in APR 1.0 + */ +#if APR_HAS_LDAP +#define APU_HAS_LDAP +#endif + +/* LDAP header files */ + +#if APR_HAS_NETSCAPE_LDAPSDK + + +#if APR_HAS_LDAP_SSL + +#endif +#endif + +#if APR_HAS_NOVELL_LDAPSDK + + +#if APR_HAS_LDAP_SSL + +#endif +#endif + +#if APR_HAS_OPENLDAP_LDAPSDK +#if !defined(LDAP_DEPRECATED) +/* Ensure that the "deprecated" interfaces are still exposed + * with OpenLDAP >= 2.3; these were exposed by default in earlier + * releases. */ +#define LDAP_DEPRECATED 1 +#endif + + +#endif + +/* MS & v2 LDAP SDKs don't use const parameters in their prototypes, + * LDAPv3 SDKs mostly use const. Bridge the gap for clean compilation. + */ + +#if LDAP_VERSION_MAX <= 2 || APR_HAS_MICROSOFT_LDAPSDK || defined(DOXYGEN) +/** + * Cast away constness to compile cleanly against v2 and MS LDAP SDKs + * @param conststr The value to un-constify on older LDAP SDKs + */ +#define APR_LDAP_UNCONST(conststr) ((char *)(conststr)) +#else +#define APR_LDAP_UNCONST(conststr) (conststr) +#endif + +#ifndef __cplusplus +/** + * Cast away constness to compile against v2 and MS LDAP SDKs + * @param conststr The value to un-constify on older LDAP SDKs + * @bug The apr_ldap.h macro const_cast violated three rules; + * it was a C++ reserved keyword, it violated the uppercase-only + * style guideline for apr macros, and it was not namespace protected. + * It exists here soley to avoid breaking legacy sources using APR 0.9. + * @deprecated @see APR_LDAP_UNCONST + */ +#define const_cast(conststr) APR_LDAP_UNCONST(conststr) +#endif + +#include "apr_ldap_url.h" + +/* Define some errors that are mysteriously gone from OpenLDAP 2.x */ +#ifndef LDAP_URL_ERR_NOTLDAP +#define LDAP_URL_ERR_NOTLDAP LDAP_URL_ERR_BADSCHEME +#endif + +#ifndef LDAP_URL_ERR_NODN +#define LDAP_URL_ERR_NODN LDAP_URL_ERR_BADURL +#endif + +/** @} */ +#endif /* APR_HAS_LDAP */ +#endif /* APU_LDAP_H */ diff --git a/rubbos/app/apache2/include/apr_ldap_url.h b/rubbos/app/apache2/include/apr_ldap_url.h new file mode 100644 index 00000000..b1813830 --- /dev/null +++ b/rubbos/app/apache2/include/apr_ldap_url.h @@ -0,0 +1,84 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_LDAP_URL_H +#define APR_LDAP_URL_H + +#include "apr_ldap.h" + +#if APR_HAS_LDAP +#if APR_HAS_LDAP_URL_PARSE + +#define apr_ldap_url_desc_t LDAPURLDesc +#define apr_ldap_is_ldap_url(url) ldap_is_ldap_url(url) +#define apr_ldap_is_ldaps_url(url) ldap_is_ldaps_url(url) +#define apr_ldap_is_ldapi_url(url) ldap_is_ldapi_url(url) +#define apr_ldap_url_parse(url, ludpp) ldap_url_parse(url, ludpp) +#define apr_ldap_free_urldesc(ludp) ldap_free_urldesc(ludp) + +#else /* ! APR_HAS_LDAP_URL_PARSE */ + +/* + * types for ldap URL handling + */ +typedef struct apr_ldap_url_desc_t { + struct apr_ldap_url_desc_t *lud_next; + char *lud_scheme; + char *lud_host; + int lud_port; + char *lud_dn; + char **lud_attrs; + int lud_scope; + char *lud_filter; + char **lud_exts; + int lud_crit_exts; +} apr_ldap_url_desc_t; + +#ifndef LDAP_URL_SUCCESS +#define LDAP_URL_SUCCESS 0x00 /* Success */ +#define LDAP_URL_ERR_MEM 0x01 /* can't allocate memory space */ +#define LDAP_URL_ERR_PARAM 0x02 /* parameter is bad */ +#define LDAP_URL_ERR_BADSCHEME 0x03 /* URL doesn't begin with "ldap[si]://" */ +#define LDAP_URL_ERR_BADENCLOSURE 0x04 /* URL is missing trailing ">" */ +#define LDAP_URL_ERR_BADURL 0x05 /* URL is bad */ +#define LDAP_URL_ERR_BADHOST 0x06 /* host port is bad */ +#define LDAP_URL_ERR_BADATTRS 0x07 /* bad (or missing) attributes */ +#define LDAP_URL_ERR_BADSCOPE 0x08 /* scope string is invalid (or missing) */ +#define LDAP_URL_ERR_BADFILTER 0x09 /* bad or missing filter */ +#define LDAP_URL_ERR_BADEXTS 0x0a /* bad or missing extensions */ +#endif + +/* + * in url.c + * + * need _ext varients + */ +APU_DECLARE(int) apr_ldap_is_ldap_url(const char *url); + +APU_DECLARE(int) apr_ldap_is_ldaps_url(const char *url); + +APU_DECLARE(int) apr_ldap_is_ldapi_url(const char *url); + +APU_DECLARE(int) apr_ldap_url_parse(const char *url, + apr_ldap_url_desc_t **ludpp); + +APU_DECLARE(void) apr_ldap_free_urldesc(apr_ldap_url_desc_t *ludp); + +#endif /* ! APR_HAS_LDAP_URL_PARSE */ + +#endif /* APR_HAS_LDAP */ + +#endif /* APR_LDAP_URL_H */ diff --git a/rubbos/app/apache2/include/apr_lib.h b/rubbos/app/apache2/include/apr_lib.h new file mode 100644 index 00000000..2d9ce534 --- /dev/null +++ b/rubbos/app/apache2/include/apr_lib.h @@ -0,0 +1,228 @@ +/* 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. + */ + +#ifndef APR_LIB_H +#define APR_LIB_H + +/** + * @file apr_lib.h + * This is collection of oddballs that didn't fit anywhere else, + * and might move to more appropriate headers with the release + * of APR 1.0. + * @brief APR general purpose library routines + */ + +#include "apr.h" +#include "apr_errno.h" + +#if APR_HAVE_CTYPE_H +#include +#endif +#if APR_HAVE_STDARG_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_lib General Purpose Library Routines + * @ingroup APR + * This is collection of oddballs that didn't fit anywhere else, + * and might move to more appropriate headers with the release + * of APR 1.0. + * @{ + */ + +/** A constant representing a 'large' string. */ +#define HUGE_STRING_LEN 8192 + +/* + * Define the structures used by the APR general-purpose library. + */ + +/** @see apr_vformatter_buff_t */ +typedef struct apr_vformatter_buff_t apr_vformatter_buff_t; + +/** + * Structure used by the variable-formatter routines. + */ +struct apr_vformatter_buff_t { + /** The current position */ + char *curpos; + /** The end position of the format string */ + char *endpos; +}; + +/** + * return the final element of the pathname + * @param pathname The path to get the final element of + * @return the final element of the path + * @remark + *
+ * For example:
+ *                 "/foo/bar/gum"    -> "gum"
+ *                 "/foo/bar/gum/"   -> ""
+ *                 "gum"             -> "gum"
+ *                 "bs\\path\\stuff" -> "stuff"
+ * 
+ */ +APR_DECLARE(const char *) apr_filepath_name_get(const char *pathname); + +/** @deprecated @see apr_filepath_name_get */ +APR_DECLARE(const char *) apr_filename_of_pathname(const char *pathname); + +/** + * apr_killpg + * Small utility macros to make things easier to read. Not usually a + * goal, to be sure.. + */ + +#ifdef WIN32 +#define apr_killpg(x, y) +#else /* WIN32 */ +#ifdef NO_KILLPG +#define apr_killpg(x, y) (kill (-(x), (y))) +#else /* NO_KILLPG */ +#define apr_killpg(x, y) (killpg ((x), (y))) +#endif /* NO_KILLPG */ +#endif /* WIN32 */ + +/** + * apr_vformatter() is a generic printf-style formatting routine + * with some extensions. + * @param flush_func The function to call when the buffer is full + * @param c The buffer to write to + * @param fmt The format string + * @param ap The arguments to use to fill out the format string. + * + * @remark + *
+ * The extensions are:
+ *
+ * %%pA	takes a struct in_addr *, and prints it as a.b.c.d
+ * %%pI	takes an apr_sockaddr_t * and prints it as a.b.c.d:port or
+ *      [ipv6-address]:port
+ * %%pT takes an apr_os_thread_t * and prints it in decimal
+ *      ('0' is printed if !APR_HAS_THREADS)
+ * %%pp takes a void * and outputs it in hex
+ *
+ * The %%p hacks are to force gcc's printf warning code to skip
+ * over a pointer argument without complaining.  This does
+ * mean that the ANSI-style %%p (output a void * in hex format) won't
+ * work as expected at all, but that seems to be a fair trade-off
+ * for the increased robustness of having printf-warnings work.
+ *
+ * Additionally, apr_vformatter allows for arbitrary output methods
+ * using the apr_vformatter_buff and flush_func.
+ *
+ * The apr_vformatter_buff has two elements curpos and endpos.
+ * curpos is where apr_vformatter will write the next byte of output.
+ * It proceeds writing output to curpos, and updating curpos, until
+ * either the end of output is reached, or curpos == endpos (i.e. the
+ * buffer is full).
+ *
+ * If the end of output is reached, apr_vformatter returns the
+ * number of bytes written.
+ *
+ * When the buffer is full, the flush_func is called.  The flush_func
+ * can return -1 to indicate that no further output should be attempted,
+ * and apr_vformatter will return immediately with -1.  Otherwise
+ * the flush_func should flush the buffer in whatever manner is
+ * appropriate, re apr_pool_t nitialize curpos and endpos, and return 0.
+ *
+ * Note that flush_func is only invoked as a result of attempting to
+ * write another byte at curpos when curpos >= endpos.  So for
+ * example, it's possible when the output exactly matches the buffer
+ * space available that curpos == endpos will be true when
+ * apr_vformatter returns.
+ *
+ * apr_vformatter does not call out to any other code, it is entirely
+ * self-contained.  This allows the callers to do things which are
+ * otherwise "unsafe".  For example, apr_psprintf uses the "scratch"
+ * space at the unallocated end of a block, and doesn't actually
+ * complete the allocation until apr_vformatter returns.  apr_psprintf
+ * would be completely broken if apr_vformatter were to call anything
+ * that used this same pool.  Similarly http_bprintf() uses the "scratch"
+ * space at the end of its output buffer, and doesn't actually note
+ * that the space is in use until it either has to flush the buffer
+ * or until apr_vformatter returns.
+ * 
+ */ +APR_DECLARE(int) apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *b), + apr_vformatter_buff_t *c, const char *fmt, + va_list ap); + +/** + * Display a prompt and read in the password from stdin. + * @param prompt The prompt to display + * @param pwbuf Buffer to store the password + * @param bufsize The length of the password buffer. + */ +APR_DECLARE(apr_status_t) apr_password_get(const char *prompt, char *pwbuf, + apr_size_t *bufsize); + +/** @} */ + +/** + * @defgroup apr_ctype ctype functions + * These macros allow correct support of 8-bit characters on systems which + * support 8-bit characters. Pretty dumb how the cast is required, but + * that's legacy libc for ya. These new macros do not support EOF like + * the standard macros do. Tough. + * @{ + */ +/** @see isalnum */ +#define apr_isalnum(c) (isalnum(((unsigned char)(c)))) +/** @see isalpha */ +#define apr_isalpha(c) (isalpha(((unsigned char)(c)))) +/** @see iscntrl */ +#define apr_iscntrl(c) (iscntrl(((unsigned char)(c)))) +/** @see isdigit */ +#define apr_isdigit(c) (isdigit(((unsigned char)(c)))) +/** @see isgraph */ +#define apr_isgraph(c) (isgraph(((unsigned char)(c)))) +/** @see islower*/ +#define apr_islower(c) (islower(((unsigned char)(c)))) +/** @see isascii */ +#ifdef isascii +#define apr_isascii(c) (isascii(((unsigned char)(c)))) +#else +#define apr_isascii(c) (((c) & ~0x7f)==0) +#endif +/** @see isprint */ +#define apr_isprint(c) (isprint(((unsigned char)(c)))) +/** @see ispunct */ +#define apr_ispunct(c) (ispunct(((unsigned char)(c)))) +/** @see isspace */ +#define apr_isspace(c) (isspace(((unsigned char)(c)))) +/** @see isupper */ +#define apr_isupper(c) (isupper(((unsigned char)(c)))) +/** @see isxdigit */ +#define apr_isxdigit(c) (isxdigit(((unsigned char)(c)))) +/** @see tolower */ +#define apr_tolower(c) (tolower(((unsigned char)(c)))) +/** @see toupper */ +#define apr_toupper(c) (toupper(((unsigned char)(c)))) + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_LIB_H */ diff --git a/rubbos/app/apache2/include/apr_md4.h b/rubbos/app/apache2/include/apr_md4.h new file mode 100644 index 00000000..42d108df --- /dev/null +++ b/rubbos/app/apache2/include/apr_md4.h @@ -0,0 +1,135 @@ +/* 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 + * + * 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. + */ +/* This is derived from material copyright RSA Data Security, Inc. + * Their notice is reproduced below in its entirety. + * + * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All + * rights reserved. + * + * License to copy and use this software is granted provided that it + * is identified as the "RSA Data Security, Inc. MD4 Message-Digest + * Algorithm" in all material mentioning or referencing this software + * or this function. + * + * License is also granted to make and use derivative works provided + * that such works are identified as "derived from the RSA Data + * Security, Inc. MD4 Message-Digest Algorithm" in all material + * mentioning or referencing the derived work. + * + * RSA Data Security, Inc. makes no representations concerning either + * the merchantability of this software or the suitability of this + * software for any particular purpose. It is provided "as is" + * without express or implied warranty of any kind. + * + * These notices must be retained in any copies of any part of this + * documentation and/or software. + */ + +#ifndef APR_MD4_H +#define APR_MD4_H + +#include "apu.h" +#include "apr_xlate.h" +/** + * @file apr_md4.h + * @brief APR-UTIL MD4 Library + */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_MD4 MD4 Library + * @ingroup APR_Util + * @{ + */ + +/** The digestsize for MD4 */ +#define APR_MD4_DIGESTSIZE 16 + +/** @see apr_md4_ctx_t */ +typedef struct apr_md4_ctx_t apr_md4_ctx_t; + +/** MD4 context. */ +struct apr_md4_ctx_t { + /** state (ABCD) */ + apr_uint32_t state[4]; + /** number of bits, modulo 2^64 (lsb first) */ + apr_uint32_t count[2]; + /** input buffer */ + unsigned char buffer[64]; +#if APR_HAS_XLATE + /** translation handle */ + apr_xlate_t *xlate; +#endif +}; + +/** + * MD4 Initialize. Begins an MD4 operation, writing a new context. + * @param context The MD4 context to initialize. + */ +APU_DECLARE(apr_status_t) apr_md4_init(apr_md4_ctx_t *context); + +#if APR_HAS_XLATE +/** + * MDr4 translation setup. Provides the APR translation handle to be used + * for translating the content before calculating the digest. + * @param context The MD4 content to set the translation for. + * @param xlate The translation handle to use for this MD4 context + */ +APU_DECLARE(apr_status_t) apr_md4_set_xlate(apr_md4_ctx_t *context, + apr_xlate_t *xlate); +#else +#define apr_md4_set_xlate(context, xlate) APR_ENOTIMPL +#endif + +/** + * MD4 block update operation. Continue an MD4 message-digest operation, + * processing another message block, and updating the context. + * @param context The MD4 content to update. + * @param input next message block to update + * @param inputLen The length of the next message block + */ +APU_DECLARE(apr_status_t) apr_md4_update(apr_md4_ctx_t *context, + const unsigned char *input, + apr_size_t inputLen); + +/** + * MD4 finalization. Ends an MD4 message-digest operation, writing the + * message digest and zeroing the context + * @param digest The final MD4 digest + * @param context The MD4 content we are finalizing. + */ +APU_DECLARE(apr_status_t) apr_md4_final( + unsigned char digest[APR_MD4_DIGESTSIZE], + apr_md4_ctx_t *context); + +/** + * MD4 digest computation + * @param digest The MD4 digest + * @param input message block to use + * @param inputLen The length of the message block + */ +APU_DECLARE(apr_status_t) apr_md4(unsigned char digest[APR_MD4_DIGESTSIZE], + const unsigned char *input, + apr_size_t inputLen); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_MD4_H */ diff --git a/rubbos/app/apache2/include/apr_md5.h b/rubbos/app/apache2/include/apr_md5.h new file mode 100644 index 00000000..83b6171a --- /dev/null +++ b/rubbos/app/apache2/include/apr_md5.h @@ -0,0 +1,158 @@ +/* + * This is work is derived from material Copyright RSA Data Security, Inc. + * + * The RSA copyright statement and Licence for that original material is + * included below. This is followed by the Apache copyright statement and + * licence for the modifications made to that material. + */ + +/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All + rights reserved. + + License to copy and use this software is granted provided that it + is identified as the "RSA Data Security, Inc. MD5 Message-Digest + Algorithm" in all material mentioning or referencing this software + or this function. + + License is also granted to make and use derivative works provided + that such works are identified as "derived from the RSA Data + Security, Inc. MD5 Message-Digest Algorithm" in all material + mentioning or referencing the derived work. + + RSA Data Security, Inc. makes no representations concerning either + the merchantability of this software or the suitability of this + software for any particular purpose. It is provided "as is" + without express or implied warranty of any kind. + + These notices must be retained in any copies of any part of this + documentation and/or software. + */ + +/* 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 + * + * 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. + */ + +#ifndef APR_MD5_H +#define APR_MD5_H + +#include "apu.h" +#include "apr_xlate.h" + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @file apr_md5.h + * @brief APR MD5 Routines + */ + +/** + * @defgroup APR_MD5 MD5 Routines + * @ingroup APR + * @{ + */ + +/** The MD5 digest size */ +#define APR_MD5_DIGESTSIZE 16 +#define MD5_DIGESTSIZE APR_MD5_DIGESTSIZE /**< @deprecated */ + +/** @see apr_md5_ctx_t */ +typedef struct apr_md5_ctx_t apr_md5_ctx_t; + +/** MD5 context. */ +struct apr_md5_ctx_t { + /** state (ABCD) */ + apr_uint32_t state[4]; + /** number of bits, modulo 2^64 (lsb first) */ + apr_uint32_t count[2]; + /** input buffer */ + unsigned char buffer[64]; + /** translation handle + * ignored if xlate is unsupported + */ + apr_xlate_t *xlate; +}; + +/** + * MD5 Initialize. Begins an MD5 operation, writing a new context. + * @param context The MD5 context to initialize. + */ +APU_DECLARE(apr_status_t) apr_md5_init(apr_md5_ctx_t *context); + +/** + * MD5 translation setup. Provides the APR translation handle to be used + * for translating the content before calculating the digest. + * @param context The MD5 content to set the translation for. + * @param xlate The translation handle to use for this MD5 context + */ +APU_DECLARE(apr_status_t) apr_md5_set_xlate(apr_md5_ctx_t *context, + apr_xlate_t *xlate); + +/** + * MD5 block update operation. Continue an MD5 message-digest operation, + * processing another message block, and updating the context. + * @param context The MD5 content to update. + * @param input next message block to update + * @param inputLen The length of the next message block + */ +APU_DECLARE(apr_status_t) apr_md5_update(apr_md5_ctx_t *context, + const void *input, + apr_size_t inputLen); + +/** + * MD5 finalization. Ends an MD5 message-digest operation, writing the + * message digest and zeroing the context + * @param digest The final MD5 digest + * @param context The MD5 content we are finalizing. + */ +APU_DECLARE(apr_status_t) apr_md5_final(unsigned char digest[APR_MD5_DIGESTSIZE], + apr_md5_ctx_t *context); + +/** + * MD5 in one step + * @param digest The final MD5 digest + * @param input The message block to use + * @param inputLen The length of the message block + */ +APU_DECLARE(apr_status_t) apr_md5(unsigned char digest[APR_MD5_DIGESTSIZE], + const void *input, + apr_size_t inputLen); + +/** + * Encode a password using an MD5 algorithm + * @param password The password to encode + * @param salt The salt to use for the encoding + * @param result The string to store the encoded password in + * @param nbytes The length of the string + */ +APU_DECLARE(apr_status_t) apr_md5_encode(const char *password, const char *salt, + char *result, apr_size_t nbytes); + + +/** + * Validate any password encypted with any algorithm that APR understands + * @param passwd The password to validate + * @param hash The password to validate against + */ +APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd, + const char *hash); + + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_MD5_H */ diff --git a/rubbos/app/apache2/include/apr_mmap.h b/rubbos/app/apache2/include/apr_mmap.h new file mode 100644 index 00000000..3070acca --- /dev/null +++ b/rubbos/app/apache2/include/apr_mmap.h @@ -0,0 +1,193 @@ +/* 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. + */ + +#ifndef APR_MMAP_H +#define APR_MMAP_H + +/** + * @file apr_mmap.h + * @brief APR MMAP routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" +#include "apr_ring.h" +#include "apr_file_io.h" /* for apr_file_t */ + +#ifdef BEOS +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_mmap MMAP (Memory Map) Routines + * @ingroup APR + * @{ + */ + +/** MMap opened for reading */ +#define APR_MMAP_READ 1 +/** MMap opened for writing */ +#define APR_MMAP_WRITE 2 + +/** @see apr_mmap_t */ +typedef struct apr_mmap_t apr_mmap_t; + +/** + * @remark + * As far as I can tell the only really sane way to store an MMAP is as a + * void * and a length. BeOS requires this area_id, but that's just a little + * something extra. I am exposing this type, because it doesn't make much + * sense to keep it private, and opening it up makes some stuff easier in + * Apache. + */ +/** The MMAP structure */ +struct apr_mmap_t { + /** The pool the mmap structure was allocated out of. */ + apr_pool_t *cntxt; +#ifdef BEOS + /** An area ID. Only valid on BeOS */ + area_id area; +#endif +#ifdef WIN32 + /** The handle of the file mapping */ + HANDLE mhandle; + /** The start of the real memory page area (mapped view) */ + void *mv; + /** The physical start, size and offset */ + apr_off_t pstart; + apr_size_t psize; + apr_off_t poffset; +#endif + /** The start of the memory mapped area */ + void *mm; + /** The amount of data in the mmap */ + apr_size_t size; + /** @deprecated this field is no longer used and will be removed + * in APR 1.0 */ + int unused; + /** ring of apr_mmap_t's that reference the same + * mmap'ed region; acts in place of a reference count */ + APR_RING_ENTRY(apr_mmap_t) link; +}; + +#if APR_HAS_MMAP || defined(DOXYGEN) + +/** @def APR_MMAP_THRESHOLD + * Files have to be at least this big before they're mmap()d. This is to deal + * with systems where the expense of doing an mmap() and an munmap() outweighs + * the benefit for small files. It shouldn't be set lower than 1. + */ +#ifdef MMAP_THRESHOLD +# define APR_MMAP_THRESHOLD MMAP_THRESHOLD +#else +# ifdef SUNOS4 +# define APR_MMAP_THRESHOLD (8*1024) +# else +# define APR_MMAP_THRESHOLD 1 +# endif /* SUNOS4 */ +#endif /* MMAP_THRESHOLD */ + +/** @def APR_MMAP_LIMIT + * Maximum size of MMap region + */ +#ifdef MMAP_LIMIT +# define APR_MMAP_LIMIT MMAP_LIMIT +#else +# define APR_MMAP_LIMIT (4*1024*1024) +#endif /* MMAP_LIMIT */ + +/** Can this file be MMaped */ +#define APR_MMAP_CANDIDATE(filelength) \ + ((filelength >= APR_MMAP_THRESHOLD) && (filelength < APR_MMAP_LIMIT)) + +/* Function definitions */ + +/** + * Create a new mmap'ed file out of an existing APR file. + * @param newmmap The newly created mmap'ed file. + * @param file The file turn into an mmap. + * @param offset The offset into the file to start the data pointer at. + * @param size The size of the file + * @param flag bit-wise or of: + *
+ *          APR_MMAP_READ       MMap opened for reading
+ *          APR_MMAP_WRITE      MMap opened for writing
+ * 
+ * @param cntxt The pool to use when creating the mmap. + */ +APR_DECLARE(apr_status_t) apr_mmap_create(apr_mmap_t **newmmap, + apr_file_t *file, apr_off_t offset, + apr_size_t size, apr_int32_t flag, + apr_pool_t *cntxt); + +/** + * Duplicate the specified MMAP. + * @param new_mmap The structure to duplicate into. + * @param old_mmap The mmap to duplicate. + * @param p The pool to use for new_mmap. + * @param transfer_ownership DEPRECATED: this param is now ignored + * and should be removed prior to APR 1.0 + */ +APR_DECLARE(apr_status_t) apr_mmap_dup(apr_mmap_t **new_mmap, + apr_mmap_t *old_mmap, + apr_pool_t *p, + int transfer_ownership); + +#if defined(DOXYGEN) +/** + * Transfer the specified MMAP to a different pool + * @param new_mmap The structure to duplicate into. + * @param old_mmap The file to transfer. + * @param p The pool to use for new_mmap. + * @deprecated Just use apr_mmap_dup(). The transfer_ownership flag will + * go away soon anyway. + */ +APR_DECLARE(apr_status_t) apr_mmap_setaside(apr_mmap_t **new_mmap, + apr_mmap_t *old_mmap, + apr_pool_t *p); +#else +#define apr_mmap_setaside(new_mmap, old_mmap, p) apr_mmap_dup(new_mmap, old_mmap, p, 1) +#endif /* DOXYGEN */ + +/** + * Remove a mmap'ed. + * @param mm The mmap'ed file. + */ +APR_DECLARE(apr_status_t) apr_mmap_delete(apr_mmap_t *mm); + +/** + * Move the pointer into the mmap'ed file to the specified offset. + * @param addr The pointer to the offset specified. + * @param mm The mmap'ed file. + * @param offset The offset to move to. + */ +APR_DECLARE(apr_status_t) apr_mmap_offset(void **addr, apr_mmap_t *mm, + apr_off_t offset); + +#endif /* APR_HAS_MMAP */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_MMAP_H */ diff --git a/rubbos/app/apache2/include/apr_network_io.h b/rubbos/app/apache2/include/apr_network_io.h new file mode 100644 index 00000000..2bc6ef1e --- /dev/null +++ b/rubbos/app/apache2/include/apr_network_io.h @@ -0,0 +1,845 @@ +/* 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. + */ + +#ifndef APR_NETWORK_IO_H +#define APR_NETWORK_IO_H +/** + * @file apr_network_io.h + * @brief APR Network library + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_file_io.h" +#include "apr_errno.h" +#include "apr_inherit.h" + +#if APR_HAVE_NETINET_IN_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_network_io Network Routines + * @ingroup APR + * @{ + */ + +#ifndef APR_MAX_SECS_TO_LINGER +/** Maximum seconds to linger */ +#define APR_MAX_SECS_TO_LINGER 30 +#endif + +#ifndef MAX_SECS_TO_LINGER +/** @deprecated @see APR_MAX_SECS_TO_LINGER */ +#define MAX_SECS_TO_LINGER APR_MAX_SECS_TO_LINGER +#endif + +#ifndef APRMAXHOSTLEN +/** Maximum hostname length */ +#define APRMAXHOSTLEN 256 +#endif + +#ifndef APR_ANYADDR +/** Default 'any' address */ +#define APR_ANYADDR "0.0.0.0" +#endif + +/** + * @defgroup apr_sockopt Socket option definitions + * @{ + */ +#define APR_SO_LINGER 1 /**< Linger */ +#define APR_SO_KEEPALIVE 2 /**< Keepalive */ +#define APR_SO_DEBUG 4 /**< Debug */ +#define APR_SO_NONBLOCK 8 /**< Non-blocking IO */ +#define APR_SO_REUSEADDR 16 /**< Reuse addresses */ +#define APR_SO_TIMEOUT 32 /**< Timeout */ +#define APR_SO_SNDBUF 64 /**< Send buffer */ +#define APR_SO_RCVBUF 128 /**< Receive buffer */ +#define APR_SO_DISCONNECTED 256 /**< Disconnected */ +#define APR_TCP_NODELAY 512 /**< For SCTP sockets, this is mapped + * to STCP_NODELAY internally. + */ +#define APR_TCP_NOPUSH 1024 /**< No push */ +#define APR_RESET_NODELAY 2048 /**< This flag is ONLY set internally + * when we set APR_TCP_NOPUSH with + * APR_TCP_NODELAY set to tell us that + * APR_TCP_NODELAY should be turned on + * again when NOPUSH is turned off + */ +#define APR_INCOMPLETE_READ 4096 /**< Set on non-blocking sockets + * (timeout != 0) on which the + * previous read() did not fill a buffer + * completely. the next apr_socket_recv() + * will first call select()/poll() rather than + * going straight into read(). (Can also + * be set by an application to force a + * select()/poll() call before the next + * read, in cases where the app expects + * that an immediate read would fail.) + */ +#define APR_INCOMPLETE_WRITE 8192 /**< like APR_INCOMPLETE_READ, but for write + * @see APR_INCOMPLETE_READ + */ +#define APR_IPV6_V6ONLY 16384 /**< Don't accept IPv4 connections on an + * IPv6 listening socket. + */ + +/** @} */ + +/** Define what type of socket shutdown should occur. */ +typedef enum { + APR_SHUTDOWN_READ, /**< no longer allow read request */ + APR_SHUTDOWN_WRITE, /**< no longer allow write requests */ + APR_SHUTDOWN_READWRITE /**< no longer allow read or write requests */ +} apr_shutdown_how_e; + +#define APR_IPV4_ADDR_OK 0x01 /**< @see apr_sockaddr_info_get() */ +#define APR_IPV6_ADDR_OK 0x02 /**< @see apr_sockaddr_info_get() */ + +#if (!APR_HAVE_IN_ADDR) +/** + * We need to make sure we always have an in_addr type, so APR will just + * define it ourselves, if the platform doesn't provide it. + */ +struct in_addr { + apr_uint32_t s_addr; /**< storage to hold the IP# */ +}; +#endif + +/** + * @def APR_INET + * Not all platforms have these defined, so we'll define them here + * The default values come from FreeBSD 4.1.1 + */ +#define APR_INET AF_INET +/** @def APR_UNSPEC + * Let the system decide which address family to use + */ +#ifdef AF_UNSPEC +#define APR_UNSPEC AF_UNSPEC +#else +#define APR_UNSPEC 0 +#endif +#if APR_HAVE_IPV6 +#define APR_INET6 AF_INET6 +#endif + +/** + * @defgroup IP_Proto IP Protocol Definitions for use when creating sockets + * @{ + */ +#define APR_PROTO_TCP 6 /**< TCP */ +#define APR_PROTO_UDP 17 /**< UDP */ +#define APR_PROTO_SCTP 132 /**< SCTP */ +/** @} */ + +/** + * Enum to tell us if we're interested in remote or local socket + */ +typedef enum { + APR_LOCAL, + APR_REMOTE +} apr_interface_e; + +/** + * The specific declaration of inet_addr's ... some platforms fall back + * inet_network (this is not good, but necessary) + */ + +#if APR_HAVE_INET_ADDR +#define apr_inet_addr inet_addr +#elif APR_HAVE_INET_NETWORK /* only DGUX, as far as I know */ +/** + * @warning + * not generally safe... inet_network() and inet_addr() perform + * different functions */ +#define apr_inet_addr inet_network +#endif + +/** A structure to represent sockets */ +typedef struct apr_socket_t apr_socket_t; +/** + * A structure to encapsulate headers and trailers for apr_socket_sendfile + */ +typedef struct apr_hdtr_t apr_hdtr_t; +/** A structure to represent in_addr */ +typedef struct in_addr apr_in_addr_t; +/** A structure to represent an IP subnet */ +typedef struct apr_ipsubnet_t apr_ipsubnet_t; + +/** @remark use apr_uint16_t just in case some system has a short that isn't 16 bits... */ +typedef apr_uint16_t apr_port_t; + +/** @remark It's defined here as I think it should all be platform safe... + * @see apr_sockaddr_t + */ +typedef struct apr_sockaddr_t apr_sockaddr_t; +/** + * APRs socket address type, used to ensure protocol independence + */ +struct apr_sockaddr_t { + /** The pool to use... */ + apr_pool_t *pool; + /** The hostname */ + char *hostname; + /** Either a string of the port number or the service name for the port */ + char *servname; + /** The numeric port */ + apr_port_t port; + /** The family */ + apr_int32_t family; + /** Union of either IPv4 or IPv6 sockaddr. */ + union { + /** IPv4 sockaddr structure */ + struct sockaddr_in sin; +#if APR_HAVE_IPV6 + /** IPv6 sockaddr structure */ + struct sockaddr_in6 sin6; +#endif + } sa; + /** How big is the sockaddr we're using? */ + apr_socklen_t salen; + /** How big is the ip address structure we're using? */ + int ipaddr_len; + /** How big should the address buffer be? 16 for v4 or 46 for v6 + * used in inet_ntop... */ + int addr_str_len; + /** This points to the IP address structure within the appropriate + * sockaddr structure. */ + void *ipaddr_ptr; + /** If multiple addresses were found by apr_sockaddr_info_get(), this + * points to a representation of the next address. */ + apr_sockaddr_t *next; +}; + +#if APR_HAS_SENDFILE +/** + * Support reusing the socket on platforms which support it (from disconnect, + * specifically Win32. + * @remark Optional flag passed into apr_socket_sendfile() + */ +#define APR_SENDFILE_DISCONNECT_SOCKET 1 +#endif + +/** A structure to encapsulate headers and trailers for apr_socket_sendfile */ +struct apr_hdtr_t { + /** An iovec to store the headers sent before the file. */ + struct iovec* headers; + /** number of headers in the iovec */ + int numheaders; + /** An iovec to store the trailers sent after the file. */ + struct iovec* trailers; + /** number of trailers in the iovec */ + int numtrailers; +}; + +/* function definitions */ + +/** + * Create a socket. + * @remark With APR 1.0, this function follows the prototype + * of apr_socket_create_ex. + * @param new_sock The new socket that has been set up. + * @param family The address family of the socket (e.g., APR_INET). + * @param type The type of the socket (e.g., SOCK_STREAM). + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_socket_create(apr_socket_t **new_sock, + int family, int type, + apr_pool_t *cont); + +/** + * Create a socket. + * @remark With APR 1.0, this function is deprecated and apr_socket_create + * follows this prototype. + * @param new_sock The new socket that has been set up. + * @param family The address family of the socket (e.g., APR_INET). + * @param type The type of the socket (e.g., SOCK_STREAM). + * @param protocol The protocol of the socket (e.g., APR_PROTO_TCP). + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_socket_create_ex(apr_socket_t **new_sock, + int family, int type, + int protocol, + apr_pool_t *cont); + +/** + * Shutdown either reading, writing, or both sides of a socket. + * @param thesocket The socket to close + * @param how How to shutdown the socket. One of: + *
+ *            APR_SHUTDOWN_READ         no longer allow read requests
+ *            APR_SHUTDOWN_WRITE        no longer allow write requests
+ *            APR_SHUTDOWN_READWRITE    no longer allow read or write requests 
+ * 
+ * @see apr_shutdown_how_e + * @remark This does not actually close the socket descriptor, it just + * controls which calls are still valid on the socket. + */ +APR_DECLARE(apr_status_t) apr_socket_shutdown(apr_socket_t *thesocket, + apr_shutdown_how_e how); + +/** @deprecated @see apr_socket_shutdown */ +APR_DECLARE(apr_status_t) apr_shutdown(apr_socket_t *thesocket, + apr_shutdown_how_e how); + +/** + * Close a socket. + * @param thesocket The socket to close + */ +APR_DECLARE(apr_status_t) apr_socket_close(apr_socket_t *thesocket); + +/** + * Bind the socket to its associated port + * @param sock The socket to bind + * @param sa The socket address to bind to + * @remark This may be where we will find out if there is any other process + * using the selected port. + */ +APR_DECLARE(apr_status_t) apr_socket_bind(apr_socket_t *sock, + apr_sockaddr_t *sa); + +/** @deprecated @see apr_socket_bind */ +APR_DECLARE(apr_status_t) apr_bind(apr_socket_t *sock, apr_sockaddr_t *sa); + +/** + * Listen to a bound socket for connections. + * @param sock The socket to listen on + * @param backlog The number of outstanding connections allowed in the sockets + * listen queue. If this value is less than zero, the listen + * queue size is set to zero. + */ +APR_DECLARE(apr_status_t) apr_socket_listen(apr_socket_t *sock, + apr_int32_t backlog); + +/** @deprecated @see apr_socket_listen */ +APR_DECLARE(apr_status_t) apr_listen(apr_socket_t *sock, apr_int32_t backlog); + +/** + * Accept a new connection request + * @param new_sock A copy of the socket that is connected to the socket that + * made the connection request. This is the socket which should + * be used for all future communication. + * @param sock The socket we are listening on. + * @param connection_pool The pool for the new socket. + */ +APR_DECLARE(apr_status_t) apr_socket_accept(apr_socket_t **new_sock, + apr_socket_t *sock, + apr_pool_t *connection_pool); + +/** @deprecated @see apr_socket_accept */ +APR_DECLARE(apr_status_t) apr_accept(apr_socket_t **new_sock, + apr_socket_t *sock, + apr_pool_t *connection_pool); + +/** + * Issue a connection request to a socket either on the same machine + * or a different one. + * @param sock The socket we wish to use for our side of the connection + * @param sa The address of the machine we wish to connect to. If NULL, + * APR assumes that the sockaddr_in in the apr_socket is + * completely filled out. + */ +APR_DECLARE(apr_status_t) apr_socket_connect(apr_socket_t *sock, + apr_sockaddr_t *sa); + +/** @deprecated @see apr_socket_connect */ +APR_DECLARE(apr_status_t) apr_connect(apr_socket_t *sock, apr_sockaddr_t *sa); + +/** + * Create apr_sockaddr_t from hostname, address family, and port. + * @param sa The new apr_sockaddr_t. + * @param hostname The hostname or numeric address string to resolve/parse, or + * NULL to build an address that corresponds to 0.0.0.0 or :: + * @param family The address family to use, or APR_UNSPEC if the system should + * decide. + * @param port The port number. + * @param flags Special processing flags: + *
+ *       APR_IPV4_ADDR_OK          first query for IPv4 addresses; only look
+ *                                 for IPv6 addresses if the first query failed;
+ *                                 only valid if family is APR_UNSPEC and hostname
+ *                                 isn't NULL; mutually exclusive with
+ *                                 APR_IPV6_ADDR_OK
+ *       APR_IPV6_ADDR_OK          first query for IPv6 addresses; only look
+ *                                 for IPv4 addresses if the first query failed;
+ *                                 only valid if family is APR_UNSPEC and hostname
+ *                                 isn't NULL and APR_HAVE_IPV6; mutually exclusive
+ *                                 with APR_IPV4_ADDR_OK
+ * 
+ * @param p The pool for the apr_sockaddr_t and associated storage. + */ +APR_DECLARE(apr_status_t) apr_sockaddr_info_get(apr_sockaddr_t **sa, + const char *hostname, + apr_int32_t family, + apr_port_t port, + apr_int32_t flags, + apr_pool_t *p); + +/** + * Look up the host name from an apr_sockaddr_t. + * @param hostname The hostname. + * @param sa The apr_sockaddr_t. + * @param flags Special processing flags. + */ +APR_DECLARE(apr_status_t) apr_getnameinfo(char **hostname, + apr_sockaddr_t *sa, + apr_int32_t flags); + +/** + * Parse hostname/IP address with scope id and port. + * + * Any of the following strings are accepted: + * 8080 (just the port number) + * www.apache.org (just the hostname) + * www.apache.org:8080 (hostname and port number) + * [fe80::1]:80 (IPv6 numeric address string only) + * [fe80::1%eth0] (IPv6 numeric address string and scope id) + * + * Invalid strings: + * (empty string) + * [abc] (not valid IPv6 numeric address string) + * abc:65536 (invalid port number) + * + * @param addr The new buffer containing just the hostname. On output, *addr + * will be NULL if no hostname/IP address was specfied. + * @param scope_id The new buffer containing just the scope id. On output, + * *scope_id will be NULL if no scope id was specified. + * @param port The port number. On output, *port will be 0 if no port was + * specified. + * ### FIXME: 0 is a legal port (per RFC 1700). this should + * ### return something besides zero if the port is missing. + * @param str The input string to be parsed. + * @param p The pool from which *addr and *scope_id are allocated. + * @remark If scope id shouldn't be allowed, check for scope_id != NULL in + * addition to checking the return code. If addr/hostname should be + * required, check for addr == NULL in addition to checking the + * return code. + */ +APR_DECLARE(apr_status_t) apr_parse_addr_port(char **addr, + char **scope_id, + apr_port_t *port, + const char *str, + apr_pool_t *p); + +/** + * Get name of the current machine + * @param buf A buffer to store the hostname in. + * @param len The maximum length of the hostname that can be stored in the + * buffer provided. The suggested length is APRMAXHOSTLEN + 1. + * @param cont The pool to use. + * @remark If the buffer was not large enough, an error will be returned. + */ +APR_DECLARE(apr_status_t) apr_gethostname(char *buf, int len, apr_pool_t *cont); + +/** + * Return the data associated with the current socket + * @param data The user data associated with the socket. + * @param key The key to associate with the user data. + * @param sock The currently open socket. + */ +APR_DECLARE(apr_status_t) apr_socket_data_get(void **data, const char *key, + apr_socket_t *sock); + +/** + * Set the data associated with the current socket. + * @param sock The currently open socket. + * @param data The user data to associate with the socket. + * @param key The key to associate with the data. + * @param cleanup The cleanup to call when the socket is destroyed. + */ +APR_DECLARE(apr_status_t) apr_socket_data_set(apr_socket_t *sock, void *data, + const char *key, + apr_status_t (*cleanup)(void*)); + +/** + * Send data over a network. + * @param sock The socket to send the data over. + * @param buf The buffer which contains the data to be sent. + * @param len On entry, the number of bytes to send; on exit, the number + * of bytes sent. + * @remark + *
+ * This functions acts like a blocking write by default.  To change 
+ * this behavior, use apr_socket_timeout_set().
+ *
+ * It is possible for both bytes to be sent and an error to be returned.
+ *
+ * APR_EINTR is never returned.
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_socket_send(apr_socket_t *sock, const char *buf, + apr_size_t *len); + +/** @deprecated @see apr_socket_send */ +APR_DECLARE(apr_status_t) apr_send(apr_socket_t *sock, const char *buf, + apr_size_t *len); + +/** + * Send multiple packets of data over a network. + * @param sock The socket to send the data over. + * @param vec The array of iovec structs containing the data to send + * @param nvec The number of iovec structs in the array + * @param len Receives the number of bytes actually written + * @remark + *
+ * This functions acts like a blocking write by default.  To change 
+ * this behavior, use apr_socket_timeout_set().
+ * The number of bytes actually sent is stored in argument 3.
+ *
+ * It is possible for both bytes to be sent and an error to be returned.
+ *
+ * APR_EINTR is never returned.
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_socket_sendv(apr_socket_t *sock, + const struct iovec *vec, + apr_int32_t nvec, apr_size_t *len); + +/** @deprecated @see apr_socket_sendv */ +APR_DECLARE(apr_status_t) apr_sendv(apr_socket_t *sock, + const struct iovec *vec, + apr_int32_t nvec, apr_size_t *len); + +/** + * @param sock The socket to send from + * @param where The apr_sockaddr_t describing where to send the data + * @param flags The flags to use + * @param buf The data to send + * @param len The length of the data to send + */ +APR_DECLARE(apr_status_t) apr_socket_sendto(apr_socket_t *sock, + apr_sockaddr_t *where, + apr_int32_t flags, const char *buf, + apr_size_t *len); + +/** @deprecated @see apr_socket_sendto */ +APR_DECLARE(apr_status_t) apr_sendto(apr_socket_t *sock, apr_sockaddr_t *where, + apr_int32_t flags, const char *buf, + apr_size_t *len); + +/** + * @param from The apr_sockaddr_t to fill in the recipient info + * @param sock The socket to use + * @param flags The flags to use + * @param buf The buffer to use + * @param len The length of the available buffer + */ + +APR_DECLARE(apr_status_t) apr_socket_recvfrom(apr_sockaddr_t *from, + apr_socket_t *sock, + apr_int32_t flags, char *buf, + apr_size_t *len); + +/** @deprecated @see apr_socket_recvfrom */ +APR_DECLARE(apr_status_t) apr_recvfrom(apr_sockaddr_t *from, apr_socket_t *sock, + apr_int32_t flags, char *buf, + apr_size_t *len); + +#if APR_HAS_SENDFILE || defined(DOXYGEN) + +/** + * Send a file from an open file descriptor to a socket, along with + * optional headers and trailers + * @param sock The socket to which we're writing + * @param file The open file from which to read + * @param hdtr A structure containing the headers and trailers to send + * @param offset Offset into the file where we should begin writing + * @param len (input) - Number of bytes to send from the file + * (output) - Number of bytes actually sent, + * including headers, file, and trailers + * @param flags APR flags that are mapped to OS specific flags + * @remark This functions acts like a blocking write by default. To change + * this behavior, use apr_socket_timeout_set(). + * The number of bytes actually sent is stored in argument 5. + */ +APR_DECLARE(apr_status_t) apr_socket_sendfile(apr_socket_t *sock, + apr_file_t *file, + apr_hdtr_t *hdtr, + apr_off_t *offset, + apr_size_t *len, + apr_int32_t flags); + +/** @deprecated @see apr_socket_sendfile */ +APR_DECLARE(apr_status_t) apr_sendfile(apr_socket_t *sock, apr_file_t *file, + apr_hdtr_t *hdtr, apr_off_t *offset, + apr_size_t *len, apr_int32_t flags); + +#endif /* APR_HAS_SENDFILE */ + +/** + * Read data from a network. + * @param sock The socket to read the data from. + * @param buf The buffer to store the data in. + * @param len On entry, the number of bytes to receive; on exit, the number + * of bytes received. + * @remark + *
+ * This functions acts like a blocking read by default.  To change 
+ * this behavior, use apr_socket_timeout_set().
+ * The number of bytes actually sent is stored in argument 3.
+ *
+ * It is possible for both bytes to be received and an APR_EOF or
+ * other error to be returned.
+ *
+ * APR_EINTR is never returned.
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_socket_recv(apr_socket_t *sock, + char *buf, apr_size_t *len); + +/** @deprecated @see apr_socket_recv */ +APR_DECLARE(apr_status_t) apr_recv(apr_socket_t *sock, + char *buf, apr_size_t *len); + +/** + * Setup socket options for the specified socket + * @param sock The socket to set up. + * @param opt The option we would like to configure. One of: + *
+ *            APR_SO_DEBUG      --  turn on debugging information 
+ *            APR_SO_KEEPALIVE  --  keep connections active
+ *            APR_SO_LINGER     --  lingers on close if data is present
+ *            APR_SO_NONBLOCK   --  Turns blocking on/off for socket
+ *            APR_SO_REUSEADDR  --  The rules used in validating addresses
+ *                                  supplied to bind should allow reuse
+ *                                  of local addresses.
+ *            APR_SO_SNDBUF     --  Set the SendBufferSize
+ *            APR_SO_RCVBUF     --  Set the ReceiveBufferSize
+ * 
+ * @param on Value for the option. + */ +APR_DECLARE(apr_status_t) apr_socket_opt_set(apr_socket_t *sock, + apr_int32_t opt, apr_int32_t on); + +/** @deprecated @see apr_socket_opt_set */ +APR_DECLARE(apr_status_t) apr_setsocketopt(apr_socket_t *sock, + apr_int32_t opt, apr_int32_t on); + +/** + * Setup socket timeout for the specified socket + * @param sock The socket to set up. + * @param t Value for the timeout. + *
+ *   t > 0  -- read and write calls return APR_TIMEUP if specified time
+ *             elapsess with no data read or written
+ *   t == 0 -- read and write calls never block
+ *   t < 0  -- read and write calls block
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_socket_timeout_set(apr_socket_t *sock, + apr_interval_time_t t); + +/** + * Query socket options for the specified socket + * @param sock The socket to query + * @param opt The option we would like to query. One of: + *
+ *            APR_SO_DEBUG      --  turn on debugging information 
+ *            APR_SO_KEEPALIVE  --  keep connections active
+ *            APR_SO_LINGER     --  lingers on close if data is present
+ *            APR_SO_NONBLOCK   --  Turns blocking on/off for socket
+ *            APR_SO_REUSEADDR  --  The rules used in validating addresses
+ *                                  supplied to bind should allow reuse
+ *                                  of local addresses.
+ *            APR_SO_SNDBUF     --  Set the SendBufferSize
+ *            APR_SO_RCVBUF     --  Set the ReceiveBufferSize
+ *            APR_SO_DISCONNECTED -- Query the disconnected state of the socket.
+ *                                  (Currently only used on Windows)
+ * 
+ * @param on Socket option returned on the call. + */ +APR_DECLARE(apr_status_t) apr_socket_opt_get(apr_socket_t *sock, + apr_int32_t opt, apr_int32_t *on); + +/** @deprecated @see apr_socket_opt_set */ +APR_DECLARE(apr_status_t) apr_getsocketopt(apr_socket_t *sock, + apr_int32_t opt, apr_int32_t *on); + +/** + * Query socket timeout for the specified socket + * @param sock The socket to query + * @param t Socket timeout returned from the query. + */ +APR_DECLARE(apr_status_t) apr_socket_timeout_get(apr_socket_t *sock, + apr_interval_time_t *t); + +/** + * Query the specified socket if at the OOB/Urgent data mark + * @param sock The socket to query + * @param atmark Is set to true if socket is at the OOB/urgent mark, + * otherwise is set to false. + */ +APR_DECLARE(apr_status_t) apr_socket_atmark(apr_socket_t *sock, + int *atmark); + +/** + * Return an apr_sockaddr_t from an apr_socket_t + * @param sa The returned apr_sockaddr_t. + * @param which Which interface do we want the apr_sockaddr_t for? + * @param sock The socket to use + */ +APR_DECLARE(apr_status_t) apr_socket_addr_get(apr_sockaddr_t **sa, + apr_interface_e which, + apr_socket_t *sock); + +/** + * Set the port in an APR socket address. + * @param sockaddr The socket address to set. + * @param port The port to be stored in the socket address. + * @deprecated @see apr_sockaddr_info_get + */ +APR_DECLARE(apr_status_t) apr_sockaddr_port_set(apr_sockaddr_t *sockaddr, + apr_port_t port); + +/** + * Return the port in an APR socket address. + * @param port The port from the socket address. + * @param sockaddr The socket address to reference. + * @deprecated Access port field directly. + */ +APR_DECLARE(apr_status_t) apr_sockaddr_port_get(apr_port_t *port, + apr_sockaddr_t *sockaddr); + +/** + * Set the IP address in an APR socket address. + * @param sockaddr The socket address to use + * @param addr The IP address to attach to the socket. + * Use APR_ANYADDR to use any IP addr on the machine. + * @deprecated @see apr_sockaddr_info_get + */ +APR_DECLARE(apr_status_t) apr_sockaddr_ip_set(apr_sockaddr_t *sockaddr, + const char *addr); + +/** + * Return the IP address (in numeric address string format) in + * an APR socket address. APR will allocate storage for the IP address + * string from the pool of the apr_sockaddr_t. + * @param addr The IP address. + * @param sockaddr The socket address to reference. + */ +APR_DECLARE(apr_status_t) apr_sockaddr_ip_get(char **addr, + apr_sockaddr_t *sockaddr); + +/** + * See if the IP addresses in two APR socket addresses are + * equivalent. Appropriate logic is present for comparing + * IPv4-mapped IPv6 addresses with IPv4 addresses. + * + * @param addr1 One of the APR socket addresses. + * @param addr2 The other APR socket address. + * @remark The return value will be non-zero if the addresses + * are equivalent. + */ +APR_DECLARE(int) apr_sockaddr_equal(const apr_sockaddr_t *addr1, + const apr_sockaddr_t *addr2); + + +#if APR_FILES_AS_SOCKETS || defined(DOXYGEN) + +/** + * Convert a File type to a socket so that it can be used in a poll operation. + * @param newsock the newly created socket which represents a file. + * @param file the file to mask as a socket. + * @warning This is not available on all platforms. Platforms that have the + * ability to poll files for data to be read/written/exceptions will + * have the APR_FILES_AS_SOCKETS macro defined as true. + * @deprecated This function has been deprecated, because of the new poll + * implementation. + */ +APR_DECLARE(apr_status_t) apr_socket_from_file(apr_socket_t **newsock, + apr_file_t *file); + +#endif /* APR_FILES_AS_SOCKETS */ + +/** + * Given an apr_sockaddr_t and a service name, set the port for the service + * @param sockaddr The apr_sockaddr_t that will have its port set + * @param servname The name of the service you wish to use + */ +APR_DECLARE(apr_status_t) apr_getservbyname(apr_sockaddr_t *sockaddr, + const char *servname); +/** + * Build an ip-subnet representation from an IP address and optional netmask or + * number-of-bits. + * @param ipsub The new ip-subnet representation + * @param ipstr The input IP address string + * @param mask_or_numbits The input netmask or number-of-bits string, or NULL + * @param p The pool to allocate from + */ +APR_DECLARE(apr_status_t) apr_ipsubnet_create(apr_ipsubnet_t **ipsub, + const char *ipstr, + const char *mask_or_numbits, + apr_pool_t *p); + +/** + * Test the IP address in an apr_sockaddr_t against a pre-built ip-subnet + * representation. + * @param ipsub The ip-subnet representation + * @param sa The socket address to test + * @return non-zero if the socket address is within the subnet, 0 otherwise + */ +APR_DECLARE(int) apr_ipsubnet_test(apr_ipsubnet_t *ipsub, apr_sockaddr_t *sa); + +#if APR_HAS_SO_ACCEPTFILTER || defined(DOXYGEN) +/** + * Set an OS level accept filter. + * @param sock The socket to put the accept filter on. + * @param name The accept filter + * @param args Any extra args to the accept filter. Passing NULL here removes + * the accept filter. + */ +apr_status_t apr_socket_accept_filter(apr_socket_t *sock, char *name, + char *args); +#endif + +/** + * Return the protocol of the socket. + * @param sock The socket to query. + * @param protocol The returned protocol (e.g., APR_PROTO_TCP). + */ +APR_DECLARE(apr_status_t) apr_socket_protocol_get(apr_socket_t *sock, + int *protocol); + +/** + * Set a socket to be inherited by child processes. + */ +APR_DECLARE_INHERIT_SET(socket); + +/** @deprecated @see apr_socket_inherit_set */ +APR_DECLARE(void) apr_socket_set_inherit(apr_socket_t *skt); + +/** + * Unset a socket from being inherited by child processes. + */ +APR_DECLARE_INHERIT_UNSET(socket); + +/** @deprecated @see apr_socket_inherit_unset */ +APR_DECLARE(void) apr_socket_unset_inherit(apr_socket_t *skt); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_NETWORK_IO_H */ + diff --git a/rubbos/app/apache2/include/apr_optional.h b/rubbos/app/apache2/include/apr_optional.h new file mode 100644 index 00000000..32e2ac3c --- /dev/null +++ b/rubbos/app/apache2/include/apr_optional.h @@ -0,0 +1,99 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_OPTIONAL_H +#define APR_OPTIONAL_H + +#include "apu.h" +/** + * @file apr_optional.h + * @brief APR-UTIL registration of functions exported by modules + */ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_Opt Optional Functions + * @ingroup APR_Util + * + * Typesafe registration and retrieval of functions that may not be present + * (i.e. functions exported by optional modules) + * @{ + */ + +/** + * The type of an optional function. + * @param name The name of the function + */ +#define APR_OPTIONAL_FN_TYPE(name) apr_OFN_##name##_t + +/** + * Declare an optional function. + * @param ret The return type of the function + * @param name The name of the function + * @param args The function arguments (including brackets) + */ +#define APR_DECLARE_OPTIONAL_FN(ret,name,args) \ +typedef ret (APR_OPTIONAL_FN_TYPE(name)) args + +/** + * XXX: This doesn't belong here, then! + * Private function! DO NOT USE! + * @internal + */ + +typedef void (apr_opt_fn_t)(void); +/** @internal */ +APU_DECLARE_NONSTD(void) apr_dynamic_fn_register(const char *szName, + apr_opt_fn_t *pfn); + +/** @internal deprecated function, see apr_dynamic_fn_register */ +APU_DECLARE_NONSTD(void) apr_register_optional_fn(const char *szName, + apr_opt_fn_t *pfn); + +/** + * Register an optional function. This can be later retrieved, type-safely, by + * name. Like all global functions, the name must be unique. Note that, + * confusingly but correctly, the function itself can be static! + * @param name The name of the function + */ +#define APR_REGISTER_OPTIONAL_FN(name) do { \ + APR_OPTIONAL_FN_TYPE(name) *apu__opt = name; \ + apr_dynamic_fn_register(#name,(apr_opt_fn_t *)apu__opt); \ +} while (0) + +/** @internal + * Private function! DO NOT USE! + */ +APU_DECLARE(apr_opt_fn_t *) apr_dynamic_fn_retrieve(const char *szName); + +/** @internal deprecated function, see apr_dynamic_fn_retrieve */ +APU_DECLARE(apr_opt_fn_t *) apr_retrieve_optional_fn(const char *szName); + +/** + * Retrieve an optional function. Returns NULL if the function is not present. + * @param name The name of the function + */ +#define APR_RETRIEVE_OPTIONAL_FN(name) \ + (APR_OPTIONAL_FN_TYPE(name) *)apr_dynamic_fn_retrieve(#name) + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* APR_OPTIONAL_H */ diff --git a/rubbos/app/apache2/include/apr_optional_hooks.h b/rubbos/app/apache2/include/apr_optional_hooks.h new file mode 100644 index 00000000..7d01ab00 --- /dev/null +++ b/rubbos/app/apache2/include/apr_optional_hooks.h @@ -0,0 +1,117 @@ +/* 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 + * + * 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. + */ +/** + * @file apr_optional_hooks.h + * @brief Apache optional hook functions + */ + + +#ifndef APR_OPTIONAL_HOOK_H +#define APR_OPTIONAL_HOOK_H + +#include "apr_tables.h" + +#ifdef __cplusplus +extern "C" { +#endif +/** + * @defgroup APR_Util_OPT_HOOK Optional Hook Functions + * @ingroup APR_Util_Hook + * @{ + */ +/** + * Function to implemnt the APR_OPTIONAL_HOOK Macro + * @internal + * @see APR_OPTIONAL_HOOK + * + * @param name The name of the hook + * @param pfn A pointer to a function that will be called + * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one + * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one + * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE) + */ + + +APU_DECLARE(void) apr_optional_hook_add(const char *szName,void (*pfn)(void), + const char * const *aszPre, + const char * const *aszSucc, + int nOrder); + +/** + * Hook to an optional hook. + * + * @param ns The namespace prefix of the hook functions + * @param name The name of the hook + * @param pfn A pointer to a function that will be called + * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one + * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one + * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE) + */ + +#define APR_OPTIONAL_HOOK(ns,name,pfn,aszPre,aszSucc,nOrder) do { \ + ns##_HOOK_##name##_t *apu__hook = pfn; \ + apr_optional_hook_add(#name,(void (*)(void))apu__hook,aszPre, aszSucc, nOrder); \ +} while (0) + +/** + * @internal + * @param szName - the name of the function + * @return the hook structure for a given hook + */ +APU_DECLARE(apr_array_header_t *) apr_optional_hook_get(const char *szName); + +/** + * Implement an optional hook that runs until one of the functions + * returns something other than OK or DECLINE. + * + * @param ns The namespace prefix of the hook functions + * @param link The linkage declaration prefix of the hook + * @param ret The type of the return value of the hook + * @param ret The type of the return value of the hook + * @param name The name of the hook + * @param args_decl The declaration of the arguments for the hook + * @param args_use The names for the arguments for the hook + * @param ok Success value + * @param decline Decline value + */ +#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \ +link##_DECLARE(ret) ns##_run_##name args_decl \ + { \ + ns##_LINK_##name##_t *pHook; \ + int n; \ + ret rv; \ + apr_array_header_t *pHookArray=apr_optional_hook_get(#name); \ +\ + if(!pHookArray) \ + return ok; \ +\ + pHook=(ns##_LINK_##name##_t *)pHookArray->elts; \ + for(n=0 ; n < pHookArray->nelts ; ++n) \ + { \ + rv=(pHook[n].pFunc)args_use; \ +\ + if(rv != ok && rv != decline) \ + return rv; \ + } \ + return ok; \ + } + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* APR_OPTIONAL_HOOK_H */ diff --git a/rubbos/app/apache2/include/apr_poll.h b/rubbos/app/apache2/include/apr_poll.h new file mode 100644 index 00000000..d71cc3a1 --- /dev/null +++ b/rubbos/app/apache2/include/apr_poll.h @@ -0,0 +1,253 @@ +/* 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. + */ + +#ifndef APR_POLL_H +#define APR_POLL_H +/** + * @file apr_poll.h + * @brief APR Poll interface + */ +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" +#include "apr_inherit.h" +#include "apr_file_io.h" +#include "apr_network_io.h" + +#if APR_HAVE_NETINET_IN_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_poll Poll Routines + * @ingroup APR + * @{ + */ + +/** + * @defgroup apr_poll_opt Poll options + * @{ + */ +#define APR_POLLIN 0x001 /**< Can read without blocking */ +#define APR_POLLPRI 0x002 /**< Priority data available */ +#define APR_POLLOUT 0x004 /**< Can write without blocking */ +#define APR_POLLERR 0x010 /**< Pending error */ +#define APR_POLLHUP 0x020 /**< Hangup occurred */ +#define APR_POLLNVAL 0x040 /**< Descriptior invalid */ +/** @} */ + +/** Used in apr_pollfd_t to determine what the apr_descriptor is */ +typedef enum { + APR_NO_DESC, /**< nothing here */ + APR_POLL_SOCKET, /**< descriptor refers to a socket */ + APR_POLL_FILE, /**< descriptor refers to a file */ + APR_POLL_LASTDESC /**< descriptor is the last one in the list */ +} apr_datatype_e ; + +/** Union of either an APR file or socket. */ +typedef union { + apr_file_t *f; /**< file */ + apr_socket_t *s; /**< socket */ +} apr_descriptor; + +/** @see apr_pollfd_t */ +typedef struct apr_pollfd_t apr_pollfd_t; + +/** Poll descriptor set. */ +struct apr_pollfd_t { + apr_pool_t *p; /**< associated pool */ + apr_datatype_e desc_type; /**< descriptor type */ + apr_int16_t reqevents; /**< requested events */ + apr_int16_t rtnevents; /**< returned events */ + apr_descriptor desc; /**< @see apr_descriptor */ + void *client_data; /**< allows app to associate context */ +}; + +/** + * Setup the memory required for poll to operate properly + * @param new_poll The poll structure to be used. + * @param num The number of socket descriptors to be polled. + * @param cont The pool to operate on. + * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_setup(apr_pollfd_t **new_poll, + apr_int32_t num, + apr_pool_t *cont); + +/** + * Poll the sockets in the poll structure + * @param aprset The poll structure we will be using. + * @param numsock The number of sockets we are polling + * @param nsds The number of sockets signalled. + * @param timeout The amount of time in microseconds to wait. This is + * a maximum, not a minimum. If a socket is signalled, we + * will wake up before this time. A negative number means + * wait until a socket is signalled. + * @remark + *
+ * The number of sockets signalled is returned in the second argument. 
+ *
+ *        This is a blocking call, and it will not return until either a 
+ *        socket has been signalled, or the timeout has expired. 
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t numsock, + apr_int32_t *nsds, + apr_interval_time_t timeout); + +/** + * Add a socket to the poll structure. + * @param aprset The poll structure we will be using. + * @param sock The socket to add to the current poll structure. + * @param event The events to look for when we do the poll. One of: + *
+ *            APR_POLLIN       signal if read will not block
+ *            APR_POLLPRI      signal if prioirty data is availble to be read
+ *            APR_POLLOUT      signal if write will not block
+ * 
+ * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_socket_add(apr_pollfd_t *aprset, + apr_socket_t *sock, + apr_int16_t event); + +/** + * Modify a socket in the poll structure with mask. + * @param aprset The poll structure we will be using. + * @param sock The socket to modify in poll structure. + * @param events The events to stop looking for during the poll. One of: + *
+ *            APR_POLLIN       signal if read will not block
+ *            APR_POLLPRI      signal if priority data is available to be read
+ *            APR_POLLOUT      signal if write will not block
+ * 
+ * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_socket_mask(apr_pollfd_t *aprset, + apr_socket_t *sock, + apr_int16_t events); +/** + * Remove a socket from the poll structure. + * @param aprset The poll structure we will be using. + * @param sock The socket to remove from the current poll structure. + * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_socket_remove(apr_pollfd_t *aprset, + apr_socket_t *sock); + +/** + * Clear all events in the poll structure. + * @param aprset The poll structure we will be using. + * @param events The events to clear from all sockets. One of: + *
+ *            APR_POLLIN       signal if read will not block
+ *            APR_POLLPRI      signal if priority data is available to be read
+ *            APR_POLLOUT      signal if write will not block
+ * 
+ * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_socket_clear(apr_pollfd_t *aprset, + apr_int16_t events); + +/** + * Get the return events for the specified socket. + * @param event The returned events for the socket. One of: + *
+ *            APR_POLLIN       Data is available to be read 
+ *            APR_POLLPRI      Priority data is availble to be read
+ *            APR_POLLOUT      Write will succeed
+ *            APR_POLLERR      An error occurred on the socket
+ *            APR_POLLHUP      The connection has been terminated
+ *            APR_POLLNVAL     This is an invalid socket to poll on.
+ *                             Socket not open.
+ * 
+ * @param sock The socket we wish to get information about. + * @param aprset The poll structure we will be using. + * @deprecated This function is deprecated, APR applications should control the pollset memory themselves. + */ +APR_DECLARE(apr_status_t) apr_poll_revents_get(apr_int16_t *event, + apr_socket_t *sock, + apr_pollfd_t *aprset); + +/* General-purpose poll API for arbitrarily large numbers of + * file descriptors + */ + +/** Opaque structure used for pollset API */ +typedef struct apr_pollset_t apr_pollset_t; + +/** + * Setup a pollset object + * @param pollset The pointer in which to return the newly created object + * @param size The maximum number of descriptors that this pollset can hold + * @param p The pool from which to allocate the pollset + * @param flags Optional flags to modify the operation of the pollset + * (reserved for future expansion) + */ +APR_DECLARE(apr_status_t) apr_pollset_create(apr_pollset_t **pollset, + apr_uint32_t size, + apr_pool_t *p, + apr_uint32_t flags); + +/** + * Destroy a pollset object + * @param pollset The pollset to destroy + */ +APR_DECLARE(apr_status_t) apr_pollset_destroy(apr_pollset_t *pollset); + +/** + * Add a socket or file descriptor to a pollset + * @param pollset The pollset to which to add the descriptor + * @param descriptor The descriptor to add + * @remark If you set client_data in the descriptor, that value + * will be returned in the client_data field whenever this + * descriptor is signalled in apr_pollset_poll(). + */ +APR_DECLARE(apr_status_t) apr_pollset_add(apr_pollset_t *pollset, + const apr_pollfd_t *descriptor); + +/** + * Remove a descriptor from a pollset + * @param pollset The pollset from which to remove the descriptor + * @param descriptor The descriptor to remove + */ +APR_DECLARE(apr_status_t) apr_pollset_remove(apr_pollset_t *pollset, + const apr_pollfd_t *descriptor); + +/** + * Block for activity on the descriptor(s) in a pollset + * @param pollset The pollset to use + * @param timeout Timeout in microseconds + * @param num Number of signalled descriptors (output parameter) + * @param descriptors Array of signalled descriptors (output parameter) + */ +APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset, + apr_interval_time_t timeout, + apr_int32_t *num, + const apr_pollfd_t **descriptors); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_POLL_H */ + diff --git a/rubbos/app/apache2/include/apr_pools.h b/rubbos/app/apache2/include/apr_pools.h new file mode 100644 index 00000000..2f4353f0 --- /dev/null +++ b/rubbos/app/apache2/include/apr_pools.h @@ -0,0 +1,664 @@ +/* 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. + */ + +#ifndef APR_POOLS_H +#define APR_POOLS_H + +/** + * @file apr_pools.h + * @brief APR memory allocation + * + * Resource allocation routines... + * + * designed so that we don't have to keep track of EVERYTHING so that + * it can be explicitly freed later (a fundamentally unsound strategy --- + * particularly in the presence of die()). + * + * Instead, we maintain pools, and allocate items (both memory and I/O + * handlers) from the pools --- currently there are two, one for per + * transaction info, and one for config info. When a transaction is over, + * we can delete everything in the per-transaction apr_pool_t without fear, + * and without thinking too hard about it either. + */ + +#include "apr.h" +#include "apr_errno.h" +#include "apr_general.h" /* for APR_STRINGIFY */ +#define APR_WANT_MEMFUNC /**< for no good reason? */ +#include "apr_want.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup apr_pools Memory Pool Functions + * @ingroup APR + * @{ + */ + +/** The fundamental pool type */ +typedef struct apr_pool_t apr_pool_t; + + +/** + * Declaration helper macro to construct apr_foo_pool_get()s. + * + * This standardized macro is used by opaque (APR) data types to return + * the apr_pool_t that is associated with the data type. + * + * APR_POOL_DECLARE_ACCESSOR() is used in a header file to declare the + * accessor function. A typical usage and result would be: + *
+ *    APR_POOL_DECLARE_ACCESSOR(file);
+ * becomes:
+ *    APR_DECLARE(apr_pool_t *) apr_file_pool_get(apr_file_t *ob);
+ * 
+ * @remark Doxygen unwraps this macro (via doxygen.conf) to provide + * actual help for each specific occurance of apr_foo_pool_get. + * @remark the linkage is specified for APR. It would be possible to expand + * the macros to support other linkages. + */ +#define APR_POOL_DECLARE_ACCESSOR(type) \ + APR_DECLARE(apr_pool_t *) apr_##type##_pool_get \ + (const apr_##type##_t *the##type) + +/** + * Implementation helper macro to provide apr_foo_pool_get()s. + * + * In the implementation, the APR_POOL_IMPLEMENT_ACCESSOR() is used to + * actually define the function. It assumes the field is named "pool". + */ +#define APR_POOL_IMPLEMENT_ACCESSOR(type) \ + APR_DECLARE(apr_pool_t *) apr_##type##_pool_get \ + (const apr_##type##_t *the##type) \ + { return the##type->pool; } + + +/** + * Pool debug levels + * + *
+ * | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+ * ---------------------------------
+ * |   |   |   |   |   |   |   | x |  General debug code enabled (usefull in
+ *                                    combination with --with-efence).
+ *
+ * |   |   |   |   |   |   | x |   |  Verbose output on stderr (report
+ *                                    CREATE, CLEAR, DESTROY).
+ *
+ * |   |   |   | x |   |   |   |   |  Verbose output on stderr (report
+ *                                    PALLOC, PCALLOC).
+ *
+ * |   |   |   |   |   | x |   |   |  Lifetime checking. On each use of a
+ *                                    pool, check its lifetime.  If the pool
+ *                                    is out of scope, abort().
+ *                                    In combination with the verbose flag
+ *                                    above, it will output LIFE in such an
+ *                                    event prior to aborting.
+ *
+ * |   |   |   |   | x |   |   |   |  Pool owner checking.  On each use of a
+ *                                    pool, check if the current thread is the
+ *                                    pools owner.  If not, abort().  In
+ *                                    combination with the verbose flag above,
+ *                                    it will output OWNER in such an event
+ *                                    prior to aborting.  Use the debug
+ *                                    function apr_pool_owner_set() to switch
+ *                                    a pools ownership.
+ *
+ * When no debug level was specified, assume general debug mode.
+ * If level 0 was specified, debugging is switched off
+ * 
+ */ +#if defined(APR_POOL_DEBUG) +#if (APR_POOL_DEBUG != 0) && (APR_POOL_DEBUG - 0 == 0) +#undef APR_POOL_DEBUG +#define APR_POOL_DEBUG 1 +#endif +#else +#define APR_POOL_DEBUG 0 +#endif + +/** the place in the code where the particular function was called */ +#define APR_POOL__FILE_LINE__ __FILE__ ":" APR_STRINGIFY(__LINE__) + + + +/** A function that is called when allocation fails. */ +typedef int (*apr_abortfunc_t)(int retcode); + +/* + * APR memory structure manipulators (pools, tables, and arrays). + */ + +/* + * Initialization + */ + +/** + * Setup all of the internal structures required to use pools + * @remark Programs do NOT need to call this directly. APR will call this + * automatically from apr_initialize. + * @internal + */ +APR_DECLARE(apr_status_t) apr_pool_initialize(void); + +/** + * Tear down all of the internal structures required to use pools + * @remark Programs do NOT need to call this directly. APR will call this + * automatically from apr_terminate. + * @internal + */ +APR_DECLARE(void) apr_pool_terminate(void); + + +/* + * Pool creation/destruction + */ + +#include "apr_allocator.h" + +/** + * Create a new pool. + * @param newpool The pool we have just created. + * @param parent The parent pool. If this is NULL, the new pool is a root + * pool. If it is non-NULL, the new pool will inherit all + * of its parent pool's attributes, except the apr_pool_t will + * be a sub-pool. + * @param abort_fn A function to use if the pool cannot allocate more memory. + * @param allocator The allocator to use with the new pool. If NULL the + * allocator of the parent pool will be used. + */ +APR_DECLARE(apr_status_t) apr_pool_create_ex(apr_pool_t **newpool, + apr_pool_t *parent, + apr_abortfunc_t abort_fn, + apr_allocator_t *allocator); + +/** + * Debug version of apr_pool_create_ex. + * @param newpool @see apr_pool_create. + * @param parent @see apr_pool_create. + * @param abort_fn @see apr_pool_create. + * @param allocator @see apr_pool_create. + * @param file_line Where the function is called from. + * This is usually APR_POOL__FILE_LINE__. + * @remark Only available when APR_POOL_DEBUG is defined. + * Call this directly if you have you apr_pool_create_ex + * calls in a wrapper function and wish to override + * the file_line argument to reflect the caller of + * your wrapper function. If you do not have + * apr_pool_create_ex in a wrapper, trust the macro + * and don't call apr_pool_create_ex_debug directly. + */ +APR_DECLARE(apr_status_t) apr_pool_create_ex_debug(apr_pool_t **newpool, + apr_pool_t *parent, + apr_abortfunc_t abort_fn, + apr_allocator_t *allocator, + const char *file_line); + +#if APR_POOL_DEBUG +#define apr_pool_create_ex(newpool, parent, abort_fn, allocator) \ + apr_pool_create_ex_debug(newpool, parent, abort_fn, allocator, \ + APR_POOL__FILE_LINE__) +#endif + +/** + * Create a new pool. + * @param newpool The pool we have just created. + * @param parent The parent pool. If this is NULL, the new pool is a root + * pool. If it is non-NULL, the new pool will inherit all + * of its parent pool's attributes, except the apr_pool_t will + * be a sub-pool. + */ +#if defined(DOXYGEN) +APR_DECLARE(apr_status_t) apr_pool_create(apr_pool_t **newpool, + apr_pool_t *parent); +#else +#if APR_POOL_DEBUG +#define apr_pool_create(newpool, parent) \ + apr_pool_create_ex_debug(newpool, parent, NULL, NULL, \ + APR_POOL__FILE_LINE__) +#else +#define apr_pool_create(newpool, parent) \ + apr_pool_create_ex(newpool, parent, NULL, NULL) +#endif +#endif + +/** @deprecated @see apr_pool_create_ex */ +#if APR_POOL_DEBUG +#define apr_pool_sub_make(newpool, parent, abort_fn) \ + (void)apr_pool_create_ex_debug(newpool, parent, abort_fn, \ + NULL, \ + APR_POOL__FILE_LINE__) +#else +#define apr_pool_sub_make(newpool, parent, abort_fn) \ + (void)apr_pool_create_ex(newpool, parent, abort_fn, NULL) +#endif + +/** + * Find the pools allocator + * @param pool The pool to get the allocator from. + */ +APR_DECLARE(apr_allocator_t *) apr_pool_allocator_get(apr_pool_t *pool); + +/** + * Clear all memory in the pool and run all the cleanups. This also destroys all + * subpools. + * @param p The pool to clear + * @remark This does not actually free the memory, it just allows the pool + * to re-use this memory for the next allocation. + * @see apr_pool_destroy() + */ +APR_DECLARE(void) apr_pool_clear(apr_pool_t *p); + +/** + * Debug version of apr_pool_clear. + * @param p See: apr_pool_clear. + * @param file_line Where the function is called from. + * This is usually APR_POOL__FILE_LINE__. + * @remark Only available when APR_POOL_DEBUG is defined. + * Call this directly if you have you apr_pool_clear + * calls in a wrapper function and wish to override + * the file_line argument to reflect the caller of + * your wrapper function. If you do not have + * apr_pool_clear in a wrapper, trust the macro + * and don't call apr_pool_destroy_clear directly. + */ +APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t *p, + const char *file_line); + +#if APR_POOL_DEBUG +#define apr_pool_clear(p) \ + apr_pool_clear_debug(p, APR_POOL__FILE_LINE__) +#endif + +/** + * Destroy the pool. This takes similar action as apr_pool_clear() and then + * frees all the memory. + * @param p The pool to destroy + * @remark This will actually free the memory + */ +APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p); + +/** + * Debug version of apr_pool_destroy. + * @param p See: apr_pool_destroy. + * @param file_line Where the function is called from. + * This is usually APR_POOL__FILE_LINE__. + * @remark Only available when APR_POOL_DEBUG is defined. + * Call this directly if you have you apr_pool_destroy + * calls in a wrapper function and wish to override + * the file_line argument to reflect the caller of + * your wrapper function. If you do not have + * apr_pool_destroy in a wrapper, trust the macro + * and don't call apr_pool_destroy_debug directly. + */ +APR_DECLARE(void) apr_pool_destroy_debug(apr_pool_t *p, + const char *file_line); + +#if APR_POOL_DEBUG +#define apr_pool_destroy(p) \ + apr_pool_destroy_debug(p, APR_POOL__FILE_LINE__) +#endif + + +/* + * Memory allocation + */ + +/** + * Allocate a block of memory from a pool + * @param p The pool to allocate from + * @param size The amount of memory to allocate + * @return The allocated memory + */ +APR_DECLARE(void *) apr_palloc(apr_pool_t *p, apr_size_t size); + +/** + * Debug version of apr_palloc + * @param p See: apr_palloc + * @param size See: apr_palloc + * @param file_line Where the function is called from. + * This is usually APR_POOL__FILE_LINE__. + * @return See: apr_palloc + */ +APR_DECLARE(void *) apr_palloc_debug(apr_pool_t *p, apr_size_t size, + const char *file_line); + +#if APR_POOL_DEBUG +#define apr_palloc(p, size) \ + apr_palloc_debug(p, size, APR_POOL__FILE_LINE__) +#endif + +/** + * Allocate a block of memory from a pool and set all of the memory to 0 + * @param p The pool to allocate from + * @param size The amount of memory to allocate + * @return The allocated memory + */ +#if defined(DOXYGEN) +APR_DECLARE(void *) apr_pcalloc(apr_pool_t *p, apr_size_t size); +#elif !APR_POOL_DEBUG +#define apr_pcalloc(p, size) memset(apr_palloc(p, size), 0, size) +#endif + +/** + * Debug version of apr_pcalloc + * @param p See: apr_pcalloc + * @param size See: apr_pcalloc + * @param file_line Where the function is called from. + * This is usually APR_POOL__FILE_LINE__. + * @return See: apr_pcalloc + */ +APR_DECLARE(void *) apr_pcalloc_debug(apr_pool_t *p, apr_size_t size, + const char *file_line); + +#if APR_POOL_DEBUG +#define apr_pcalloc(p, size) \ + apr_pcalloc_debug(p, size, APR_POOL__FILE_LINE__) +#endif + + +/* + * Pool Properties + */ + +/** + * Set the function to be called when an allocation failure occurs. + * @remark If the program wants APR to exit on a memory allocation error, + * then this function can be called to set the callback to use (for + * performing cleanup and then exiting). If this function is not called, + * then APR will return an error and expect the calling program to + * deal with the error accordingly. + */ +APR_DECLARE(void) apr_pool_abort_set(apr_abortfunc_t abortfunc, + apr_pool_t *pool); + +/** @deprecated @see apr_pool_abort_set */ +APR_DECLARE(void) apr_pool_set_abort(apr_abortfunc_t abortfunc, + apr_pool_t *pool); + +/** + * Get the abort function associated with the specified pool. + * @param pool The pool for retrieving the abort function. + * @return The abort function for the given pool. + */ +APR_DECLARE(apr_abortfunc_t) apr_pool_abort_get(apr_pool_t *pool); + +/** @deprecated @see apr_pool_abort_get */ +APR_DECLARE(apr_abortfunc_t) apr_pool_get_abort(apr_pool_t *pool); + +/** + * Get the parent pool of the specified pool. + * @param pool The pool for retrieving the parent pool. + * @return The parent of the given pool. + */ +APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool); + +/** @deprecated @see apr_pool_parent_get */ +APR_DECLARE(apr_pool_t *) apr_pool_get_parent(apr_pool_t *pool); + +/** + * Determine if pool a is an ancestor of pool b + * @param a The pool to search + * @param b The pool to search for + * @return True if a is an ancestor of b, NULL is considered an ancestor + * of all pools. + */ +APR_DECLARE(int) apr_pool_is_ancestor(apr_pool_t *a, apr_pool_t *b); + +/** + * Tag a pool (give it a name) + * @param pool The pool to tag + * @param tag The tag + */ +APR_DECLARE(void) apr_pool_tag(apr_pool_t *pool, const char *tag); + + +/* + * User data management + */ + +/** + * Set the data associated with the current pool + * @param data The user data associated with the pool. + * @param key The key to use for association + * @param cleanup The cleanup program to use to cleanup the data (NULL if none) + * @param pool The current pool + * @warning The data to be attached to the pool should have a life span + * at least as long as the pool it is being attached to. + * + * Users of APR must take EXTREME care when choosing a key to + * use for their data. It is possible to accidentally overwrite + * data by choosing a key that another part of the program is using. + * Therefore it is advised that steps are taken to ensure that unique + * keys are used for all of the userdata objects in a particular pool + * (the same key in two different pools or a pool and one of its + * subpools is okay) at all times. Careful namespace prefixing of + * key names is a typical way to help ensure this uniqueness. + */ +APR_DECLARE(apr_status_t) apr_pool_userdata_set( + const void *data, + const char *key, + apr_status_t (*cleanup)(void *), + apr_pool_t *pool); + +/** + * Set the data associated with the current pool + * @param data The user data associated with the pool. + * @param key The key to use for association + * @param cleanup The cleanup program to use to cleanup the data (NULL if none) + * @param pool The current pool + * @note same as apr_pool_userdata_set(), except that this version doesn't + * make a copy of the key (this function is useful, for example, when + * the key is a string literal) + * @warning This should NOT be used if the key could change addresses by + * any means between the apr_pool_userdata_setn() call and a + * subsequent apr_pool_userdata_get() on that key, such as if a + * static string is used as a userdata key in a DSO and the DSO could + * be unloaded and reloaded between the _setn() and the _get(). You + * MUST use apr_pool_userdata_set() in such cases. + * @warning More generally, the key and the data to be attached to the + * pool should have a life span at least as long as the pool itself. + * + */ +APR_DECLARE(apr_status_t) apr_pool_userdata_setn( + const void *data, + const char *key, + apr_status_t (*cleanup)(void *), + apr_pool_t *pool); + +/** + * Return the data associated with the current pool. + * @param data The user data associated with the pool. + * @param key The key for the data to retrieve + * @param pool The current pool. + */ +APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key, + apr_pool_t *pool); + + +/* + * Cleanup + * + * Cleanups are performed in the reverse order they were registered. That is: + * Last In, First Out. + */ + +/** + * Register a function to be called when a pool is cleared or destroyed + * @param p The pool register the cleanup with + * @param data The data to pass to the cleanup function. + * @param plain_cleanup The function to call when the pool is cleared + * or destroyed + * @param child_cleanup The function to call when a child process is being + * shutdown - this function is called in the child, obviously! + */ +APR_DECLARE(void) apr_pool_cleanup_register( + apr_pool_t *p, + const void *data, + apr_status_t (*plain_cleanup)(void *), + apr_status_t (*child_cleanup)(void *)); + +/** + * Remove a previously registered cleanup function + * @param p The pool remove the cleanup from + * @param data The data to remove from cleanup + * @param cleanup The function to remove from cleanup + * @remarks For some strange reason only the plain_cleanup is handled by this + * function + */ +APR_DECLARE(void) apr_pool_cleanup_kill(apr_pool_t *p, const void *data, + apr_status_t (*cleanup)(void *)); + +/** + * Replace the child cleanup of a previously registered cleanup + * @param p The pool of the registered cleanup + * @param data The data of the registered cleanup + * @param plain_cleanup The plain cleanup function of the registered cleanup + * @param child_cleanup The function to register as the child cleanup + */ +APR_DECLARE(void) apr_pool_child_cleanup_set( + apr_pool_t *p, + const void *data, + apr_status_t (*plain_cleanup)(void *), + apr_status_t (*child_cleanup)(void *)); + +/** + * Run the specified cleanup function immediately and unregister it. Use + * @a data instead of the data that was registered with the cleanup. + * @param p The pool remove the cleanup from + * @param data The data to remove from cleanup + * @param cleanup The function to remove from cleanup + */ +APR_DECLARE(apr_status_t) apr_pool_cleanup_run( + apr_pool_t *p, + void *data, + apr_status_t (*cleanup)(void *)); + +/** + * An empty cleanup function + * @param data The data to cleanup + */ +APR_DECLARE_NONSTD(apr_status_t) apr_pool_cleanup_null(void *data); + +/* Preparing for exec() --- close files, etc., but *don't* flush I/O + * buffers, *don't* wait for subprocesses, and *don't* free any memory. + */ +/** + * Run all of the child_cleanups, so that any unnecessary files are + * closed because we are about to exec a new program + */ +APR_DECLARE(void) apr_pool_cleanup_for_exec(void); + + +/** + * @defgroup PoolDebug Pool Debugging functions. + * + * pools have nested lifetimes -- sub_pools are destroyed when the + * parent pool is cleared. We allow certain liberties with operations + * on things such as tables (and on other structures in a more general + * sense) where we allow the caller to insert values into a table which + * were not allocated from the table's pool. The table's data will + * remain valid as long as all the pools from which its values are + * allocated remain valid. + * + * For example, if B is a sub pool of A, and you build a table T in + * pool B, then it's safe to insert data allocated in A or B into T + * (because B lives at most as long as A does, and T is destroyed when + * B is cleared/destroyed). On the other hand, if S is a table in + * pool A, it is safe to insert data allocated in A into S, but it + * is *not safe* to insert data allocated from B into S... because + * B can be cleared/destroyed before A is (which would leave dangling + * pointers in T's data structures). + * + * In general we say that it is safe to insert data into a table T + * if the data is allocated in any ancestor of T's pool. This is the + * basis on which the APR_POOL_DEBUG code works -- it tests these ancestor + * relationships for all data inserted into tables. APR_POOL_DEBUG also + * provides tools (apr_pool_find, and apr_pool_is_ancestor) for other + * folks to implement similar restrictions for their own data + * structures. + * + * However, sometimes this ancestor requirement is inconvenient -- + * sometimes we're forced to create a sub pool (such as through + * apr_sub_req_lookup_uri), and the sub pool is guaranteed to have + * the same lifetime as the parent pool. This is a guarantee implemented + * by the *caller*, not by the pool code. That is, the caller guarantees + * they won't destroy the sub pool individually prior to destroying the + * parent pool. + * + * In this case the caller must call apr_pool_join() to indicate this + * guarantee to the APR_POOL_DEBUG code. There are a few examples spread + * through the standard modules. + * + * These functions are only implemented when #APR_POOL_DEBUG is set. + * + * @{ + */ +#if APR_POOL_DEBUG || defined(DOXYGEN) +/** + * Guarantee that a subpool has the same lifetime as the parent. + * @param p The parent pool + * @param sub The subpool + */ +APR_DECLARE(void) apr_pool_join(apr_pool_t *p, apr_pool_t *sub); + +/** + * Find a pool from something allocated in it. + * @param mem The thing allocated in the pool + * @return The pool it is allocated in + */ +APR_DECLARE(apr_pool_t *) apr_pool_find(const void *mem); + +/** + * Report the number of bytes currently in the pool + * @param p The pool to inspect + * @param recurse Recurse/include the subpools' sizes + * @return The number of bytes + */ +APR_DECLARE(apr_size_t) apr_pool_num_bytes(apr_pool_t *p, int recurse); + +/** + * Lock a pool + * @param pool The pool to lock + * @param flag The flag + */ +APR_DECLARE(void) apr_pool_lock(apr_pool_t *pool, int flag); + +/* @} */ + +#else /* APR_POOL_DEBUG or DOXYGEN */ + +#ifdef apr_pool_join +#undef apr_pool_join +#endif +#define apr_pool_join(a,b) + +#ifdef apr_pool_lock +#undef apr_pool_lock +#endif +#define apr_pool_lock(pool, lock) + +#endif /* APR_POOL_DEBUG or DOXYGEN */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APR_POOLS_H */ diff --git a/rubbos/app/apache2/include/apr_portable.h b/rubbos/app/apache2/include/apr_portable.h new file mode 100644 index 00000000..ffeff9b0 --- /dev/null +++ b/rubbos/app/apache2/include/apr_portable.h @@ -0,0 +1,505 @@ +/* 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. + */ + +/* This header file is where you should put ANY platform specific information. + * This should be the only header file that programs need to include that + * actually has platform dependant code which refers to the . + */ +#ifndef APR_PORTABLE_H +#define APR_PORTABLE_H +/** + * @file apr_portable.h + * @brief APR Portability Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_thread_proc.h" +#include "apr_file_io.h" +#include "apr_network_io.h" +#include "apr_errno.h" +#include "apr_global_mutex.h" +#include "apr_proc_mutex.h" +#include "apr_time.h" +#include "apr_dso.h" +#include "apr_shm.h" + +#if APR_HAVE_DIRENT_H +#include +#endif +#if APR_HAVE_FCNTL_H +#include +#endif +#if APR_HAVE_PTHREAD_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_portabile Portability Routines + * @ingroup APR + * @{ + */ + +#ifdef WIN32 +/* The primitives for Windows types */ +typedef HANDLE apr_os_file_t; +typedef HANDLE apr_os_dir_t; +typedef SOCKET apr_os_sock_t; +typedef HANDLE apr_os_proc_mutex_t; +typedef HANDLE apr_os_thread_t; +typedef HANDLE apr_os_proc_t; +typedef DWORD apr_os_threadkey_t; +typedef FILETIME apr_os_imp_time_t; +typedef SYSTEMTIME apr_os_exp_time_t; +typedef HANDLE apr_os_dso_handle_t; +typedef HANDLE apr_os_shm_t; + +#elif defined(OS2) +typedef HFILE apr_os_file_t; +typedef HDIR apr_os_dir_t; +typedef int apr_os_sock_t; +typedef HMTX apr_os_proc_mutex_t; +typedef TID apr_os_thread_t; +typedef PID apr_os_proc_t; +typedef PULONG apr_os_threadkey_t; +typedef struct timeval apr_os_imp_time_t; +typedef struct tm apr_os_exp_time_t; +typedef HMODULE apr_os_dso_handle_t; +typedef void* apr_os_shm_t; + +#elif defined(__BEOS__) +#include +#include + +struct apr_os_proc_mutex_t { + sem_id sem; + int32 ben; +}; + +typedef int apr_os_file_t; +typedef DIR apr_os_dir_t; +typedef int apr_os_sock_t; +typedef struct apr_os_proc_mutex_t apr_os_proc_mutex_t; +typedef thread_id apr_os_thread_t; +typedef thread_id apr_os_proc_t; +typedef int apr_os_threadkey_t; +typedef struct timeval apr_os_imp_time_t; +typedef struct tm apr_os_exp_time_t; +typedef image_id apr_os_dso_handle_t; +typedef void* apr_os_shm_t; + +#elif defined(NETWARE) +typedef int apr_os_file_t; +typedef DIR apr_os_dir_t; +typedef int apr_os_sock_t; +typedef NXMutex_t apr_os_proc_mutex_t; +typedef NXThreadId_t apr_os_thread_t; +typedef long apr_os_proc_t; +typedef NXKey_t apr_os_threadkey_t; +typedef struct timeval apr_os_imp_time_t; +typedef struct tm apr_os_exp_time_t; +typedef void * apr_os_dso_handle_t; +typedef void* apr_os_shm_t; + +#else +/* Any other OS should go above this one. This is the lowest common + * denominator typedefs for all UNIX-like systems. :) + */ + +/** Basic OS process mutex structure. */ +struct apr_os_proc_mutex_t { +#if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || APR_HAS_FLOCK_SERIALIZE + int crossproc; +#endif +#if APR_HAS_PROC_PTHREAD_SERIALIZE + pthread_mutex_t *pthread_interproc; +#endif +#if APR_HAS_THREADS + /* If no threads, no need for thread locks */ +#if APR_USE_PTHREAD_SERIALIZE + pthread_mutex_t *intraproc; +#endif +#endif +}; + +typedef int apr_os_file_t; /**< native file */ +typedef DIR apr_os_dir_t; /**< native dir */ +typedef int apr_os_sock_t; /**< native dir */ +typedef struct apr_os_proc_mutex_t apr_os_proc_mutex_t; /**< native proces + * mutex + */ +#if APR_HAS_THREADS && APR_HAVE_PTHREAD_H +typedef pthread_t apr_os_thread_t; /**< native thread */ +typedef pthread_key_t apr_os_threadkey_t; /**< native thread address + * space */ +#endif +typedef pid_t apr_os_proc_t; /**< native pid */ +typedef struct timeval apr_os_imp_time_t; /**< native timeval */ +typedef struct tm apr_os_exp_time_t; /**< native tm */ +/** @var apr_os_dso_handle_t + * native dso types + */ +#if defined(HPUX) || defined(HPUX10) || defined(HPUX11) +#include +typedef shl_t apr_os_dso_handle_t; +#elif defined(DARWIN) +#include +typedef NSModule apr_os_dso_handle_t; +#else +typedef void * apr_os_dso_handle_t; +#endif +typedef void* apr_os_shm_t; /**< native SHM */ + +#endif + +/** + * @typedef apr_os_sock_info_t + * @brief alias for local OS socket + */ +/** + * everything APR needs to know about an active socket to construct + * an APR socket from it; currently, this is platform-independent + */ +struct apr_os_sock_info_t { + apr_os_sock_t *os_sock; /**< always required */ + struct sockaddr *local; /**< NULL if not yet bound */ + struct sockaddr *remote; /**< NULL if not connected */ + int family; /**< always required (APR_INET, APR_INET6, etc.) */ + int type; /**< always required (SOCK_STREAM, SOCK_DGRAM, etc.) */ +#ifdef APR_ENABLE_FOR_1_0 /**< enable with APR 1.0 */ + int protocol; /**< 0 or actual protocol (APR_PROTO_SCTP, APR_PROTO_TCP, etc.) */ +#endif +}; + +typedef struct apr_os_sock_info_t apr_os_sock_info_t; + +#if APR_PROC_MUTEX_IS_GLOBAL || defined(DOXYGEN) +/** Opaque global mutex type */ +#define apr_os_global_mutex_t apr_os_proc_mutex_t +/** @return apr_os_global_mutex */ +#define apr_os_global_mutex_get apr_os_proc_mutex_get +#else + /** Thread and process mutex for those platforms where process mutexes + * are not held in threads. + */ + struct apr_os_global_mutex_t { + apr_pool_t *pool; + apr_proc_mutex_t *proc_mutex; +#if APR_HAS_THREADS + apr_thread_mutex_t *thread_mutex; +#endif /* APR_HAS_THREADS */ + }; + typedef struct apr_os_global_mutex_t apr_os_global_mutex_t; + +APR_DECLARE(apr_status_t) apr_os_global_mutex_get(apr_os_global_mutex_t *ospmutex, + apr_global_mutex_t *pmutex); +#endif + + +/** + * convert the file from apr type to os specific type. + * @param thefile The os specific file we are converting to + * @param file The apr file to convert. + * @remark On Unix, it is only possible to get a file descriptor from + * an apr file type. + */ +APR_DECLARE(apr_status_t) apr_os_file_get(apr_os_file_t *thefile, + apr_file_t *file); + +/** + * convert the dir from apr type to os specific type. + * @param thedir The os specific dir we are converting to + * @param dir The apr dir to convert. + */ +APR_DECLARE(apr_status_t) apr_os_dir_get(apr_os_dir_t **thedir, + apr_dir_t *dir); + +/** + * Convert the socket from an apr type to an OS specific socket + * @param thesock The socket to convert. + * @param sock The os specifc equivelant of the apr socket.. + */ +APR_DECLARE(apr_status_t) apr_os_sock_get(apr_os_sock_t *thesock, + apr_socket_t *sock); + +/** + * Convert the proc mutex from os specific type to apr type + * @param ospmutex The os specific proc mutex we are converting to. + * @param pmutex The apr proc mutex to convert. + */ +APR_DECLARE(apr_status_t) apr_os_proc_mutex_get(apr_os_proc_mutex_t *ospmutex, + apr_proc_mutex_t *pmutex); + +/** + * Get the exploded time in the platforms native format. + * @param ostime the native time format + * @param aprtime the time to convert + */ +APR_DECLARE(apr_status_t) apr_os_exp_time_get(apr_os_exp_time_t **ostime, + apr_time_exp_t *aprtime); + +/** + * Get the imploded time in the platforms native format. + * @param ostime the native time format + * @param aprtime the time to convert + */ +APR_DECLARE(apr_status_t) apr_os_imp_time_get(apr_os_imp_time_t **ostime, + apr_time_t *aprtime); + +/** + * convert the shm from apr type to os specific type. + * @param osshm The os specific shm representation + * @param shm The apr shm to convert. + */ +APR_DECLARE(apr_status_t) apr_os_shm_get(apr_os_shm_t *osshm, + apr_shm_t *shm); + +#if APR_HAS_THREADS || defined(DOXYGEN) +/** + * @defgroup apr_os_thread Thread portability Routines + * @{ + */ +/** + * convert the thread to os specific type from apr type. + * @param thethd The apr thread to convert + * @param thd The os specific thread we are converting to + */ +APR_DECLARE(apr_status_t) apr_os_thread_get(apr_os_thread_t **thethd, + apr_thread_t *thd); + +/** + * convert the thread private memory key to os specific type from an apr type. + * @param thekey The apr handle we are converting from. + * @param key The os specific handle we are converting to. + */ +APR_DECLARE(apr_status_t) apr_os_threadkey_get(apr_os_threadkey_t *thekey, + apr_threadkey_t *key); + +/** + * convert the thread from os specific type to apr type. + * @param thd The apr thread we are converting to. + * @param thethd The os specific thread to convert + * @param cont The pool to use if it is needed. + */ +APR_DECLARE(apr_status_t) apr_os_thread_put(apr_thread_t **thd, + apr_os_thread_t *thethd, + apr_pool_t *cont); + +/** + * convert the thread private memory key from os specific type to apr type. + * @param key The apr handle we are converting to. + * @param thekey The os specific handle to convert + * @param cont The pool to use if it is needed. + */ +APR_DECLARE(apr_status_t) apr_os_threadkey_put(apr_threadkey_t **key, + apr_os_threadkey_t *thekey, + apr_pool_t *cont); +/** + * Get the thread ID + */ +APR_DECLARE(apr_os_thread_t) apr_os_thread_current(void); + +/** + * Compare two thread id's + * @param tid1 1st Thread ID to compare + * @param tid2 2nd Thread ID to compare + */ +APR_DECLARE(int) apr_os_thread_equal(apr_os_thread_t tid1, + apr_os_thread_t tid2); + +/** @} */ +#endif /* APR_HAS_THREADS */ + +/** + * convert the file from os specific type to apr type. + * @param file The apr file we are converting to. + * @param thefile The os specific file to convert + * @param flags The flags that were used to open this file. + * @param cont The pool to use if it is needed. + * @remark On Unix, it is only possible to put a file descriptor into + * an apr file type. + */ +APR_DECLARE(apr_status_t) apr_os_file_put(apr_file_t **file, + apr_os_file_t *thefile, + apr_int32_t flags, apr_pool_t *cont); + +/** + * convert the file from os specific type to apr type. + * @param file The apr file we are converting to. + * @param thefile The os specific pipe to convert + * @param cont The pool to use if it is needed. + * @remark On Unix, it is only possible to put a file descriptor into + * an apr file type. + */ +APR_DECLARE(apr_status_t) apr_os_pipe_put(apr_file_t **file, + apr_os_file_t *thefile, + apr_pool_t *cont); + +/** + * convert the file from os specific type to apr type. + * @param file The apr file we are converting to. + * @param thefile The os specific pipe to convert + * @param register_cleanup A cleanup will be registered on the apr_file_t + * to issue apr_file_close(). + * @param cont The pool to use if it is needed. + * @remark On Unix, it is only possible to put a file descriptor into + * an apr file type. + */ +APR_DECLARE(apr_status_t) apr_os_pipe_put_ex(apr_file_t **file, + apr_os_file_t *thefile, + int register_cleanup, + apr_pool_t *cont); + +/** + * convert the dir from os specific type to apr type. + * @param dir The apr dir we are converting to. + * @param thedir The os specific dir to convert + * @param cont The pool to use when creating to apr directory. + */ +APR_DECLARE(apr_status_t) apr_os_dir_put(apr_dir_t **dir, + apr_os_dir_t *thedir, + apr_pool_t *cont); + +/** + * Convert a socket from the os specific type to the apr type + * @param sock The pool to use. + * @param thesock The socket to convert to. + * @param cont The socket we are converting to an apr type. + * @remark If it is a true socket, it is best to call apr_os_sock_make() + * and provide APR with more information about the socket. + */ +APR_DECLARE(apr_status_t) apr_os_sock_put(apr_socket_t **sock, + apr_os_sock_t *thesock, + apr_pool_t *cont); + +/** + * Create a socket from an existing descriptor and local and remote + * socket addresses. + * @param apr_sock The new socket that has been set up + * @param os_sock_info The os representation of the socket handle and + * other characteristics of the socket + * @param cont The pool to use + * @remark If you only know the descriptor/handle or if it isn't really + * a true socket, use apr_os_sock_put() instead. + */ +APR_DECLARE(apr_status_t) apr_os_sock_make(apr_socket_t **apr_sock, + apr_os_sock_info_t *os_sock_info, + apr_pool_t *cont); + +/** + * Convert the proc mutex from os specific type to apr type + * @param pmutex The apr proc mutex we are converting to. + * @param ospmutex The os specific proc mutex to convert. + * @param cont The pool to use if it is needed. + */ +APR_DECLARE(apr_status_t) apr_os_proc_mutex_put(apr_proc_mutex_t **pmutex, + apr_os_proc_mutex_t *ospmutex, + apr_pool_t *cont); + +/** + * Put the imploded time in the APR format. + * @param aprtime the APR time format + * @param ostime the time to convert + * @param cont the pool to use if necessary + */ +APR_DECLARE(apr_status_t) apr_os_imp_time_put(apr_time_t *aprtime, + apr_os_imp_time_t **ostime, + apr_pool_t *cont); + +/** + * Put the exploded time in the APR format. + * @param aprtime the APR time format + * @param ostime the time to convert + * @param cont the pool to use if necessary + */ +APR_DECLARE(apr_status_t) apr_os_exp_time_put(apr_time_exp_t *aprtime, + apr_os_exp_time_t **ostime, + apr_pool_t *cont); + +/** + * convert the shared memory from os specific type to apr type. + * @param shm The apr shm representation of osshm + * @param osshm The os specific shm identity + * @param cont The pool to use if it is needed. + * @remark On fork()ed architectures, this is typically nothing more than + * the memory block mapped. On non-fork architectures, this is typically + * some internal handle to pass the mapping from process to process. + */ +APR_DECLARE(apr_status_t) apr_os_shm_put(apr_shm_t **shm, + apr_os_shm_t *osshm, + apr_pool_t *cont); + + +#if APR_HAS_DSO || defined(DOXYGEN) +/** + * @defgroup apr_os_dso DSO (Dynamic Loading) Portabiliity Routines + * @{ + */ +/** + * convert the dso handle from os specific to apr + * @param dso The apr handle we are converting to + * @param thedso the os specific handle to convert + * @param pool the pool to use if it is needed + */ +APR_DECLARE(apr_status_t) apr_os_dso_handle_put(apr_dso_handle_t **dso, + apr_os_dso_handle_t thedso, + apr_pool_t *pool); + +/** + * convert the apr dso handle into an os specific one + * @param aprdso The apr dso handle to convert + * @param dso The os specific dso to return + */ +APR_DECLARE(apr_status_t) apr_os_dso_handle_get(apr_os_dso_handle_t *dso, + apr_dso_handle_t *aprdso); + +#if APR_HAS_OS_UUID +/** + * Private: apr-util's apr_uuid module when supported by the platform + */ +APR_DECLARE(apr_status_t) apr_os_uuid_get(unsigned char *uuid_data); +#endif + +/** @} */ +#endif /* APR_HAS_DSO */ + + +/** + * Get the name of the system default characer set. + * @param pool the pool to allocate the name from, if needed + */ +APR_DECLARE(const char*) apr_os_default_encoding(apr_pool_t *pool); + + +/** + * Get the name of the current locale character set. + * @param pool the pool to allocate the name from, if needed + * @remark Defers to apr_os_default_encoding if the current locale's + * data can't be retreved on this system. + */ +APR_DECLARE(const char*) apr_os_locale_encoding(apr_pool_t *pool); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_PORTABLE_H */ diff --git a/rubbos/app/apache2/include/apr_proc_mutex.h b/rubbos/app/apache2/include/apr_proc_mutex.h new file mode 100644 index 00000000..ceb9c82a --- /dev/null +++ b/rubbos/app/apache2/include/apr_proc_mutex.h @@ -0,0 +1,166 @@ +/* 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. + */ + +#ifndef APR_PROC_MUTEX_H +#define APR_PROC_MUTEX_H + +/** + * @file apr_proc_mutex.h + * @brief APR Process Locking Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_proc_mutex Process Locking Routines + * @ingroup APR + * @{ + */ + +/** + * Enumerated potential types for APR process locking methods + * @warning Check APR_HAS_foo_SERIALIZE defines to see if the platform supports + * APR_LOCK_foo. Only APR_LOCK_DEFAULT is portable. + */ +typedef enum { + APR_LOCK_FCNTL, /**< fcntl() */ + APR_LOCK_FLOCK, /**< flock() */ + APR_LOCK_SYSVSEM, /**< System V Semaphores */ + APR_LOCK_PROC_PTHREAD, /**< POSIX pthread process-based locking */ + APR_LOCK_POSIXSEM, /**< POSIX semaphore process-based locking */ + APR_LOCK_DEFAULT /**< Use the default process lock */ +} apr_lockmech_e; + +/** Opaque structure representing a process mutex. */ +typedef struct apr_proc_mutex_t apr_proc_mutex_t; + +/* Function definitions */ + +/** + * Create and initialize a mutex that can be used to synchronize processes. + * @param mutex the memory address where the newly created mutex will be + * stored. + * @param fname A file name to use if the lock mechanism requires one. This + * argument should always be provided. The lock code itself will + * determine if it should be used. + * @param mech The mechanism to use for the interprocess lock, if any; one of + *
+ *            APR_LOCK_FCNTL
+ *            APR_LOCK_FLOCK
+ *            APR_LOCK_SYSVSEM
+ *            APR_LOCK_POSIXSEM
+ *            APR_LOCK_PROC_PTHREAD
+ *            APR_LOCK_DEFAULT     pick the default mechanism for the platform
+ * 
+ * @param pool the pool from which to allocate the mutex. + * @see apr_lockmech_e + * @warning Check APR_HAS_foo_SERIALIZE defines to see if the platform supports + * APR_LOCK_foo. Only APR_LOCK_DEFAULT is portable. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_create(apr_proc_mutex_t **mutex, + const char *fname, + apr_lockmech_e mech, + apr_pool_t *pool); + +/** + * Re-open a mutex in a child process. + * @param mutex The newly re-opened mutex structure. + * @param fname A file name to use if the mutex mechanism requires one. This + * argument should always be provided. The mutex code itself will + * determine if it should be used. This filename should be the + * same one that was passed to apr_proc_mutex_create(). + * @param pool The pool to operate on. + * @remark This function must be called to maintain portability, even + * if the underlying lock mechanism does not require it. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_child_init(apr_proc_mutex_t **mutex, + const char *fname, + apr_pool_t *pool); + +/** + * Acquire the lock for the given mutex. If the mutex is already locked, + * the current thread will be put to sleep until the lock becomes available. + * @param mutex the mutex on which to acquire the lock. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_lock(apr_proc_mutex_t *mutex); + +/** + * Attempt to acquire the lock for the given mutex. If the mutex has already + * been acquired, the call returns immediately with APR_EBUSY. Note: it + * is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine + * if the return value was APR_EBUSY, for portability reasons. + * @param mutex the mutex on which to attempt the lock acquiring. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_trylock(apr_proc_mutex_t *mutex); + +/** + * Release the lock for the given mutex. + * @param mutex the mutex from which to release the lock. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_unlock(apr_proc_mutex_t *mutex); + +/** + * Destroy the mutex and free the memory associated with the lock. + * @param mutex the mutex to destroy. + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_destroy(apr_proc_mutex_t *mutex); + +/** + * Destroy the mutex and free the memory associated with the lock. + * @param mutex the mutex to destroy. + * @note This function is generally used to kill a cleanup on an already + * created mutex + */ +APR_DECLARE(apr_status_t) apr_proc_mutex_cleanup(void *mutex); + +/** + * Return the name of the lockfile for the mutex, or NULL + * if the mutex doesn't use a lock file + */ + +APR_DECLARE(const char *) apr_proc_mutex_lockfile(apr_proc_mutex_t *mutex); + +/** + * Display the name of the mutex, as it relates to the actual method used. + * This matches the valid options for Apache's AcceptMutex directive + * @param mutex the name of the mutex + */ +APR_DECLARE(const char *) apr_proc_mutex_name(apr_proc_mutex_t *mutex); + +/** + * Display the name of the default mutex: APR_LOCK_DEFAULT + */ +APR_DECLARE(const char *) apr_proc_mutex_defname(void); + +/** + * Get the pool used by this proc_mutex. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(proc_mutex); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_PROC_MUTEX_H */ diff --git a/rubbos/app/apache2/include/apr_queue.h b/rubbos/app/apache2/include/apr_queue.h new file mode 100644 index 00000000..5a0181b2 --- /dev/null +++ b/rubbos/app/apache2/include/apr_queue.h @@ -0,0 +1,138 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_QUEUE_H +#define APR_QUEUE_H + +/** + * @file apr_queue.h + * @brief Thread Safe FIFO bounded queue + * @note Since most implementations of the queue are backed by a condition + * variable implementation, it isn't available on systems without threads. + * Although condition variables are some times available without threads. + */ + +#include "apu.h" +#include "apr_errno.h" +#include "apr_pools.h" + +#if APR_HAS_THREADS + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup APR_Util_FIFO Thread Safe FIFO bounded queue + * @ingroup APR_Util + * @{ + */ + +/** + * opaque structure + */ +typedef struct apr_queue_t apr_queue_t; + +/** + * create a FIFO queue + * @param queue The new queue + * @param queue_capacity maximum size of the queue + * @param a pool to allocate queue from + */ +APU_DECLARE(apr_status_t) apr_queue_create(apr_queue_t **queue, + unsigned int queue_capacity, + apr_pool_t *a); + +/** + * push/add a object to the queue, blocking if the queue is already full + * + * @param queue the queue + * @param data the data + * @returns APR_EINTR the blocking was interrupted (try again) + * @returns APR_EOF the queue has been terminated + * @returns APR_SUCCESS on a successfull push + */ +APU_DECLARE(apr_status_t) apr_queue_push(apr_queue_t *queue, void *data); + +/** + * pop/get an object from the queue, blocking if the queue is already empty + * + * @param queue the queue + * @param data the data + * @returns APR_EINTR the blocking was interrupted (try again) + * @returns APR_EOF if the queue has been terminated + * @returns APR_SUCCESS on a successfull pop + */ +APU_DECLARE(apr_status_t) apr_queue_pop(apr_queue_t *queue, void **data); + +/** + * push/add a object to the queue, returning immediatly if the queue is full + * + * @param queue the queue + * @param data the data + * @returns APR_EINTR the blocking operation was interrupted (try again) + * @returns APR_EAGAIN the queue is full + * @returns APR_EOF the queue has been terminated + * @returns APR_SUCCESS on a successfull push + */ +APU_DECLARE(apr_status_t) apr_queue_trypush(apr_queue_t *queue, void *data); + +/** + * pop/get an object to the queue, returning immediatly if the queue is empty + * + * @param queue the queue + * @param data the data + * @returns APR_EINTR the blocking operation was interrupted (try again) + * @returns APR_EAGAIN the queue is empty + * @returns APR_EOF the queue has been terminated + * @returns APR_SUCCESS on a successfull push + */ +APU_DECLARE(apr_status_t) apr_queue_trypop(apr_queue_t *queue, void **data); + +/** + * returns the size of the queue. + * + * @warning this is not threadsafe, and is intended for reporting/monitoring + * of the queue. + * @param queue the queue + * @returns the size of the queue + */ +APU_DECLARE(unsigned int) apr_queue_size(apr_queue_t *queue); + +/** + * interrupt all the threads blocking on this queue. + * + * @param queue the queue + */ +APU_DECLARE(apr_status_t) apr_queue_interrupt_all(apr_queue_t *queue); + +/** + * terminate all queue, sendinging a interupt to all the + * blocking threads + * + * @param queue the queue + */ +APU_DECLARE(apr_status_t) apr_queue_term(apr_queue_t *queue); + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* APR_HAS_THREADS */ + +#endif /* APRQUEUE_H */ diff --git a/rubbos/app/apache2/include/apr_reslist.h b/rubbos/app/apache2/include/apr_reslist.h new file mode 100644 index 00000000..1a18391d --- /dev/null +++ b/rubbos/app/apache2/include/apr_reslist.h @@ -0,0 +1,141 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_RESLIST_H +#define APR_RESLIST_H + +/** + * @file apr_reslist.h + * @brief APR-UTIL Resource List Routines + */ + +#include "apr.h" +#include "apu.h" +#include "apr_pools.h" +#include "apr_errno.h" +#include "apr_time.h" + +#if APR_HAS_THREADS + +/** + * @defgroup APR_Util_RL Resource List Routines + * @ingroup APR_Util + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** Opaque resource list object */ +typedef struct apr_reslist_t apr_reslist_t; + +/* Generic constructor called by resource list when it needs to create a + * resource. + * @param resource opaque resource + * @param param flags + * @param pool Pool + */ +typedef apr_status_t (*apr_reslist_constructor)(void **resource, void *params, + apr_pool_t *pool); + +/* Generic destructor called by resource list when it needs to destroy a + * resource. + * @param resource opaque resource + * @param param flags + * @param pool Pool + */ +typedef apr_status_t (*apr_reslist_destructor)(void *resource, void *params, + apr_pool_t *pool); + +/** + * Create a new resource list with the following parameters: + * @param reslist An address where the pointer to the new resource + * list will be stored. + * @param pool The pool to use for local storage and management + * @param min Allowed minimum number of available resources. Zero + * creates new resources only when needed. + * @param smax Resources will be destroyed to meet this maximum + * restriction as they expire. + * @param hmax Absolute maximum limit on the number of total resources. + * @param ttl If non-zero, sets the maximum amount of time a resource + * may be available while exceeding the soft limit. + * @param con Constructor routine that is called to create a new resource. + * @param de Destructor routine that is called to destroy an expired resource. + * @param params Passed to constructor and deconstructor + * @param pool The pool from which to create this resoure list. Also the + * same pool that is passed to the constructor and destructor + * routines. + */ +APU_DECLARE(apr_status_t) apr_reslist_create(apr_reslist_t **reslist, + int min, int smax, int hmax, + apr_interval_time_t ttl, + apr_reslist_constructor con, + apr_reslist_destructor de, + void *params, + apr_pool_t *pool); + +/** + * Destroy the given resource list and all resources controlled by + * this list. + * FIXME: Should this block until all resources become available, + * or maybe just destroy all the free ones, or maybe destroy + * them even though they might be in use by something else? + * @param reslist The reslist to destroy + */ +APU_DECLARE(apr_status_t) apr_reslist_destroy(apr_reslist_t *reslist); + +/** + * Retrieve a resource from the list, creating a new one if necessary. + * If we have met our maximum number of resources, we will block + * until one becomes available. + */ +APU_DECLARE(apr_status_t) apr_reslist_acquire(apr_reslist_t *reslist, + void **resource); + +/** + * Return a resource back to the list of available resources. + */ +APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist, + void *resource); + +/** + * Set the timeout the acquire will wait for a free resource + * when the maximum number of resources is exceeded. + * @param reslist The resource list. + * @param timeout Timeout to wait. The zero waits forewer. + */ +APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist, + apr_interval_time_t timeout); + +/** + * Invalidate a resource in the pool - e.g. a database connection + * that returns a "lost connection" error and can't be restored. + * Use this instead of apr_reslist_release if the resource is bad. + */ +APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist, + void *resource); + + +#ifdef __cplusplus +} +#endif + +/** @} */ + +#endif /* APR_HAS_THREADS */ + +#endif /* ! APR_RESLIST_H */ diff --git a/rubbos/app/apache2/include/apr_ring.h b/rubbos/app/apache2/include/apr_ring.h new file mode 100644 index 00000000..79efb436 --- /dev/null +++ b/rubbos/app/apache2/include/apr_ring.h @@ -0,0 +1,551 @@ +/* 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. + */ + +/* + * This code draws heavily from the 4.4BSD macros + * and Dean Gaudet's "splim/ring.h". + * + * + * + * We'd use Dean's code directly if we could guarantee the + * availability of inline functions. + */ + +#ifndef APR_RING_H +#define APR_RING_H + +/** + * @file apr_ring.h + * @brief APR Rings + */ + +/* + * for offsetof() + */ +#include "apr_general.h" + +/** + * @defgroup apr_ring Ring Macro Implementations + * @ingroup APR + * A ring is a kind of doubly-linked list that can be manipulated + * without knowing where its head is. + * @{ + */ + +/** + * The Ring Element + * + * A ring element struct is linked to the other elements in the ring + * through its ring entry field, e.g. + *
+ *      struct my_element_t {
+ *          APR_RING_ENTRY(my_element_t) link;
+ *          int foo;
+ *          char *bar;
+ *      };
+ * 
+ * + * An element struct may be put on more than one ring if it has more + * than one APR_RING_ENTRY field. Each APR_RING_ENTRY has a corresponding + * APR_RING_HEAD declaration. + * + * @warning For strict C standards compliance you should put the APR_RING_ENTRY + * first in the element struct unless the head is always part of a larger + * object with enough earlier fields to accommodate the offsetof() used + * to compute the ring sentinel below. You can usually ignore this caveat. + */ +#define APR_RING_ENTRY(elem) \ + struct { \ + struct elem *next; \ + struct elem *prev; \ + } + +/** + * The Ring Head + * + * Each ring is managed via its head, which is a struct declared like this: + *
+ *      APR_RING_HEAD(my_ring_t, my_element_t);
+ *      struct my_ring_t ring, *ringp;
+ * 
+ * + * This struct looks just like the element link struct so that we can + * be sure that the typecasting games will work as expected. + * + * The first element in the ring is next after the head, and the last + * element is just before the head. + */ +#define APR_RING_HEAD(head, elem) \ + struct head { \ + struct elem * volatile next; \ + struct elem * volatile prev; \ + } + +/** + * The Ring Sentinel + * + * This is the magic pointer value that occurs before the first and + * after the last elements in the ring, computed from the address of + * the ring's head. The head itself isn't an element, but in order to + * get rid of all the special cases when dealing with the ends of the + * ring, we play typecasting games to make it look like one. + * + * Here is a diagram to illustrate the arrangements of the next and + * prev pointers of each element in a single ring. Note that they point + * to the start of each element, not to the APR_RING_ENTRY structure. + * + *
+ *     +->+------+<-+  +->+------+<-+  +->+------+<-+
+ *     |  |struct|  |  |  |struct|  |  |  |struct|  |
+ *    /   | elem |   \/   | elem |   \/   | elem |  \
+ * ...    |      |   /\   |      |   /\   |      |   ...
+ *        +------+  |  |  +------+  |  |  +------+
+ *   ...--|prev  |  |  +--|ring  |  |  +--|prev  |
+ *        |  next|--+     | entry|--+     |  next|--...
+ *        +------+        +------+        +------+
+ *        | etc. |        | etc. |        | etc. |
+ *        :      :        :      :        :      :
+ * 
+ * + * The APR_RING_HEAD is nothing but a bare APR_RING_ENTRY. The prev + * and next pointers in the first and last elements don't actually + * point to the head, they point to a phantom place called the + * sentinel. Its value is such that last->next->next == first because + * the offset from the sentinel to the head's next pointer is the same + * as the offset from the start of an element to its next pointer. + * This also works in the opposite direction. + * + *
+ *        last                            first
+ *     +->+------+<-+  +->sentinel<-+  +->+------+<-+
+ *     |  |struct|  |  |            |  |  |struct|  |
+ *    /   | elem |   \/              \/   | elem |  \
+ * ...    |      |   /\              /\   |      |   ...
+ *        +------+  |  |  +------+  |  |  +------+
+ *   ...--|prev  |  |  +--|ring  |  |  +--|prev  |
+ *        |  next|--+     |  head|--+     |  next|--...
+ *        +------+        +------+        +------+
+ *        | etc. |                        | etc. |
+ *        :      :                        :      :
+ * 
+ * + * Note that the offset mentioned above is different for each kind of + * ring that the element may be on, and each kind of ring has a unique + * name for its APR_RING_ENTRY in each element, and has its own type + * for its APR_RING_HEAD. + * + * Note also that if the offset is non-zero (which is required if an + * element has more than one APR_RING_ENTRY), the unreality of the + * sentinel may have bad implications on very perverse implementations + * of C -- see the warning in APR_RING_ENTRY. + * + * @param hp The head of the ring + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_SENTINEL(hp, elem, link) \ + (struct elem *)((char *)(hp) - APR_OFFSETOF(struct elem, link)) + +/** + * The first element of the ring + * @param hp The head of the ring + */ +#define APR_RING_FIRST(hp) (hp)->next +/** + * The last element of the ring + * @param hp The head of the ring + */ +#define APR_RING_LAST(hp) (hp)->prev +/** + * The next element in the ring + * @param ep The current element + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_NEXT(ep, link) (ep)->link.next +/** + * The previous element in the ring + * @param ep The current element + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_PREV(ep, link) (ep)->link.prev + + +/** + * Initialize a ring + * @param hp The head of the ring + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_INIT(hp, elem, link) do { \ + APR_RING_FIRST((hp)) = APR_RING_SENTINEL((hp), elem, link); \ + APR_RING_LAST((hp)) = APR_RING_SENTINEL((hp), elem, link); \ + } while (0) + +/** + * Determine if a ring is empty + * @param hp The head of the ring + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + * @return true or false + */ +#define APR_RING_EMPTY(hp, elem, link) \ + (APR_RING_FIRST((hp)) == APR_RING_SENTINEL((hp), elem, link)) + +/** + * Initialize a singleton element + * @param ep The element + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_ELEM_INIT(ep, link) do { \ + APR_RING_NEXT((ep), link) = (ep); \ + APR_RING_PREV((ep), link) = (ep); \ + } while (0) + + +/** + * Splice the sequence ep1..epN into the ring before element lep + * (..lep.. becomes ..ep1..epN..lep..) + * @warning This doesn't work for splicing before the first element or on + * empty rings... see APR_RING_SPLICE_HEAD for one that does + * @param lep Element in the ring to splice before + * @param ep1 First element in the sequence to splice in + * @param epN Last element in the sequence to splice in + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_SPLICE_BEFORE(lep, ep1, epN, link) do { \ + APR_RING_NEXT((epN), link) = (lep); \ + APR_RING_PREV((ep1), link) = APR_RING_PREV((lep), link); \ + APR_RING_NEXT(APR_RING_PREV((lep), link), link) = (ep1); \ + APR_RING_PREV((lep), link) = (epN); \ + } while (0) + +/** + * Splice the sequence ep1..epN into the ring after element lep + * (..lep.. becomes ..lep..ep1..epN..) + * @warning This doesn't work for splicing after the last element or on + * empty rings... see APR_RING_SPLICE_TAIL for one that does + * @param lep Element in the ring to splice after + * @param ep1 First element in the sequence to splice in + * @param epN Last element in the sequence to splice in + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_SPLICE_AFTER(lep, ep1, epN, link) do { \ + APR_RING_PREV((ep1), link) = (lep); \ + APR_RING_NEXT((epN), link) = APR_RING_NEXT((lep), link); \ + APR_RING_PREV(APR_RING_NEXT((lep), link), link) = (epN); \ + APR_RING_NEXT((lep), link) = (ep1); \ + } while (0) + +/** + * Insert the element nep into the ring before element lep + * (..lep.. becomes ..nep..lep..) + * @warning This doesn't work for inserting before the first element or on + * empty rings... see APR_RING_INSERT_HEAD for one that does + * @param lep Element in the ring to insert before + * @param nep Element to insert + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_INSERT_BEFORE(lep, nep, link) \ + APR_RING_SPLICE_BEFORE((lep), (nep), (nep), link) + +/** + * Insert the element nep into the ring after element lep + * (..lep.. becomes ..lep..nep..) + * @warning This doesn't work for inserting after the last element or on + * empty rings... see APR_RING_INSERT_TAIL for one that does + * @param lep Element in the ring to insert after + * @param nep Element to insert + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_INSERT_AFTER(lep, nep, link) \ + APR_RING_SPLICE_AFTER((lep), (nep), (nep), link) + + +/** + * Splice the sequence ep1..epN into the ring before the first element + * (..hp.. becomes ..hp..ep1..epN..) + * @param hp Head of the ring + * @param ep1 First element in the sequence to splice in + * @param epN Last element in the sequence to splice in + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_SPLICE_HEAD(hp, ep1, epN, elem, link) \ + APR_RING_SPLICE_AFTER(APR_RING_SENTINEL((hp), elem, link), \ + (ep1), (epN), link) + +/** + * Splice the sequence ep1..epN into the ring after the last element + * (..hp.. becomes ..ep1..epN..hp..) + * @param hp Head of the ring + * @param ep1 First element in the sequence to splice in + * @param epN Last element in the sequence to splice in + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_SPLICE_TAIL(hp, ep1, epN, elem, link) \ + APR_RING_SPLICE_BEFORE(APR_RING_SENTINEL((hp), elem, link), \ + (ep1), (epN), link) + +/** + * Insert the element nep into the ring before the first element + * (..hp.. becomes ..hp..nep..) + * @param hp Head of the ring + * @param nep Element to insert + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_INSERT_HEAD(hp, nep, elem, link) \ + APR_RING_SPLICE_HEAD((hp), (nep), (nep), elem, link) + +/** + * Insert the element nep into the ring after the last element + * (..hp.. becomes ..nep..hp..) + * @param hp Head of the ring + * @param nep Element to insert + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_INSERT_TAIL(hp, nep, elem, link) \ + APR_RING_SPLICE_TAIL((hp), (nep), (nep), elem, link) + +/** + * Concatenate ring h2 onto the end of ring h1, leaving h2 empty. + * @param h1 Head of the ring to concatenate onto + * @param h2 Head of the ring to concatenate + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_CONCAT(h1, h2, elem, link) do { \ + if (!APR_RING_EMPTY((h2), elem, link)) { \ + APR_RING_SPLICE_BEFORE(APR_RING_SENTINEL((h1), elem, link), \ + APR_RING_FIRST((h2)), \ + APR_RING_LAST((h2)), link); \ + APR_RING_INIT((h2), elem, link); \ + } \ + } while (0) + +/** + * Prepend ring h2 onto the beginning of ring h1, leaving h2 empty. + * @param h1 Head of the ring to prepend onto + * @param h2 Head of the ring to prepend + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_PREPEND(h1, h2, elem, link) do { \ + if (!APR_RING_EMPTY((h2), elem, link)) { \ + APR_RING_SPLICE_AFTER(APR_RING_SENTINEL((h1), elem, link), \ + APR_RING_FIRST((h2)), \ + APR_RING_LAST((h2)), link); \ + APR_RING_INIT((h2), elem, link); \ + } \ + } while (0) + +/** + * Unsplice a sequence of elements from a ring + * @warning The unspliced sequence is left with dangling pointers at either end + * @param ep1 First element in the sequence to unsplice + * @param epN Last element in the sequence to unsplice + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_UNSPLICE(ep1, epN, link) do { \ + APR_RING_NEXT(APR_RING_PREV((ep1), link), link) = \ + APR_RING_NEXT((epN), link); \ + APR_RING_PREV(APR_RING_NEXT((epN), link), link) = \ + APR_RING_PREV((ep1), link); \ + } while (0) + +/** + * Remove a single element from a ring + * @warning The unspliced element is left with dangling pointers at either end + * @param ep Element to remove + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_REMOVE(ep, link) \ + APR_RING_UNSPLICE((ep), (ep), link) + + +/** + * Iterate through a ring + * @param ep The current element + * @param hp The ring to iterate over + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + * @remark This is the same as either: + *
+ *	ep = APR_RING_FIRST(hp);
+ * 	while (ep != APR_RING_SENTINEL(hp, elem, link)) {
+ *	    ...
+ * 	    ep = APR_RING_NEXT(ep, link);
+ * 	}
+ *   OR
+ * 	for (ep = APR_RING_FIRST(hp);
+ *           ep != APR_RING_SENTINEL(hp, elem, link);
+ *           ep = APR_RING_NEXT(ep, link)) {
+ *	    ...
+ * 	}
+ * 
+ * @warning Be aware that you cannot change the value of ep within + * the foreach loop, nor can you destroy the ring element it points to. + * Modifying the prev and next pointers of the element is dangerous + * but can be done if you're careful. If you change ep's value or + * destroy the element it points to, then APR_RING_FOREACH + * will have no way to find out what element to use for its next + * iteration. The reason for this can be seen by looking closely + * at the equivalent loops given in the tip above. So, for example, + * if you are writing a loop that empties out a ring one element + * at a time, APR_RING_FOREACH just won't work for you. Do it + * by hand, like so: + *
+ *      while (!APR_RING_EMPTY(hp, elem, link)) {
+ *          ep = APR_RING_FIRST(hp);
+ *          ...
+ *          APR_RING_REMOVE(ep, link);
+ *      }
+ * 
+ * @deprecated This macro causes more headaches than it's worth. Use + * one of the alternatives documented here instead; the clarity gained + * in what's really going on is well worth the extra line or two of code. + * This macro will be removed at some point in the future. + */ +#define APR_RING_FOREACH(ep, hp, elem, link) \ + for ((ep) = APR_RING_FIRST((hp)); \ + (ep) != APR_RING_SENTINEL((hp), elem, link); \ + (ep) = APR_RING_NEXT((ep), link)) + +/** + * Iterate through a ring backwards + * @param ep The current element + * @param hp The ring to iterate over + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + * @see APR_RING_FOREACH + */ +#define APR_RING_FOREACH_REVERSE(ep, hp, elem, link) \ + for ((ep) = APR_RING_LAST((hp)); \ + (ep) != APR_RING_SENTINEL((hp), elem, link); \ + (ep) = APR_RING_PREV((ep), link)) + + +/* Debugging tools: */ + +#ifdef APR_RING_DEBUG +#include +#include + +#define APR_RING_CHECK_ONE(msg, ptr) \ + fprintf(stderr, "*** %s %p\n", msg, ptr) + +#define APR_RING_CHECK(hp, elem, link, msg) \ + APR_RING_CHECK_ELEM(APR_RING_SENTINEL(hp, elem, link), elem, link, msg) + +#define APR_RING_CHECK_ELEM(ep, elem, link, msg) do { \ + struct elem *start = (ep); \ + struct elem *here = start; \ + fprintf(stderr, "*** ring check start -- %s\n", msg); \ + do { \ + fprintf(stderr, "\telem %p\n", here); \ + fprintf(stderr, "\telem->next %p\n", \ + APR_RING_NEXT(here, link)); \ + fprintf(stderr, "\telem->prev %p\n", \ + APR_RING_PREV(here, link)); \ + fprintf(stderr, "\telem->next->prev %p\n", \ + APR_RING_PREV(APR_RING_NEXT(here, link), link)); \ + fprintf(stderr, "\telem->prev->next %p\n", \ + APR_RING_NEXT(APR_RING_PREV(here, link), link)); \ + if (APR_RING_PREV(APR_RING_NEXT(here, link), link) != here) { \ + fprintf(stderr, "\t*** elem->next->prev != elem\n"); \ + break; \ + } \ + if (APR_RING_NEXT(APR_RING_PREV(here, link), link) != here) { \ + fprintf(stderr, "\t*** elem->prev->next != elem\n"); \ + break; \ + } \ + here = APR_RING_NEXT(here, link); \ + } while (here != start); \ + fprintf(stderr, "*** ring check end\n"); \ + } while (0) + +#define APR_RING_CHECK_CONSISTENCY(hp, elem, link) \ + APR_RING_CHECK_ELEM_CONSISTENCY(APR_RING_SENTINEL(hp, elem, link),\ + elem, link) + +#define APR_RING_CHECK_ELEM_CONSISTENCY(ep, elem, link) do { \ + struct elem *start = (ep); \ + struct elem *here = start; \ + do { \ + assert(APR_RING_PREV(APR_RING_NEXT(here, link), link) == here); \ + assert(APR_RING_NEXT(APR_RING_PREV(here, link), link) == here); \ + here = APR_RING_NEXT(here, link); \ + } while (here != start); \ + } while (0) + +#else +/** + * Print a single pointer value to STDERR + * (This is a no-op unless APR_RING_DEBUG is defined.) + * @param msg Descriptive message + * @param ptr Pointer value to print + */ +#define APR_RING_CHECK_ONE(msg, ptr) +/** + * Dump all ring pointers to STDERR, starting with the head and looping all + * the way around the ring back to the head. Aborts if an inconsistency + * is found. + * (This is a no-op unless APR_RING_DEBUG is defined.) + * @param hp Head of the ring + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + * @param msg Descriptive message + */ +#define APR_RING_CHECK(hp, elem, link, msg) +/** + * Loops around a ring and checks all the pointers for consistency. Pops + * an assertion if any inconsistency is found. Same idea as APR_RING_CHECK() + * except that it's silent if all is well. + * (This is a no-op unless APR_RING_DEBUG is defined.) + * @param hp Head of the ring + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_CHECK_CONSISTENCY(hp, elem, link) +/** + * Dump all ring pointers to STDERR, starting with the given element and + * looping all the way around the ring back to that element. Aborts if + * an inconsistency is found. + * (This is a no-op unless APR_RING_DEBUG is defined.) + * @param ep The element + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + * @param msg Descriptive message + */ +#define APR_RING_CHECK_ELEM(ep, elem, link, msg) +/** + * Loops around a ring, starting with the given element, and checks all + * the pointers for consistency. Pops an assertion if any inconsistency + * is found. Same idea as APR_RING_CHECK_ELEM() except that it's silent + * if all is well. + * (This is a no-op unless APR_RING_DEBUG is defined.) + * @param ep The element + * @param elem The name of the element struct + * @param link The name of the APR_RING_ENTRY in the element struct + */ +#define APR_RING_CHECK_ELEM_CONSISTENCY(ep, elem, link) +#endif + +/** @} */ + +#endif /* !APR_RING_H */ diff --git a/rubbos/app/apache2/include/apr_rmm.h b/rubbos/app/apache2/include/apr_rmm.h new file mode 100644 index 00000000..a1f0d676 --- /dev/null +++ b/rubbos/app/apache2/include/apr_rmm.h @@ -0,0 +1,137 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_RMM_H +#define APR_RMM_H +/** + * @file apr_rmm.h + * @brief APR-UTIL Relocatable Memory Management Routines + */ +/** + * @defgroup APR_Util_RMM Relocatable Memory Management Routines + * @ingroup APR_Util + * @{ + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" +#include "apu.h" +#include "apr_anylock.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** Structure to access Relocatable, Managed Memory */ +typedef struct apr_rmm_t apr_rmm_t; + +/** Fundamental allocation unit, within a specific apr_rmm_t */ +typedef apr_size_t apr_rmm_off_t; + +/** + * Initialize a relocatable memory block to be managed by the apr_rmm API. + * @param rmm The relocatable memory block + * @param lock An apr_anylock_t of the appropriate type of lock, or NULL + * if no locking is required. + * @param membuf The block of relocatable memory to be managed + * @param memsize The size of relocatable memory block to be managed + * @param cont The pool to use for local storage and management + * @remark Both @param membuf and @param memsize must be aligned + * (for instance using APR_ALIGN_DEFAULT). + */ +APU_DECLARE(apr_status_t) apr_rmm_init(apr_rmm_t **rmm, apr_anylock_t *lock, + void *membuf, apr_size_t memsize, + apr_pool_t *cont); + +/** + * Destroy a managed memory block. + * @param rmm The relocatable memory block to destroy + */ +APU_DECLARE(apr_status_t) apr_rmm_destroy(apr_rmm_t *rmm); + +/** + * Attach to a relocatable memory block already managed by the apr_rmm API. + * @param rmm The relocatable memory block + * @param lock An apr_anylock_t of the appropriate type of lock + * @param membuf The block of relocatable memory already under management + * @param cont The pool to use for local storage and management + */ +APU_DECLARE(apr_status_t) apr_rmm_attach(apr_rmm_t **rmm, apr_anylock_t *lock, + void *membuf, apr_pool_t *cont); + +/** + * Detach from the managed block of memory. + * @param rmm The relocatable memory block to detach from + */ +APU_DECLARE(apr_status_t) apr_rmm_detach(apr_rmm_t *rmm); + +/** + * Allocate memory from the block of relocatable memory. + * @param rmm The relocatable memory block + * @param reqsize How much memory to allocate + */ +APU_DECLARE(apr_rmm_off_t) apr_rmm_malloc(apr_rmm_t *rmm, apr_size_t reqsize); + +/** + * Realloc memory from the block of relocatable memory. + * @param rmm The relocatable memory block + * @param entity The memory allocation to realloc + * @param reqsize The new size + */ +APU_DECLARE(apr_rmm_off_t) apr_rmm_realloc(apr_rmm_t *rmm, void *entity, apr_size_t reqsize); + +/** + * Allocate memory from the block of relocatable memory and initialize it to zero. + * @param rmm The relocatable memory block + * @param reqsize How much memory to allocate + */ +APU_DECLARE(apr_rmm_off_t) apr_rmm_calloc(apr_rmm_t *rmm, apr_size_t reqsize); + +/** + * Free allocation returned by apr_rmm_malloc or apr_rmm_calloc. + * @param rmm The relocatable memory block + * @param entity The memory allocation to free + */ +APU_DECLARE(apr_status_t) apr_rmm_free(apr_rmm_t *rmm, apr_rmm_off_t entity); + +/** + * Retrieve the physical address of a relocatable allocation of memory + * @param rmm The relocatable memory block + * @param entity The memory allocation to free + * @return address The address, aligned with APR_ALIGN_DEFAULT. + */ +APU_DECLARE(void *) apr_rmm_addr_get(apr_rmm_t *rmm, apr_rmm_off_t entity); + +/** + * Compute the offset of a relocatable allocation of memory + * @param rmm The relocatable memory block + * @param entity The physical address to convert to an offset + */ +APU_DECLARE(apr_rmm_off_t) apr_rmm_offset_get(apr_rmm_t *rmm, void *entity); + +/** + * Compute the required overallocation of memory needed to fit n allocs + * @param n The number of alloc/calloc regions desired + */ +APU_DECLARE(apr_size_t) apr_rmm_overhead_get(int n); + +#ifdef __cplusplus +} +#endif +/** @} */ +#endif /* ! APR_RMM_H */ + diff --git a/rubbos/app/apache2/include/apr_sdbm.h b/rubbos/app/apache2/include/apr_sdbm.h new file mode 100644 index 00000000..7fcf7f6e --- /dev/null +++ b/rubbos/app/apache2/include/apr_sdbm.h @@ -0,0 +1,175 @@ +/* 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 + * + * 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. + */ + +/* + * sdbm - ndbm work-alike hashed database library + * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978). + * author: oz@nexus.yorku.ca + * status: ex-public domain + */ + +#ifndef APR_SDBM_H +#define APR_SDBM_H + +#include "apu.h" +#include "apr_errno.h" +#include "apr_file_io.h" /* for apr_fileperms_t */ + +/** + * @file apr_sdbm.h + * @brief apr-util SDBM library + */ +/** + * @defgroup APR_Util_DBM_SDBM SDBM library + * @ingroup APR_Util_DBM + * @{ + */ + +/** + * Structure for referencing an sdbm + */ +typedef struct apr_sdbm_t apr_sdbm_t; + +/** + * Structure for referencing the datum record within an sdbm + */ +typedef struct { + /** pointer to the data stored/retrieved */ + char *dptr; + /** size of data */ + int dsize; +} apr_sdbm_datum_t; + +/* The extensions used for the database files */ +/** SDBM Directory file extension */ +#define APR_SDBM_DIRFEXT ".dir" +/** SDBM page file extension */ +#define APR_SDBM_PAGFEXT ".pag" + +/* flags to sdbm_store */ +#define APR_SDBM_INSERT 0 /**< Insert */ +#define APR_SDBM_REPLACE 1 /**< Replace */ +#define APR_SDBM_INSERTDUP 2 /**< Insert with duplicates */ + +/** + * Open an sdbm database by file name + * @param db The newly opened database + * @param name The sdbm file to open + * @param mode The flag values (APR_READ and APR_BINARY flags are implicit) + *
+ *           APR_WRITE          open for read-write access
+ *           APR_CREATE         create the sdbm if it does not exist
+ *           APR_TRUNCATE       empty the contents of the sdbm
+ *           APR_EXCL           fail for APR_CREATE if the file exists
+ *           APR_DELONCLOSE     delete the sdbm when closed
+ *           APR_SHARELOCK      support locking across process/machines
+ * 
+ * @param perms Permissions to apply to if created + * @param p The pool to use when creating the sdbm + * @remark The sdbm name is not a true file name, as sdbm appends suffixes + * for seperate data and index files. + */ +APU_DECLARE(apr_status_t) apr_sdbm_open(apr_sdbm_t **db, const char *name, + apr_int32_t mode, + apr_fileperms_t perms, apr_pool_t *p); + +/** + * Close an sdbm file previously opened by apr_sdbm_open + * @param db The database to close + */ +APU_DECLARE(apr_status_t) apr_sdbm_close(apr_sdbm_t *db); + +/** + * Lock an sdbm database for concurency of multiple operations + * @param db The database to lock + * @param type The lock type + *
+ *           APR_FLOCK_SHARED
+ *           APR_FLOCK_EXCLUSIVE
+ * 
+ * @remark Calls to apr_sdbm_lock may be nested. All apr_sdbm functions + * perform implicit locking. Since an APR_FLOCK_SHARED lock cannot be + * portably promoted to an APR_FLOCK_EXCLUSIVE lock, apr_sdbm_store and + * apr_sdbm_delete calls will fail if an APR_FLOCK_SHARED lock is held. + * The apr_sdbm_lock call requires the database to be opened with the + * APR_SHARELOCK mode value. + */ +APU_DECLARE(apr_status_t) apr_sdbm_lock(apr_sdbm_t *db, int type); + +/** + * Release an sdbm lock previously aquired by apr_sdbm_lock + * @param db The database to unlock + */ +APU_DECLARE(apr_status_t) apr_sdbm_unlock(apr_sdbm_t *db); + +/** + * Fetch an sdbm record value by key + * @param db The database + * @param value The value datum retrieved for this record + * @param key The key datum to find this record + */ +APU_DECLARE(apr_status_t) apr_sdbm_fetch(apr_sdbm_t *db, + apr_sdbm_datum_t *value, + apr_sdbm_datum_t key); + +/** + * Store an sdbm record value by key + * @param db The database + * @param key The key datum to store this record by + * @param value The value datum to store in this record + * @param opt The method used to store the record + *
+ *           APR_SDBM_INSERT     return an error if the record exists
+ *           APR_SDBM_REPLACE    overwrite any existing record for key
+ * 
+ */ +APU_DECLARE(apr_status_t) apr_sdbm_store(apr_sdbm_t *db, apr_sdbm_datum_t key, + apr_sdbm_datum_t value, int opt); + +/** + * Delete an sdbm record value by key + * @param db The database + * @param key The key datum of the record to delete + * @remark It is not an error to delete a non-existent record. + */ +APU_DECLARE(apr_status_t) apr_sdbm_delete(apr_sdbm_t *db, + const apr_sdbm_datum_t key); + +/** + * Retrieve the first record key from a dbm + * @param db The database + * @param key The key datum of the first record + * @remark The keys returned are not ordered. To traverse the list of keys + * for an sdbm opened with APR_SHARELOCK, the caller must use apr_sdbm_lock + * prior to retrieving the first record, and hold the lock until after the + * last call to apr_sdbm_nextkey. + */ +APU_DECLARE(apr_status_t) apr_sdbm_firstkey(apr_sdbm_t *db, apr_sdbm_datum_t *key); + +/** + * Retrieve the next record key from an sdbm + * @param db The database + * @param key The key datum of the next record + */ +APU_DECLARE(apr_status_t) apr_sdbm_nextkey(apr_sdbm_t *db, apr_sdbm_datum_t *key); + +/** + * Returns true if the sdbm database opened for read-only access + * @param db The database to test + */ +APU_DECLARE(int) apr_sdbm_rdonly(apr_sdbm_t *db); +/** @} */ +#endif /* APR_SDBM_H */ diff --git a/rubbos/app/apache2/include/apr_sha1.h b/rubbos/app/apache2/include/apr_sha1.h new file mode 100644 index 00000000..1ad50655 --- /dev/null +++ b/rubbos/app/apache2/include/apr_sha1.h @@ -0,0 +1,121 @@ +/* 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 + * + * 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. + */ +/* NIST Secure Hash Algorithm + * heavily modified by Uwe Hollerbach uh@alumni.caltech edu + * from Peter C. Gutmann's implementation as found in + * Applied Cryptography by Bruce Schneier + * This code is hereby placed in the public domain + */ + +#ifndef APR_SHA1_H +#define APR_SHA1_H + +#include "apu.h" +#include "apr_general.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file apr_sha1.h + * @brief APR-UTIL SHA1 library + */ + +/** size of the SHA1 DIGEST */ +#define APR_SHA1_DIGESTSIZE 20 + +/** + * Define the Magic String prefix that identifies a password as being + * hashed using our algorithm. + */ +#define APR_SHA1PW_ID "{SHA}" + +/** length of the SHA Password */ +#define APR_SHA1PW_IDLEN 5 + +/** @see apr_sha1_ctx_t */ +typedef struct apr_sha1_ctx_t apr_sha1_ctx_t; + +/** + * SHA1 context structure + */ +struct apr_sha1_ctx_t { + /** message digest */ + apr_uint32_t digest[5]; + /** 64-bit bit counts */ + apr_uint32_t count_lo, count_hi; + /** SHA data buffer */ + apr_uint32_t data[16]; + /** unprocessed amount in data */ + int local; +}; + +/** + * Provide a means to SHA1 crypt/encode a plaintext password in a way which + * makes password file compatible with those commonly use in netscape web + * and ldap installations. + * @param clear The plaintext password + * @param len The length of the plaintext password + * @param out The encrypted/encoded password + * @note SHA1 support is useful for migration purposes, but is less + * secure than Apache's password format, since Apache's (MD5) + * password format uses a random eight character salt to generate + * one of many possible hashes for the same password. Netscape + * uses plain SHA1 without a salt, so the same password + * will always generate the same hash, making it easier + * to break since the search space is smaller. + */ +APU_DECLARE(void) apr_sha1_base64(const char *clear, int len, char *out); + +/** + * Initialize the SHA digest + * @param context The SHA context to initialize + */ +APU_DECLARE(void) apr_sha1_init(apr_sha1_ctx_t *context); + +/** + * Update the SHA digest + * @param context The SHA1 context to update + * @param input The buffer to add to the SHA digest + * @param inputLen The length of the input buffer + */ +APU_DECLARE(void) apr_sha1_update(apr_sha1_ctx_t *context, const char *input, + unsigned int inputLen); + +/** + * Update the SHA digest with binary data + * @param context The SHA1 context to update + * @param input The buffer to add to the SHA digest + * @param inputLen The length of the input buffer + */ +APU_DECLARE(void) apr_sha1_update_binary(apr_sha1_ctx_t *context, + const unsigned char *input, + unsigned int inputLen); + +/** + * Finish computing the SHA digest + * @param digest the output buffer in which to store the digest + * @param context The context to finalize + */ +APU_DECLARE(void) apr_sha1_final(unsigned char digest[APR_SHA1_DIGESTSIZE], + apr_sha1_ctx_t *context); + +#ifdef __cplusplus +} +#endif + +#endif /* APR_SHA1_H */ diff --git a/rubbos/app/apache2/include/apr_shm.h b/rubbos/app/apache2/include/apr_shm.h new file mode 100644 index 00000000..5373f6a7 --- /dev/null +++ b/rubbos/app/apache2/include/apr_shm.h @@ -0,0 +1,127 @@ +/* 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. + */ + +#ifndef APR_SHM_H +#define APR_SHM_H + +/** + * @file apr_shm.h + * @brief APR Shared Memory Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_shm Shared Memory Routines + * @ingroup APR + * @{ + */ + +/** + * Private, platform-specific data struture representing a shared memory + * segment. + */ +typedef struct apr_shm_t apr_shm_t; + +/** + * Create and make accessable a shared memory segment. + * @param m The shared memory structure to create. + * @param reqsize The desired size of the segment. + * @param filename The file to use for shared memory on platforms that + * require it. + * @param pool the pool from which to allocate the shared memory + * structure. + * @remark A note about Anonymous vs. Named shared memory segments: + * Not all plaforms support anonymous shared memory segments, but in + * some cases it is prefered over other types of shared memory + * implementations. Passing a NULL 'file' parameter to this function + * will cause the subsystem to use anonymous shared memory segments. + * If such a system is not available, APR_ENOTIMPL is returned. + * @remark A note about allocation sizes: + * On some platforms it is necessary to store some metainformation + * about the segment within the actual segment. In order to supply + * the caller with the requested size it may be necessary for the + * implementation to request a slightly greater segment length + * from the subsystem. In all cases, the apr_shm_baseaddr_get() + * function will return the first usable byte of memory. + * + */ +APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m, + apr_size_t reqsize, + const char *filename, + apr_pool_t *pool); + +/** + * Destroy a shared memory segment and associated memory. + * @param m The shared memory segment structure to destroy. + */ +APR_DECLARE(apr_status_t) apr_shm_destroy(apr_shm_t *m); + +/** + * Attach to a shared memory segment that was created + * by another process. + * @param m The shared memory structure to create. + * @param filename The file used to create the original segment. + * (This MUST match the original filename.) + * @param pool the pool from which to allocate the shared memory + * structure for this process. + */ +APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m, + const char *filename, + apr_pool_t *pool); + +/** + * Detach from a shared memory segment without destroying it. + * @param m The shared memory structure representing the segment + * to detach from. + */ +APR_DECLARE(apr_status_t) apr_shm_detach(apr_shm_t *m); + +/** + * Retrieve the base address of the shared memory segment. + * NOTE: This address is only usable within the callers address + * space, since this API does not guarantee that other attaching + * processes will maintain the same address mapping. + * @param m The shared memory segment from which to retrieve + * the base address. + */ +APR_DECLARE(void *) apr_shm_baseaddr_get(const apr_shm_t *m); + +/** + * Retrieve the length of a shared memory segment in bytes. + * @param m The shared memory segment from which to retrieve + * the segment length. + */ +APR_DECLARE(apr_size_t) apr_shm_size_get(const apr_shm_t *m); + +/** + * Get the pool used by this shared memory segment. + */ +APR_POOL_DECLARE_ACCESSOR(shm); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* APR_SHM_T */ diff --git a/rubbos/app/apache2/include/apr_signal.h b/rubbos/app/apache2/include/apr_signal.h new file mode 100644 index 00000000..7f4940a0 --- /dev/null +++ b/rubbos/app/apache2/include/apr_signal.h @@ -0,0 +1,98 @@ +/* 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. + */ + +#ifndef APR_SIGNAL_H +#define APR_SIGNAL_H + +/** + * @file apr_signal.h + * @brief APR Signal Handling + */ + +#include "apr.h" +#include "apr_pools.h" + +#if APR_HAVE_SIGNAL_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_signal Handling + * @ingroup APR + * @{ + */ + +#if APR_HAVE_SIGACTION || defined(DOXYGEN) + +#if defined(DARWIN) && !defined(__cplusplus) && !defined(_ANSI_SOURCE) +/* work around Darwin header file bugs + * http://www.opensource.apple.com/bugs/X/BSD%20Kernel/2657228.html + */ +#undef SIG_DFL +#undef SIG_IGN +#undef SIG_ERR +#define SIG_DFL (void (*)(int))0 +#define SIG_IGN (void (*)(int))1 +#define SIG_ERR (void (*)(int))-1 +#endif + +/** Function prototype for signal handlers */ +typedef void apr_sigfunc_t(int); + +/** + * Set the signal handler function for a given signal + * @param signo The signal (eg... SIGWINCH) + * @param func the function to get called + */ +APR_DECLARE(apr_sigfunc_t *) apr_signal(int signo, apr_sigfunc_t * func); + +#if defined(SIG_IGN) && !defined(SIG_ERR) +#define SIG_ERR ((apr_sigfunc_t *) -1) +#endif + +#else /* !APR_HAVE_SIGACTION */ +#define apr_signal(a, b) signal(a, b) +#endif + + +/** + * Get the description for a specific signal number + * @param signum The signal number + * @return The description of the signal + */ +APR_DECLARE(const char *) apr_signal_description_get(int signum); + +/** @deprecated @see apr_signal_description_get */ +APR_DECLARE(const char *) apr_signal_get_description(int signum); + +/** + * APR-private function for initializing the signal package + * @internal + * @param pglobal The internal, global pool + */ +void apr_signal_init(apr_pool_t *pglobal); + +/** @} */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* APR_SIGNAL_H */ diff --git a/rubbos/app/apache2/include/apr_strings.h b/rubbos/app/apache2/include/apr_strings.h new file mode 100644 index 00000000..24cfbdf8 --- /dev/null +++ b/rubbos/app/apache2/include/apr_strings.h @@ -0,0 +1,337 @@ +/* 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. + */ + +/* Portions of this file are covered by */ +/* -*- mode: c; c-file-style: "k&r" -*- + + strnatcmp.c -- Perform 'natural order' comparisons of strings in C. + Copyright (C) 2000 by Martin Pool + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef APR_STRINGS_H +#define APR_STRINGS_H + +/** + * @file apr_strings.h + * @brief APR Strings library + */ + +#include "apr.h" +#include "apr_errno.h" +#include "apr_pools.h" +#define APR_WANT_IOVEC +#include "apr_want.h" + +#if APR_HAVE_STDARG_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_strings String routines + * @ingroup APR + * @{ + */ + +/** + * Do a natural order comparison of two strings. + * @param a The first string to compare + * @param b The second string to compare + * @return Either <0, 0, or >0. If the first string is less than the second + * this returns <0, if they are equivalent it returns 0, and if the + * first string is greater than second string it retuns >0. + */ +APR_DECLARE(int) apr_strnatcmp(char const *a, char const *b); + +/** + * Do a natural order comparison of two strings ignoring the case of the + * strings. + * @param a The first string to compare + * @param b The second string to compare + * @return Either <0, 0, or >0. If the first string is less than the second + * this returns <0, if they are equivalent it returns 0, and if the + * first string is greater than second string it retuns >0. + */ +APR_DECLARE(int) apr_strnatcasecmp(char const *a, char const *b); + +/** + * duplicate a string into memory allocated out of a pool + * @param p The pool to allocate out of + * @param s The string to duplicate + * @return The new string + */ +APR_DECLARE(char *) apr_pstrdup(apr_pool_t *p, const char *s); + +/** + * Create a null-terminated string by making a copy of a sequence + * of characters and appending a null byte + * @param p The pool to allocate out of + * @param s The block of characters to duplicate + * @param n The number of characters to duplicate + * @return The new string + * @remark This is a faster alternative to apr_pstrndup, for use + * when you know that the string being duplicated really + * has 'n' or more characters. If the string might contain + * fewer characters, use apr_pstrndup. + */ +APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *p, const char *s, apr_size_t n); + +/** + * Duplicate at most n characters of a string into memory allocated + * out of a pool; the new string will be NUL-terminated + * @param p The pool to allocate out of + * @param s The string to duplicate + * @param n The maximum number of characters to duplicate + * @return The new string + * @remark The amount of memory allocated from the pool is the length + * of the returned string including the NUL terminator + */ +APR_DECLARE(char *) apr_pstrndup(apr_pool_t *p, const char *s, apr_size_t n); + +/** + * Duplicate a block of memory. + * + * @param p The pool to allocate from + * @param m The memory to duplicate + * @param n The number of bytes to duplicate + * @return The new block of memory + */ +APR_DECLARE(void *) apr_pmemdup(apr_pool_t *p, const void *m, apr_size_t n); + +/** + * Concatenate multiple strings, allocating memory out a pool + * @param p The pool to allocate out of + * @param ... The strings to concatenate. The final string must be NULL + * @return The new string + */ +APR_DECLARE_NONSTD(char *) apr_pstrcat(apr_pool_t *p, ...); + +/** + * Concatenate multiple strings specified in a writev-style vector + * @param p The pool from which to allocate + * @param vec The strings to concatenate + * @param nvec The number of strings to concatenate + * @param nbytes (output) strlen of new string (pass in NULL to omit) + * @return The new string + */ +APR_DECLARE(char *) apr_pstrcatv(apr_pool_t *p, const struct iovec *vec, + apr_size_t nvec, apr_size_t *nbytes); + +/** + * printf-style style printing routine. The data is output to a string + * allocated from a pool + * @param p The pool to allocate out of + * @param fmt The format of the string + * @param ap The arguments to use while printing the data + * @return The new string + */ +APR_DECLARE(char *) apr_pvsprintf(apr_pool_t *p, const char *fmt, va_list ap); + +/** + * printf-style style printing routine. The data is output to a string + * allocated from a pool + * @param p The pool to allocate out of + * @param fmt The format of the string + * @param ... The arguments to use while printing the data + * @return The new string + */ +APR_DECLARE_NONSTD(char *) apr_psprintf(apr_pool_t *p, const char *fmt, ...) + __attribute__((format(printf,2,3))); + +/** + * copy n characters from src to dst + * @param dst The destination string + * @param src The source string + * @param dst_size The space available in dst; dst always receives + * null-termination, so if src is longer than + * dst_size, the actual number of characters copied is + * dst_size - 1. + * @remark + *
+ * We re-implement this function to implement these specific changes:
+ *       1) strncpy() doesn't always null terminate and we want it to.
+ *       2) strncpy() null fills, which is bogus, esp. when copy 8byte strings
+ *          into 8k blocks.
+ *       3) Instead of returning the pointer to the beginning of the
+ *          destination string, we return a pointer to the terminating null
+ *          to allow us to check for truncation.
+ * 
+ */ +APR_DECLARE(char *) apr_cpystrn(char *dst, const char *src, + apr_size_t dst_size); + +/** + * Strip spaces from a string + * @param dest The destination string. It is okay to modify the string + * in place. Namely dest == src + * @param src The string to rid the spaces from. + */ +APR_DECLARE(char *) apr_collapse_spaces(char *dest, const char *src); + +/** + * Convert the arguments to a program from one string to an array of + * strings terminated by a NULL pointer + * @param arg_str The arguments to convert + * @param argv_out Output location. This is a pointer to an array of strings. + * @param token_context Pool to use. + */ +APR_DECLARE(apr_status_t) apr_tokenize_to_argv(const char *arg_str, + char ***argv_out, + apr_pool_t *token_context); + +/** + * Split a string into separate null-terminated tokens. The tokens are + * delimited in the string by one or more characters from the sep + * argument. + * @param str The string to separate; this should be specified on the + * first call to apr_strtok() for a given string, and NULL + * on subsequent calls. + * @param sep The set of delimiters + * @param last Internal state saved by apr_strtok() between calls. + * @return The next token from the string + */ +APR_DECLARE(char *) apr_strtok(char *str, const char *sep, char **last); + +/** + * @defgroup APR_Strings_Snprintf snprintf implementations + * @warning + * These are snprintf implementations based on apr_vformatter(). + * + * Note that various standards and implementations disagree on the return + * value of snprintf, and side-effects due to %n in the formatting string. + * apr_snprintf (and apr_vsnprintf) behaves as follows: + * + * Process the format string until the entire string is exhausted, or + * the buffer fills. If the buffer fills then stop processing immediately + * (so no further %n arguments are processed), and return the buffer + * length. In all cases the buffer is NUL terminated. It will return the + * number of characters inserted into the buffer, not including the + * terminating NUL. As a special case, if len is 0, apr_snprintf will + * return the number of characters that would have been inserted if + * the buffer had been infinite (in this case, *buffer can be NULL) + * + * In no event does apr_snprintf return a negative number. + * @{ + */ + +/** + * snprintf routine based on apr_vformatter. This means it understands the + * same extensions. + * @param buf The buffer to write to + * @param len The size of the buffer + * @param format The format string + * @param ... The arguments to use to fill out the format string. + */ +APR_DECLARE_NONSTD(int) apr_snprintf(char *buf, apr_size_t len, + const char *format, ...) + __attribute__((format(printf,3,4))); + +/** + * vsnprintf routine based on apr_vformatter. This means it understands the + * same extensions. + * @param buf The buffer to write to + * @param len The size of the buffer + * @param format The format string + * @param ap The arguments to use to fill out the format string. + */ +APR_DECLARE(int) apr_vsnprintf(char *buf, apr_size_t len, const char *format, + va_list ap); +/** @} */ + +/** + * create a string representation of an int, allocated from a pool + * @param p The pool from which to allocate + * @param n The number to format + * @return The string representation of the number + */ +APR_DECLARE(char *) apr_itoa(apr_pool_t *p, int n); + +/** + * create a string representation of a long, allocated from a pool + * @param p The pool from which to allocate + * @param n The number to format + * @return The string representation of the number + */ +APR_DECLARE(char *) apr_ltoa(apr_pool_t *p, long n); + +/** + * create a string representation of an apr_off_t, allocated from a pool + * @param p The pool from which to allocate + * @param n The number to format + * @return The string representation of the number + */ +APR_DECLARE(char *) apr_off_t_toa(apr_pool_t *p, apr_off_t n); + +/** + * parse a numeric string into a 64-bit numeric value + * @param buf The string to parse. It may contain optional whitespace, + * followed by an optional '+' (positive, default) or '-' (negative) + * character, followed by an optional '0x' prefix if base is 0 or 16, + * followed by numeric digits appropriate for base. + * @param end A pointer to the end of the valid character in buf. If + * not nil, it is set to the first invalid character in buf. + * @param base A numeric base in the range between 2 and 36 inclusive, + * or 0. If base is zero, buf will be treated as base ten unless its + * digits are prefixed with '0x', in which case it will be treated as + * base 16. + * @return The numeric value of the string. + */ +APR_DECLARE(apr_int64_t) apr_strtoi64(const char *buf, char **end, int base); + +/** + * parse a base-10 numeric string into a 64-bit numeric value. + * Equivalent to apr_strtoi64(buf, (char**)NULL, 10). + * @param buf The string to parse + * @return The numeric value of the string + */ +APR_DECLARE(apr_int64_t) apr_atoi64(const char *buf); + +/** + * Format a binary size (magnitiudes are 2^10 rather than 10^3) from an apr_off_t, + * as bytes, K, M, T, etc, to a four character compacted human readable string. + * @param size The size to format + * @param buf The 5 byte text buffer (counting the trailing null) + * @return The buf passed to apr_strfsize() + * @remark All negative sizes report ' - ', apr_strfsize only formats positive values. + */ +APR_DECLARE(char *) apr_strfsize(apr_off_t size, char *buf); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APR_STRINGS_H */ diff --git a/rubbos/app/apache2/include/apr_strmatch.h b/rubbos/app/apache2/include/apr_strmatch.h new file mode 100644 index 00000000..4753318b --- /dev/null +++ b/rubbos/app/apache2/include/apr_strmatch.h @@ -0,0 +1,81 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_STRMATCH_H +#define APR_STRMATCH_H +/** + * @file apr_strmatch.h + * @brief APR-UTIL string matching routines + */ + +#include "apu.h" +#include "apr_pools.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_StrMatch String matching routines + * @ingroup APR_Util + * @{ + */ + +/** @see apr_strmatch_pattern */ +typedef struct apr_strmatch_pattern apr_strmatch_pattern; + +/** + * Precompiled search pattern + */ +struct apr_strmatch_pattern { + /** Function called to compare */ + const char *(*compare)(const apr_strmatch_pattern *this_pattern, + const char *s, apr_size_t slen); + const char *pattern; /**< Current pattern */ + apr_size_t length; /**< Current length */ + void *context; /**< hook to add precomputed metadata */ +}; + +#if defined(DOXYGEN) +/** + * Search for a precompiled pattern within a string + * @param pattern The pattern + * @param s The string in which to search for the pattern + * @param slen The length of s (excluding null terminator) + * @return A pointer to the first instance of the pattern in s, or + * NULL if not found + */ +APU_DECLARE(const char *) apr_strmatch(const apr_strmatch_pattern *pattern, + const char *s, apr_size_t slen); +#else +#define apr_strmatch(pattern, s, slen) (*((pattern)->compare))((pattern), (s), (slen)) +#endif + +/** + * Precompile a pattern for matching using the Boyer-Moore-Horspool algorithm + * @param p The pool from which to allocate the pattern + * @param s The pattern string + * @param case_sensitive Whether the matching should be case-sensitive + * @return a pointer to the compiled pattern, or NULL if compilation fails + */ +APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(apr_pool_t *p, const char *s, int case_sensitive); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_STRMATCH_H */ diff --git a/rubbos/app/apache2/include/apr_support.h b/rubbos/app/apache2/include/apr_support.h new file mode 100644 index 00000000..ee31860f --- /dev/null +++ b/rubbos/app/apache2/include/apr_support.h @@ -0,0 +1,51 @@ +/* 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. + */ + +#ifndef APR_SUPPORT_H +#define APR_SUPPORT_H + +/** + * @file apr_support.h + * @brief APR Support functions + */ + +#include "apr.h" +#include "apr_network_io.h" +#include "apr_file_io.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_support Internal APR support functions + * @ingroup APR + * @{ + */ + +/** + * Wait for IO to occur or timeout. + */ +apr_status_t apr_wait_for_io_or_timeout(apr_file_t *f, apr_socket_t *s, + int for_read); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_SUPPORT_H */ diff --git a/rubbos/app/apache2/include/apr_tables.h b/rubbos/app/apache2/include/apr_tables.h new file mode 100644 index 00000000..f286b5c7 --- /dev/null +++ b/rubbos/app/apache2/include/apr_tables.h @@ -0,0 +1,422 @@ +/* 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. + */ + +#ifndef APR_TABLES_H +#define APR_TABLES_H + +/** + * @file apr_tables.h + * @brief APR Table library + */ + +#include "apr.h" +#include "apr_pools.h" + +#if APR_HAVE_STDARG_H +#include /* for va_list */ +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_tables Table and Array Functions + * @ingroup APR + * Tables are used to store entirely opaque structures + * for applications, while Arrays are usually used to + * deal with string lists. + * @{ + */ + +/** the table abstract data type */ +typedef struct apr_table_t apr_table_t; + +/** @see apr_array_header_t */ +typedef struct apr_array_header_t apr_array_header_t; + +/** An opaque array type */ +struct apr_array_header_t { + /** The pool the array is allocated out of */ + apr_pool_t *pool; + /** The amount of memory allocated for each element of the array */ + int elt_size; + /** The number of active elements in the array */ + int nelts; + /** The number of elements allocated in the array */ + int nalloc; + /** The elements in the array */ + char *elts; +}; + +/** + * The (opaque) structure for string-content tables. + */ +typedef struct apr_table_entry_t apr_table_entry_t; + +/** The type for each entry in a string-content table */ +struct apr_table_entry_t { + /** The key for the current table entry */ + char *key; /* maybe NULL in future; + * check when iterating thru table_elts + */ + /** The value for the current table entry */ + char *val; + + /** A checksum for the key, for use by the apr_table internals */ + apr_uint32_t key_checksum; +}; + +/** + * Get the elements from a table + * @param t The table + * @return An array containing the contents of the table + */ +APR_DECLARE(const apr_array_header_t *) apr_table_elts(const apr_table_t *t); + +/** + * Determine if the table is empty + * @param t The table to check + * @return True if empty, False otherwise + */ +APR_DECLARE(int) apr_is_empty_table(const apr_table_t *t); + +/** + * Determine if the array is empty + * @param a The array to check + * @return True if empty, False otherwise + */ +APR_DECLARE(int) apr_is_empty_array(const apr_array_header_t *a); + +/** + * Create an array + * @param p The pool to allocate the memory out of + * @param nelts the number of elements in the initial array + * @param elt_size The size of each element in the array. + * @return The new array + */ +APR_DECLARE(apr_array_header_t *) apr_array_make(apr_pool_t *p, + int nelts, int elt_size); + +/** + * Add a new element to an array + * @param arr The array to add an element to. + * @return Location for the new element in the array. + * @remark If there are no free spots in the array, then this function will + * allocate new space for the new element. + */ +APR_DECLARE(void *) apr_array_push(apr_array_header_t *arr); + +/** + * Remove an element from an array + * @param arr The array to remove an element from. + * @return Location of the element in the array. + * @remark If there are no elements in the array, NULL is returned. + */ +APR_DECLARE(void *) apr_array_pop(apr_array_header_t *arr); + +/** + * Concatenate two arrays together + * @param dst The destination array, and the one to go first in the combined + * array + * @param src The source array to add to the destination array + */ +APR_DECLARE(void) apr_array_cat(apr_array_header_t *dst, + const apr_array_header_t *src); + +/** + * Copy the entire array + * @param p The pool to allocate the copy of the array out of + * @param arr The array to copy + * @return An exact copy of the array passed in + * @remark The alternate apr_array_copy_hdr copies only the header, and arranges + * for the elements to be copied if (and only if) the code subsequently + * does a push or arraycat. + */ +APR_DECLARE(apr_array_header_t *) apr_array_copy(apr_pool_t *p, + const apr_array_header_t *arr); +/** + * Copy the headers of the array, and arrange for the elements to be copied if + * and only if the code subsequently does a push or arraycat. + * @param p The pool to allocate the copy of the array out of + * @param arr The array to copy + * @return An exact copy of the array passed in + * @remark The alternate apr_array_copy copies the *entire* array. + */ +APR_DECLARE(apr_array_header_t *) apr_array_copy_hdr(apr_pool_t *p, + const apr_array_header_t *arr); + +/** + * Append one array to the end of another, creating a new array in the process. + * @param p The pool to allocate the new array out of + * @param first The array to put first in the new array. + * @param second The array to put second in the new array. + * @return A new array containing the data from the two arrays passed in. +*/ +APR_DECLARE(apr_array_header_t *) apr_array_append(apr_pool_t *p, + const apr_array_header_t *first, + const apr_array_header_t *second); + +/** + * Generates a new string from the apr_pool_t containing the concatenated + * sequence of substrings referenced as elements within the array. The string + * will be empty if all substrings are empty or null, or if there are no + * elements in the array. If sep is non-NUL, it will be inserted between + * elements as a separator. + * @param p The pool to allocate the string out of + * @param arr The array to generate the string from + * @param sep The separator to use + * @return A string containing all of the data in the array. + */ +APR_DECLARE(char *) apr_array_pstrcat(apr_pool_t *p, + const apr_array_header_t *arr, + const char sep); + +/** + * Make a new table + * @param p The pool to allocate the pool out of + * @param nelts The number of elements in the initial table. + * @return The new table. + * @warning This table can only store text data + */ +APR_DECLARE(apr_table_t *) apr_table_make(apr_pool_t *p, int nelts); + +/** + * Create a new table and copy another table into it + * @param p The pool to allocate the new table out of + * @param t The table to copy + * @return A copy of the table passed in + */ +APR_DECLARE(apr_table_t *) apr_table_copy(apr_pool_t *p, + const apr_table_t *t); + +/** + * Delete all of the elements from a table + * @param t The table to clear + */ +APR_DECLARE(void) apr_table_clear(apr_table_t *t); + +/** + * Get the value associated with a given key from the table. After this call, + * The data is still in the table + * @param t The table to search for the key + * @param key The key to search for + * @return The value associated with the key + */ +APR_DECLARE(const char *) apr_table_get(const apr_table_t *t, const char *key); + +/** + * Add a key/value pair to a table, if another element already exists with the + * same key, this will over-write the old data. + * @param t The table to add the data to. + * @param key The key fo use + * @param val The value to add + * @remark When adding data, this function makes a copy of both the key and the + * value. + */ +APR_DECLARE(void) apr_table_set(apr_table_t *t, const char *key, + const char *val); + +/** + * Add a key/value pair to a table, if another element already exists with the + * same key, this will over-write the old data. + * @param t The table to add the data to. + * @param key The key to use + * @param val The value to add + * @warning When adding data, this function does not make a copy of the key or + * the value, so care should be taken to ensure that the values will + * not change after they have been added.. + */ +APR_DECLARE(void) apr_table_setn(apr_table_t *t, const char *key, + const char *val); + +/** + * Remove data from the table + * @param t The table to remove data from + * @param key The key of the data being removed + */ +APR_DECLARE(void) apr_table_unset(apr_table_t *t, const char *key); + +/** + * Add data to a table by merging the value with data that has already been + * stored + * @param t The table to search for the data + * @param key The key to merge data for + * @param val The data to add + * @remark If the key is not found, then this function acts like apr_table_add + */ +APR_DECLARE(void) apr_table_merge(apr_table_t *t, const char *key, + const char *val); + +/** + * Add data to a table by merging the value with data that has already been + * stored + * @param t The table to search for the data + * @param key The key to merge data for + * @param val The data to add + * @remark If the key is not found, then this function acts like apr_table_addn + */ +APR_DECLARE(void) apr_table_mergen(apr_table_t *t, const char *key, + const char *val); + +/** + * Add data to a table, regardless of whether there is another element with the + * same key. + * @param t The table to add to + * @param key The key to use + * @param val The value to add. + * @remark When adding data, this function makes a copy of both the key and the + * value. + */ +APR_DECLARE(void) apr_table_add(apr_table_t *t, const char *key, + const char *val); + +/** + * Add data to a table, regardless of whether there is another element with the + * same key. + * @param t The table to add to + * @param key The key to use + * @param val The value to add. + * @remark When adding data, this function does not make a copy of the key or the + * value, so care should be taken to ensure that the values will not + * change after they have been added.. + */ +APR_DECLARE(void) apr_table_addn(apr_table_t *t, const char *key, + const char *val); + +/** + * Merge two tables into one new table + * @param p The pool to use for the new table + * @param overlay The first table to put in the new table + * @param base The table to add at the end of the new table + * @return A new table containing all of the data from the two passed in + */ +APR_DECLARE(apr_table_t *) apr_table_overlay(apr_pool_t *p, + const apr_table_t *overlay, + const apr_table_t *base); + +/** + * Declaration prototype for the iterator callback function of apr_table_do() + * and apr_table_vdo(). + * @param rec The data passed as the first argument to apr_table_[v]do() + * @param key The key from this iteration of the table + * @param value The value from this iteration of the table + * @remark Iteration continues while this callback function returns non-zero. + * To export the callback function for apr_table_[v]do() it must be declared + * in the _NONSTD convention. + */ +typedef int (apr_table_do_callback_fn_t)(void *rec, const char *key, + const char *value); + +/** + * Iterate over a table running the provided function once for every + * element in the table. If there is data passed in as a vararg, then the + * function is only run on those elements whose key matches something in + * the vararg. If the vararg is NULL, then every element is run through the + * function. Iteration continues while the function returns non-zero. + * @param comp The function to run + * @param rec The data to pass as the first argument to the function + * @param t The table to iterate over + * @param ... The vararg. If this is NULL, then all elements in the table are + * run through the function, otherwise only those whose key matches + * are run. + * @return FALSE if one of the comp() iterations returned zero; TRUE if all + * iterations returned non-zero + * @see apr_table_do_callback_fn_t + */ +APR_DECLARE_NONSTD(int) apr_table_do(apr_table_do_callback_fn_t *comp, + void *rec, const apr_table_t *t, ...); + +/** + * Iterate over a table running the provided function once for every + * element in the table. If there is data passed in as a vararg, then the + * function is only run on those element's whose key matches something in + * the vararg. If the vararg is NULL, then every element is run through the + * function. Iteration continues while the function returns non-zero. + * @param comp The function to run + * @param rec The data to pass as the first argument to the function + * @param t The table to iterate over + * @param vp The vararg table. If this is NULL, then all elements in the + * table are run through the function, otherwise only those + * whose key matches are run. + * @return FALSE if one of the comp() iterations returned zero; TRUE if all + * iterations returned non-zero + * @see apr_table_do_callback_fn_t + */ +APR_DECLARE(int) apr_table_vdo(apr_table_do_callback_fn_t *comp, + void *rec, const apr_table_t *t, va_list vp); + +/** flag for overlap to use apr_table_setn */ +#define APR_OVERLAP_TABLES_SET (0) +/** flag for overlap to use apr_table_mergen */ +#define APR_OVERLAP_TABLES_MERGE (1) +/** + * For each element in table b, either use setn or mergen to add the data + * to table a. Which method is used is determined by the flags passed in. + * @param a The table to add the data to. + * @param b The table to iterate over, adding its data to table a + * @param flags How to add the table to table a. One of: + * APR_OVERLAP_TABLES_SET Use apr_table_setn + * APR_OVERLAP_TABLES_MERGE Use apr_table_mergen + * @remark This function is highly optimized, and uses less memory and CPU cycles + * than a function that just loops through table b calling other functions. + */ +/** + *
+ * Conceptually, apr_table_overlap does this:
+ *
+ *  apr_array_header_t *barr = apr_table_elts(b);
+ *  apr_table_entry_t *belt = (apr_table_entry_t *)barr->elts;
+ *  int i;
+ *
+ *  for (i = 0; i < barr->nelts; ++i) {
+ *      if (flags & APR_OVERLAP_TABLES_MERGE) {
+ *          apr_table_mergen(a, belt[i].key, belt[i].val);
+ *      }
+ *      else {
+ *          apr_table_setn(a, belt[i].key, belt[i].val);
+ *      }
+ *  }
+ *
+ *  Except that it is more efficient (less space and cpu-time) especially
+ *  when b has many elements.
+ *
+ *  Notice the assumptions on the keys and values in b -- they must be
+ *  in an ancestor of a's pool.  In practice b and a are usually from
+ *  the same pool.
+ * 
+ */ + +APR_DECLARE(void) apr_table_overlap(apr_table_t *a, const apr_table_t *b, + unsigned flags); + +/** + * Eliminate redunandant entries in a table by either overwriting + * or merging duplicates + * + * @param t Table. + * @param flags APR_OVERLAP_TABLES_MERGE to merge, or + * APR_OVERLAP_TABLES_SET to overwrite + */ +APR_DECLARE(void) apr_table_compress(apr_table_t *t, unsigned flags); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_TABLES_H */ diff --git a/rubbos/app/apache2/include/apr_thread_cond.h b/rubbos/app/apache2/include/apr_thread_cond.h new file mode 100644 index 00000000..520fb309 --- /dev/null +++ b/rubbos/app/apache2/include/apr_thread_cond.h @@ -0,0 +1,128 @@ +/* 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. + */ + +#ifndef APR_THREAD_COND_H +#define APR_THREAD_COND_H + +/** + * @file apr_thread_cond.h + * @brief APR Condition Variable Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" +#include "apr_time.h" +#include "apr_thread_mutex.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#if APR_HAS_THREADS || defined(DOXYGEN) + +/** + * @defgroup apr_thread_cond Condition Variable Routines + * @ingroup APR + * @{ + */ + +/** Opaque structure for thread condition variables */ +typedef struct apr_thread_cond_t apr_thread_cond_t; + +/** + * Create and initialize a condition variable that can be used to signal + * and schedule threads in a single process. + * @param cond the memory address where the newly created condition variable + * will be stored. + * @param pool the pool from which to allocate the mutex. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_create(apr_thread_cond_t **cond, + apr_pool_t *pool); + +/** + * Put the active calling thread to sleep until signaled to wake up. Each + * condition variable must be associated with a mutex, and that mutex must + * be locked before calling this function, or the behavior will be + * undefined. As the calling thread is put to sleep, the given mutex + * will be simultaneously released; and as this thread wakes up the lock + * is again simultaneously acquired. + * @param cond the condition variable on which to block. + * @param mutex the mutex that must be locked upon entering this function, + * is released while the thread is asleep, and is again acquired before + * returning from this function. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_wait(apr_thread_cond_t *cond, + apr_thread_mutex_t *mutex); + +/** + * Put the active calling thread to sleep until signaled to wake up or + * the timeout is reached. Each condition variable must be associated + * with a mutex, and that mutex must be locked before calling this + * function, or the behavior will be undefined. As the calling thread + * is put to sleep, the given mutex will be simultaneously released; + * and as this thread wakes up the lock is again simultaneously acquired. + * @param cond the condition variable on which to block. + * @param mutex the mutex that must be locked upon entering this function, + * is released while the thread is asleep, and is again acquired before + * returning from this function. + * @param timeout The amount of time in microseconds to wait. This is + * a maximum, not a minimum. If the condition is signaled, we + * will wake up before this time, otherwise the error APR_TIMEUP + * is returned. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_timedwait(apr_thread_cond_t *cond, + apr_thread_mutex_t *mutex, + apr_interval_time_t timeout); + +/** + * Signals a singla thread, if one exists, that is blocking on the given + * condition variable. That thread is then scheduled to wake up and acquire + * the associated mutex. Although it is not required, if predictible schedule + * is desired, that mutex must be locked while calling this function. + * @param cond the condition variable on which to produce the signal. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_signal(apr_thread_cond_t *cond); + +/** + * Signals all threads blocking on the given condition variable. + * Each thread that was signaled is then schedule to wake up and acquire + * the associated mutex. This will happen in a serialized manner. + * @param cond the condition variable on which to produce the broadcast. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_broadcast(apr_thread_cond_t *cond); + +/** + * Destroy the condition variable and free the associated memory. + * @param cond the condition variable to destroy. + */ +APR_DECLARE(apr_status_t) apr_thread_cond_destroy(apr_thread_cond_t *cond); + +/** + * Get the pool used by this thread_cond. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(thread_cond); + +#endif /* APR_HAS_THREADS */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_THREAD_COND_H */ diff --git a/rubbos/app/apache2/include/apr_thread_mutex.h b/rubbos/app/apache2/include/apr_thread_mutex.h new file mode 100644 index 00000000..4596dce5 --- /dev/null +++ b/rubbos/app/apache2/include/apr_thread_mutex.h @@ -0,0 +1,110 @@ +/* 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. + */ + +#ifndef APR_THREAD_MUTEX_H +#define APR_THREAD_MUTEX_H + +/** + * @file apr_thread_mutex.h + * @brief APR Thread Mutex Routines + */ + +#include "apr.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#if APR_HAS_THREADS || defined(DOXYGEN) + +/** + * @defgroup apr_thread_mutex Thread Mutex Routines + * @ingroup APR + * @{ + */ + +/** Opaque thread-local mutex structure */ +typedef struct apr_thread_mutex_t apr_thread_mutex_t; + +#define APR_THREAD_MUTEX_DEFAULT 0x0 /**< platform-optimal lock behavior */ +#define APR_THREAD_MUTEX_NESTED 0x1 /**< enable nested (recursive) locks */ +#define APR_THREAD_MUTEX_UNNESTED 0x2 /**< disable nested locks */ + +/* Delayed the include to avoid a circular reference */ +#include "apr_pools.h" + +/** + * Create and initialize a mutex that can be used to synchronize threads. + * @param mutex the memory address where the newly created mutex will be + * stored. + * @param flags Or'ed value of: + *
+ *           APR_THREAD_MUTEX_DEFAULT   platform-optimal lock behavior.
+ *           APR_THREAD_MUTEX_NESTED    enable nested (recursive) locks.
+ *           APR_THREAD_MUTEX_UNNESTED  disable nested locks (non-recursive).
+ * 
+ * @param pool the pool from which to allocate the mutex. + * @warning Be cautious in using APR_THREAD_MUTEX_DEFAULT. While this is the + * most optimial mutex based on a given platform's performance charateristics, + * it will behave as either a nested or an unnested lock. + */ +APR_DECLARE(apr_status_t) apr_thread_mutex_create(apr_thread_mutex_t **mutex, + unsigned int flags, + apr_pool_t *pool); +/** + * Acquire the lock for the given mutex. If the mutex is already locked, + * the current thread will be put to sleep until the lock becomes available. + * @param mutex the mutex on which to acquire the lock. + */ +APR_DECLARE(apr_status_t) apr_thread_mutex_lock(apr_thread_mutex_t *mutex); + +/** + * Attempt to acquire the lock for the given mutex. If the mutex has already + * been acquired, the call returns immediately with APR_EBUSY. Note: it + * is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine + * if the return value was APR_EBUSY, for portability reasons. + * @param mutex the mutex on which to attempt the lock acquiring. + */ +APR_DECLARE(apr_status_t) apr_thread_mutex_trylock(apr_thread_mutex_t *mutex); + +/** + * Release the lock for the given mutex. + * @param mutex the mutex from which to release the lock. + */ +APR_DECLARE(apr_status_t) apr_thread_mutex_unlock(apr_thread_mutex_t *mutex); + +/** + * Destroy the mutex and free the memory associated with the lock. + * @param mutex the mutex to destroy. + */ +APR_DECLARE(apr_status_t) apr_thread_mutex_destroy(apr_thread_mutex_t *mutex); + +/** + * Get the pool used by this thread_mutex. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(thread_mutex); + +#endif /* APR_HAS_THREADS */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_THREAD_MUTEX_H */ diff --git a/rubbos/app/apache2/include/apr_thread_proc.h b/rubbos/app/apache2/include/apr_thread_proc.h new file mode 100644 index 00000000..be586040 --- /dev/null +++ b/rubbos/app/apache2/include/apr_thread_proc.h @@ -0,0 +1,772 @@ +/* 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. + */ + +#ifndef APR_THREAD_PROC_H +#define APR_THREAD_PROC_H + +/** + * @file apr_thread_proc.h + * @brief APR Thread and Process Library + */ + +#include "apr.h" +#include "apr_file_io.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#if APR_HAVE_STRUCT_RLIMIT +#include +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_thread_proc Threads and Process Functions + * @ingroup APR + * @{ + */ + +typedef enum { + APR_SHELLCMD, /**< use the shell to invoke the program */ + APR_PROGRAM, /**< invoke the program directly, no copied env */ + APR_PROGRAM_ENV, /**< invoke the program, replicating our environment */ + APR_PROGRAM_PATH, /**< find program on PATH, use our environment */ + APR_SHELLCMD_ENV /**< use the shell to invoke the program, + * replicating our environment + */ +} apr_cmdtype_e; + +typedef enum { + APR_WAIT, /**< wait for the specified process to finish */ + APR_NOWAIT /**< do not wait -- just see if it has finished */ +} apr_wait_how_e; + +/* I am specifically calling out the values so that the macros below make + * more sense. Yes, I know I don't need to, but I am hoping this makes what + * I am doing more clear. If you want to add more reasons to exit, continue + * to use bitmasks. + */ +typedef enum { + APR_PROC_EXIT = 1, /**< process exited normally */ + APR_PROC_SIGNAL = 2, /**< process exited due to a signal */ + APR_PROC_SIGNAL_CORE = 4 /**< process exited and dumped a core file */ +} apr_exit_why_e; + +/** did we exit the process */ +#define APR_PROC_CHECK_EXIT(x) (x & APR_PROC_EXIT) +/** did we get a signal */ +#define APR_PROC_CHECK_SIGNALED(x) (x & APR_PROC_SIGNAL) +/** did we get core */ +#define APR_PROC_CHECK_CORE_DUMP(x) (x & APR_PROC_SIGNAL_CORE) + +/** @see apr_procattr_io_set */ +#define APR_NO_PIPE 0 + +/** @see apr_procattr_io_set */ +#define APR_FULL_BLOCK 1 +/** @see apr_procattr_io_set */ +#define APR_FULL_NONBLOCK 2 +/** @see apr_procattr_io_set */ +#define APR_PARENT_BLOCK 3 +/** @see apr_procattr_io_set */ +#define APR_CHILD_BLOCK 4 + +/** @see apr_procattr_limit_set */ +#define APR_LIMIT_CPU 0 +/** @see apr_procattr_limit_set */ +#define APR_LIMIT_MEM 1 +/** @see apr_procattr_limit_set */ +#define APR_LIMIT_NPROC 2 +/** @see apr_procattr_limit_set */ +#define APR_LIMIT_NOFILE 3 + +/** + * @defgroup APR_OC Other Child Flags + * @{ + */ +#define APR_OC_REASON_DEATH 0 /**< child has died, caller must call + * unregister still */ +#define APR_OC_REASON_UNWRITABLE 1 /**< write_fd is unwritable */ +#define APR_OC_REASON_RESTART 2 /**< a restart is occuring, perform + * any necessary cleanup (including + * sending a special signal to child) + */ +#define APR_OC_REASON_UNREGISTER 3 /**< unregister has been called, do + * whatever is necessary (including + * kill the child) */ +#define APR_OC_REASON_LOST 4 /**< somehow the child exited without + * us knowing ... buggy os? */ +#define APR_OC_REASON_RUNNING 5 /**< a health check is occuring, + * for most maintainence functions + * this is a no-op. + */ +/** @} */ + +/** The APR process type */ +typedef struct apr_proc_t { + /** The process ID */ + pid_t pid; + /** Parent's side of pipe to child's stdin */ + apr_file_t *in; + /** Parent's side of pipe to child's stdout */ + apr_file_t *out; + /** Parent's side of pipe to child's stdouterr */ + apr_file_t *err; +#if APR_HAS_PROC_INVOKED || defined(DOXYGEN) + /** Diagnositics/debugging string of the command invoked for + * this process [only present if APR_HAS_PROC_INVOKED is true] + * @remark Only enabled on Win32 by default. + * @bug This should either always or never be present in release + * builds - since it breaks binary compatibility. We may enable + * it always in APR 1.0 yet leave it undefined in most cases. + */ + char *invoked; +#endif +#if defined(WIN32) || defined(DOXYGEN) + /** (Win32 only) Creator's handle granting access to the process + * @remark This handle is closed and reset to NULL in every case + * corresponding to a waitpid() on Unix which returns the exit status. + * Therefore Win32 correspond's to Unix's zombie reaping characteristics + * and avoids potential handle leaks. + */ + HANDLE hproc; +#endif +} apr_proc_t; + +/** + * The prototype for APR child errfn functions. (See the description + * of apr_procattr_child_errfn_set() for more information.) + * It is passed the following parameters: + * @param pool Pool associated with the apr_proc_t. If your child + * error function needs user data, associate it with this + * pool. + * @param err APR error code describing the error + * @param description Text description of type of processing which failed + */ +typedef void (apr_child_errfn_t)(apr_pool_t *proc, apr_status_t err, + const char *description); + +/** Opaque Thread structure. */ +typedef struct apr_thread_t apr_thread_t; + +/** Opaque Thread attributes structure. */ +typedef struct apr_threadattr_t apr_threadattr_t; + +/** Opaque Process attributes structure. */ +typedef struct apr_procattr_t apr_procattr_t; + +/** Opaque control variable for one-time atomic variables. */ +typedef struct apr_thread_once_t apr_thread_once_t; + +/** Opaque thread private address space. */ +typedef struct apr_threadkey_t apr_threadkey_t; + +/** Opaque record of child process. */ +typedef struct apr_other_child_rec_t apr_other_child_rec_t; + +/** + * The prototype for any APR thread worker functions. + */ +typedef void *(APR_THREAD_FUNC *apr_thread_start_t)(apr_thread_t*, void*); + +typedef enum { + APR_KILL_NEVER, /**< process is never sent any signals */ + APR_KILL_ALWAYS, /**< process is sent SIGKILL on apr_pool_t cleanup */ + APR_KILL_AFTER_TIMEOUT, /**< SIGTERM, wait 3 seconds, SIGKILL */ + APR_JUST_WAIT, /**< wait forever for the process to complete */ + APR_KILL_ONLY_ONCE /**< send SIGTERM and then wait */ +} apr_kill_conditions_e; + +/* Thread Function definitions */ + +#if APR_HAS_THREADS + +/** + * Create and initialize a new threadattr variable + * @param new_attr The newly created threadattr. + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_threadattr_create(apr_threadattr_t **new_attr, + apr_pool_t *cont); + +/** + * Set if newly created threads should be created in detached state. + * @param attr The threadattr to affect + * @param on Thread detach state on or off + */ +APR_DECLARE(apr_status_t) apr_threadattr_detach_set(apr_threadattr_t *attr, + apr_int32_t on); + +/** + * Get the detach state for this threadattr. + * @param attr The threadattr to reference + */ +APR_DECLARE(apr_status_t) apr_threadattr_detach_get(apr_threadattr_t *attr); + +/** + * Set the stack size of newly created threads. + * @param attr The threadattr to affect + * @param stacksize The stack size in bytes + */ +APR_DECLARE(apr_status_t) apr_threadattr_stacksize_set(apr_threadattr_t *attr, + apr_size_t stacksize); + +/** + * Create a new thread of execution + * @param new_thread The newly created thread handle. + * @param attr The threadattr to use to determine how to create the thread + * @param func The function to start the new thread in + * @param data Any data to be passed to the starting function + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_thread_create(apr_thread_t **new_thread, + apr_threadattr_t *attr, + apr_thread_start_t func, + void *data, apr_pool_t *cont); + +/** + * stop the current thread + * @param thd The thread to stop + * @param retval The return value to pass back to any thread that cares + */ +APR_DECLARE(apr_status_t) apr_thread_exit(apr_thread_t *thd, + apr_status_t retval); + +/** + * block until the desired thread stops executing. + * @param retval The return value from the dead thread. + * @param thd The thread to join + */ +APR_DECLARE(apr_status_t) apr_thread_join(apr_status_t *retval, + apr_thread_t *thd); + +/** + * force the current thread to yield the processor + */ +APR_DECLARE(void) apr_thread_yield(void); + +/** + * Initialize the control variable for apr_thread_once. If this isn't + * called, apr_initialize won't work. + * @param control The control variable to initialize + * @param p The pool to allocate data from. + */ +APR_DECLARE(apr_status_t) apr_thread_once_init(apr_thread_once_t **control, + apr_pool_t *p); + +/** + * Run the specified function one time, regardless of how many threads + * call it. + * @param control The control variable. The same variable should + * be passed in each time the function is tried to be + * called. This is how the underlying functions determine + * if the function has ever been called before. + * @param func The function to call. + */ +APR_DECLARE(apr_status_t) apr_thread_once(apr_thread_once_t *control, + void (*func)(void)); + +/** + * detach a thread + * @param thd The thread to detach + */ +APR_DECLARE(apr_status_t) apr_thread_detach(apr_thread_t *thd); + +/** + * Return the pool associated with the current thread. + * @param data The user data associated with the thread. + * @param key The key to associate with the data + * @param thread The currently open thread. + */ +APR_DECLARE(apr_status_t) apr_thread_data_get(void **data, const char *key, + apr_thread_t *thread); + +/** + * Return the pool associated with the current thread. + * @param data The user data to associate with the thread. + * @param key The key to use for associating the data with the thread + * @param cleanup The cleanup routine to use when the thread is destroyed. + * @param thread The currently open thread. + */ +APR_DECLARE(apr_status_t) apr_thread_data_set(void *data, const char *key, + apr_status_t (*cleanup) (void *), + apr_thread_t *thread); + +/** + * Create and initialize a new thread private address space + * @param key The thread private handle. + * @param dest The destructor to use when freeing the private memory. + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_threadkey_private_create(apr_threadkey_t **key, + void (*dest)(void *), + apr_pool_t *cont); + +/** + * Get a pointer to the thread private memory + * @param new_mem The data stored in private memory + * @param key The handle for the desired thread private memory + */ +APR_DECLARE(apr_status_t) apr_threadkey_private_get(void **new_mem, + apr_threadkey_t *key); + +/** + * Set the data to be stored in thread private memory + * @param priv The data to be stored in private memory + * @param key The handle for the desired thread private memory + */ +APR_DECLARE(apr_status_t) apr_threadkey_private_set(void *priv, + apr_threadkey_t *key); + +/** + * Free the thread private memory + * @param key The handle for the desired thread private memory + */ +APR_DECLARE(apr_status_t) apr_threadkey_private_delete(apr_threadkey_t *key); + +/** + * Return the pool associated with the current threadkey. + * @param data The user data associated with the threadkey. + * @param key The key associated with the data + * @param threadkey The currently open threadkey. + */ +APR_DECLARE(apr_status_t) apr_threadkey_data_get(void **data, const char *key, + apr_threadkey_t *threadkey); + +/** + * Return the pool associated with the current threadkey. + * @param data The data to set. + * @param key The key to associate with the data. + * @param cleanup The cleanup routine to use when the file is destroyed. + * @param threadkey The currently open threadkey. + */ +APR_DECLARE(apr_status_t) apr_threadkey_data_set(void *data, const char *key, + apr_status_t (*cleanup) (void *), + apr_threadkey_t *threadkey); + +#endif + +/** + * Create and initialize a new procattr variable + * @param new_attr The newly created procattr. + * @param cont The pool to use + */ +APR_DECLARE(apr_status_t) apr_procattr_create(apr_procattr_t **new_attr, + apr_pool_t *cont); + +/** + * Determine if any of stdin, stdout, or stderr should be linked to pipes + * when starting a child process. + * @param attr The procattr we care about. + * @param in Should stdin be a pipe back to the parent? + * @param out Should stdout be a pipe back to the parent? + * @param err Should stderr be a pipe back to the parent? + */ +APR_DECLARE(apr_status_t) apr_procattr_io_set(apr_procattr_t *attr, + apr_int32_t in, apr_int32_t out, + apr_int32_t err); + +/** + * Set the child_in and/or parent_in values to existing apr_file_t values. + * @param attr The procattr we care about. + * @param child_in apr_file_t value to use as child_in. Must be a valid file. + * @param parent_in apr_file_t value to use as parent_in. Must be a valid file. + * @remark This is NOT a required initializer function. This is + * useful if you have already opened a pipe (or multiple files) + * that you wish to use, perhaps persistently across multiple + * process invocations - such as a log file. You can save some + * extra function calls by not creating your own pipe since this + * creates one in the process space for you. + */ +APR_DECLARE(apr_status_t) apr_procattr_child_in_set(struct apr_procattr_t *attr, + apr_file_t *child_in, + apr_file_t *parent_in); + +/** + * Set the child_out and parent_out values to existing apr_file_t values. + * @param attr The procattr we care about. + * @param child_out apr_file_t value to use as child_out. Must be a valid file. + * @param parent_out apr_file_t value to use as parent_out. Must be a valid file. + * @remark This is NOT a required initializer function. This is + * useful if you have already opened a pipe (or multiple files) + * that you wish to use, perhaps persistently across multiple + * process invocations - such as a log file. + */ +APR_DECLARE(apr_status_t) apr_procattr_child_out_set(struct apr_procattr_t *attr, + apr_file_t *child_out, + apr_file_t *parent_out); + +/** + * Set the child_err and parent_err values to existing apr_file_t values. + * @param attr The procattr we care about. + * @param child_err apr_file_t value to use as child_err. Must be a valid file. + * @param parent_err apr_file_t value to use as parent_err. Must be a valid file. + * @remark This is NOT a required initializer function. This is + * useful if you have already opened a pipe (or multiple files) + * that you wish to use, perhaps persistently across multiple + * process invocations - such as a log file. + */ +APR_DECLARE(apr_status_t) apr_procattr_child_err_set(struct apr_procattr_t *attr, + apr_file_t *child_err, + apr_file_t *parent_err); + +/** + * Set which directory the child process should start executing in. + * @param attr The procattr we care about. + * @param dir Which dir to start in. By default, this is the same dir as + * the parent currently resides in, when the createprocess call + * is made. + */ +APR_DECLARE(apr_status_t) apr_procattr_dir_set(apr_procattr_t *attr, + const char *dir); + +/** + * Set what type of command the child process will call. + * @param attr The procattr we care about. + * @param cmd The type of command. One of: + *
+ *            APR_SHELLCMD     --  Anything that the shell can handle
+ *            APR_PROGRAM      --  Executable program   (default) 
+ *            APR_PROGRAM_ENV  --  Executable program, copy environment
+ *            APR_PROGRAM_PATH --  Executable program on PATH, copy env
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_procattr_cmdtype_set(apr_procattr_t *attr, + apr_cmdtype_e cmd); + +/** + * Determine if the child should start in detached state. + * @param attr The procattr we care about. + * @param detach Should the child start in detached state? Default is no. + */ +APR_DECLARE(apr_status_t) apr_procattr_detach_set(apr_procattr_t *attr, + apr_int32_t detach); + +#if APR_HAVE_STRUCT_RLIMIT +/** + * Set the Resource Utilization limits when starting a new process. + * @param attr The procattr we care about. + * @param what Which limit to set, one of: + *
+ *                 APR_LIMIT_CPU
+ *                 APR_LIMIT_MEM
+ *                 APR_LIMIT_NPROC
+ *                 APR_LIMIT_NOFILE
+ * 
+ * @param limit Value to set the limit to. + */ +APR_DECLARE(apr_status_t) apr_procattr_limit_set(apr_procattr_t *attr, + apr_int32_t what, + struct rlimit *limit); +#endif + +/** + * Specify an error function to be called in the child process if APR + * encounters an error in the child prior to running the specified program. + * @param attr The procattr describing the child process to be created. + * @param errfn The function to call in the child process. + * @remark At the present time, it will only be called from apr_proc_create() + * on platforms where fork() is used. It will never be called on other + * platforms, on those platforms apr_proc_create() will return the error + * in the parent process rather than invoke the callback in the now-forked + * child process. + */ +APR_DECLARE(apr_status_t) apr_procattr_child_errfn_set(apr_procattr_t *attr, + apr_child_errfn_t *errfn); + +/** + * Specify that apr_proc_create() should do whatever it can to report + * failures to the caller of apr_proc_create(), rather than find out in + * the child. + * @param attr The procattr describing the child process to be created. + * @param chk Flag to indicate whether or not extra work should be done + * to try to report failures to the caller. + * @remark This flag only affects apr_proc_create() on platforms where + * fork() is used. This leads to extra overhead in the calling + * process, but that may help the application handle such + * errors more gracefully. + */ +APR_DECLARE(apr_status_t) apr_procattr_error_check_set(apr_procattr_t *attr, + apr_int32_t chk); + +/** + * Determine if the child should start in its own address space or using the + * current one from its parent + * @param attr The procattr we care about. + * @param addrspace Should the child start in its own address space? Default + * is no on NetWare and yes on other platforms. + */ +APR_DECLARE(apr_status_t) apr_procattr_addrspace_set(apr_procattr_t *attr, + apr_int32_t addrspace); + +#if APR_HAS_FORK +/** + * This is currently the only non-portable call in APR. This executes + * a standard unix fork. + * @param proc The resulting process handle. + * @param cont The pool to use. + */ +APR_DECLARE(apr_status_t) apr_proc_fork(apr_proc_t *proc, apr_pool_t *cont); +#endif + +/** + * Create a new process and execute a new program within that process. + * @param new_proc The resulting process handle. + * @param progname The program to run + * @param args the arguments to pass to the new program. The first + * one should be the program name. + * @param env The new environment table for the new process. This + * should be a list of NULL-terminated strings. This argument + * is ignored for APR_PROGRAM_ENV, APR_PROGRAM_PATH, and + * APR_SHELLCMD_ENV types of commands. + * @param attr the procattr we should use to determine how to create the new + * process + * @param cont The pool to use. + */ +APR_DECLARE(apr_status_t) apr_proc_create(apr_proc_t *new_proc, + const char *progname, + const char * const *args, + const char * const *env, + apr_procattr_t *attr, + apr_pool_t *cont); + +/** + * Wait for a child process to die + * @param proc The process handle that corresponds to the desired child process + * @param exitcode The returned exit status of the child, if a child process + * dies, or the signal that caused the child to die. + * On platforms that don't support obtaining this information, + * the status parameter will be returned as APR_ENOTIMPL. + * @param exitwhy Why the child died, the bitwise or of: + *
+ *            APR_PROC_EXIT         -- process terminated normally
+ *            APR_PROC_SIGNAL       -- process was killed by a signal
+ *            APR_PROC_SIGNAL_CORE  -- process was killed by a signal, and
+ *                                     generated a core dump.
+ * 
+ * @param waithow How should we wait. One of: + *
+ *            APR_WAIT   -- block until the child process dies.
+ *            APR_NOWAIT -- return immediately regardless of if the 
+ *                          child is dead or not.
+ * 
+ * @remark The childs status is in the return code to this process. It is one of: + *
+ *            APR_CHILD_DONE     -- child is no longer running.
+ *            APR_CHILD_NOTDONE  -- child is still running.
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc, + int *exitcode, apr_exit_why_e *exitwhy, + apr_wait_how_e waithow); + +/** + * Wait for any current child process to die and return information + * about that child. + * @param proc Pointer to NULL on entry, will be filled out with child's + * information + * @param exitcode The returned exit status of the child, if a child process + * dies, or the signal that caused the child to die. + * On platforms that don't support obtaining this information, + * the status parameter will be returned as APR_ENOTIMPL. + * @param exitwhy Why the child died, the bitwise or of: + *
+ *            APR_PROC_EXIT         -- process terminated normally
+ *            APR_PROC_SIGNAL       -- process was killed by a signal
+ *            APR_PROC_SIGNAL_CORE  -- process was killed by a signal, and
+ *                                     generated a core dump.
+ * 
+ * @param waithow How should we wait. One of: + *
+ *            APR_WAIT   -- block until the child process dies.
+ *            APR_NOWAIT -- return immediately regardless of if the 
+ *                          child is dead or not.
+ * 
+ * @param p Pool to allocate child information out of. + * @bug Passing proc as a *proc rather than **proc was an odd choice + * for some platforms... this should be revisited in 1.0 + */ +APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc, + int *exitcode, + apr_exit_why_e *exitwhy, + apr_wait_how_e waithow, + apr_pool_t *p); + +#define APR_PROC_DETACH_FOREGROUND 0 /**< Do not detach */ +#define APR_PROC_DETACH_DAEMONIZE 1 /**< Detach */ + +/** + * Detach the process from the controlling terminal. + * @param daemonize set to non-zero if the process should daemonize + * and become a background process, else it will + * stay in the foreground. + */ +APR_DECLARE(apr_status_t) apr_proc_detach(int daemonize); + +/** + * Register an other_child -- a child associated to its registered + * maintence callback. This callback is invoked when the process + * dies, is disconnected or disappears. + * @param proc The child process to register. + * @param maintenance maintenance is a function that is invoked with a + * reason and the data pointer passed here. + * @param data Opaque context data passed to the maintenance function. + * @param write_fd An fd that is probed for writing. If it is ever unwritable + * then the maintenance is invoked with reason + * OC_REASON_UNWRITABLE. + * @param p The pool to use for allocating memory. + * @bug write_fd duplicates the proc->out stream, it's really redundant + * and should be replaced in the APR 1.0 API with a bitflag of which + * proc->in/out/err handles should be health checked. + * @bug no platform currently tests the pipes health. + */ +APR_DECLARE(void) apr_proc_other_child_register(apr_proc_t *proc, + void (*maintenance) (int reason, + void *, + int status), + void *data, apr_file_t *write_fd, + apr_pool_t *p); + +/** + * Stop watching the specified other child. + * @param data The data to pass to the maintenance function. This is + * used to find the process to unregister. + * @warning Since this can be called by a maintenance function while we're + * scanning the other_children list, all scanners should protect + * themself by loading ocr->next before calling any maintenance + * function. + */ +APR_DECLARE(void) apr_proc_other_child_unregister(void *data); + +/** + * Notify the maintenance callback of a registered other child process + * that application has detected an event, such as death. + * @param proc The process to check + * @param reason The reason code to pass to the maintenance function + * @param status The status to pass to the maintenance function + * @remark An example of code using this behavior; + *
+ * rv = apr_proc_wait_all_procs(&proc, &exitcode, &status, APR_WAIT, p);
+ * if (APR_STATUS_IS_CHILD_DONE(rv)) {
+ * #if APR_HAS_OTHER_CHILD
+ *     if (apr_proc_other_child_alert(&proc, APR_OC_REASON_DEATH, status)
+ *             == APR_SUCCESS) {
+ *         ;  (already handled)
+ *     }
+ *     else
+ * #endif
+ *         [... handling non-otherchild processes death ...]
+ * 
+ */ +APR_DECLARE(apr_status_t) apr_proc_other_child_alert(apr_proc_t *proc, + int reason, + int status); + +/** + * Test one specific other child processes and invoke the maintenance callback + * with the appropriate reason code, if still running, or the appropriate reason + * code if the process is no longer healthy. + * @param ocr The registered other child + * @param reason The reason code (e.g. APR_OC_REASON_RESTART) if still running + */ +APR_DECLARE(void) apr_proc_other_child_refresh(apr_other_child_rec_t *ocr, + int reason); + +/** + * Test all registered other child processes and invoke the maintenance callback + * with the appropriate reason code, if still running, or the appropriate reason + * code if the process is no longer healthy. + * @param reason The reason code (e.g. APR_OC_REASON_RESTART) to running processes + */ +APR_DECLARE(void) apr_proc_other_child_refresh_all(int reason); + +/** @deprecated @see apr_proc_other_child_refresh_all + * @remark Call apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART) + * or apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING) instead. + * @bug The differing implementations of this function on Win32 (_RUNNING checks) + * and Unix (used only for _RESTART) are the reason it will be dropped with APR 1.0. + */ +APR_DECLARE(void) apr_proc_other_child_check(void); + +/** @deprecated @see apr_proc_other_child_alert + * @bug This function's name had nothing to do with it's purpose + */ +APR_DECLARE(apr_status_t) apr_proc_other_child_read(apr_proc_t *proc, int status); + + +/** + * Terminate a process. + * @param proc The process to terminate. + * @param sig How to kill the process. + */ +APR_DECLARE(apr_status_t) apr_proc_kill(apr_proc_t *proc, int sig); + +/** + * Register a process to be killed when a pool dies. + * @param a The pool to use to define the processes lifetime + * @param proc The process to register + * @param how How to kill the process, one of: + *
+ *         APR_KILL_NEVER         -- process is never sent any signals
+ *         APR_KILL_ALWAYS        -- process is sent SIGKILL on apr_pool_t cleanup
+ *         APR_KILL_AFTER_TIMEOUT -- SIGTERM, wait 3 seconds, SIGKILL
+ *         APR_JUST_WAIT          -- wait forever for the process to complete
+ *         APR_KILL_ONLY_ONCE     -- send SIGTERM and then wait
+ * 
+ */ +APR_DECLARE(void) apr_pool_note_subprocess(apr_pool_t *a, apr_proc_t *proc, + apr_kill_conditions_e how); + +#if APR_HAS_THREADS + +#if (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2) + +/** + * Setup the process for a single thread to be used for all signal handling. + * @warning This must be called before any threads are created + */ +APR_DECLARE(apr_status_t) apr_setup_signal_thread(void); + +/** + * Make the current thread listen for signals. This thread will loop + * forever, calling a provided function whenever it receives a signal. That + * functions should return 1 if the signal has been handled, 0 otherwise. + * @param signal_handler The function to call when a signal is received + * apr_status_t apr_signal_thread((int)(*signal_handler)(int signum)) + */ +APR_DECLARE(apr_status_t) apr_signal_thread(int(*signal_handler)(int signum)); + +#endif /* (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2) */ + +/** + * Get the child-pool used by the thread from the thread info. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(thread); + +#endif /* APR_HAS_THREADS */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_THREAD_PROC_H */ + diff --git a/rubbos/app/apache2/include/apr_thread_rwlock.h b/rubbos/app/apache2/include/apr_thread_rwlock.h new file mode 100644 index 00000000..0e69a2a4 --- /dev/null +++ b/rubbos/app/apache2/include/apr_thread_rwlock.h @@ -0,0 +1,120 @@ +/* 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. + */ + +#ifndef APR_THREAD_RWLOCK_H +#define APR_THREAD_RWLOCK_H + +/** + * @file apr_thread_rwlock.h + * @brief APR Reader/Writer Lock Routines + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#if APR_HAS_THREADS + +/** + * @defgroup apr_thread_rwlock Reader/Writer Lock Routines + * @ingroup APR + * @{ + */ + +/** Opaque read-write thread-safe lock. */ +typedef struct apr_thread_rwlock_t apr_thread_rwlock_t; + +/** + * Create and initialize a read-write lock that can be used to synchronize + * threads. + * @param rwlock the memory address where the newly created readwrite lock + * will be stored. + * @param pool the pool from which to allocate the mutex. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_create(apr_thread_rwlock_t **rwlock, + apr_pool_t *pool); +/** + * Acquire a shared-read lock on the given read-write lock. This will allow + * multiple threads to enter the same critical section while they have acquired + * the read lock. + * @param rwlock the read-write lock on which to acquire the shared read. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_rdlock(apr_thread_rwlock_t *rwlock); + +/** + * Attempt to acquire the shread-read lock on the given read-write lock. This + * is the same as apr_thread_rwlock_rdlock(), only that the funtion fails + * if there is another thread holding the write lock, or if there are any + * write threads blocking on the lock. If the function failes for this case, + * APR_EBUSY will be returned. Note: it is important that the + * APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was + * APR_EBUSY, for portability reasons. + * @param rwlock the rwlock on which to attempt the shared read. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_tryrdlock(apr_thread_rwlock_t *rwlock); + +/** + * Acquire an exclusive-write lock on the given read-write lock. This will + * allow only one single thread to enter the critical sections. If there + * are any threads currently holding thee read-lock, this thread is put to + * sleep until it can have exclusive access to the lock. + * @param rwlock the read-write lock on which to acquire the exclusive write. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_wrlock(apr_thread_rwlock_t *rwlock); + +/** + * Attempt to acquire the exclusive-write lock on the given read-write lock. + * This is the same as apr_thread_rwlock_wrlock(), only that the funtion fails + * if there is any other thread holding the lock (for reading or writing), + * in which case the function will return APR_EBUSY. Note: it is important + * that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return + * value was APR_EBUSY, for portability reasons. + * @param rwlock the rwlock on which to attempt the exclusive write. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_trywrlock(apr_thread_rwlock_t *rwlock); + +/** + * Release either the read or write lock currently held by the calling thread + * associated with the given read-write lock. + * @param rwlock the read-write lock to be released (unlocked). + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_unlock(apr_thread_rwlock_t *rwlock); + +/** + * Destroy the read-write lock and free the associated memory. + * @param rwlock the rwlock to destroy. + */ +APR_DECLARE(apr_status_t) apr_thread_rwlock_destroy(apr_thread_rwlock_t *rwlock); + +/** + * Get the pool used by this thread_rwlock. + * @return apr_pool_t the pool + */ +APR_POOL_DECLARE_ACCESSOR(thread_rwlock); + +#endif /* APR_HAS_THREADS */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_THREAD_RWLOCK_H */ diff --git a/rubbos/app/apache2/include/apr_time.h b/rubbos/app/apache2/include/apr_time.h new file mode 100644 index 00000000..d313910b --- /dev/null +++ b/rubbos/app/apache2/include/apr_time.h @@ -0,0 +1,245 @@ +/* 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. + */ + +#ifndef APR_TIME_H +#define APR_TIME_H + +/** + * @file apr_time.h + * @brief APR Time Library + */ + +#include "apr.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_time Time Routines + * @ingroup APR + * @{ + */ + +/** month names */ +APR_DECLARE_DATA extern const char apr_month_snames[12][4]; +/** day names */ +APR_DECLARE_DATA extern const char apr_day_snames[7][4]; + + +/** number of microseconds since 00:00:00 january 1, 1970 UTC */ +typedef apr_int64_t apr_time_t; + + +/** mechanism to properly type apr_time_t literals */ +#define APR_TIME_C(val) APR_INT64_C(val) + +/** mechanism to properly print apr_time_t values */ +#define APR_TIME_T_FMT APR_INT64_T_FMT + +/** intervals for I/O timeouts, in microseconds */ +typedef apr_int64_t apr_interval_time_t; +/** short interval for I/O timeouts, in microseconds */ +typedef apr_int32_t apr_short_interval_time_t; + +/** number of microseconds per second */ +#define APR_USEC_PER_SEC APR_TIME_C(1000000) + +/** @return apr_time_t as a second */ +#define apr_time_sec(time) ((time) / APR_USEC_PER_SEC) + +/** @return apr_time_t as a usec */ +#define apr_time_usec(time) ((time) % APR_USEC_PER_SEC) + +/** @return apr_time_t as a msec */ +#define apr_time_msec(time) (((time) / 1000) % 1000) + +/** @return apr_time_t as a msec */ +#define apr_time_as_msec(time) ((time) / 1000) + +/** @return a second as an apr_time_t */ +#define apr_time_from_sec(sec) ((apr_time_t)(sec) * APR_USEC_PER_SEC) + +/** @return a second and usec combination as an apr_time_t */ +#define apr_time_make(sec, usec) ((apr_time_t)(sec) * APR_USEC_PER_SEC \ + + (apr_time_t)(usec)) + +/** + * @return the current time + */ +APR_DECLARE(apr_time_t) apr_time_now(void); + +/** @see apr_time_exp_t */ +typedef struct apr_time_exp_t apr_time_exp_t; + +/** + * a structure similar to ANSI struct tm with the following differences: + * - tm_usec isn't an ANSI field + * - tm_gmtoff isn't an ANSI field (it's a bsdism) + */ +struct apr_time_exp_t { + /** microseconds past tm_sec */ + apr_int32_t tm_usec; + /** (0-61) seconds past tm_min */ + apr_int32_t tm_sec; + /** (0-59) minutes past tm_hour */ + apr_int32_t tm_min; + /** (0-23) hours past midnight */ + apr_int32_t tm_hour; + /** (1-31) day of the month */ + apr_int32_t tm_mday; + /** (0-11) month of the year */ + apr_int32_t tm_mon; + /** year since 1900 */ + apr_int32_t tm_year; + /** (0-6) days since sunday */ + apr_int32_t tm_wday; + /** (0-365) days since jan 1 */ + apr_int32_t tm_yday; + /** daylight saving time */ + apr_int32_t tm_isdst; + /** seconds east of UTC */ + apr_int32_t tm_gmtoff; +}; + +/** + * convert an ansi time_t to an apr_time_t + * @param result the resulting apr_time_t + * @param input the time_t to convert + */ +APR_DECLARE(apr_status_t) apr_time_ansi_put(apr_time_t *result, + time_t input); + +/** + * convert a time to its human readable components using an offset + * from GMT + * @param result the exploded time + * @param input the time to explode + * @param offs the number of seconds offset to apply + */ +APR_DECLARE(apr_status_t) apr_time_exp_tz(apr_time_exp_t *result, + apr_time_t input, + apr_int32_t offs); + +/** @deprecated @see apr_time_exp_tz */ +APR_DECLARE(apr_status_t) apr_explode_time(apr_time_exp_t *result, + apr_time_t input, + apr_int32_t offs); + +/** + * convert a time to its human readable components in GMT timezone + * @param result the exploded time + * @param input the time to explode + */ +APR_DECLARE(apr_status_t) apr_time_exp_gmt(apr_time_exp_t *result, + apr_time_t input); + +/** + * convert a time to its human readable components in local timezone + * @param result the exploded time + * @param input the time to explode + */ +APR_DECLARE(apr_status_t) apr_time_exp_lt(apr_time_exp_t *result, + apr_time_t input); + +/** @deprecated @see apr_time_exp_lt */ +APR_DECLARE(apr_status_t) apr_explode_localtime(apr_time_exp_t *result, + apr_time_t input); + +/** + * Convert time value from human readable format to a numeric apr_time_t + * e.g. elapsed usec since epoch + * @param result the resulting imploded time + * @param input the input exploded time + */ +APR_DECLARE(apr_status_t) apr_time_exp_get(apr_time_t *result, + apr_time_exp_t *input); + +/** + * Convert time value from human readable format to a numeric apr_time_t that + * always represents GMT + * @param result the resulting imploded time + * @param input the input exploded time + */ +APR_DECLARE(apr_status_t) apr_time_exp_gmt_get(apr_time_t *result, + apr_time_exp_t *input); + +/** @deprecated @see apr_time_exp_gmt_get */ +APR_DECLARE(apr_status_t) apr_implode_gmt(apr_time_t *result, + apr_time_exp_t *input); + +/** + * Sleep for the specified number of micro-seconds. + * @param t desired amount of time to sleep. + * @warning May sleep for longer than the specified time. + */ +APR_DECLARE(void) apr_sleep(apr_interval_time_t t); + +/** length of a RFC822 Date */ +#define APR_RFC822_DATE_LEN (30) +/** + * apr_rfc822_date formats dates in the RFC822 + * format in an efficient manner. It is a fixed length + * format which requires the indicated amount of storage, + * including the trailing null byte. + * @param date_str String to write to. + * @param t the time to convert + */ +APR_DECLARE(apr_status_t) apr_rfc822_date(char *date_str, apr_time_t t); + +/** length of a CTIME date */ +#define APR_CTIME_LEN (25) +/** + * apr_ctime formats dates in the ctime() format + * in an efficient manner. it is a fixed length format + * and requires the indicated amount of storage including + * the trailing null byte. + * Unlike ANSI/ISO C ctime(), apr_ctime() does not include + * a \n at the end of the string. + * @param date_str String to write to. + * @param t the time to convert + */ +APR_DECLARE(apr_status_t) apr_ctime(char *date_str, apr_time_t t); + +/** + * formats the exploded time according to the format specified + * @param s string to write to + * @param retsize The length of the returned string + * @param max The maximum length of the string + * @param format The format for the time string + * @param tm The time to convert + */ +APR_DECLARE(apr_status_t) apr_strftime(char *s, apr_size_t *retsize, + apr_size_t max, const char *format, + apr_time_exp_t *tm); + +/** + * Improve the clock resolution for the lifetime of the given pool. + * Generally this is only desireable on benchmarking and other very + * time-sensitive applications, and has no impact on most platforms. + * @param p The pool to associate the finer clock resolution + */ +APR_DECLARE(void) apr_time_clock_hires(apr_pool_t *p); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_TIME_H */ diff --git a/rubbos/app/apache2/include/apr_uri.h b/rubbos/app/apache2/include/apr_uri.h new file mode 100644 index 00000000..877e51a0 --- /dev/null +++ b/rubbos/app/apache2/include/apr_uri.h @@ -0,0 +1,181 @@ +/* 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 + * + * 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. + */ + +/* + * apr_uri.h: External Interface of apr_uri.c + */ + +/** + * @file apr_uri.h + * @brief APR-UTIL URI Routines + */ + +#ifndef APR_URI_H +#define APR_URI_H + +#include "apu.h" + +#include "apr_network_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_URI URI + * @ingroup APR_Util + * @{ + */ + +#define APR_URI_FTP_DEFAULT_PORT 21 /**< default FTP port */ +#define APR_URI_SSH_DEFAULT_PORT 22 /**< default SSH port */ +#define APR_URI_TELNET_DEFAULT_PORT 23 /**< default telnet port */ +#define APR_URI_GOPHER_DEFAULT_PORT 70 /**< default Gopher port */ +#define APR_URI_HTTP_DEFAULT_PORT 80 /**< default HTTP port */ +#define APR_URI_POP_DEFAULT_PORT 110 /**< default POP port */ +#define APR_URI_NNTP_DEFAULT_PORT 119 /**< default NNTP port */ +#define APR_URI_IMAP_DEFAULT_PORT 143 /**< default IMAP port */ +#define APR_URI_PROSPERO_DEFAULT_PORT 191 /**< default Prospero port */ +#define APR_URI_WAIS_DEFAULT_PORT 210 /**< default WAIS port */ +#define APR_URI_LDAP_DEFAULT_PORT 389 /**< default LDAP port */ +#define APR_URI_HTTPS_DEFAULT_PORT 443 /**< default HTTPS port */ +#define APR_URI_RTSP_DEFAULT_PORT 554 /**< default RTSP port */ +#define APR_URI_SNEWS_DEFAULT_PORT 563 /**< default SNEWS port */ +#define APR_URI_ACAP_DEFAULT_PORT 674 /**< default ACAP port */ +#define APR_URI_NFS_DEFAULT_PORT 2049 /**< default NFS port */ +#define APR_URI_TIP_DEFAULT_PORT 3372 /**< default TIP port */ +#define APR_URI_SIP_DEFAULT_PORT 5060 /**< default SIP port */ + +/** Flags passed to unparse_uri_components(): */ +/** suppress "scheme://user\@site:port" */ +#define APR_URI_UNP_OMITSITEPART (1U<<0) +/** Just omit user */ +#define APR_URI_UNP_OMITUSER (1U<<1) +/** Just omit password */ +#define APR_URI_UNP_OMITPASSWORD (1U<<2) +/** omit "user:password\@" part */ +#define APR_URI_UNP_OMITUSERINFO (APR_URI_UNP_OMITUSER | \ + APR_URI_UNP_OMITPASSWORD) +/** Show plain text password (default: show XXXXXXXX) */ +#define APR_URI_UNP_REVEALPASSWORD (1U<<3) +/** Show "scheme://user\@site:port" only */ +#define APR_URI_UNP_OMITPATHINFO (1U<<4) +/** Omit the "?queryarg" from the path */ +#define APR_URI_UNP_OMITQUERY (1U<<5) + +/** @see apr_uri_t */ +typedef struct apr_uri_t apr_uri_t; + +/** + * A structure to encompass all of the fields in a uri + */ +struct apr_uri_t { + /** scheme ("http"/"ftp"/...) */ + char *scheme; + /** combined [user[:password]\@]host[:port] */ + char *hostinfo; + /** user name, as in http://user:passwd\@host:port/ */ + char *user; + /** password, as in http://user:passwd\@host:port/ */ + char *password; + /** hostname from URI (or from Host: header) */ + char *hostname; + /** port string (integer representation is in "port") */ + char *port_str; + /** the request path (or "/" if only scheme://host was given) */ + char *path; + /** Everything after a '?' in the path, if present */ + char *query; + /** Trailing "#fragment" string, if present */ + char *fragment; + + /** structure returned from gethostbyname() */ + struct hostent *hostent; + + /** The port number, numeric, valid only if port_str != NULL */ + apr_port_t port; + + /** has the structure been initialized */ + unsigned is_initialized:1; + + /** has the DNS been looked up yet */ + unsigned dns_looked_up:1; + /** has the dns been resolved yet */ + unsigned dns_resolved:1; +}; + +/* apr_uri.c */ +/** + * Return the default port for a given scheme. The schemes recognized are + * http, ftp, https, gopher, wais, nntp, snews, and prospero + * @param scheme_str The string that contains the current scheme + * @return The default port for this scheme + */ +APU_DECLARE(apr_port_t) apr_uri_port_of_scheme(const char *scheme_str); + +/** @deprecated @see apr_uri_port_of_scheme */ +APU_DECLARE(apr_port_t) apr_uri_default_port_for_scheme(const char *scheme_str); + +/** + * Unparse a apr_uri_t structure to an URI string. Optionally + * suppress the password for security reasons. + * @param p The pool to allocate out of + * @param uptr All of the parts of the uri + * @param flags How to unparse the uri. One of: + *
+ *    APR_URI_UNP_OMITSITEPART        Suppress "scheme://user\@site:port" 
+ *    APR_URI_UNP_OMITUSER            Just omit user 
+ *    APR_URI_UNP_OMITPASSWORD        Just omit password 
+ *    APR_URI_UNP_OMITUSERINFO        Omit "user:password\@" part
+ *    APR_URI_UNP_REVEALPASSWORD      Show plain text password (default: show XXXXXXXX)
+ *    APR_URI_UNP_OMITPATHINFO        Show "scheme://user\@site:port" only 
+ *    APR_URI_UNP_OMITQUERY           Omit "?queryarg" or "#fragment" 
+ * 
+ * @return The uri as a string + */ +APU_DECLARE(char *) apr_uri_unparse(apr_pool_t *p, + const apr_uri_t *uptr, + unsigned flags); + +/** + * Parse a given URI, fill in all supplied fields of a apr_uri_t + * structure. This eliminates the necessity of extracting host, port, + * path, query info repeatedly in the modules. + * @param p The pool to allocate out of + * @param uri The uri to parse + * @param uptr The apr_uri_t to fill out + * @return APR_SUCCESS for success or error code + */ +APU_DECLARE(apr_status_t) apr_uri_parse(apr_pool_t *p, const char *uri, + apr_uri_t *uptr); + +/** + * Special case for CONNECT parsing: it comes with the hostinfo part only + * @param p The pool to allocate out of + * @param hostinfo The hostinfo string to parse + * @param uptr The apr_uri_t to fill out + * @return APR_SUCCESS for success or error code + */ +APU_DECLARE(apr_status_t) apr_uri_parse_hostinfo(apr_pool_t *p, + const char *hostinfo, + apr_uri_t *uptr); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* APR_URI_H */ diff --git a/rubbos/app/apache2/include/apr_user.h b/rubbos/app/apache2/include/apr_user.h new file mode 100644 index 00000000..d96d5407 --- /dev/null +++ b/rubbos/app/apache2/include/apr_user.h @@ -0,0 +1,195 @@ +/* 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. + */ + +#ifndef APR_USER_H +#define APR_USER_H + +/** + * @file apr_user.h + * @brief APR User ID Services + */ + +#include "apr.h" +#include "apr_errno.h" +#include "apr_pools.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_user User and Group ID Services + * @ingroup APR + * @{ + */ + +/** + * Structure for determining user ownership. + */ +#ifdef WIN32 +typedef PSID apr_uid_t; +#else +typedef uid_t apr_uid_t; +#endif + +/** + * Structure for determining group ownership. + */ +#ifdef WIN32 +typedef PSID apr_gid_t; +#else +typedef gid_t apr_gid_t; +#endif + +#if APR_HAS_USER + +/** + * Get the userid (and groupid) of the calling process + * @param userid Returns the user id + * @param groupid Returns the user's group id + * @param p The pool from which to allocate working space + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_uid_current(apr_uid_t *userid, + apr_gid_t *groupid, + apr_pool_t *p); + +/** @deprecated @see apr_uid_current */ +APR_DECLARE(apr_status_t) apr_current_userid(apr_uid_t *userid, + apr_gid_t *groupid, + apr_pool_t *p); +/** + * Get the user name for a specified userid + * @param username Pointer to new string containing user name (on output) + * @param userid The userid + * @param p The pool from which to allocate the string + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_uid_name_get(char **username, apr_uid_t userid, + apr_pool_t *p); + +/** @deprecated @see apr_uid_name_get */ +APR_DECLARE(apr_status_t) apr_get_username(char **username, apr_uid_t userid, + apr_pool_t *p); +/** + * Get the userid (and groupid) for the specified username + * @param userid Returns the user id + * @param groupid Returns the user's group id + * @param username The username to lookup + * @param p The pool from which to allocate working space + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_uid_get(apr_uid_t *userid, apr_gid_t *groupid, + const char *username, apr_pool_t *p); + +/** @deprecated @see apr_uid_get */ +APR_DECLARE(apr_status_t) apr_get_userid(apr_uid_t *userid, apr_gid_t *groupid, + const char *username, apr_pool_t *p); + +/** + * Get the home directory for the named user + * @param dirname Pointer to new string containing directory name (on output) + * @param username The named user + * @param p The pool from which to allocate the string + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_uid_homepath_get(char **dirname, + const char *username, + apr_pool_t *p); + +/** @deprecated @see apr_uid_homepath_get */ +APR_DECLARE(apr_status_t) apr_get_home_directory(char **dirname, + const char *username, + apr_pool_t *p); + +/** + * Compare two user identifiers for equality. + * @param left One uid to test + * @param right Another uid to test + * @return APR_SUCCESS if the apr_uid_t strutures identify the same user, + * APR_EMISMATCH if not, APR_BADARG if an apr_uid_t is invalid. + * @remark This function is available only if APR_HAS_USER is defined. + */ +#if defined(WIN32) +APR_DECLARE(apr_status_t) apr_uid_compare(apr_uid_t left, apr_uid_t right); + +/** @deprecated @see apr_uid_compare */ +APR_DECLARE(apr_status_t) apr_compare_users(apr_uid_t left, apr_uid_t right); +#else +#define apr_uid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH) +/** @deprecated @see apr_uid_compare */ +#define apr_compare_users(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH) +#endif + +/** + * Get the group name for a specified groupid + * @param groupname Pointer to new string containing group name (on output) + * @param groupid The groupid + * @param p The pool from which to allocate the string + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_gid_name_get(char **groupname, + apr_gid_t groupid, apr_pool_t *p); + +/** @deprecated @see apr_gid_name_get */ +APR_DECLARE(apr_status_t) apr_group_name_get(char **groupname, + apr_gid_t groupid, apr_pool_t *p); + +/** @deprecated @see apr_gid_name_get */ +APR_DECLARE(apr_status_t) apr_get_groupname(char **groupname, + apr_gid_t groupid, apr_pool_t *p); + +/** + * Get the groupid for a specified group name + * @param groupid Pointer to the group id (on output) + * @param groupname The group name to look up + * @param p The pool from which to allocate the string + * @remark This function is available only if APR_HAS_USER is defined. + */ +APR_DECLARE(apr_status_t) apr_gid_get(apr_gid_t *groupid, + const char *groupname, apr_pool_t *p); + +/** @deprecated @see apr_gid_get */ +APR_DECLARE(apr_status_t) apr_get_groupid(apr_gid_t *groupid, + const char *groupname, apr_pool_t *p); + +/** + * Compare two group identifiers for equality. + * @param left One gid to test + * @param right Another gid to test + * @return APR_SUCCESS if the apr_gid_t strutures identify the same group, + * APR_EMISMATCH if not, APR_BADARG if an apr_gid_t is invalid. + * @remark This function is available only if APR_HAS_USER is defined. + */ +#if defined(WIN32) +APR_DECLARE(apr_status_t) apr_gid_compare(apr_gid_t left, apr_gid_t right); +/** @deprecated @see apr_gid_compare */ +APR_DECLARE(apr_status_t) apr_compare_groups(apr_gid_t left, apr_gid_t right); +#else +#define apr_gid_compare(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH) +/** @deprecated @see apr_gid_compare */ +#define apr_compare_groups(left,right) (((left) == (right)) ? APR_SUCCESS : APR_EMISMATCH) +#endif + +#endif /* ! APR_HAS_USER */ + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_USER_H */ diff --git a/rubbos/app/apache2/include/apr_uuid.h b/rubbos/app/apache2/include/apr_uuid.h new file mode 100644 index 00000000..820d7409 --- /dev/null +++ b/rubbos/app/apache2/include/apr_uuid.h @@ -0,0 +1,76 @@ +/* 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 + * + * 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. + */ + +/** + * @file apr_uuid.h + * @brief APR UUID library + */ +#ifndef APR_UUID_H +#define APR_UUID_H + +#include "apu.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup APR_UUID UUID Handling + * @ingroup APR + * @{ + */ + +/** + * we represent a UUID as a block of 16 bytes. + */ + +typedef struct { + unsigned char data[16]; /**< the actual UUID */ +} apr_uuid_t; + +/** UUIDs are formatted as: 00112233-4455-6677-8899-AABBCCDDEEFF */ +#define APR_UUID_FORMATTED_LENGTH 36 + + +/** + * Generate and return a (new) UUID + * @param uuid The resulting UUID + */ +APU_DECLARE(void) apr_uuid_get(apr_uuid_t *uuid); + +/** + * Format a UUID into a string, following the standard format + * @param buffer The buffer to place the formatted UUID string into. It must + * be at least APR_UUID_FORMATTED_LENGTH + 1 bytes long to hold + * the formatted UUID and a null terminator + * @param uuid The UUID to format + */ +APU_DECLARE(void) apr_uuid_format(char *buffer, const apr_uuid_t *uuid); + +/** + * Parse a standard-format string into a UUID + * @param uuid The resulting UUID + * @param uuid_str The formatted UUID + */ +APU_DECLARE(apr_status_t) apr_uuid_parse(apr_uuid_t *uuid, const char *uuid_str); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* APR_UUID_H */ diff --git a/rubbos/app/apache2/include/apr_version.h b/rubbos/app/apache2/include/apr_version.h new file mode 100644 index 00000000..08bcd288 --- /dev/null +++ b/rubbos/app/apache2/include/apr_version.h @@ -0,0 +1,115 @@ +/* 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. + */ + +#ifndef APR_VERSION_H +#define APR_VERSION_H + +#include "apr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file apr_version.h + * @brief APR Versioning Interface + * + * APR's Version + * + * There are several different mechanisms for accessing the version. There + * is a string form, and a set of numbers; in addition, there are constants + * which can be compiled into your application, and you can query the library + * being used for its actual version. + * + * Note that it is possible for an application to detect that it has been + * compiled against a different version of APR by use of the compile-time + * constants and the use of the run-time query function. + * + * APR version numbering follows the guidelines specified in: + * + * http://apr.apache.org/versioning.html + */ + +/* The numeric compile-time version constants. These constants are the + * authoritative version numbers for APR. + */ + +/** major version + * Major API changes that could cause compatibility problems for older + * programs such as structure size changes. No binary compatibility is + * possible across a change in the major version. + */ +#define APR_MAJOR_VERSION 0 + +/** + * Minor API changes that do not cause binary compatibility problems. + * Should be reset to 0 when upgrading APR_MAJOR_VERSION + */ +#define APR_MINOR_VERSION 9 + +/** patch level */ +#define APR_PATCH_VERSION 19 + +/** + * This symbol is defined for internal, "development" copies of APR. This + * symbol will be #undef'd for releases. + */ +/* #define APR_IS_DEV_VERSION */ + + +/** The formatted string of APR's version */ +#define APR_VERSION_STRING \ + APR_STRINGIFY(APR_MAJOR_VERSION) "." \ + APR_STRINGIFY(APR_MINOR_VERSION) "." \ + APR_STRINGIFY(APR_PATCH_VERSION) \ + APR_IS_DEV_STRING + + +/** + * The numeric version information is broken out into fields within this + * structure. + */ +typedef struct { + int major; /**< major number */ + int minor; /**< minor number */ + int patch; /**< patch number */ + int is_dev; /**< is development (1 or 0) */ +} apr_version_t; + +/** + * Return APR's version information information in a numeric form. + * + * @param pvsn Pointer to a version structure for returning the version + * information. + */ +APR_DECLARE(void) apr_version(apr_version_t *pvsn); + +/** Return APR's version information as a string. */ +APR_DECLARE(const char *) apr_version_string(void); + + +/** Internal: string form of the "is dev" flag */ +#ifdef APR_IS_DEV_VERSION +#define APR_IS_DEV_STRING "-dev" +#else +#define APR_IS_DEV_STRING "" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* APR_VERSION_H */ diff --git a/rubbos/app/apache2/include/apr_want.h b/rubbos/app/apache2/include/apr_want.h new file mode 100644 index 00000000..39cc4fcb --- /dev/null +++ b/rubbos/app/apache2/include/apr_want.h @@ -0,0 +1,109 @@ +/* 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 "apr.h" /* configuration data */ +/** + * @file apr_want.h + * @brief APR Standard Headers Support + * + *
+ * Features:
+ *
+ *   APR_WANT_STRFUNC:  strcmp, strcat, strcpy, etc
+ *   APR_WANT_MEMFUNC:  memcmp, memcpy, etc
+ *   APR_WANT_STDIO:     and related bits
+ *   APR_WANT_IOVEC:    struct iovec
+ *   APR_WANT_BYTEFUNC: htons, htonl, ntohl, ntohs
+ *
+ * Typical usage:
+ *
+ *   #define APR_WANT_STRFUNC
+ *   #define APR_WANT_MEMFUNC
+ *   #include "apr_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apr_want.h)
+ * 
+ */ + +/* --------------------------------------------------------------------- */ + +#ifdef APR_WANT_STRFUNC + +#if APR_HAVE_STRING_H +#include +#endif +#if APR_HAVE_STRINGS_H +#include +#endif + +#undef APR_WANT_STRFUNC +#endif + +/* --------------------------------------------------------------------- */ + +#ifdef APR_WANT_MEMFUNC + +#if APR_HAVE_STRING_H +#include +#endif + +#undef APR_WANT_MEMFUNC +#endif + +/* --------------------------------------------------------------------- */ + +#ifdef APR_WANT_STDIO + +#if APR_HAVE_STDIO_H +#include +#endif + +#undef APR_WANT_STDIO +#endif + +/* --------------------------------------------------------------------- */ + +#ifdef APR_WANT_IOVEC + +#if APR_HAVE_SYS_UIO_H +#include +#endif + +#undef APR_WANT_IOVEC +#endif + +/* --------------------------------------------------------------------- */ + +#ifdef APR_WANT_BYTEFUNC + +/* Single Unix says they are in arpa/inet.h. Linux has them in + * netinet/in.h. FreeBSD has them in arpa/inet.h but requires that + * netinet/in.h be included first. + */ +#if APR_HAVE_NETINET_IN_H +#include +#endif +#if APR_HAVE_ARPA_INET_H +#include +#endif + +#undef APR_WANT_BYTEFUNC +#endif + +/* --------------------------------------------------------------------- */ diff --git a/rubbos/app/apache2/include/apr_xlate.h b/rubbos/app/apache2/include/apr_xlate.h new file mode 100644 index 00000000..92e77464 --- /dev/null +++ b/rubbos/app/apache2/include/apr_xlate.h @@ -0,0 +1,158 @@ +/* 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 + * + * 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. + */ + +#ifndef APR_XLATE_H +#define APR_XLATE_H + +#include "apu.h" +#include "apr_pools.h" +#include "apr_errno.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @file apr_xlate.h + * @brief APR I18N translation library + */ + +/** + * @defgroup APR_XLATE I18N translation library + * @ingroup APR + * @{ + */ +/** Opaque translation buffer */ +typedef struct apr_xlate_t apr_xlate_t; + +/** + * Set up for converting text from one charset to another. + * @param convset The handle to be filled in by this function + * @param topage The name of the target charset + * @param frompage The name of the source charset + * @param pool The pool to use + * @remark + * Specify APR_DEFAULT_CHARSET for one of the charset + * names to indicate the charset of the source code at + * compile time. This is useful if there are literal + * strings in the source code which must be translated + * according to the charset of the source code. + * APR_DEFAULT_CHARSET is not useful if the source code + * of the caller was not encoded in the same charset as + * APR at compile time. + * + * @remark + * Specify APR_LOCALE_CHARSET for one of the charset + * names to indicate the charset of the current locale. + * + * @remark + * Return APR_EINVAL if unable to procure a convset, or APR_ENOTIMPL + * if charset transcoding is not available in this instance of + * apr-util at all (i.e., APR_HAS_XLATE is undefined). + */ +APU_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset, + const char *topage, + const char *frompage, + apr_pool_t *pool); + +/** + * This is to indicate the charset of the sourcecode at compile time + * names to indicate the charset of the source code at + * compile time. This is useful if there are literal + * strings in the source code which must be translated + * according to the charset of the source code. + */ +#define APR_DEFAULT_CHARSET (const char *)0 +/** + * To indicate charset names of the current locale + */ +#define APR_LOCALE_CHARSET (const char *)1 + +/** + * Find out whether or not the specified conversion is single-byte-only. + * @param convset The handle allocated by apr_xlate_open, specifying the + * parameters of conversion + * @param onoff Output: whether or not the conversion is single-byte-only + * @remark + * Return APR_ENOTIMPL if charset transcoding is not available + * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined). + */ +APU_DECLARE(apr_status_t) apr_xlate_sb_get(apr_xlate_t *convset, int *onoff); + +/** @deprecated @see apr_xlate_sb_get */ +APU_DECLARE(apr_status_t) apr_xlate_get_sb(apr_xlate_t *convset, int *onoff); + +/** + * Convert a buffer of text from one codepage to another. + * @param convset The handle allocated by apr_xlate_open, specifying + * the parameters of conversion + * @param inbuf The address of the source buffer + * @param inbytes_left Input: the amount of input data to be translated + * Output: the amount of input data not yet translated + * @param outbuf The address of the destination buffer + * @param outbytes_left Input: the size of the output buffer + * Output: the amount of the output buffer not yet used + * @remark + * Return APR_ENOTIMPL if charset transcoding is not available + * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined). + */ +APU_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset, + const char *inbuf, + apr_size_t *inbytes_left, + char *outbuf, + apr_size_t *outbytes_left); + +/* @see apr_file_io.h the comment in apr_file_io.h about this hack */ +#ifdef APR_NOT_DONE_YET +/** + * The purpose of apr_xlate_conv_char is to translate one character + * at a time. This needs to be written carefully so that it works + * with double-byte character sets. + * @param convset The handle allocated by apr_xlate_open, specifying the + * parameters of conversion + * @param inchar The character to convert + * @param outchar The converted character + */ +APU_DECLARE(apr_status_t) apr_xlate_conv_char(apr_xlate_t *convset, + char inchar, char outchar); +#endif + +/** + * Convert a single-byte character from one charset to another. + * @param convset The handle allocated by apr_xlate_open, specifying the + * parameters of conversion + * @param inchar The single-byte character to convert. + * @warning This only works when converting between single-byte character sets. + * -1 will be returned if the conversion can't be performed. + */ +APU_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset, + unsigned char inchar); + +/** + * Close a codepage translation handle. + * @param convset The codepage translation handle to close + * @remark + * Return APR_ENOTIMPL if charset transcoding is not available + * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined). + */ +APU_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_XLATE_H */ diff --git a/rubbos/app/apache2/include/apr_xml.h b/rubbos/app/apache2/include/apr_xml.h new file mode 100644 index 00000000..551283e6 --- /dev/null +++ b/rubbos/app/apache2/include/apr_xml.h @@ -0,0 +1,340 @@ +/* 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 + * + * 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. + */ +/** + * @file apr_xml.h + * @brief APR-UTIL XML Library + */ +#ifndef APR_XML_H +#define APR_XML_H + +/** + * @defgroup APR_Util_XML XML + * @ingroup APR_Util + * @{ + */ +#include "apr_pools.h" +#include "apr_tables.h" +#include "apr_file_io.h" + +#include "apu.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Apache XML library + */ + +/* -------------------------------------------------------------------- */ + +/* ### these will need to move at some point to a more logical spot */ + +/** @see apr_text */ +typedef struct apr_text apr_text; + +/** Structure to keep a linked list of pieces of text */ +struct apr_text { + /** The current piece of text */ + const char *text; + /** a pointer to the next piece of text */ + struct apr_text *next; +}; + +/** @see apr_text_header */ +typedef struct apr_text_header apr_text_header; + +/** A list of pieces of text */ +struct apr_text_header { + /** The first piece of text in the list */ + apr_text *first; + /** The last piece of text in the list */ + apr_text *last; +}; + +/** + * Append a piece of text to the end of a list + * @param p The pool to allocate out of + * @param hdr The text header to append to + * @param text The new text to append + */ +APU_DECLARE(void) apr_text_append(apr_pool_t *p, apr_text_header *hdr, + const char *text); + + +/* -------------------------------------------------------------------- +** +** XML PARSING +*/ + +/* +** Qualified namespace values +** +** APR_XML_NS_DAV_ID +** We always insert the "DAV:" namespace URI at the head of the +** namespace array. This means that it will always be at ID==0, +** making it much easier to test for. +** +** APR_XML_NS_NONE +** This special ID is used for two situations: +** +** 1) The namespace prefix begins with "xml" (and we do not know +** what it means). Namespace prefixes with "xml" (any case) as +** their first three characters are reserved by the XML Namespaces +** specification for future use. mod_dav will pass these through +** unchanged. When this identifier is used, the prefix is LEFT in +** the element/attribute name. Downstream processing should not +** prepend another prefix. +** +** 2) The element/attribute does not have a namespace. +** +** a) No prefix was used, and a default namespace has not been +** defined. +** b) No prefix was used, and the default namespace was specified +** to mean "no namespace". This is done with a namespace +** declaration of: xmlns="" +** (this declaration is typically used to override a previous +** specification for the default namespace) +** +** In these cases, we need to record that the elem/attr has no +** namespace so that we will not attempt to prepend a prefix. +** All namespaces that are used will have a prefix assigned to +** them -- mod_dav will never set or use the default namespace +** when generating XML. This means that "no prefix" will always +** mean "no namespace". +** +** In both cases, the XML generation will avoid prepending a prefix. +** For the first case, this means the original prefix/name will be +** inserted into the output stream. For the latter case, it means +** the name will have no prefix, and since we never define a default +** namespace, this means it will have no namespace. +** +** Note: currently, mod_dav understands the "xmlns" prefix and the +** "xml:lang" attribute. These are handled specially (they aren't +** left within the XML tree), so the APR_XML_NS_NONE value won't ever +** really apply to these values. +*/ +#define APR_XML_NS_DAV_ID 0 /**< namespace ID for "DAV:" */ +#define APR_XML_NS_NONE -10 /**< no namespace for this elem/attr */ + +#define APR_XML_NS_ERROR_BASE -100 /**< used only during processing */ +/** Is this namespace an error? */ +#define APR_XML_NS_IS_ERROR(e) ((e) <= APR_XML_NS_ERROR_BASE) + +/** @see apr_xml_attr */ +typedef struct apr_xml_attr apr_xml_attr; +/** @see apr_xml_elem */ +typedef struct apr_xml_elem apr_xml_elem; +/** @see apr_xml_doc */ +typedef struct apr_xml_doc apr_xml_doc; + +/** apr_xml_attr: holds a parsed XML attribute */ +struct apr_xml_attr { + /** attribute name */ + const char *name; + /** index into namespace array */ + int ns; + + /** attribute value */ + const char *value; + + /** next attribute */ + struct apr_xml_attr *next; +}; + +/** apr_xml_elem: holds a parsed XML element */ +struct apr_xml_elem { + /** element name */ + const char *name; + /** index into namespace array */ + int ns; + /** xml:lang for attrs/contents */ + const char *lang; + + /** cdata right after start tag */ + apr_text_header first_cdata; + /** cdata after MY end tag */ + apr_text_header following_cdata; + + /** parent element */ + struct apr_xml_elem *parent; + /** next (sibling) element */ + struct apr_xml_elem *next; + /** first child element */ + struct apr_xml_elem *first_child; + /** first attribute */ + struct apr_xml_attr *attr; + + /* used only during parsing */ + /** last child element */ + struct apr_xml_elem *last_child; + /** namespaces scoped by this elem */ + struct apr_xml_ns_scope *ns_scope; + + /* used by modules during request processing */ + /** Place for modules to store private data */ + void *priv; +}; + +/** Is this XML element empty? */ +#define APR_XML_ELEM_IS_EMPTY(e) ((e)->first_child == NULL && \ + (e)->first_cdata.first == NULL) + +/** apr_xml_doc: holds a parsed XML document */ +struct apr_xml_doc { + /** root element */ + apr_xml_elem *root; + /** array of namespaces used */ + apr_array_header_t *namespaces; +}; + +/** Opaque XML parser structure */ +typedef struct apr_xml_parser apr_xml_parser; + +/** + * Create an XML parser + * @param pool The pool for allocating the parser and the parse results. + * @return The new parser. + */ +APU_DECLARE(apr_xml_parser *) apr_xml_parser_create(apr_pool_t *pool); + +/** + * Parse a File, producing a xml_doc + * @param p The pool for allocating the parse results. + * @param parser A pointer to *parser (needed so calling function can get + * errors), will be set to NULL on successfull completion. + * @param ppdoc A pointer to *apr_xml_doc (which has the parsed results in it) + * @param xmlfd A file to read from. + * @param buffer_length Buffer length which would be suitable + * @return Any errors found during parsing. + */ +APU_DECLARE(apr_status_t) apr_xml_parse_file(apr_pool_t *p, + apr_xml_parser **parser, + apr_xml_doc **ppdoc, + apr_file_t *xmlfd, + apr_size_t buffer_length); + + +/** + * Feed input into the parser + * @param parser The XML parser for parsing this data. + * @param data The data to parse. + * @param len The length of the data. + * @return Any errors found during parsing. + * @remark Use apr_xml_parser_geterror() to get more error information. + */ +APU_DECLARE(apr_status_t) apr_xml_parser_feed(apr_xml_parser *parser, + const char *data, + apr_size_t len); + +/** + * Terminate the parsing and return the result + * @param parser The XML parser for parsing this data. + * @param pdoc The resulting parse information. May be NULL to simply + * terminate the parsing without fetching the info. + * @return Any errors found during the final stage of parsing. + * @remark Use apr_xml_parser_geterror() to get more error information. + */ +APU_DECLARE(apr_status_t) apr_xml_parser_done(apr_xml_parser *parser, + apr_xml_doc **pdoc); + +/** + * Fetch additional error information from the parser. + * @param parser The XML parser to query for errors. + * @param errbuf A buffer for storing error text. + * @param errbufsize The length of the error text buffer. + * @return The error buffer + */ +APU_DECLARE(char *) apr_xml_parser_geterror(apr_xml_parser *parser, + char *errbuf, + apr_size_t errbufsize); + + +/** + * Converts an XML element tree to flat text + * @param p The pool to allocate out of + * @param elem The XML element to convert + * @param style How to covert the XML. One of: + *
+ *     APR_XML_X2T_FULL                start tag, contents, end tag 
+ *     APR_XML_X2T_INNER               contents only 
+ *     APR_XML_X2T_LANG_INNER          xml:lang + inner contents 
+ *     APR_XML_X2T_FULL_NS_LANG        FULL + ns defns + xml:lang 
+ * 
+ * @param namespaces The namespace of the current XML element + * @param ns_map Namespace mapping + * @param pbuf Buffer to put the converted text into + * @param psize Size of the converted text + */ +APU_DECLARE(void) apr_xml_to_text(apr_pool_t *p, const apr_xml_elem *elem, + int style, apr_array_header_t *namespaces, + int *ns_map, const char **pbuf, + apr_size_t *psize); + +/* style argument values: */ +#define APR_XML_X2T_FULL 0 /**< start tag, contents, end tag */ +#define APR_XML_X2T_INNER 1 /**< contents only */ +#define APR_XML_X2T_LANG_INNER 2 /**< xml:lang + inner contents */ +#define APR_XML_X2T_FULL_NS_LANG 3 /**< FULL + ns defns + xml:lang */ + +/** + * empty XML element + * @param p The pool to allocate out of + * @param elem The XML element to empty + * @return the string that was stored in the XML element + */ +APU_DECLARE(const char *) apr_xml_empty_elem(apr_pool_t *p, + const apr_xml_elem *elem); + +/** + * quote an XML string + * Replace '<', '>', and '&' with '<', '>', and '&'. + * @param p The pool to allocate out of + * @param s The string to quote + * @param quotes If quotes is true, then replace '"' with '"'. + * @return The quoted string + * @note If the string does not contain special characters, it is not + * duplicated into the pool and the original string is returned. + */ +APU_DECLARE(const char *) apr_xml_quote_string(apr_pool_t *p, const char *s, + int quotes); + +/** + * Quote an XML element + * @param p The pool to allocate out of + * @param elem The element to quote + */ +APU_DECLARE(void) apr_xml_quote_elem(apr_pool_t *p, apr_xml_elem *elem); + +/* manage an array of unique URIs: apr_xml_insert_uri() and APR_XML_URI_ITEM() */ + +/** + * return the URI's (existing) index, or insert it and return a new index + * @param uri_array array to insert into + * @param uri The uri to insert + * @return int The uri's index + */ +APU_DECLARE(int) apr_xml_insert_uri(apr_array_header_t *uri_array, + const char *uri); + +/** Get the URI item for this XML element */ +#define APR_XML_GET_URI_ITEM(ary, i) (((const char * const *)(ary)->elts)[i]) + +#ifdef __cplusplus +} +#endif +/** @} */ +#endif /* APR_XML_H */ diff --git a/rubbos/app/apache2/include/apu.h b/rubbos/app/apache2/include/apu.h new file mode 100644 index 00000000..42edff8d --- /dev/null +++ b/rubbos/app/apache2/include/apu.h @@ -0,0 +1,85 @@ +/* Copyright 2000-2004 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 + * + * 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. + */ + +/* + * apu.h is generated from apu.h.in by configure -- do not edit apu.h + */ +/* @file apu.h + * @brief APR-Utility main file + */ +/** + * @defgroup APR_Util APR Utility Functions + * @{ + */ + + +#ifndef APU_H +#define APU_H + +/** + * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library, + * so that all public symbols are exported. + * + * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers, + * to provide static linkage when the dynamic library may be unavailable. + * + * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when + * including the APR-UTIL public headers, to import and link the symbols from + * the dynamic APR-UTIL library and assure appropriate indirection and calling + * conventions at compile time. + */ + +/** + * The public APR-UTIL functions are declared with APU_DECLARE(), so they may + * use the most appropriate calling convention. Public APR functions with + * variable arguments must use APU_DECLARE_NONSTD(). + * + * @deffunc APU_DECLARE(rettype) apr_func(args); + */ +#define APU_DECLARE(type) type +/** + * The public APR-UTIL functions using variable arguments are declared with + * APU_DECLARE_NONSTD(), as they must use the C language calling convention. + * + * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...); + */ +#define APU_DECLARE_NONSTD(type) type +/** + * The public APR-UTIL variables are declared with APU_DECLARE_DATA. + * This assures the appropriate indirection is invoked at compile time. + * + * @deffunc APU_DECLARE_DATA type apr_variable; + * @tip APU_DECLARE_DATA extern type apr_variable; syntax is required for + * declarations within headers to properly import the variable. + */ +#define APU_DECLARE_DATA +/* + * we always have SDBM (it's in our codebase) + */ +#define APU_HAVE_SDBM 1 +#define APU_HAVE_GDBM 0 +#define APU_HAVE_NDBM 0 +#define APU_HAVE_DB 0 + +#if APU_HAVE_DB +#define APU_HAVE_DB_VERSION 0 +#endif /* APU_HAVE_DB */ + +#define APU_HAVE_APR_ICONV 0 +#define APU_HAVE_ICONV 1 +#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV) + +#endif /* APU_H */ +/** @} */ diff --git a/rubbos/app/apache2/include/apu_compat.h b/rubbos/app/apache2/include/apu_compat.h new file mode 100644 index 00000000..533f4945 --- /dev/null +++ b/rubbos/app/apache2/include/apu_compat.h @@ -0,0 +1,116 @@ +/* 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 + * + * 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. + */ + +/** + * @file apu_compat.h + * @brief APR-UTIL Compabitlity Functions + * @deprecated These functions are only present for historical purposes + */ +#ifndef APU_COMPAT_H +#define APU_COMPAT_H +/** + * @defgroup APR_Util_compat 1.3 Compatibility Functions + * @ingroup APR_Util + * @{ + */ + + +/* Include the apr compatibility changes, since apr-util users are + * always apr users. + */ +#include "apr_compat.h" + +/* -------------------------------------------------------------------- + * redefine 1.3.x symbols to those that now live in libapr-util + */ +/** @deprecated @see apr_base64_decode */ +#define ap_base64decode apr_base64_decode +/** @deprecated @see apr_base64_decode_binary */ +#define ap_base64decode_binary apr_base64_decode_binary +/** @deprecated @see apr_base64_decode_len */ +#define ap_base64decode_len apr_base64_decode_len +/** @deprecated @see apr_base64_encode */ +#define ap_base64encode apr_base64_encode +/** @deprecated @see apr_base64_encode_binary */ +#define ap_base64encode_binary apr_base64_encode_binary +/** @deprecated @see apr_base64_encode_len */ +#define ap_base64encode_len apr_base64_encode_len +/** @deprecated @see apr_hook_deregister_all */ +#define ap_hook_deregister_all apr_hook_deregister_all +/** @deprecated @see apr_hook_sort_register */ +#define ap_hook_sort_register apr_hook_sort_register +/** @deprecated @see apr_hook_debug_show */ +#define ap_show_hook apr_hook_debug_show + +/* -------------------------------------------------------------------- + * the following symbols were moved from httpd-2.0/.../util_date.[ch] + */ +/** @deprecated @see apr_date_parse_http */ +#define ap_parseHTTPdate apr_date_parse_http +/** @deprecated @see apr_date_checkmask */ +#define ap_checkmask apr_date_checkmask + +/* -------------------------------------------------------------------- + * the following symbols were moved from httpd-2.0/.../util_xml.[ch] + */ +/** @deprecated @see apr_text */ +#define ap_text apr_text +/** @deprecated @see apr_text_header */ +#define ap_text_header apr_text_header +/** @deprecated @see apr_text_append */ +#define ap_text_append apr_text_append + +/** @deprecated @see APR_XML_NS_DAV_ID */ +#define AP_XML_NS_DAV_ID APR_XML_NS_DAV_ID +/** @deprecated @see APR_XML_NS_NONE */ +#define AP_XML_NS_NONE APR_XML_NS_NONE +/** @deprecated @see APR_XML_NS_ERROR_BASE */ +#define AP_XML_NS_ERROR_BASE APR_XML_NS_ERROR_BASE +/** @deprecated @see APR_XML_NS_IS_ERROR */ +#define AP_XML_NS_IS_ERROR(e) APR_XML_NS_IS_ERROR(e) +/** @deprecated @see APR_XML_ELEM_IS_EMPTY */ +#define AP_XML_ELEM_IS_EMPTY(e) APR_XML_ELEM_IS_EMPTY(e) + +/** @deprecated @see apr_xml_attr */ +#define ap_xml_attr apr_xml_attr +/** @deprecated @see apr_xml_elem */ +#define ap_xml_elem apr_xml_elem +/** @deprecated @see apr_xml_doc */ +#define ap_xml_doc apr_xml_doc + +/** @deprecated @see apr_xml_to_text */ +#define ap_xml_to_text apr_xml_to_text +/** @deprecated @see APR_XML_X2T_FULL */ +#define AP_XML_X2T_FULL APR_XML_X2T_FULL +/** @deprecated @see APR_XML_X2T_INNER */ +#define AP_XML_X2T_INNER APR_XML_X2T_INNER +/** @deprecated @see APR_XML_X2T_LANG_INNER */ +#define AP_XML_X2T_LANG_INNER APR_XML_X2T_LANG_INNER +/** @deprecated @see APR_XML_X2T_FULL_NS_LANG */ +#define AP_XML_X2T_FULL_NS_LANG APR_XML_X2T_FULL_NS_LANG + +/** @deprecated @see apr_xml_empty_elem */ +#define ap_xml_empty_elem apr_xml_empty_elem +/** @deprecated @see apr_xml_quote_string */ +#define ap_xml_quote_string apr_xml_quote_string +/** @deprecated @see apr_xml_quote_elem */ +#define ap_xml_quote_elem apr_xml_quote_elem +/** @deprecated @see apr_xml_insert_uri */ +#define ap_xml_insert_uri apr_xml_insert_uri +/** @deprecated @see APR_XML_GET_URI_ITEM */ +#define AP_XML_GET_URI_ITEM(a,i) APR_XML_GET_URI_ITEM(a,i) +/** @} */ +#endif /* APU_COMPAT_H */ diff --git a/rubbos/app/apache2/include/apu_version.h b/rubbos/app/apache2/include/apu_version.h new file mode 100644 index 00000000..248e8ef5 --- /dev/null +++ b/rubbos/app/apache2/include/apu_version.h @@ -0,0 +1,105 @@ +/* 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 + * + * 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. + */ + +#ifndef APU_VERSION_H +#define APU_VERSION_H + +#include "apr_version.h" + +#include "apu.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file apu_version.h + * @brief + * + * APR-util's Version + * + * There are several different mechanisms for accessing the version. There + * is a string form, and a set of numbers; in addition, there are constants + * which can be compiled into your application, and you can query the library + * being used for its actual version. + * + * Note that it is possible for an application to detect that it has been + * compiled against a different version of APU by use of the compile-time + * constants and the use of the run-time query function. + * + * APU version numbering follows the guidelines specified in: + * + * http://apr.apache.org/versioning.html + */ + +/* The numeric compile-time version constants. These constants are the + * authoritative version numbers for APU. + */ + +/** major version + * Major API changes that could cause compatibility problems for older + * programs such as structure size changes. No binary compatibility is + * possible across a change in the major version. + */ +#define APU_MAJOR_VERSION 0 + +/** + * Minor API changes that do not cause binary compatibility problems. + * Should be reset to 0 when upgrading APU_MAJOR_VERSION + */ +#define APU_MINOR_VERSION 9 + +/** patch level */ +#define APU_PATCH_VERSION 19 + +/** + * This symbol is defined for internal, "development" copies of APU. This + * symbol will be #undef'd for releases. + */ +/* #define APU_IS_DEV_VERSION */ + + +/** The formatted string of APU's version */ +#define APU_VERSION_STRING \ + APR_STRINGIFY(APU_MAJOR_VERSION) "." \ + APR_STRINGIFY(APU_MINOR_VERSION) "." \ + APR_STRINGIFY(APU_PATCH_VERSION) \ + APU_IS_DEV_STRING + +/** + * Return APR-util's version information information in a numeric form. + * + * @param pvsn Pointer to a version structure for returning the version + * information. + */ +APU_DECLARE(void) apu_version(apr_version_t *pvsn); + +/** Return APU's version information as a string. */ +APU_DECLARE(const char *) apu_version_string(void); + + +/** Internal: string form of the "is dev" flag */ +#ifdef APU_IS_DEV_VERSION +#define APU_IS_DEV_STRING "-dev" +#else +#define APU_IS_DEV_STRING "" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* APU_VERSION_H */ diff --git a/rubbos/app/apache2/include/apu_want.h b/rubbos/app/apache2/include/apu_want.h new file mode 100644 index 00000000..facf6b31 --- /dev/null +++ b/rubbos/app/apache2/include/apu_want.h @@ -0,0 +1,50 @@ +/* Copyright 2000-2004 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 + * + * 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 "apu.h" /* configuration data */ + +/** + * @file apu_want.h + * @brief APR Standard Headers Support + * + *
+ * Features:
+ *
+ *   APU_WANT_DB:       
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * 
+ */ + +/* --------------------------------------------------------------------- */ + +#ifdef APU_WANT_DB + +#if APU_HAVE_DB +#include +#endif + +#undef APU_WANT_DB +#endif + +/* --------------------------------------------------------------------- */ diff --git a/rubbos/app/apache2/include/expat.h b/rubbos/app/apache2/include/expat.h new file mode 100644 index 00000000..f3130d45 --- /dev/null +++ b/rubbos/app/apache2/include/expat.h @@ -0,0 +1,1001 @@ +/* Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd + See the file COPYING for copying permission. +*/ + +#ifndef XmlParse_INCLUDED +#define XmlParse_INCLUDED 1 + +#ifdef __VMS +/* 0 1 2 3 0 1 2 3 + 1234567890123456789012345678901 1234567890123456789012345678901 */ +#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler +#define XML_SetUnparsedEntityDeclHandler XML_SetUnparsedEntDeclHandler +#define XML_SetStartNamespaceDeclHandler XML_SetStartNamespcDeclHandler +#define XML_SetExternalEntityRefHandlerArg XML_SetExternalEntRefHandlerArg +#endif + +#include + +#if defined(_MSC_EXTENSIONS) && !defined(__BEOS__) && !defined(__CYGWIN__) +#define XML_USE_MSC_EXTENSIONS 1 +#endif + +/* Expat tries very hard to make the API boundary very specifically + defined. There are two macros defined to control this boundary; + each of these can be defined before including this header to + achieve some different behavior, but doing so it not recommended or + tested frequently. + + XMLCALL - The calling convention to use for all calls across the + "library boundary." This will default to cdecl, and + try really hard to tell the compiler that's what we + want. + + XMLIMPORT - Whatever magic is needed to note that a function is + to be imported from a dynamically loaded library + (.dll, .so, or .sl, depending on your platform). + + The XMLCALL macro was added in Expat 1.95.7. The only one which is + expected to be directly useful in client code is XMLCALL. + + Note that on at least some Unix versions, the Expat library must be + compiled with the cdecl calling convention as the default since + system headers may assume the cdecl convention. +*/ +#ifndef XMLCALL +#if defined(XML_USE_MSC_EXTENSIONS) +#define XMLCALL __cdecl +#elif defined(__GNUC__) && defined(__i386) +#define XMLCALL __attribute__((cdecl)) +#else +/* For any platform which uses this definition and supports more than + one calling convention, we need to extend this definition to + declare the convention used on that platform, if it's possible to + do so. + + If this is the case for your platform, please file a bug report + with information on how to identify your platform via the C + pre-processor and how to specify the same calling convention as the + platform's malloc() implementation. +*/ +#define XMLCALL +#endif +#endif /* not defined XMLCALL */ + + +#if !defined(XML_STATIC) && !defined(XMLIMPORT) +#ifndef XML_BUILDING_EXPAT +/* using Expat from an application */ + +#ifdef XML_USE_MSC_EXTENSIONS +#define XMLIMPORT __declspec(dllimport) +#endif + +#endif +#endif /* not defined XML_STATIC */ + +/* If we didn't define it above, define it away: */ +#ifndef XMLIMPORT +#define XMLIMPORT +#endif + + +#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef XML_UNICODE_WCHAR_T +#define XML_UNICODE +#endif + +struct XML_ParserStruct; +typedef struct XML_ParserStruct *XML_Parser; + +#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ +#ifdef XML_UNICODE_WCHAR_T +typedef wchar_t XML_Char; +typedef wchar_t XML_LChar; +#else +typedef unsigned short XML_Char; +typedef char XML_LChar; +#endif /* XML_UNICODE_WCHAR_T */ +#else /* Information is UTF-8 encoded. */ +typedef char XML_Char; +typedef char XML_LChar; +#endif /* XML_UNICODE */ + +/* Should this be defined using stdbool.h when C99 is available? */ +typedef unsigned char XML_Bool; +#define XML_TRUE ((XML_Bool) 1) +#define XML_FALSE ((XML_Bool) 0) + +/* The XML_Status enum gives the possible return values for several + API functions. The preprocessor #defines are included so this + stanza can be added to code that still needs to support older + versions of Expat 1.95.x: + + #ifndef XML_STATUS_OK + #define XML_STATUS_OK 1 + #define XML_STATUS_ERROR 0 + #endif + + Otherwise, the #define hackery is quite ugly and would have been + dropped. +*/ +enum XML_Status { + XML_STATUS_ERROR = 0, +#define XML_STATUS_ERROR XML_STATUS_ERROR + XML_STATUS_OK = 1 +#define XML_STATUS_OK XML_STATUS_OK +}; + +enum XML_Error { + XML_ERROR_NONE, + XML_ERROR_NO_MEMORY, + XML_ERROR_SYNTAX, + XML_ERROR_NO_ELEMENTS, + XML_ERROR_INVALID_TOKEN, + XML_ERROR_UNCLOSED_TOKEN, + XML_ERROR_PARTIAL_CHAR, + XML_ERROR_TAG_MISMATCH, + XML_ERROR_DUPLICATE_ATTRIBUTE, + XML_ERROR_JUNK_AFTER_DOC_ELEMENT, + XML_ERROR_PARAM_ENTITY_REF, + XML_ERROR_UNDEFINED_ENTITY, + XML_ERROR_RECURSIVE_ENTITY_REF, + XML_ERROR_ASYNC_ENTITY, + XML_ERROR_BAD_CHAR_REF, + XML_ERROR_BINARY_ENTITY_REF, + XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, + XML_ERROR_MISPLACED_XML_PI, + XML_ERROR_UNKNOWN_ENCODING, + XML_ERROR_INCORRECT_ENCODING, + XML_ERROR_UNCLOSED_CDATA_SECTION, + XML_ERROR_EXTERNAL_ENTITY_HANDLING, + XML_ERROR_NOT_STANDALONE, + XML_ERROR_UNEXPECTED_STATE, + XML_ERROR_ENTITY_DECLARED_IN_PE, + XML_ERROR_FEATURE_REQUIRES_XML_DTD, + XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING, + XML_ERROR_UNBOUND_PREFIX +}; + +enum XML_Content_Type { + XML_CTYPE_EMPTY = 1, + XML_CTYPE_ANY, + XML_CTYPE_MIXED, + XML_CTYPE_NAME, + XML_CTYPE_CHOICE, + XML_CTYPE_SEQ +}; + +enum XML_Content_Quant { + XML_CQUANT_NONE, + XML_CQUANT_OPT, + XML_CQUANT_REP, + XML_CQUANT_PLUS +}; + +/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be + XML_CQUANT_NONE, and the other fields will be zero or NULL. + If type == XML_CTYPE_MIXED, then quant will be NONE or REP and + numchildren will contain number of elements that may be mixed in + and children point to an array of XML_Content cells that will be + all of XML_CTYPE_NAME type with no quantification. + + If type == XML_CTYPE_NAME, then the name points to the name, and + the numchildren field will be zero and children will be NULL. The + quant fields indicates any quantifiers placed on the name. + + CHOICE and SEQ will have name NULL, the number of children in + numchildren and children will point, recursively, to an array + of XML_Content cells. + + The EMPTY, ANY, and MIXED types will only occur at top level. +*/ + +typedef struct XML_cp XML_Content; + +struct XML_cp { + enum XML_Content_Type type; + enum XML_Content_Quant quant; + XML_Char * name; + unsigned int numchildren; + XML_Content * children; +}; + + +/* This is called for an element declaration. See above for + description of the model argument. It's the caller's responsibility + to free model when finished with it. +*/ +typedef void (XMLCALL *XML_ElementDeclHandler) (void *userData, + const XML_Char *name, + XML_Content *model); + +XMLPARSEAPI(void) +XML_SetElementDeclHandler(XML_Parser parser, + XML_ElementDeclHandler eldecl); + +/* The Attlist declaration handler is called for *each* attribute. So + a single Attlist declaration with multiple attributes declared will + generate multiple calls to this handler. The "default" parameter + may be NULL in the case of the "#IMPLIED" or "#REQUIRED" + keyword. The "isrequired" parameter will be true and the default + value will be NULL in the case of "#REQUIRED". If "isrequired" is + true and default is non-NULL, then this is a "#FIXED" default. +*/ +typedef void (XMLCALL *XML_AttlistDeclHandler) ( + void *userData, + const XML_Char *elname, + const XML_Char *attname, + const XML_Char *att_type, + const XML_Char *dflt, + int isrequired); + +XMLPARSEAPI(void) +XML_SetAttlistDeclHandler(XML_Parser parser, + XML_AttlistDeclHandler attdecl); + +/* The XML declaration handler is called for *both* XML declarations + and text declarations. The way to distinguish is that the version + parameter will be NULL for text declarations. The encoding + parameter may be NULL for XML declarations. The standalone + parameter will be -1, 0, or 1 indicating respectively that there + was no standalone parameter in the declaration, that it was given + as no, or that it was given as yes. +*/ +typedef void (XMLCALL *XML_XmlDeclHandler) (void *userData, + const XML_Char *version, + const XML_Char *encoding, + int standalone); + +XMLPARSEAPI(void) +XML_SetXmlDeclHandler(XML_Parser parser, + XML_XmlDeclHandler xmldecl); + + +typedef struct { + void *(XMLCALL *malloc_fcn)(size_t size); + void *(XMLCALL *realloc_fcn)(void *ptr, size_t size); + void (XMLCALL *free_fcn)(void *ptr); +} XML_Memory_Handling_Suite; + +/* Constructs a new parser; encoding is the encoding specified by the + external protocol or NULL if there is none specified. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreate(const XML_Char *encoding); + +/* Constructs a new parser and namespace processor. Element type + names and attribute names that belong to a namespace will be + expanded; unprefixed attribute names are never expanded; unprefixed + element type names are expanded only if there is a default + namespace. The expanded name is the concatenation of the namespace + URI, the namespace separator character, and the local part of the + name. If the namespace separator is '\0' then the namespace URI + and the local part will be concatenated without any separator. + When a namespace is not declared, the name and prefix will be + passed through without expansion. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); + + +/* Constructs a new parser using the memory management suite referred to + by memsuite. If memsuite is NULL, then use the standard library memory + suite. If namespaceSeparator is non-NULL it creates a parser with + namespace processing as described above. The character pointed at + will serve as the namespace separator. + + All further memory operations used for the created parser will come from + the given suite. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreate_MM(const XML_Char *encoding, + const XML_Memory_Handling_Suite *memsuite, + const XML_Char *namespaceSeparator); + +/* Prepare a parser object to be re-used. This is particularly + valuable when memory allocation overhead is disproportionatly high, + such as when a large number of small documnents need to be parsed. + All handlers are cleared from the parser, except for the + unknownEncodingHandler. The parser's external state is re-initialized + except for the values of ns and ns_triplets. + + Added in Expat 1.95.3. +*/ +XMLPARSEAPI(XML_Bool) +XML_ParserReset(XML_Parser parser, const XML_Char *encoding); + +/* atts is array of name/value pairs, terminated by 0; + names and values are 0 terminated. +*/ +typedef void (XMLCALL *XML_StartElementHandler) (void *userData, + const XML_Char *name, + const XML_Char **atts); + +typedef void (XMLCALL *XML_EndElementHandler) (void *userData, + const XML_Char *name); + + +/* s is not 0 terminated. */ +typedef void (XMLCALL *XML_CharacterDataHandler) (void *userData, + const XML_Char *s, + int len); + +/* target and data are 0 terminated */ +typedef void (XMLCALL *XML_ProcessingInstructionHandler) ( + void *userData, + const XML_Char *target, + const XML_Char *data); + +/* data is 0 terminated */ +typedef void (XMLCALL *XML_CommentHandler) (void *userData, + const XML_Char *data); + +typedef void (XMLCALL *XML_StartCdataSectionHandler) (void *userData); +typedef void (XMLCALL *XML_EndCdataSectionHandler) (void *userData); + +/* This is called for any characters in the XML document for which + there is no applicable handler. This includes both characters that + are part of markup which is of a kind that is not reported + (comments, markup declarations), or characters that are part of a + construct which could be reported but for which no handler has been + supplied. The characters are passed exactly as they were in the XML + document except that they will be encoded in UTF-8 or UTF-16. + Line boundaries are not normalized. Note that a byte order mark + character is not passed to the default handler. There are no + guarantees about how characters are divided between calls to the + default handler: for example, a comment might be split between + multiple calls. +*/ +typedef void (XMLCALL *XML_DefaultHandler) (void *userData, + const XML_Char *s, + int len); + +/* This is called for the start of the DOCTYPE declaration, before + any DTD or internal subset is parsed. +*/ +typedef void (XMLCALL *XML_StartDoctypeDeclHandler) ( + void *userData, + const XML_Char *doctypeName, + const XML_Char *sysid, + const XML_Char *pubid, + int has_internal_subset); + +/* This is called for the start of the DOCTYPE declaration when the + closing > is encountered, but after processing any external + subset. +*/ +typedef void (XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); + +/* This is called for entity declarations. The is_parameter_entity + argument will be non-zero if the entity is a parameter entity, zero + otherwise. + + For internal entities (), value will + be non-NULL and systemId, publicID, and notationName will be NULL. + The value string is NOT nul-terminated; the length is provided in + the value_length argument. Since it is legal to have zero-length + values, do not use this argument to test for internal entities. + + For external entities, value will be NULL and systemId will be + non-NULL. The publicId argument will be NULL unless a public + identifier was provided. The notationName argument will have a + non-NULL value only for unparsed entity declarations. + + Note that is_parameter_entity can't be changed to XML_Bool, since + that would break binary compatibility. +*/ +typedef void (XMLCALL *XML_EntityDeclHandler) ( + void *userData, + const XML_Char *entityName, + int is_parameter_entity, + const XML_Char *value, + int value_length, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId, + const XML_Char *notationName); + +XMLPARSEAPI(void) +XML_SetEntityDeclHandler(XML_Parser parser, + XML_EntityDeclHandler handler); + +/* OBSOLETE -- OBSOLETE -- OBSOLETE + This handler has been superceded by the EntityDeclHandler above. + It is provided here for backward compatibility. + + This is called for a declaration of an unparsed (NDATA) entity. + The base argument is whatever was set by XML_SetBase. The + entityName, systemId and notationName arguments will never be + NULL. The other arguments may be. +*/ +typedef void (XMLCALL *XML_UnparsedEntityDeclHandler) ( + void *userData, + const XML_Char *entityName, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId, + const XML_Char *notationName); + +/* This is called for a declaration of notation. The base argument is + whatever was set by XML_SetBase. The notationName will never be + NULL. The other arguments can be. +*/ +typedef void (XMLCALL *XML_NotationDeclHandler) ( + void *userData, + const XML_Char *notationName, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); + +/* When namespace processing is enabled, these are called once for + each namespace declaration. The call to the start and end element + handlers occur between the calls to the start and end namespace + declaration handlers. For an xmlns attribute, prefix will be + NULL. For an xmlns="" attribute, uri will be NULL. +*/ +typedef void (XMLCALL *XML_StartNamespaceDeclHandler) ( + void *userData, + const XML_Char *prefix, + const XML_Char *uri); + +typedef void (XMLCALL *XML_EndNamespaceDeclHandler) ( + void *userData, + const XML_Char *prefix); + +/* This is called if the document is not standalone, that is, it has an + external subset or a reference to a parameter entity, but does not + have standalone="yes". If this handler returns XML_STATUS_ERROR, + then processing will not continue, and the parser will return a + XML_ERROR_NOT_STANDALONE error. + If parameter entity parsing is enabled, then in addition to the + conditions above this handler will only be called if the referenced + entity was actually read. +*/ +typedef int (XMLCALL *XML_NotStandaloneHandler) (void *userData); + +/* This is called for a reference to an external parsed general + entity. The referenced entity is not automatically parsed. The + application can parse it immediately or later using + XML_ExternalEntityParserCreate. + + The parser argument is the parser parsing the entity containing the + reference; it can be passed as the parser argument to + XML_ExternalEntityParserCreate. The systemId argument is the + system identifier as specified in the entity declaration; it will + not be NULL. + + The base argument is the system identifier that should be used as + the base for resolving systemId if systemId was relative; this is + set by XML_SetBase; it may be NULL. + + The publicId argument is the public identifier as specified in the + entity declaration, or NULL if none was specified; the whitespace + in the public identifier will have been normalized as required by + the XML spec. + + The context argument specifies the parsing context in the format + expected by the context argument to XML_ExternalEntityParserCreate; + context is valid only until the handler returns, so if the + referenced entity is to be parsed later, it must be copied. + context is NULL only when the entity is a parameter entity. + + The handler should return XML_STATUS_ERROR if processing should not + continue because of a fatal error in the handling of the external + entity. In this case the calling parser will return an + XML_ERROR_EXTERNAL_ENTITY_HANDLING error. + + Note that unlike other handlers the first argument is the parser, + not userData. +*/ +typedef int (XMLCALL *XML_ExternalEntityRefHandler) ( + XML_Parser parser, + const XML_Char *context, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); + +/* This is called in two situations: + 1) An entity reference is encountered for which no declaration + has been read *and* this is not an error. + 2) An internal entity reference is read, but not expanded, because + XML_SetDefaultHandler has been called. + Note: skipped parameter entities in declarations and skipped general + entities in attribute values cannot be reported, because + the event would be out of sync with the reporting of the + declarations or attribute values +*/ +typedef void (XMLCALL *XML_SkippedEntityHandler) ( + void *userData, + const XML_Char *entityName, + int is_parameter_entity); + +/* This structure is filled in by the XML_UnknownEncodingHandler to + provide information to the parser about encodings that are unknown + to the parser. + + The map[b] member gives information about byte sequences whose + first byte is b. + + If map[b] is c where c is >= 0, then b by itself encodes the + Unicode scalar value c. + + If map[b] is -1, then the byte sequence is malformed. + + If map[b] is -n, where n >= 2, then b is the first byte of an + n-byte sequence that encodes a single Unicode scalar value. + + The data member will be passed as the first argument to the convert + function. + + The convert function is used to convert multibyte sequences; s will + point to a n-byte sequence where map[(unsigned char)*s] == -n. The + convert function must return the Unicode scalar value represented + by this byte sequence or -1 if the byte sequence is malformed. + + The convert function may be NULL if the encoding is a single-byte + encoding, that is if map[b] >= -1 for all bytes b. + + When the parser is finished with the encoding, then if release is + not NULL, it will call release passing it the data member; once + release has been called, the convert function will not be called + again. + + Expat places certain restrictions on the encodings that are supported + using this mechanism. + + 1. Every ASCII character that can appear in a well-formed XML document, + other than the characters + + $@\^`{}~ + + must be represented by a single byte, and that byte must be the + same byte that represents that character in ASCII. + + 2. No character may require more than 4 bytes to encode. + + 3. All characters encoded must have Unicode scalar values <= + 0xFFFF, (i.e., characters that would be encoded by surrogates in + UTF-16 are not allowed). Note that this restriction doesn't + apply to the built-in support for UTF-8 and UTF-16. + + 4. No Unicode character may be encoded by more than one distinct + sequence of bytes. +*/ +typedef struct { + int map[256]; + void *data; + int (XMLCALL *convert)(void *data, const char *s); + void (XMLCALL *release)(void *data); +} XML_Encoding; + +/* This is called for an encoding that is unknown to the parser. + + The encodingHandlerData argument is that which was passed as the + second argument to XML_SetUnknownEncodingHandler. + + The name argument gives the name of the encoding as specified in + the encoding declaration. + + If the callback can provide information about the encoding, it must + fill in the XML_Encoding structure, and return XML_STATUS_OK. + Otherwise it must return XML_STATUS_ERROR. + + If info does not describe a suitable encoding, then the parser will + return an XML_UNKNOWN_ENCODING error. +*/ +typedef int (XMLCALL *XML_UnknownEncodingHandler) ( + void *encodingHandlerData, + const XML_Char *name, + XML_Encoding *info); + +XMLPARSEAPI(void) +XML_SetElementHandler(XML_Parser parser, + XML_StartElementHandler start, + XML_EndElementHandler end); + +XMLPARSEAPI(void) +XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler); + +XMLPARSEAPI(void) +XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler); + +XMLPARSEAPI(void) +XML_SetCharacterDataHandler(XML_Parser parser, + XML_CharacterDataHandler handler); + +XMLPARSEAPI(void) +XML_SetProcessingInstructionHandler(XML_Parser parser, + XML_ProcessingInstructionHandler handler); +XMLPARSEAPI(void) +XML_SetCommentHandler(XML_Parser parser, + XML_CommentHandler handler); + +XMLPARSEAPI(void) +XML_SetCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start, + XML_EndCdataSectionHandler end); + +XMLPARSEAPI(void) +XML_SetStartCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start); + +XMLPARSEAPI(void) +XML_SetEndCdataSectionHandler(XML_Parser parser, + XML_EndCdataSectionHandler end); + +/* This sets the default handler and also inhibits expansion of + internal entities. These entity references will be passed to the + default handler, or to the skipped entity handler, if one is set. +*/ +XMLPARSEAPI(void) +XML_SetDefaultHandler(XML_Parser parser, + XML_DefaultHandler handler); + +/* This sets the default handler but does not inhibit expansion of + internal entities. The entity reference will not be passed to the + default handler. +*/ +XMLPARSEAPI(void) +XML_SetDefaultHandlerExpand(XML_Parser parser, + XML_DefaultHandler handler); + +XMLPARSEAPI(void) +XML_SetDoctypeDeclHandler(XML_Parser parser, + XML_StartDoctypeDeclHandler start, + XML_EndDoctypeDeclHandler end); + +XMLPARSEAPI(void) +XML_SetStartDoctypeDeclHandler(XML_Parser parser, + XML_StartDoctypeDeclHandler start); + +XMLPARSEAPI(void) +XML_SetEndDoctypeDeclHandler(XML_Parser parser, + XML_EndDoctypeDeclHandler end); + +XMLPARSEAPI(void) +XML_SetUnparsedEntityDeclHandler(XML_Parser parser, + XML_UnparsedEntityDeclHandler handler); + +XMLPARSEAPI(void) +XML_SetNotationDeclHandler(XML_Parser parser, + XML_NotationDeclHandler handler); + +XMLPARSEAPI(void) +XML_SetNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start, + XML_EndNamespaceDeclHandler end); + +XMLPARSEAPI(void) +XML_SetStartNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start); + +XMLPARSEAPI(void) +XML_SetEndNamespaceDeclHandler(XML_Parser parser, + XML_EndNamespaceDeclHandler end); + +XMLPARSEAPI(void) +XML_SetNotStandaloneHandler(XML_Parser parser, + XML_NotStandaloneHandler handler); + +XMLPARSEAPI(void) +XML_SetExternalEntityRefHandler(XML_Parser parser, + XML_ExternalEntityRefHandler handler); + +/* If a non-NULL value for arg is specified here, then it will be + passed as the first argument to the external entity ref handler + instead of the parser object. +*/ +XMLPARSEAPI(void) +XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg); + +XMLPARSEAPI(void) +XML_SetSkippedEntityHandler(XML_Parser parser, + XML_SkippedEntityHandler handler); + +XMLPARSEAPI(void) +XML_SetUnknownEncodingHandler(XML_Parser parser, + XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + +/* This can be called within a handler for a start element, end + element, processing instruction or character data. It causes the + corresponding markup to be passed to the default handler. +*/ +XMLPARSEAPI(void) +XML_DefaultCurrent(XML_Parser parser); + +/* If do_nst is non-zero, and namespace processing is in effect, and + a name has a prefix (i.e. an explicit namespace qualifier) then + that name is returned as a triplet in a single string separated by + the separator character specified when the parser was created: URI + + sep + local_name + sep + prefix. + + If do_nst is zero, then namespace information is returned in the + default manner (URI + sep + local_name) whether or not the name + has a prefix. + + Note: Calling XML_SetReturnNSTriplet after XML_Parse or + XML_ParseBuffer has no effect. +*/ + +XMLPARSEAPI(void) +XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); + +/* This value is passed as the userData argument to callbacks. */ +XMLPARSEAPI(void) +XML_SetUserData(XML_Parser parser, void *userData); + +/* Returns the last value set by XML_SetUserData or NULL. */ +#define XML_GetUserData(parser) (*(void **)(parser)) + +/* This is equivalent to supplying an encoding argument to + XML_ParserCreate. On success XML_SetEncoding returns non-zero, + zero otherwise. + Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer + has no effect and returns XML_STATUS_ERROR. +*/ +XMLPARSEAPI(enum XML_Status) +XML_SetEncoding(XML_Parser parser, const XML_Char *encoding); + +/* If this function is called, then the parser will be passed as the + first argument to callbacks instead of userData. The userData will + still be accessible using XML_GetUserData. +*/ +XMLPARSEAPI(void) +XML_UseParserAsHandlerArg(XML_Parser parser); + +/* If useDTD == XML_TRUE is passed to this function, then the parser + will assume that there is an external subset, even if none is + specified in the document. In such a case the parser will call the + externalEntityRefHandler with a value of NULL for the systemId + argument (the publicId and context arguments will be NULL as well). + Note: If this function is called, then this must be done before + the first call to XML_Parse or XML_ParseBuffer, since it will + have no effect after that. Returns + XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. + Note: If the document does not have a DOCTYPE declaration at all, + then startDoctypeDeclHandler and endDoctypeDeclHandler will not + be called, despite an external subset being parsed. + Note: If XML_DTD is not defined when Expat is compiled, returns + XML_ERROR_FEATURE_REQUIRES_XML_DTD. +*/ +XMLPARSEAPI(enum XML_Error) +XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); + + +/* Sets the base to be used for resolving relative URIs in system + identifiers in declarations. Resolving relative identifiers is + left to the application: this value will be passed through as the + base argument to the XML_ExternalEntityRefHandler, + XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base + argument will be copied. Returns XML_STATUS_ERROR if out of memory, + XML_STATUS_OK otherwise. +*/ +XMLPARSEAPI(enum XML_Status) +XML_SetBase(XML_Parser parser, const XML_Char *base); + +XMLPARSEAPI(const XML_Char *) +XML_GetBase(XML_Parser parser); + +/* Returns the number of the attribute/value pairs passed in last call + to the XML_StartElementHandler that were specified in the start-tag + rather than defaulted. Each attribute/value pair counts as 2; thus + this correspondds to an index into the atts array passed to the + XML_StartElementHandler. +*/ +XMLPARSEAPI(int) +XML_GetSpecifiedAttributeCount(XML_Parser parser); + +/* Returns the index of the ID attribute passed in the last call to + XML_StartElementHandler, or -1 if there is no ID attribute. Each + attribute/value pair counts as 2; thus this correspondds to an + index into the atts array passed to the XML_StartElementHandler. +*/ +XMLPARSEAPI(int) +XML_GetIdAttributeIndex(XML_Parser parser); + +/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is + detected. The last call to XML_Parse must have isFinal true; len + may be zero for this call (or any other). + + Though the return values for these functions has always been + described as a Boolean value, the implementation, at least for the + 1.95.x series, has always returned exactly one of the XML_Status + values. +*/ +XMLPARSEAPI(enum XML_Status) +XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); + +XMLPARSEAPI(void *) +XML_GetBuffer(XML_Parser parser, int len); + +XMLPARSEAPI(enum XML_Status) +XML_ParseBuffer(XML_Parser parser, int len, int isFinal); + +/* Creates an XML_Parser object that can parse an external general + entity; context is a '\0'-terminated string specifying the parse + context; encoding is a '\0'-terminated string giving the name of + the externally specified encoding, or NULL if there is no + externally specified encoding. The context string consists of a + sequence of tokens separated by formfeeds (\f); a token consisting + of a name specifies that the general entity of the name is open; a + token of the form prefix=uri specifies the namespace for a + particular prefix; a token of the form =uri specifies the default + namespace. This can be called at any point after the first call to + an ExternalEntityRefHandler so longer as the parser has not yet + been freed. The new parser is completely independent and may + safely be used in a separate thread. The handlers and userData are + initialized from the parser argument. Returns NULL if out of memory. + Otherwise returns a new XML_Parser object. +*/ +XMLPARSEAPI(XML_Parser) +XML_ExternalEntityParserCreate(XML_Parser parser, + const XML_Char *context, + const XML_Char *encoding); + +enum XML_ParamEntityParsing { + XML_PARAM_ENTITY_PARSING_NEVER, + XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, + XML_PARAM_ENTITY_PARSING_ALWAYS +}; + +/* Controls parsing of parameter entities (including the external DTD + subset). If parsing of parameter entities is enabled, then + references to external parameter entities (including the external + DTD subset) will be passed to the handler set with + XML_SetExternalEntityRefHandler. The context passed will be 0. + + Unlike external general entities, external parameter entities can + only be parsed synchronously. If the external parameter entity is + to be parsed, it must be parsed during the call to the external + entity ref handler: the complete sequence of + XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and + XML_ParserFree calls must be made during this call. After + XML_ExternalEntityParserCreate has been called to create the parser + for the external parameter entity (context must be 0 for this + call), it is illegal to make any calls on the old parser until + XML_ParserFree has been called on the newly created parser. + If the library has been compiled without support for parameter + entity parsing (ie without XML_DTD being defined), then + XML_SetParamEntityParsing will return 0 if parsing of parameter + entities is requested; otherwise it will return non-zero. + Note: If XML_SetParamEntityParsing is called after XML_Parse or + XML_ParseBuffer, then it has no effect and will always return 0. +*/ +XMLPARSEAPI(int) +XML_SetParamEntityParsing(XML_Parser parser, + enum XML_ParamEntityParsing parsing); + +/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then + XML_GetErrorCode returns information about the error. +*/ +XMLPARSEAPI(enum XML_Error) +XML_GetErrorCode(XML_Parser parser); + +/* These functions return information about the current parse + location. They may be called from any callback called to report + some parse event; in this case the location is the location of the + first of the sequence of characters that generated the event. When + called from callbacks generated by declarations in the document + prologue, the location identified isn't as neatly defined, but will + be within the relevant markup. When called outside of the callback + functions, the position indicated will be just past the last parse + event (regardless of whether there was an associated callback). + + They may also be called after returning from a call to XML_Parse + or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then + the location is the location of the character at which the error + was detected; otherwise the location is the location of the last + parse event, as described above. +*/ +XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser); +XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser); +XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser); + +/* Return the number of bytes in the current event. + Returns 0 if the event is in an internal entity. +*/ +XMLPARSEAPI(int) +XML_GetCurrentByteCount(XML_Parser parser); + +/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets + the integer pointed to by offset to the offset within this buffer + of the current parse position, and sets the integer pointed to by size + to the size of this buffer (the number of input bytes). Otherwise + returns a NULL pointer. Also returns a NULL pointer if a parse isn't + active. + + NOTE: The character pointer returned should not be used outside + the handler that makes the call. +*/ +XMLPARSEAPI(const char *) +XML_GetInputContext(XML_Parser parser, + int *offset, + int *size); + +/* For backwards compatibility with previous versions. */ +#define XML_GetErrorLineNumber XML_GetCurrentLineNumber +#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber +#define XML_GetErrorByteIndex XML_GetCurrentByteIndex + +/* Frees the content model passed to the element declaration handler */ +XMLPARSEAPI(void) +XML_FreeContentModel(XML_Parser parser, XML_Content *model); + +/* Exposing the memory handling functions used in Expat */ +XMLPARSEAPI(void *) +XML_MemMalloc(XML_Parser parser, size_t size); + +XMLPARSEAPI(void *) +XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); + +XMLPARSEAPI(void) +XML_MemFree(XML_Parser parser, void *ptr); + +/* Frees memory used by the parser. */ +XMLPARSEAPI(void) +XML_ParserFree(XML_Parser parser); + +/* Returns a string describing the error. */ +XMLPARSEAPI(const XML_LChar *) +XML_ErrorString(enum XML_Error code); + +/* Return a string containing the version number of this expat */ +XMLPARSEAPI(const XML_LChar *) +XML_ExpatVersion(void); + +typedef struct { + int major; + int minor; + int micro; +} XML_Expat_Version; + +/* Return an XML_Expat_Version structure containing numeric version + number information for this version of expat. +*/ +XMLPARSEAPI(XML_Expat_Version) +XML_ExpatVersionInfo(void); + +/* Added in Expat 1.95.5. */ +enum XML_FeatureEnum { + XML_FEATURE_END = 0, + XML_FEATURE_UNICODE, + XML_FEATURE_UNICODE_WCHAR_T, + XML_FEATURE_DTD, + XML_FEATURE_CONTEXT_BYTES, + XML_FEATURE_MIN_SIZE, + XML_FEATURE_SIZEOF_XML_CHAR, + XML_FEATURE_SIZEOF_XML_LCHAR + /* Additional features must be added to the end of this enum. */ +}; + +typedef struct { + enum XML_FeatureEnum feature; + const XML_LChar *name; + long int value; +} XML_Feature; + +XMLPARSEAPI(const XML_Feature *) +XML_GetFeatureList(void); + + +/* Expat follows the GNU/Linux convention of odd number minor version for + beta/development releases and even number minor version for stable + releases. Micro is bumped with each release, and set to 0 with each + change to major or minor version. +*/ +#define XML_MAJOR_VERSION 1 +#define XML_MINOR_VERSION 95 +#define XML_MICRO_VERSION 7 + +#ifdef __cplusplus +} +#endif + +#endif /* not XmlParse_INCLUDED */ diff --git a/rubbos/app/apache2/include/fdqueue.h b/rubbos/app/apache2/include/fdqueue.h new file mode 100644 index 00000000..6dd55e03 --- /dev/null +++ b/rubbos/app/apache2/include/fdqueue.h @@ -0,0 +1,64 @@ +/* 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. + */ + +#ifndef FDQUEUE_H +#define FDQUEUE_H +#include "httpd.h" +#include +#if APR_HAVE_UNISTD_H +#include +#endif +#include +#include +#include +#if APR_HAVE_SYS_SOCKET_H +#include +#endif +#include + +typedef struct fd_queue_info_t fd_queue_info_t; + +apr_status_t ap_queue_info_create(fd_queue_info_t **queue_info, + apr_pool_t *pool, int max_idlers); +apr_status_t ap_queue_info_set_idle(fd_queue_info_t *queue_info, + apr_pool_t *pool_to_recycle); +apr_status_t ap_queue_info_wait_for_idler(fd_queue_info_t *queue_info, + apr_pool_t **recycled_pool); +apr_status_t ap_queue_info_term(fd_queue_info_t *queue_info); + +struct fd_queue_elem_t { + apr_socket_t *sd; + apr_pool_t *p; +}; +typedef struct fd_queue_elem_t fd_queue_elem_t; + +struct fd_queue_t { + fd_queue_elem_t *data; + int nelts; + int bounds; + apr_thread_mutex_t *one_big_mutex; + apr_thread_cond_t *not_empty; + int terminated; +}; +typedef struct fd_queue_t fd_queue_t; + +apr_status_t ap_queue_init(fd_queue_t *queue, int queue_capacity, apr_pool_t *a); +apr_status_t ap_queue_push(fd_queue_t *queue, apr_socket_t *sd, apr_pool_t *p); +apr_status_t ap_queue_pop(fd_queue_t *queue, apr_socket_t **sd, apr_pool_t **p); +apr_status_t ap_queue_interrupt_all(fd_queue_t *queue); +apr_status_t ap_queue_term(fd_queue_t *queue); + +#endif /* FDQUEUE_H */ diff --git a/rubbos/app/apache2/include/http_config.h b/rubbos/app/apache2/include/http_config.h new file mode 100644 index 00000000..783e44b4 --- /dev/null +++ b/rubbos/app/apache2/include/http_config.h @@ -0,0 +1,1018 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_CONFIG_H +#define APACHE_HTTP_CONFIG_H + +#include "apr_hooks.h" +#include "util_cfgtree.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file http_config.h + * @brief Apache Configuration + */ + +/* + * The central data structures around here... + */ + +/* Command dispatch structures... */ + +/** + * How the directives arguments should be parsed. + * @remark Note that for all of these except RAW_ARGS, the config routine is + * passed a freshly allocated string which can be modified or stored + * or whatever... + */ +enum cmd_how { + RAW_ARGS, /**< cmd_func parses command line itself */ + TAKE1, /**< one argument only */ + TAKE2, /**< two arguments only */ + ITERATE, /**< one argument, occuring multiple times + * (e.g., IndexIgnore) + */ + ITERATE2, /**< two arguments, 2nd occurs multiple times + * (e.g., AddIcon) + */ + FLAG, /**< One of 'On' or 'Off' */ + NO_ARGS, /**< No args at all, e.g. */ + TAKE12, /**< one or two arguments */ + TAKE3, /**< three arguments only */ + TAKE23, /**< two or three arguments */ + TAKE123, /**< one, two or three arguments */ + TAKE13 /**< one or three arguments */ +}; +/** + * This structure is passed to a command which is being invoked, + * to carry a large variety of miscellaneous data which is all of + * use to *somebody*... + */ +typedef struct cmd_parms_struct cmd_parms; + +#if defined(AP_HAVE_DESIGNATED_INITIALIZER) || defined(DOXYGEN) + +/** + * All the types of functions that can be used in directives + * @internal + */ +typedef union { + /** function to call for a no-args */ + const char *(*no_args) (cmd_parms *parms, void *mconfig); + /** function to call for a raw-args */ + const char *(*raw_args) (cmd_parms *parms, void *mconfig, + const char *args); + /** function to call for a take1 */ + const char *(*take1) (cmd_parms *parms, void *mconfig, const char *w); + /** function to call for a take2 */ + const char *(*take2) (cmd_parms *parms, void *mconfig, const char *w, + const char *w2); + /** function to call for a take3 */ + const char *(*take3) (cmd_parms *parms, void *mconfig, const char *w, + const char *w2, const char *w3); + /** function to call for a flag */ + const char *(*flag) (cmd_parms *parms, void *mconfig, int on); +} cmd_func; + +/** This configuration directive does not take any arguments */ +# define AP_NO_ARGS func.no_args +/** This configuration directive will handle it's own parsing of arguments*/ +# define AP_RAW_ARGS func.raw_args +/** This configuration directive takes 1 argument*/ +# define AP_TAKE1 func.take1 +/** This configuration directive takes 2 arguments */ +# define AP_TAKE2 func.take2 +/** This configuration directive takes 3 arguments */ +# define AP_TAKE3 func.take3 +/** This configuration directive takes a flag (on/off) as a argument*/ +# define AP_FLAG func.flag + +/** method of declaring a directive with no arguments */ +# define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ + { directive, { .no_args=func }, mconfig, where, RAW_ARGS, help } +/** method of declaring a directive with raw argument parsing */ +# define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ + { directive, { .raw_args=func }, mconfig, where, RAW_ARGS, help } +/** method of declaring a directive which takes 1 argument */ +# define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ + { directive, { .take1=func }, mconfig, where, TAKE1, help } +/** method of declaring a directive which takes multiple arguments */ +# define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ + { directive, { .take1=func }, mconfig, where, ITERATE, help } +/** method of declaring a directive which takes 2 arguments */ +# define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ + { directive, { .take2=func }, mconfig, where, TAKE2, help } +/** method of declaring a directive which takes 1 or 2 arguments */ +# define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ + { directive, { .take2=func }, mconfig, where, TAKE12, help } +/** method of declaring a directive which takes multiple 2 arguments */ +# define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ + { directive, { .take2=func }, mconfig, where, ITERATE2, help } +/** method of declaring a directive which takes 1 or 3 arguments */ +# define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ + { directive, { .take3=func }, mconfig, where, TAKE13, help } +/** method of declaring a directive which takes 2 or 3 arguments */ +# define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ + { directive, { .take3=func }, mconfig, where, TAKE23, help } +/** method of declaring a directive which takes 1 to 3 arguments */ +# define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ + { directive, { .take3=func }, mconfig, where, TAKE123, help } +/** method of declaring a directive which takes 3 arguments */ +# define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ + { directive, { .take3=func }, mconfig, where, TAKE3, help } +/** method of declaring a directive which takes a flag (on/off) as a argument*/ +# define AP_INIT_FLAG(directive, func, mconfig, where, help) \ + { directive, { .flag=func }, mconfig, where, FLAG, help } + +#else /* AP_HAVE_DESIGNATED_INITIALIZER */ + +typedef const char *(*cmd_func) (); + +# define AP_NO_ARGS func +# define AP_RAW_ARGS func +# define AP_TAKE1 func +# define AP_TAKE2 func +# define AP_TAKE3 func +# define AP_FLAG func + +# define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, RAW_ARGS, help } +# define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, RAW_ARGS, help } +# define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE1, help } +# define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, ITERATE, help } +# define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE2, help } +# define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE12, help } +# define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, ITERATE2, help } +# define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE13, help } +# define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE23, help } +# define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE123, help } +# define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, TAKE3, help } +# define AP_INIT_FLAG(directive, func, mconfig, where, help) \ + { directive, func, mconfig, where, FLAG, help } + +#endif /* AP_HAVE_DESIGNATED_INITIALIZER */ + +/** + * The command record structure. Each modules can define a table of these + * to define the directives it will implement. + */ +typedef struct command_struct command_rec; +struct command_struct { + /** Name of this command */ + const char *name; + /** The function to be called when this directive is parsed */ + cmd_func func; + /** Extra data, for functions which implement multiple commands... */ + void *cmd_data; + /** What overrides need to be allowed to enable this command. */ + int req_override; + /** What the command expects as arguments + * @defvar cmd_how args_how*/ + enum cmd_how args_how; + + /** 'usage' message, in case of syntax errors */ + const char *errmsg; +}; + +/** + * @defgroup ConfigDirectives Allowed locations for configuration directives. + * + * The allowed locations for a configuration directive are the union of + * those indicated by each set bit in the req_override mask. + * + * @{ + */ +#define OR_NONE 0 /**< *.conf is not available anywhere in this override */ +#define OR_LIMIT 1 /**< *.conf inside or + and .htaccess when AllowOverride Limit */ +#define OR_OPTIONS 2 /**< *.conf anywhere + and .htaccess when AllowOverride Options */ +#define OR_FILEINFO 4 /**< *.conf anywhere + and .htaccess when AllowOverride FileInfo */ +#define OR_AUTHCFG 8 /**< *.conf inside or + and .htaccess when AllowOverride AuthConfig */ +#define OR_INDEXES 16 /**< *.conf anywhere + and .htaccess when AllowOverride Indexes */ +#define OR_UNSET 32 /**< unset a directive (in Allow) */ +#define ACCESS_CONF 64 /**< *.conf inside or */ +#define RSRC_CONF 128 /**< *.conf outside or */ +#define EXEC_ON_READ 256 /**< force directive to execute a command + which would modify the configuration (like including another + file, or IFModule */ +/** this directive can be placed anywhere */ +#define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES) + +/** @} */ + +/** + * This can be returned by a function if they don't wish to handle + * a command. Make it something not likely someone will actually use + * as an error code. + */ +#define DECLINE_CMD "\a\b" + +/** Common structure for reading of config files / passwd files etc. */ +typedef struct ap_configfile_t ap_configfile_t; +struct ap_configfile_t { + int (*getch) (void *param); /**< a getc()-like function */ + void *(*getstr) (void *buf, size_t bufsiz, void *param); + /**< a fgets()-like function */ + int (*close) (void *param); /**< a close handler function */ + void *param; /**< the argument passed to getch/getstr/close */ + const char *name; /**< the filename / description */ + unsigned line_number; /**< current line number, starting at 1 */ +}; + +/** + * This structure is passed to a command which is being invoked, + * to carry a large variety of miscellaneous data which is all of + * use to *somebody*... + */ +struct cmd_parms_struct { + /** Argument to command from cmd_table */ + void *info; + /** Which allow-override bits are set */ + int override; + /** Which methods are ed */ + apr_int64_t limited; + /** methods which are limited */ + apr_array_header_t *limited_xmethods; + /** methods which are xlimited */ + ap_method_list_t *xlimited; + + /** Config file structure. */ + ap_configfile_t *config_file; + /** the directive specifying this command */ + ap_directive_t *directive; + + /** Pool to allocate new storage in */ + apr_pool_t *pool; + /** Pool for scratch memory; persists during configuration, but + * wiped before the first request is served... */ + apr_pool_t *temp_pool; + /** Server_rec being configured for */ + server_rec *server; + /** If configuring for a directory, pathname of that directory. + * NOPE! That's what it meant previous to the existance of , + * and regex matching. Now the only usefulness that can be + * derived from this field is whether a command is being called in a + * server context (path == NULL) or being called in a dir context + * (path != NULL). */ + char *path; + /** configuration command */ + const command_rec *cmd; + + /** per_dir_config vector passed to handle_command */ + struct ap_conf_vector_t *context; + /** directive with syntax error */ + const ap_directive_t *err_directive; +}; + +/** + * Module structures. Just about everything is dispatched through + * these, directly or indirectly (through the command and handler + * tables). + */ +typedef struct module_struct module; +struct module_struct { + /** API version, *not* module version; check that module is + * compatible with this version of the server. + */ + int version; + /** API minor version. Provides API feature milestones. Not checked + * during module init */ + int minor_version; + /** Index to this modules structures in config vectors. */ + int module_index; + + /** The name of the module's C file */ + const char *name; + /** The handle for the DSO. Internal use only */ + void *dynamic_load_handle; + + /** A pointer to the next module in the list + * @defvar module_struct *next */ + struct module_struct *next; + + /** Magic Cookie to identify a module structure; It's mainly + * important for the DSO facility (see also mod_so). */ + unsigned long magic; + + /** Function to allow MPMs to re-write command line arguments. This + * hook is only available to MPMs. + * @param The process that the server is running in. + */ + void (*rewrite_args) (process_rec *process); + /** Function to allow all modules to create per directory configuration + * structures. + * @param p The pool to use for all allocations. + * @param dir The directory currently being processed. + * @return The per-directory structure created + */ + void *(*create_dir_config) (apr_pool_t *p, char *dir); + /** Function to allow all modules to merge the per directory configuration + * structures for two directories. + * @param p The pool to use for all allocations. + * @param base_conf The directory structure created for the parent directory. + * @param new_conf The directory structure currently being processed. + * @return The new per-directory structure created + */ + void *(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf); + /** Function to allow all modules to create per server configuration + * structures. + * @param p The pool to use for all allocations. + * @param s The server currently being processed. + * @return The per-server structure created + */ + void *(*create_server_config) (apr_pool_t *p, server_rec *s); + /** Function to allow all modules to merge the per server configuration + * structures for two servers. + * @param p The pool to use for all allocations. + * @param base_conf The directory structure created for the parent directory. + * @param new_conf The directory structure currently being processed. + * @return The new per-directory structure created + */ + void *(*merge_server_config) (apr_pool_t *p, void *base_conf, + void *new_conf); + + /** A command_rec table that describes all of the directives this module + * defines. */ + const command_rec *cmds; + + /** A hook to allow modules to hook other points in the request processing. + * In this function, modules should call the ap_hook_*() functions to + * register an interest in a specific step in processing the current + * request. + * @param p the pool to use for all allocations + */ + void (*register_hooks) (apr_pool_t *p); +}; + +/** + * @defgroup ModuleInit Module structure initializers + * + * Initializer for the first few module slots, which are only + * really set up once we start running. Note that the first two slots + * provide a version check; this should allow us to deal with changes to + * the API. The major number should reflect changes to the API handler table + * itself or removal of functionality. The minor number should reflect + * additions of functionality to the existing API. (the server can detect + * an old-format module, and either handle it back-compatibly, or at least + * signal an error). See src/include/ap_mmn.h for MMN version history. + * @{ + */ + +/** The one used in Apache 1.3, which will deliberately cause an error */ +#define STANDARD_MODULE_STUFF this_module_needs_to_be_ported_to_apache_2_0 + +/** Use this in all standard modules */ +#define STANDARD20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ + MODULE_MAGIC_NUMBER_MINOR, \ + -1, \ + __FILE__, \ + NULL, \ + NULL, \ + MODULE_MAGIC_COOKIE, \ + NULL /* rewrite args spot */ + +/** Use this only in MPMs */ +#define MPM20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ + MODULE_MAGIC_NUMBER_MINOR, \ + -1, \ + __FILE__, \ + NULL, \ + NULL, \ + MODULE_MAGIC_COOKIE + +/** @} */ + +/* CONFIGURATION VECTOR FUNCTIONS */ + +/** configuration vector structure */ +typedef struct ap_conf_vector_t ap_conf_vector_t; + +/** + * Generic accessors for other modules to get at their own module-specific + * data + * @param conf_vector The vector in which the modules configuration is stored. + * usually r->per_dir_config or s->module_config + * @param m The module to get the data for. + * @return The module-specific data + */ +AP_DECLARE(void *) ap_get_module_config(const ap_conf_vector_t *cv, + const module *m); + +/** + * Generic accessors for other modules to set at their own module-specific + * data + * @param conf_vector The vector in which the modules configuration is stored. + * usually r->per_dir_config or s->module_config + * @param m The module to set the data for. + * @param val The module-specific data to set + */ +AP_DECLARE(void) ap_set_module_config(ap_conf_vector_t *cv, const module *m, + void *val); + +#if !defined(AP_DEBUG) + +#define ap_get_module_config(v,m) \ + (((void **)(v))[(m)->module_index]) +#define ap_set_module_config(v,m,val) \ + ((((void **)(v))[(m)->module_index]) = (val)) + +#endif /* AP_DEBUG */ + + +/** + * Generic command handling function for strings + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_string_slot(cmd_parms *cmd, + void *struct_ptr, + const char *arg); + +/** + * Generic command handling function for integers + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd, + void *struct_ptr, + const char *arg); + +/** + * Return true if the specified method is limited by being listed in + * a container, or by *not* being listed in a + * container. + * + * @param method Pointer to a string specifying the method to check. + * @param cmd Pointer to the cmd_parms structure passed to the + * directive handler. + * @return 0 if the method is not limited in the current scope + */ +AP_DECLARE(int) ap_method_is_limited(cmd_parms *cmd, const char *method); + +/** + * Generic command handling function for strings, always sets the value + * to a lowercase string + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd, + void *struct_ptr, + const char *arg); +/** + * Generic command handling function for flags + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive (either 1 or 0) + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, + void *struct_ptr, + int arg); +/** + * Generic command handling function for files + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive + * @return An error string or NULL on success + */ +AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd, + void *struct_ptr, + const char *arg); +/** + * Generic command handling function to respond with cmd->help as an error + * @param cmd The command parameters for this directive + * @param struct_ptr pointer into a given type + * @param arg The argument to the directive + * @return The cmd->help value as the error string + * @tip This allows simple declarations such as; + *
+ *     AP_INIT_RAW_ARGS("Foo", ap_set_deprecated, NULL, OR_ALL, 
+ *         "The Foo directive is no longer supported, use Bar"),
+ * 
+ */ +AP_DECLARE_NONSTD(const char *) ap_set_deprecated(cmd_parms *cmd, + void *struct_ptr, + const char *arg); +/** + * For modules which need to read config files, open logs, etc. this returns + * the canonical form of fname made absolute to ap_server_root. + * @param p pool to allocate data from + * @param fname The file name + */ +AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *fname); + +/* Finally, the hook for dynamically loading modules in... */ + +/** + * Add a module to the server + * @param m The module structure of the module to add + * @param p The pool of the same lifetime as the module + */ +AP_DECLARE(void) ap_add_module(module *m, apr_pool_t *p); + +/** + * Remove a module from the server. There are some caveats: + * when the module is removed, its slot is lost so all the current + * per-dir and per-server configurations are invalid. So we should + * only ever call this function when you are invalidating almost + * all our current data. I.e. when doing a restart. + * @param m the module structure of the module to remove + */ +AP_DECLARE(void) ap_remove_module(module *m); +/** + * Add a module to the chained modules list and the list of loaded modules + * @param m The module structure of the module to add + * @param p The pool with the same lifetime as the module + */ +AP_DECLARE(void) ap_add_loaded_module(module *mod, apr_pool_t *p); +/** + * Remove a module fromthe chained modules list and the list of loaded modules + * @param m the module structure of the module to remove + */ +AP_DECLARE(void) ap_remove_loaded_module(module *mod); +/** + * Add a module to the list of loaded module based on the name of the + * module + * @param name The name of the module + * @param p The pool valid for the lifetime of the module + * @return 1 on success, 0 on failure + */ +AP_DECLARE(int) ap_add_named_module(const char *name, apr_pool_t *p); +/** + * Find the name of the specified module + * @param m The module to get the name for + * @return the name of the module + */ +AP_DECLARE(const char *) ap_find_module_name(module *m); +/** + * Find a module based on the name of the module + * @param name the name of the module + * @return the module structure if found, NULL otherwise + */ +AP_DECLARE(module *) ap_find_linked_module(const char *name); + +/** + * Open a ap_configfile_t as apr_file_t + * @param ret_cfg open ap_configfile_t struct pointer + * @param p The pool to allocate the structure from + * @param name the name of the file to open + */ +AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg, + apr_pool_t *p, const char *name); + +/** + * Allocate a ap_configfile_t handle with user defined functions and params + * @param p The pool to allocate from + * @param descr The name of the file + * @param param The argument passed to getch/getstr/close + * @param getc_func The getch function + * @param gets_func The getstr function + * @param close_func The close function + */ +AP_DECLARE(ap_configfile_t *) ap_pcfg_open_custom(apr_pool_t *p, + const char *descr, + void *param, + int(*getc_func)(void*), + void *(*gets_func) (void *buf, size_t bufsiz, void *param), + int(*close_func)(void *param)); + +/** + * Read one line from open ap_configfile_t, strip LF, increase line number + * @param buf place to store the line read + * @param bufsize size of the buffer + * @param cfp File to read from + * @return 1 on success, 0 on failure + */ +AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp); + +/** + * Read one char from open configfile_t, increase line number upon LF + * @param cfp The file to read from + * @return the character read + */ +AP_DECLARE(int) ap_cfg_getc(ap_configfile_t *cfp); + +/** + * Detach from open ap_configfile_t, calling the close handler + * @param cfp The file to close + * @return 1 on sucess, 0 on failure + */ +AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp); + +/** + * Read all data between the current and the matching . All + * of this data is forgotten immediately. + * @param cmd The cmd_parms to pass to the directives inside the container + * @param directive The directive name to read until + * @return Error string on failure, NULL on success + */ +AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive); + +/** + * Read all data between the current and the matching and build + * a config tree from it + * @param p pool to allocate from + * @param temp_pool Temporary pool to allocate from + * @param parms The cmd_parms to pass to all directives read + * @param current The current node in the tree + * @param curr_parent The current parent node + * @param orig_directive The directive to read until hit. + * @return Error string on failure, NULL on success +*/ +AP_DECLARE(const char *) ap_build_cont_config(apr_pool_t *p, + apr_pool_t *temp_pool, + cmd_parms *parms, + ap_directive_t **current, + ap_directive_t **curr_parent, + char *orig_directive); + +/** + * Build a config tree from a config file + * @param parms The cmd_parms to pass to all of the directives in the file + * @param conf_pool The pconf pool + * @param temp_pool The temporary pool + * @param conftree Place to store the root node of the config tree + * @return Error string on erro, NULL otherwise + */ +AP_DECLARE(const char *) ap_build_config(cmd_parms *parms, + apr_pool_t *conf_pool, + apr_pool_t *temp_pool, + ap_directive_t **conftree); + +/** + * Walk a config tree and setup the server's internal structures + * @param conftree The config tree to walk + * @param parms The cmd_parms to pass to all functions + * @param section_vector The per-section config vector. + * @return Error string on error, NULL otherwise + */ +AP_DECLARE(const char *) ap_walk_config(ap_directive_t *conftree, + cmd_parms *parms, + ap_conf_vector_t *section_vector); + +/** + * @defgroup ap_check_cmd_context ap_check_cmd_context + * @{ + */ +/** + * Check the context a command is used in. + * @param cmd The command to check + * @param forbidden Where the command is forbidden. + * @return Error string on error, NULL on success + */ +AP_DECLARE(const char *) ap_check_cmd_context(cmd_parms *cmd, + unsigned forbidden); + +#define NOT_IN_VIRTUALHOST 0x01 /**< Forbidden in */ +#define NOT_IN_LIMIT 0x02 /**< Forbidden in */ +#define NOT_IN_DIRECTORY 0x04 /**< Forbidden in */ +#define NOT_IN_LOCATION 0x08 /**< Forbidden in */ +#define NOT_IN_FILES 0x10 /**< Forbidden in */ +/** Forbidden in //*/ +#define NOT_IN_DIR_LOC_FILE (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) +/** Forbidden in //// */ +#define GLOBAL_ONLY (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE) + +/** @} */ + +#ifdef CORE_PRIVATE + +/** + * The topmost module in the list + * @defvar module *ap_top_module + */ +AP_DECLARE_DATA extern module *ap_top_module; + +/** + * Array of all statically linked modules + * @defvar module *ap_prelinked_modules[] + */ +AP_DECLARE_DATA extern module *ap_prelinked_modules[]; +/** + * Array of all preloaded modules + * @defvar module *ap_preloaded_modules[] + */ +AP_DECLARE_DATA extern module *ap_preloaded_modules[]; +/** + * Array of all loaded modules + * @defvar module **ap_loaded_modules + */ +AP_DECLARE_DATA extern module **ap_loaded_modules; + +/* For mod_so.c... */ +/** Run a single module's two create_config hooks + * @param p the pool to allocate from + * @param s The server to configure for. + * @param m The module to configure + */ +AP_DECLARE(void) ap_single_module_configure(apr_pool_t *p, server_rec *s, + module *m); + +/* For http_main.c... */ +/** + * Add all of the prelinked modules into the loaded module list + * @param process The process that is currently running the server + */ +AP_DECLARE(void) ap_setup_prelinked_modules(process_rec *process); + +/** + * Show the preloaded configuration directives, the help string explaining + * the directive arguments, in what module they are handled, and in + * what parts of the configuration they are allowed. Used for httpd -h. + */ +AP_DECLARE(void) ap_show_directives(void); + +/** + * Show the preloaded module names. Used for httpd -l. + */ +AP_DECLARE(void) ap_show_modules(void); + +/** + * Show the MPM name. Used in reporting modules such as mod_info to + * provide extra information to the user + */ +AP_DECLARE(const char *) ap_show_mpm(void); + +/** + * Read all config files and setup the server + * @param process The process running the server + * @param temp_pool A pool to allocate temporary data from. + * @param config_name The name of the config file + * @param conftree Place to store the root of the config tree + * @return The setup server_rec list. + */ +AP_DECLARE(server_rec *) ap_read_config(process_rec *process, + apr_pool_t *temp_pool, + const char *config_name, + ap_directive_t **conftree); + +/** + * Run all rewrite args hooks for loaded modules + * @param process The process currently running the server + */ +AP_DECLARE(void) ap_run_rewrite_args(process_rec *process); + +/** + * Run the register hooks function for a specified module + * @param m The module to run the register hooks function fo + * @param p The pool valid for the lifetime of the module + */ +AP_DECLARE(void) ap_register_hooks(module *m, apr_pool_t *p); + +/** + * Setup all virtual hosts + * @param p The pool to allocate from + * @param main_server The head of the server_rec list + */ +AP_DECLARE(void) ap_fixup_virtual_hosts(apr_pool_t *p, + server_rec *main_server); + +/* For http_request.c... */ + +/** + * Setup the config vector for a request_rec + * @param p The pool to allocate the config vector from + * @return The config vector + */ +AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_request_config(apr_pool_t *p); + +/** + * Setup the config vector for per dir module configs + * @param p The pool to allocate the config vector from + * @return The config vector + */ +AP_CORE_DECLARE(ap_conf_vector_t *) ap_create_per_dir_config(apr_pool_t *p); + +/** + * Run all of the modules merge per dir config functions + * @param p The pool to pass to the merge functions + * @param base The base directory config structure + * @param new_conf The new directory config structure + */ +AP_CORE_DECLARE(ap_conf_vector_t*) ap_merge_per_dir_configs(apr_pool_t *p, + ap_conf_vector_t *base, + ap_conf_vector_t *new_conf); + +/* For http_connection.c... */ +/** + * Setup the config vector for a connection_rec + * @param p The pool to allocate the config vector from + * @return The config vector + */ +AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_conn_config(apr_pool_t *p); + +/* For http_core.c... ( command and virtual hosts) */ + +/** + * parse an htaccess file + * @param resulting htaccess_result + * @param r The request currently being served + * @param override Which overrides are active + * @param path The path to the htaccess file + * @param access_name The list of possible names for .htaccess files + * int The status of the current request + */ +AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, + request_rec *r, int override, + const char *path, + const char *access_name); + +/** + * Setup a virtual host + * @param p The pool to allocate all memory from + * @param hostname The hostname of the virtual hsot + * @param main_server The main server for this Apache configuration + * @param ps Place to store the new server_rec + * return Error string on error, NULL on success + */ +AP_CORE_DECLARE(const char *) ap_init_virtual_host(apr_pool_t *p, + const char *hostname, + server_rec *main_server, + server_rec **); + +/** + * Process the config file for Apache + * @param s The server rec to use for the command parms + * @param fname The name of the config file + * @param conftree The root node of the created config tree + * @param p Pool for general allocation + * @param ptem Pool for temporary allocation + */ +AP_DECLARE(void) ap_process_resource_config(server_rec *s, const char *fname, + ap_directive_t **conftree, + apr_pool_t *p, apr_pool_t *ptemp); + +/** + * Process all directives in the config tree + * @param s The server rec to use in the command parms + * @param conftree The config tree to process + * @param p The pool for general allocation + * @param ptemp The pool for temporary allocations + */ +AP_DECLARE(void) ap_process_config_tree(server_rec *s, ap_directive_t *conftree, + apr_pool_t *p, apr_pool_t *ptemp); + +/* Module-method dispatchers, also for http_request.c */ +/** + * Run the handler phase of each module until a module accepts the + * responsibility of serving the request + * @param r The current request + * @return The status of the current request + */ +AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r); + +/* for mod_perl */ + +/** + * Find a given directive in a command_rec table + * @param name The directive to search for + * @param cmds The table to search + * @return The directive definition of the specified directive + */ +AP_CORE_DECLARE(const command_rec *) ap_find_command(const char *name, + const command_rec *cmds); + +/** + * Find a given directive in a list module + * @param cmd_name The directive to search for + * @param mod The module list to search + * @return The directive definition of the specified directive + */ +AP_CORE_DECLARE(const command_rec *) ap_find_command_in_modules(const char *cmd_name, + module **mod); + +/** + * Ask a module to create per-server and per-section (dir/loc/file) configs + * (if it hasn't happened already). The results are stored in the server's + * config, and the specified per-section config vector. + * @param server The server to operate upon. + * @param section_vector The per-section config vector. + * @param section Which section to create a config for. + * @param mod The module which is defining the config data. + * @param pconf A pool for all configuration allocations. + * @return The (new) per-section config data. + */ +AP_CORE_DECLARE(void *) ap_set_config_vectors(server_rec *server, + ap_conf_vector_t *section_vector, + const char *section, + module *mod, apr_pool_t *pconf); + +#endif + + /* Hooks */ + +/** + * Run the header parser functions for each module + * @param r The current request + * @return OK or DECLINED + */ +AP_DECLARE_HOOK(int,header_parser,(request_rec *r)) + +/** + * Run the pre_config function for each module + * @param pconf The config pool + * @param plog The logging streams pool + * @param ptemp The temporary pool + * @return OK or DECLINED on success anything else is a error + */ +AP_DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, + apr_pool_t *ptemp)) + + +/** + * Run the post_config function for each module + * @param pconf The config pool + * @param plog The logging streams pool + * @param ptemp The temporary pool + * @param s The list of server_recs + * @return OK or DECLINED on success anything else is a error + */ +AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, + apr_pool_t *ptemp,server_rec *s)) + +/** + * Run the open_logs functions for each module + * @param pconf The config pool + * @param plog The logging streams pool + * @param ptemp The temporary pool + * @param s The list of server_recs + * @return OK or DECLINED on success anything else is a error + */ +AP_DECLARE_HOOK(int,open_logs,(apr_pool_t *pconf,apr_pool_t *plog, + apr_pool_t *ptemp,server_rec *s)) + +/** + * Run the child_init functions for each module + * @param pchild The child pool + * @param s The list of server_recs in this server + */ +AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) + +/** + * Run the handler functions for each module + * @param r The request_rec + * @remark non-wildcard handlers should HOOK_MIDDLE, wildcard HOOK_LAST + */ +AP_DECLARE_HOOK(int,handler,(request_rec *r)) + +/** + * Run the quick handler functions for each module. The quick_handler + * is run before any other requests hooks are called (location_walk, + * directory_walk, access checking, et. al.). This hook was added + * to provide a quick way to serve content from a URI keyed cache. + * + * @param r The request_rec + * @param lookup_uri Controls whether the caller actually wants content or not. + * lookup is set when the quick_handler is called out of + * ap_sub_req_lookup_uri() + */ +AP_DECLARE_HOOK(int,quick_handler,(request_rec *r, int lookup_uri)) + +/** + * Retrieve the optional functions for each module. + * This is run immediately before the server starts. Optional functions should + * be registered during the hook registration phase. + */ +AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_CONFIG_H */ diff --git a/rubbos/app/apache2/include/http_connection.h b/rubbos/app/apache2/include/http_connection.h new file mode 100644 index 00000000..2b7d379f --- /dev/null +++ b/rubbos/app/apache2/include/http_connection.h @@ -0,0 +1,139 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_CONNECTION_H +#define APACHE_HTTP_CONNECTION_H + +#include "apr_hooks.h" +#include "apr_network_io.h" +#include "apr_buckets.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Apache connection library + */ +#ifdef CORE_PRIVATE +/** + * This is the protocol module driver. This calls all of the + * pre-connection and connection hooks for all protocol modules. + * @param c The connection on which the request is read + * @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); + +AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c); + +/** + * This function is responsible for the following cases: + *
+ * we now proceed to read from the client until we get EOF, or until
+ * MAX_SECS_TO_LINGER has passed.  the reasons for doing this are
+ * documented in a draft:
+ *
+ * http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-connection-00.txt
+ *
+ * in a nutshell -- if we don't make this effort we risk causing
+ * TCP RST packets to be sent which can tear down a connection before
+ * all the response data has been sent to the client.
+ * 
+ * @param c The connection we are closing + */ +AP_DECLARE(void) ap_lingering_close(conn_rec *c); +#endif + + /* Hooks */ +/** + * create_connection is a RUN_FIRST hook which allows modules to create + * connections. In general, you should not install filters with the + * create_connection hook. If you require vhost configuration information + * to make filter installation decisions, you must use the pre_connection + * or install_network_transport hook. This hook should close the connection + * if it encounters a fatal error condition. + * + * @param p The pool from which to allocate the connection record + * @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. + * @return An allocated connection record or NULL. + */ +AP_DECLARE_HOOK(conn_rec *, create_connection, + (apr_pool_t *p, server_rec *server, apr_socket_t *csd, + long conn_id, void *sbh, apr_bucket_alloc_t *alloc)) + +/** + * This hook gives protocol modules an opportunity to set everything up + * before calling the protocol handler. All pre-connection hooks are + * run until one returns something other than ok or decline + * @param c The connection on which the request has been received. + * @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. + * @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)) + +/** + * This hook implements different protocols. After a connection has been + * established, the protocol module must read and serve the request. This + * function does that for each protocol module. The first protocol module + * 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 */ + +AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_eoc; + +/** + * Determine if a bucket is an End Of Connection (EOC) bucket + * @param e The bucket to inspect + * @return true or false + */ +#define AP_BUCKET_IS_EOC(e) (e->type == &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); + +/** + * Create a bucket referring to an End Of Connection (EOC). This indicates + * 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); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_REQUEST_H */ diff --git a/rubbos/app/apache2/include/http_core.h b/rubbos/app/apache2/include/http_core.h new file mode 100644 index 00000000..99b17a90 --- /dev/null +++ b/rubbos/app/apache2/include/http_core.h @@ -0,0 +1,640 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_CORE_H +#define APACHE_HTTP_CORE_H + +#include "apr.h" +#include "apr_hash.h" +#include "apr_optional.h" +#include "util_filter.h" + +#if APR_HAVE_STRUCT_RLIMIT +#include +#include +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package CORE HTTP Daemon + */ + +/* **************************************************************** + * + * The most basic server code is encapsulated in a single module + * known as the core, which is just *barely* functional enough to + * serve documents, though not terribly well. + * + * Largely for NCSA back-compatibility reasons, the core needs to + * make pieces of its config structures available to other modules. + * The accessors are declared here, along with the interpretation + * of one of them (allow_options). + */ + +#define OPT_NONE 0 +#define OPT_INDEXES 1 +#define OPT_INCLUDES 2 +#define OPT_SYM_LINKS 4 +#define OPT_EXECCGI 8 +#define OPT_UNSET 16 +#define OPT_INCNOEXEC 32 +#define OPT_SYM_OWNER 64 +#define OPT_MULTI 128 +#define OPT_ALL (OPT_INDEXES|OPT_INCLUDES|OPT_SYM_LINKS|OPT_EXECCGI) + +/* options for get_remote_host() */ +/* 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 + * 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 + * never forced. + */ +#define REMOTE_NOLOOKUP (2) + +/* 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) + +#define SATISFY_ALL 0 +#define SATISFY_ANY 1 +#define SATISFY_NOSPEC 2 + +/* 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 */ +# define AP_DEFAULT_MAX_INTERNAL_REDIRECTS 10 + +/* 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); + +/** + * 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); + +/** + * 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); + +/** + * Retrieve the document root for this server + * @param r The current request + * @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 + * @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: + *
+ *     REMOTE_HOST returns the hostname, or NULL if the hostname
+ *                 lookup fails.  It will force a DNS lookup according to the
+ *                 HostnameLookups setting.
+ *     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.
+ *     REMOTE_NOLOOKUP is like REMOTE_NAME except that a DNS lookup is
+ *                     never forced.
+ *     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.
+ * 
+ * @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); + +/** + * Retrieve the login name of the remote user. Undef if it could not be + * 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); + +/* Used for constructing self-referencing URLs, and things like SERVER_PORT, + * and SERVER_NAME. + */ +/** + * build a fully qualified URL from the uri and information in the request rec + * @param p The pool to allocate the URL from + * @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); + +/** + * 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 port + * @param 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); + +/** + * 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); + +/** + * 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); + +/** + * Install a custom response handler for a given status + * @param r The current request + * @param status The status for which the custom response should be used + * @param string The custom response. This can be a static string, a file + * or a URL + */ +AP_DECLARE(void) ap_custom_response(request_rec *r, int status, const char *string); + +/** + * 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); + +/** + * 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 */ +AP_DECLARE_NONSTD(int) ap_core_translate(request_rec *r); + +/* Authentication stuff. This is one of the places where compatibility + * with the old config files *really* hurts; they don't discriminate at + * all between different authentication schemes, meaning that we need + * to maintain common state for all of them in the core, and make it + * available to the other modules through interfaces. + */ +typedef struct require_line require_line; + +/** 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; + /** The complete string from the command line */ + char *requirement; +}; + +/** + * 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); + +/** + * 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); + +/** + * How the requires lines must be met. + * @param r The current request + * @return How the requirements must be met. One of: + *
+ *      SATISFY_ANY    -- any of the requirements must be met.
+ *      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); + +/** + * 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 */ + +typedef struct { + /* 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 + * 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, + * 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), + * since other methods are not content-retrieval. This flag overrides + * that behavior, stating that the "content" is actually a script and + * won't actually be delivered as the response for the non-GET method. + */ + int deliver_script; + + /* 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? + */ + int suppress_charset; +} core_request_config; + +/* Standard entries that are guaranteed to be accessible via + * ap_get_request_note() for each request (additional entries + * can be added with ap_register_request_note()) + */ +#define AP_NOTE_DIRECTORY_WALK 0 +#define AP_NOTE_LOCATION_WALK 1 +#define AP_NOTE_FILE_WALK 2 +#define AP_NUM_STD_NOTES 3 + +/** + * Reserve an element in the core_request_config->notes array + * for some application-specific data + * @return An integer key that can be passed to ap_get_request_note() + * during request processing to access this element for the + * current request. + */ +AP_DECLARE(apr_size_t) ap_register_request_note(void); + +/** + * Retrieve a pointer to an element in the core_request_config->notes array + * @param r The request + * @param note_num A key for the element: either a value obtained from + * ap_register_request_note() or one of the predefined AP_NOTE_* + * values. + * @return NULL if the note_num is invalid, otherwise a pointer to the + * requested note element. + * @remark At the start of a request, each note element is NULL. The + * handle provided by ap_get_request_note() is a pointer-to-pointer + * so that the caller can point the element to some app-specific + * data structure. The caller should guarantee that any such + * structure will last as long as the request itself. + */ +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; + +/* + * Bits of info that go into making an ETag for a file + * document. Why a long? Because char historically + * proved too short for Options, and int can be different + * sizes on different platforms. + */ +typedef unsigned long etag_components_t; + +#define ETAG_UNSET 0 +#define ETAG_NONE (1 << 0) +#define ETAG_MTIME (1 << 1) +#define ETAG_INODE (1 << 2) +#define ETAG_SIZE (1 << 3) +#define ETAG_BACKWARD (ETAG_MTIME | ETAG_INODE | ETAG_SIZE) +#define ETAG_ALL (ETAG_MTIME | ETAG_INODE | ETAG_SIZE) + +typedef enum { + srv_sig_unset, + srv_sig_off, + srv_sig_on, + srv_sig_withmail +} server_signature_e; + +typedef struct { + /* path of the directory/regex/etc. see also d_is_fnmatch/absolute below */ + char *d; + /* the number of slashes in d */ + unsigned d_components; + + /* 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 -) + * assignment made to each bit is recorded in exactly one of opts_add + * or opts_remove. + */ + allow_options_t opts; + allow_options_t opts_add; + allow_options_t opts_remove; + overrides_t override; + + /* MIME typing --- the core doesn't do anything at all with this, + * but it does know what to slap on a request for a document which + * goes untyped by other mechanisms before it slips out the door... + */ + + char *ap_default_type; + + /* Authentication stuff. Groan... */ + + int *satisfy; /* for every method one */ + char *ap_auth_type; + char *ap_auth_name; + apr_array_header_t *ap_requires; + + /* Custom response config. These can contain text or a URL to redirect to. + * if response_code_strings is NULL then there are none in the config, + * if it's not null then it's allocated to sizeof(char*)*RESPONSE_CODES. + * This lets us do quick merges in merge_core_dir_configs(). + */ + + char **response_code_strings; /* from ErrorDocument, not from + * ap_custom_response() */ + + /* Hostname resolution etc */ +#define HOSTNAME_LOOKUP_OFF 0 +#define HOSTNAME_LOOKUP_ON 1 +#define HOSTNAME_LOOKUP_DOUBLE 2 +#define HOSTNAME_LOOKUP_UNSET 3 + unsigned int hostname_lookups : 4; + + signed int do_rfc1413 : 2; /* See if client is advertising a username? */ + + signed int content_md5 : 2; /* calculate Content-MD5? */ + +#define USE_CANONICAL_NAME_OFF (0) +#define USE_CANONICAL_NAME_ON (1) +#define USE_CANONICAL_NAME_DNS (2) +#define USE_CANONICAL_NAME_UNSET (3) + unsigned use_canonical_name : 2; + + /* since is_fnmatch(conf->d) was being called so frequently in + * directory_walk() and its relatives, this field was created and + * is set to the result of that call. + */ + unsigned d_is_fnmatch : 1; + + /* should we force a charset on any outgoing parameterless content-type? + * if so, which charset? + */ +#define ADD_DEFAULT_CHARSET_OFF (0) +#define ADD_DEFAULT_CHARSET_ON (1) +#define ADD_DEFAULT_CHARSET_UNSET (2) + unsigned add_default_charset : 2; + const char *add_default_charset_name; + + /* System Resource Control */ +#ifdef RLIMIT_CPU + struct rlimit *limit_cpu; +#endif +#if defined (RLIMIT_DATA) || defined (RLIMIT_VMEM) || defined(RLIMIT_AS) + struct rlimit *limit_mem; +#endif +#ifdef RLIMIT_NPROC + struct rlimit *limit_nproc; +#endif + apr_off_t limit_req_body; /* limit on bytes in request msg body */ + long limit_xml_body; /* limit on bytes in XML request msg body */ + + /* logging options */ + + server_signature_e server_signature; + + int loglevel; + + /* Access control */ + apr_array_header_t *sec_file; + regex_t *r; + + const char *mime_type; /* forced with ForceType */ + const char *handler; /* forced with SetHandler */ + const char *output_filters; /* forced with SetOutputFilters */ + const char *input_filters; /* forced with SetInputFilters */ + int accept_path_info; /* forced with AcceptPathInfo */ + + apr_hash_t *ct_output_filters; /* added with AddOutputFilterByType */ + + /* + * What attributes/data should be included in ETag generation? + */ + etag_components_t etag_bits; + etag_components_t etag_add; + etag_components_t etag_remove; + + /* + * Run-time performance tuning + */ +#define ENABLE_MMAP_OFF (0) +#define ENABLE_MMAP_ON (1) +#define ENABLE_MMAP_UNSET (2) + unsigned int enable_mmap : 2; /* whether files in this dir can be mmap'ed */ + +#define ENABLE_SENDFILE_OFF (0) +#define ENABLE_SENDFILE_ON (1) +#define ENABLE_SENDFILE_UNSET (2) + 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 */ +} core_dir_config; + +/* Per-server core configuration */ + +typedef struct { + +#ifdef GPROF + char *gprof_dir; +#endif + + /* Name translations --- we want the core to be able to do *something* + * so it's at least a minimally functional web server on its own (and + * can be tested that way). But let's keep it to the bare minimum: + */ + const char *ap_document_root; + + /* Access control */ + + char *access_name; + apr_array_header_t *sec_dir; + apr_array_header_t *sec_url; + + /* recursion backstopper */ + int redirect_limit; /* maximum number of internal redirects */ + int subreq_limit; /* maximum nesting level of subrequests */ + + /* TRACE control */ +#define AP_TRACE_UNSET -1 +#define AP_TRACE_DISABLE 0 +#define AP_TRACE_ENABLE 1 +#define AP_TRACE_EXTENDED 2 + int trace_enable; + +} core_server_config; + +/* for AddOutputFiltersByType in core.c */ +void ap_add_output_filters_by_type(request_rec *r); + +/* for http_config.c */ +void ap_core_reorder_directories(apr_pool_t *, server_rec *); + +/* for mod_perl */ +AP_CORE_DECLARE(void) ap_add_per_dir_conf(server_rec *s, void *dir_config); +AP_CORE_DECLARE(void) ap_add_per_url_conf(server_rec *s, void *url_config); +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); + +#endif + + +/* ---------------------------------------------------------------------- + * + * Runtime status/management + */ + +typedef enum { + ap_mgmt_type_string, + ap_mgmt_type_long, + ap_mgmt_type_hash +} ap_mgmt_type_e; + +typedef union { + const char *s_value; + long i_value; + apr_hash_t *h_value; +} ap_mgmt_value; + +typedef struct { + const char *description; + const char *name; + ap_mgmt_type_e vtype; + ap_mgmt_value v; +} ap_mgmt_item_t; + +/* Handles for core filters */ +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; + +/** + * This hook provdes a way for modules to provide metrics/statistics about + * their operational status. + * + * @param p A pool to use to create entries in the hash table + * @param val The name of the parameter(s) that is wanted. This is + * tree-structured would be in the form ('*' is all the tree, + * 'module.*' all of the module , 'module.foo.*', or + * 'module.foo.bar' ) + * @param ht The hash table to store the results. Keys are item names, and + * the values point to ap_mgmt_item_t structures. + * @ingroup hooks + */ +AP_DECLARE_HOOK(int, get_mgmt_items, + (apr_pool_t *p, const char * val, apr_hash_t *ht)) + +/* ---------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + * + * I/O logging with mod_logio + */ + +APR_DECLARE_OPTIONAL_FN(void, ap_logio_add_bytes_out, + (conn_rec *c, apr_off_t bytes)); + +/* ---------------------------------------------------------------------- */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_CORE_H */ diff --git a/rubbos/app/apache2/include/http_log.h b/rubbos/app/apache2/include/http_log.h new file mode 100644 index 00000000..52880585 --- /dev/null +++ b/rubbos/app/apache2/include/http_log.h @@ -0,0 +1,334 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_LOG_H +#define APACHE_HTTP_LOG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "apr_thread_proc.h" + +/** + * @package Apache logging library + */ + +#ifdef HAVE_SYSLOG +#include + +#ifndef LOG_PRIMASK +#define LOG_PRIMASK 7 +#endif + +#define APLOG_EMERG LOG_EMERG /* system is unusable */ +#define APLOG_ALERT LOG_ALERT /* action must be taken immediately */ +#define APLOG_CRIT LOG_CRIT /* critical conditions */ +#define APLOG_ERR LOG_ERR /* error conditions */ +#define APLOG_WARNING LOG_WARNING /* warning conditions */ +#define APLOG_NOTICE LOG_NOTICE /* normal but significant condition */ +#define APLOG_INFO LOG_INFO /* informational */ +#define APLOG_DEBUG LOG_DEBUG /* debug-level messages */ + +#define APLOG_LEVELMASK LOG_PRIMASK /* mask off the level value */ + +#else + +#define APLOG_EMERG 0 /* system is unusable */ +#define APLOG_ALERT 1 /* action must be taken immediately */ +#define APLOG_CRIT 2 /* critical conditions */ +#define APLOG_ERR 3 /* error conditions */ +#define APLOG_WARNING 4 /* warning conditions */ +#define APLOG_NOTICE 5 /* normal but significant condition */ +#define APLOG_INFO 6 /* informational */ +#define APLOG_DEBUG 7 /* debug-level messages */ + +#define APLOG_LEVELMASK 7 /* mask off the level value */ + +#endif + +/* APLOG_NOERRNO is ignored and should not be used. It will be + * removed in a future release of Apache. + */ +#define APLOG_NOERRNO (APLOG_LEVELMASK + 1) + +/* Use APLOG_TOCLIENT on ap_log_rerror() to give content + * handlers the option of including the error text in the + * ErrorDocument sent back to the client. Setting APLOG_TOCLIENT + * will cause the error text to be saved in the request_rec->notes + * table, keyed to the string "error-notes", if and only if: + * - the severity level of the message is APLOG_WARNING or greater + * - there are no other "error-notes" set in request_rec->notes + * Once error-notes is set, it is up to the content handler to + * determine whether this text should be sent back to the client. + * Note: Client generated text streams sent back to the client MUST + * be escaped to prevent CSS attacks. + */ +#define APLOG_TOCLIENT ((APLOG_LEVELMASK + 1) * 2) + +/* normal but significant condition on startup, usually printed to stderr */ +#define APLOG_STARTUP ((APLOG_LEVELMASK + 1) * 4) + +#ifndef DEFAULT_LOGLEVEL +#define DEFAULT_LOGLEVEL APLOG_WARNING +#endif + +extern int AP_DECLARE_DATA ap_default_loglevel; + +#define APLOG_MARK __FILE__,__LINE__ + +/** + * Set up for logging to stderr. + * @param p The pool to allocate out of + */ +AP_DECLARE(void) ap_open_stderr_log(apr_pool_t *p); + +/** + * Replace logging to stderr with logging to the given file. + * @param p The pool to allocate out of + * @param file Name of the file to log stderr output + */ +AP_DECLARE(apr_status_t) ap_replace_stderr_log(apr_pool_t *p, + const char *file); + +/** + * Open the error log and replace stderr with it. + * @param pconf Not used + * @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 + * an internal core function + */ +int ap_open_logs(apr_pool_t *pconf, apr_pool_t *plog, + apr_pool_t *ptemp, server_rec *s_main); + +#ifdef CORE_PRIVATE + +/** + * Perform special processing for piped loggers in MPM child + * processes. + * @param p Not used + * @param s Not used + * @tip 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); + +#endif /* CORE_PRIVATE */ + +/* + * The primary logging functions, ap_log_error, ap_log_rerror, ap_log_cerror, + * and ap_log_perror use a printf style format string to build the log message. + * 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. + */ + +/** + * ap_log_error() - log messages which are not related to a particular + * request or connection. This uses a printf-like format to log messages + * to the error_log. + * @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 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() + * 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. + * @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_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, + const char *fmt, ...) + __attribute__((format(printf,6,7))); + +/** + * ap_log_perror() - log messages which are not related to a particular + * request, connection, or virtual server. This uses a printf-like + * format to log messages to the error_log. + * @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 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 + * @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, + const char *fmt, ...) + __attribute__((format(printf,6,7))); + +/** + * ap_log_rerror() - log messages which are related to a particular + * request. This uses a a printf-like format to log messages to the + * error_log. + * @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 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 + * @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, + const char *fmt, ...) + __attribute__((format(printf,6,7))); + +/** + * ap_log_cerror() - log messages which are related to a particular + * connection. This uses a a printf-like format to log messages to the + * error_log. + * @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 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() + * 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 + * 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. + * @note ap_log_cerror() is available starting with Apache 2.0.55. + * @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, + const char *fmt, ...) + __attribute__((format(printf,6,7))); + +/** + * 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); + +/** + * Log the current pid of the parent process + * @param p The pool to use for logging + * @param fname The name of the file to log to + */ +AP_DECLARE(void) ap_log_pid(apr_pool_t *p, const char *fname); + +/** + * Retrieve the pid from a pidfile. + * @param p The pool to use for logging + * @param filename The name of the file containing the pid + * @param mypid Pointer to pid_t (valid only if return APR_SUCCESS) + */ +AP_DECLARE(apr_status_t) ap_read_pid(apr_pool_t *p, const char *filename, pid_t *mypid); + +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. + */ +struct piped_log { + /** The pool to use for the piped log */ + apr_pool_t *p; + /** The pipe between the server and the logging process */ + apr_file_t *fds[2]; + /* XXX - an #ifdef that needs to be eliminated from public view. Shouldn't + * be hard */ +#ifdef AP_HAVE_RELIABLE_PIPED_LOGS + /** The name of the program the logging process is running */ + char *program; + /** The pid of the logging process */ + apr_proc_t *pid; +#endif +}; + +/** + * Open the piped log process + * @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) + */ +AP_DECLARE(piped_log *) ap_open_piped_log(apr_pool_t *p, const char *program); + +/** + * 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); + +/** + * 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]) + +/** + * 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]) + +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, + const char *errstr)) + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_LOG_H */ diff --git a/rubbos/app/apache2/include/http_main.h b/rubbos/app/apache2/include/http_main.h new file mode 100644 index 00000000..cc4ce59d --- /dev/null +++ b/rubbos/app/apache2/include/http_main.h @@ -0,0 +1,58 @@ +/* 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. + */ + +#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 + * 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:vVlLtSh?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 */ +AP_DECLARE_DATA extern const char *ap_server_root; + +/* for -C, -c and -D switches */ +/** An array of all -C directives. These are processed before the server's + * config file */ +AP_DECLARE_DATA extern apr_array_header_t *ap_server_pre_read_config; +/** An array of all -c directives. These are processed after the server's + * config file */ +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; + +APR_DECLARE_OPTIONAL_FN(int, ap_signal_server, (int *, apr_pool_t *)); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_MAIN_H */ diff --git a/rubbos/app/apache2/include/http_protocol.h b/rubbos/app/apache2/include/http_protocol.h new file mode 100644 index 00000000..6287589f --- /dev/null +++ b/rubbos/app/apache2/include/http_protocol.h @@ -0,0 +1,697 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_PROTOCOL_H +#define APACHE_HTTP_PROTOCOL_H + +#include "httpd.h" +#include "apr_hooks.h" +#include "apr_portable.h" +#include "apr_mmap.h" +#include "apr_buckets.h" +#include "util_filter.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package HTTP protocol handling + */ + +/** + * This hook allows modules to insert filters for the current error response + * @param r the current request + * @ingroup hooks + */ +AP_DECLARE_HOOK(void,insert_error_filter,(request_rec *r)) + +/* 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; + +/* + * Prototypes for routines which either talk directly back to the user, + * or control the ones that eventually do. + */ + +/** + * Read a request and fill in the fields. + * @param c The current connection + * @return The new request_rec + */ +request_rec *ap_read_request(conn_rec *c); + +/** + * Read the mime-encoded headers. + * @param r The current request + */ +AP_DECLARE(void) ap_get_mime_headers(request_rec *r); + +/** + * Optimized version of ap_get_mime_headers() that requires a + * temporary brigade to work with + * @param r The current request + * @param bb temp brigade + */ +AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, + apr_bucket_brigade *bb); + +/* Finish up stuff after a request */ + +/** + * 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); + +/** + * Send error back to client. + * @param r The current request + * @param recursive_error last arg indicates error status in case we get + * an error in the process of trying to deal with an ErrorDocument + * 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); + +/* Set last modified header line from the lastmod date of the associated file. + * Also, set content length. + * + * May return an error status, typically HTTP_NOT_MODIFIED (that when the + * permit_cache argument is set to one). + */ + +/** + * 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); + +/** + * 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); + +/** + * Return the latest rational time from a request/mtime pair. Mtime is + * returned unless it's in the future, in which case we return the current time. + * @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); + +/** + * Build the content-type that should be sent to the client from the + * content-type specified. The following rules are followed: + * - if type is NULL, type is set to ap_default_type(r) + * - if charset adding is disabled, stop processing and return type. + * - then, if there are no parameters on type, add the default charset + * - return type + * @param r The current request + * @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); + +#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) + */ +AP_DECLARE(void) ap_setup_make_content_type(apr_pool_t *pool); +#endif /* CORE_PRIVATE */ + +/** + * Construct an entity tag from the resource information. If it's a real + * file, build in some of the file characteristics. + * @param r The current request + * @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) + */ +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); + +/** + * Implements condition GET rules for HTTP/1.1 specification. This function + * inspects the client headers and determines if the response fulfills + * the requirements specified. + * @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); + +/* Other ways to send stuff at the client. All of these keep track + * of bytes_sent automatically. This indirection is intended to make + * it a little more painless to slide things like HTTP-NG packetization + * underneath the main body of the code later. In the meantime, it lets + * us centralize a bit of accounting (bytes_sent). + * + * These also return the number of bytes written by the call. + * They should only be called with a timeout registered, for obvious reaasons. + * (Ditto the send_header stuff). + */ + +/** + * Send an entire file to the client, using sendfile if supported by the + * current platform + * @param fd The file to send. + * @param r The current request + * @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); + +#if APR_HAS_MMAP +/** + * Send an MMAP'ed file to the client + * @param mm The MMAP'ed file to send + * @param r The current request + * @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); +#endif + + +/** + * Register a new request method, and return the offset that will be + * associated with that method. + * + * @param p The pool to create registered method numbers from. + * @param methname The name of the new method to register. + * @return Ab int value representing an offset into a bitmask. + */ +AP_DECLARE(int) ap_method_register(apr_pool_t *p, const char *methname); + +/** + * Initialize the method_registry and allocate memory for it. + * + * @param p Pool to allocate memory for the registry from. + */ +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. + */ +#define AP_METHOD_CHECK_ALLOWED(mask, methname) \ + ((mask) & (AP_METHOD_BIT << ap_method_number_of((methname)))) + +/** + * Create a new method list with the specified number of preallocated + * slots for extension methods. + * + * @param p Pointer to a pool in which the structure should be + * 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); +AP_DECLARE(void) ap_copy_method_list(ap_method_list_t *dest, + ap_method_list_t *src); +AP_DECLARE_NONSTD(void) ap_method_list_do(int (*comp) (void *urec, const char *mname, + int mnum), + void *rec, + const ap_method_list_t *ml, ...); +AP_DECLARE(void) ap_method_list_vdo(int (*comp) (void *urec, const char *mname, + int mnum), + void *rec, const ap_method_list_t *ml, + va_list vp); +/** + * Search for an HTTP method name in an ap_method_list_t structure, and + * return true if found. + * + * @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); + +/** + * Add an HTTP method name to an ap_method_list_t structure if it isn't + * already listed. + * + * @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); + +/** + * Remove an HTTP method name from an ap_method_list_t structure. + * + * @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); + +/** + * Reset a method list to be completely empty. + * + * @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); + +/** + * 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); + +/* Hmmm... could macrofy these for now, and maybe forever, though the + * definitions of the macros would get a whole lot hairier. + */ + +/** + * Output one character for this request + * @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); + +/** + * Output a string for the current request + * @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); + +/** + * Write a buffer for the current request + * @param buf The buffer to write + * @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); + +/** + * Write an unspecified number of strings to the request + * @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,...); + +/** + * Output data to the client in a printf format + * @param r The current request + * @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); + +/** + * Output data to the client in a printf format + * @param r The current request + * @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) + */ +AP_DECLARE(int) ap_rflush(request_rec *r); + +/** + * Index used in custom_responses array for a specific error code + * (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); + +/** + * Return the Status-Line for a given status code (excluding the + * HTTP-Version field). If an invalid or unknown status code is + * 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); + +/* Reading a block of data from the client connection (e.g., POST arg) */ + +/** + * Setup the client to allow Apache to read the request body. + * @param r The current request + * @param read_policy How the server should interpret a chunked + * transfer-encoding. One of:
+ *    REQUEST_NO_BODY          Send 413 error if message has any body
+ *    REQUEST_CHUNKED_ERROR    Send 411 error if body without Content-Length
+ *    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); + +/** + * Determine if the client has sent any data. This also sends a + * 100 Continue response to HTTP/1.1 clients, so modules should not be called + * until the module is ready to read content. + * @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); + +/** + * Call this in a loop. It will put data into a buffer and return the length + * of the input block + * @param r The current request + * @param buffer The buffer in which to store the data + * @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); + +/** + * 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. + * This helper routine tests for and reads any message body in the request, + * simply discarding whatever it receives. We need to do this because + * failing to read the request body would cause it to be interpreted + * 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); + +/** + * Setup the output headers so that the client knows how to authenticate + * 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); + +/** + * Setup the output headers so that the client knows how to authenticate + * 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 + * @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 + * a correct value in r->user); otherwise it returns + * an error code, either HTTP_INTERNAL_SERVER_ERROR if things are + * really confused, HTTP_UNAUTHORIZED if no authentication at all + * 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); + +/** + * 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)
+ * 
+ * @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); + +/** + * 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 + * @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); + +/** + * Get the next line of input for the request + * + * Note: on ASCII boxes, ap_rgetline is a macro which simply calls + * ap_rgetline_core to get the line of input. + * + * on EBCDIC boxes, ap_rgetline is a wrapper function which + * translates ASCII protocol lines to the local EBCDIC code page + * after getting the line of input. + * + * @param s Pointer to the pointer to the buffer into which the line + * should be read; if *s==NULL, a buffer of the necessary size + * to hold the data will be allocated from the request pool + * @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 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 + * Other errors where appropriate + */ +#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, + 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 +AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, + apr_size_t *read, + request_rec *r, int fold, + apr_bucket_brigade *bb); + +/** + * Get the method number associated with the given string, assumed to + * contain an HTTP method. Returns M_INVALID if not recognized. + * @param method A string containing a valid HTTP method + * @return The method number + */ +AP_DECLARE(int) ap_method_number_of(const char *method); + +/** + * Get the method name associated with the given internal method + * number. Returns NULL if not recognized. + * @param p A pool to use for temporary allocations. + * @param methnum An integer value corresponding to an internal method number + * @return The name corresponding to the method number + */ +AP_DECLARE(const char *) ap_method_name_of(apr_pool_t *p, int methnum); + + + /* Hooks */ + /* + * post_read_request --- run right after read_request or internal_redirect, + * and not run during any subrequests. + */ +/** + * This hook allows modules to affect the request immediately after the request + * has been read, and before any other phases have been processes. This allows + * 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)) + +/** + * This hook allows modules to perform any module-specific logging activities + * 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)) + +/** + * This hook allows modules to retrieve the http method from a request. This + * allows Apache modules to easily extend the methods that Apache understands + * @param r The current request + * @return The http method from the request + * @deffunc const char *ap_run_http_method(const request_rec *r) + */ +AP_DECLARE_HOOK(const char *,http_method,(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)) + +typedef struct ap_bucket_error ap_bucket_error; + +/** + * 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 + * first brigade to be sent from a given filter. + */ +struct ap_bucket_error { + /** Number of buckets using this memory */ + apr_bucket_refcount refcount; + /** The error code */ + int status; + /** The error string */ + const char *data; +}; + +AP_DECLARE_DATA extern const apr_bucket_type_t ap_bucket_type_error; + +/** + * Determine if a bucket is an error bucket + * @param e The bucket to inspect + * @return true or false + */ +#define AP_BUCKET_IS_ERROR(e) (e->type == &ap_bucket_type_error) + +/** + * Make the bucket passed in an error bucket + * @param b The bucket to make into an error bucket + * @param error The HTTP error code to put in the bucket. + * @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); + +/** + * Create a bucket referring to an HTTP error. + * @param error The HTTP error code to put in the bucket. + * @param buf An optional error string to put in the bucket. + * @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, + apr_bucket_alloc_t *list); + +AP_DECLARE_NONSTD(apr_status_t) ap_byterange_filter(ap_filter_t *f, apr_bucket_brigade *b); +AP_DECLARE_NONSTD(apr_status_t) ap_http_header_filter(ap_filter_t *f, apr_bucket_brigade *b); +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. + */ +AP_DECLARE(void) ap_set_sub_req_protocol(request_rec *rnew, const request_rec *r); +AP_DECLARE(void) ap_finalize_sub_req_protocol(request_rec *sub_r); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_PROTOCOL_H */ diff --git a/rubbos/app/apache2/include/http_request.h b/rubbos/app/apache2/include/http_request.h new file mode 100644 index 00000000..c10e44db --- /dev/null +++ b/rubbos/app/apache2/include/http_request.h @@ -0,0 +1,373 @@ +/* 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. + */ + +#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 + * 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). + * + * The pieces here which are public to the modules, allow them to learn + * how the server would handle some other file or URI, or perhaps even + * direct the server to serve that other file instead of the one the + * client requested directly. + * + * There are two ways to do that. The first is the sub_request mechanism, + * which handles looking up files and URIs as adjuncts to some other + * request (e.g., directory entries for multiviews and directory listings); + * the lookup functions stop short of actually running the request, but + * (e.g., for includes), a module may call for the request to be run + * by calling run_sub_req. The space allocated to create sub_reqs can be + * reclaimed by calling destroy_sub_req --- be sure to copy anything you care + * about which was allocated in its apr_pool_t elsewhere before doing this. + */ + +/** + * An internal handler used by the ap_process_request, all subrequest mechanisms + * and the redirect mechanism. + * @param r The request, subrequest or internal redirect to pre-process + * @return The return code for the request + */ +AP_DECLARE(int) ap_process_request_internal(request_rec *r); + +/** + * Create a subrequest from the given URI. This subrequest can be + * inspected to find information about the requested URI + * @param new_uri The URI to lookup + * @param r The current request + * @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, + ap_filter_t *next_filter); + +/** + * Create a subrequest for the given file. This subrequest can be + * inspected to find information about the requested file + * @param new_file The file to lookup + * @param r The current request + * @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, + ap_filter_t *next_filter); +/** + * Create a subrequest for the given apr_dir_read result. This subrequest + * can be inspected to find information about the requested file + * @param finfo The apr_dir_read result to lookup + * @param r The current request + * @param subtype What type of subrequest to perform, one of; + *
+ *      AP_SUBREQ_NO_ARGS     ignore r->args and r->path_info
+ *      AP_SUBREQ_MERGE_ARGS  merge r->args and r->path_info
+ * 
+ * @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 + * 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. + */ +AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *finfo, + const request_rec *r, + int subtype, + ap_filter_t *next_filter); +/** + * Create a subrequest for the given URI using a specific method. This + * subrequest can be inspected to find information about the requested URI + * @param method The method to use in the new subrequest + * @param new_uri The URI to lookup + * @param r The current request + * @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, + const request_rec *r, + ap_filter_t *next_filter); +/** + * An output filter to strip EOS buckets from sub-requests. This always + * 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) + */ +AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f, + apr_bucket_brigade *bb); + +/** + * 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); + +/* + * Then there's the case that you want some other request to be served + * as the top-level request INSTEAD of what the client requested directly. + * If so, call this from a handler, and then immediately return OK. + */ + +/** + * 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); + +/** + * This function is designed for things like actions or CGI scripts, when + * using AddHandler, and you want to preserve the content type across + * 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); + +/** + * 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 + * 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); + +/** + * Can be used within any handler to determine if any authentication + * 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); + +/** + * 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); + +/** + * 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) + */ +AP_DECLARE(void) ap_update_mtime(request_rec *r, apr_time_t dependency_mtime); + +/** + * Add one or more methods to the list permitted to access the resource. + * Usually executed by the content handler before the response header is + * sent, but sometimes invoked at an earlier phase if a module knows it + * can set the list authoritatively. Note that the methods are ADDED + * to any already permitted unless the reset flag is non-zero. The + * list is used to generate the Allow response header field when it + * is needed. + * @param r The pointer to the request identifying the resource. + * @param reset Boolean flag indicating whether this list should + * completely replace any current settings. + * @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, ...); + +/** + * Add one or more methods to the list permitted to access the resource. + * Usually executed by the content handler before the response header is + * sent, but sometimes invoked at an earlier phase if a module knows it + * can set the list authoritatively. Note that the methods are ADDED + * to any already permitted unless the reset flag is non-zero. The + * list is used to generate the Allow response header field when it + * is needed. + * @param r The pointer to the request identifying the resource. + * @param reset Boolean flag indicating whether this list should + * completely replace any current settings. + * @param ... A list of method identifiers, from the "M_" series + * 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, ...); + +#define MERGE_ALLOW 0 +#define REPLACE_ALLOW 1 + +#ifdef CORE_PRIVATE +/* Function called by main.c to handle first-level 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 + +/* Hooks */ + +/** + * Gives modules a chance to create their request_config entry when the + * request is created. + * @param r The current request + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,create_request,(request_rec *r)) + +/** + * This hook allow modules an opportunity to translate the URI into an + * actual filename. If no modules do anything special, the server's default + * rules will be followed. + * @param r The current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +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 + * such as TRACE that need no security or filesystem mapping. + * based on the filesystem. + * @param r The current request + * @return DONE (or HTTP_) if this contextless request was just fulfilled + * (such as TRACE), OK if this is not a file, and DECLINED if this is a file. + * The core map_to_storage (HOOK_RUN_REALLY_LAST) will directory_walk + * and file_walk the r->filename. + * + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,map_to_storage,(request_rec *r)) + +/** + * This hook is used to analyze the request headers, authenticate the user, + * and set the user information in the request record (r->user and + * r->ap_auth_type). This hook is only run when Apache determines that + * authentication/authorization is required for this resource (as determined + * by the 'Require' directive). It runs after the access_checker hook, and + * before the auth_checker hook. + * + * @param r The current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,check_user_id,(request_rec *r)) + +/** + * Allows modules to perform module-specific fixing of header fields. This + * is invoked just before any content-handler + * @param r The current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,fixups,(request_rec *r)) + +/** + * This routine is called to determine and/or set the various document type + * information bits, like Content-type (via r->content_type), language, et + * cetera. + * @param r the current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,type_checker,(request_rec *r)) + +/** + * This hook is used to apply additional access control to this resource. + * It runs *before* a user is authenticated, so this hook is really to + * apply additional restrictions independent of a user. It also runs + * independent of 'Require' directive usage. + * + * @param r the current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,access_checker,(request_rec *r)) + +/** + * This hook is used to check to see if the resource being requested + * is available for the authenticated user (r->user and r->ap_auth_type). + * It runs after the access_checker and check_user_id hooks. Note that + * it will *only* be called if Apache determines that access control has + * been applied to this resource (through a 'Require' directive). + * + * @param r the current request + * @return OK, DECLINED, or HTTP_... + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,auth_checker,(request_rec *r)) + +/** + * This hook allows modules to insert filters for the current request + * @param r the current request + * @ingroup hooks + */ +AP_DECLARE_HOOK(void,insert_filter,(request_rec *r)) + +AP_DECLARE(int) ap_location_walk(request_rec *r); +AP_DECLARE(int) ap_directory_walk(request_rec *r); +AP_DECLARE(int) ap_file_walk(request_rec *r); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_REQUEST_H */ diff --git a/rubbos/app/apache2/include/http_vhost.h b/rubbos/app/apache2/include/http_vhost.h new file mode 100644 index 00000000..1acfd95f --- /dev/null +++ b/rubbos/app/apache2/include/http_vhost.h @@ -0,0 +1,109 @@ +/* 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. + */ + +#ifndef APACHE_HTTP_VHOST_H +#define APACHE_HTTP_VHOST_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Virtual Host package + */ + +/** + * called before any config is read + * @param p Pool to allocate out of + */ +AP_DECLARE(void) ap_init_vhost_config(apr_pool_t *p); + +/** + * called after the config has been read to compile the tables needed to do + * 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 + * @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 */ +const char *ap_set_name_virtual_host (cmd_parms *cmd, void *dummy, + const char *arg); + +/** + * Callback function for every Name Based Virtual Host. + * @param baton Opaque user object + * @param conn The current Connection + * @param s The current Server + * @see ap_vhost_iterate_given_conn + * @return 0 on success, any non-zero return will stop the iteration. + */ +typedef int(*ap_vhost_iterate_conn_cb)(void* baton, conn_rec* conn, server_rec* s); + +/** + * For every virtual host on this connection, call func_cb. + * @param conn The current connection + * @param func_cb Function called for every Name Based Virtual Host for this + * connection. + * @param baton Opaque object passed to func_cb. + * @return The return value from func_cb. + * @note If func_cb returns non-zero, the function will return at this point, + * and not continue iterating the virtual hosts. + */ +AP_DECLARE(int) ap_vhost_iterate_given_conn(conn_rec *conn, + ap_vhost_iterate_conn_cb func_cb, + void* baton); + +/** + * given an ip address only, give our best guess as to what vhost it is + * @param conn The current connection + */ +AP_DECLARE(void) ap_update_vhost_given_ip(conn_rec *conn); + +/** + * ap_update_vhost_given_ip is never enough, and this is always called after + * the headers have been read. It may change r->server. + * @param r The current request + */ +AP_DECLARE(void) ap_update_vhost_from_headers(request_rec *r); + +/** + * Match the host in the header with the hostname of the server for this + * request. + * @param r The current request + * @param host The hostname in the headers + * @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); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTP_VHOST_H */ diff --git a/rubbos/app/apache2/include/httpd.h b/rubbos/app/apache2/include/httpd.h new file mode 100644 index 00000000..4ad2df22 --- /dev/null +++ b/rubbos/app/apache2/include/httpd.h @@ -0,0 +1,1760 @@ +/* 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. + */ + +#ifndef APACHE_HTTPD_H +#define APACHE_HTTPD_H + +/** + * @file httpd.h + * @brief HTTP Daemon routines + */ + +/* XXX - We need to push more stuff to other .h files, or even .c files, to + * make this file smaller + */ + +/* Headers in which EVERYONE has an interest... */ +#include "ap_config.h" +#include "ap_mmn.h" + +#include "ap_release.h" + +#include "apr_general.h" +#include "apr_tables.h" +#include "apr_pools.h" +#include "apr_time.h" +#include "apr_network_io.h" +#include "apr_buckets.h" + +#include "os.h" + +#include "pcreposix.h" + +/* Note: util_uri.h is also included, see below */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef CORE_PRIVATE + +/* ----------------------------- config dir ------------------------------ */ + +/* 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 */ +#define HTTPD_ROOT "/os2httpd" +#elif defined(WIN32) +/* Set default for Windows file system */ +#define HTTPD_ROOT "/apache" +#elif defined (BEOS) +/* Set the default for BeOS */ +#define HTTPD_ROOT "/boot/home/apache" +#elif defined (NETWARE) +/* Set the default for NetWare */ +#define HTTPD_ROOT "/apache" +#else +#define HTTPD_ROOT "/usr/local/apache" +#endif +#endif /* HTTPD_ROOT */ + +/* + * --------- You shouldn't have to edit anything below this line ---------- + * + * Any modifications to any defaults not defined above should be done in the + * respective configuration file. + * + */ + +/* Default location of documents. Can be overridden by the DocumentRoot + * directive. + */ +#ifndef DOCUMENT_LOCATION +#ifdef OS2 +/* Set default for OS/2 file system */ +#define DOCUMENT_LOCATION HTTPD_ROOT "/docs" +#else +#define DOCUMENT_LOCATION HTTPD_ROOT "/htdocs" +#endif +#endif /* DOCUMENT_LOCATION */ + +/* Maximum number of dynamically loaded modules */ +#ifndef DYNAMIC_MODULE_LIMIT +#define DYNAMIC_MODULE_LIMIT 64 +#endif + +/* Default administrator's address */ +#define DEFAULT_ADMIN "[no address given]" + +/* The name of the log files */ +#ifndef DEFAULT_ERRORLOG +#if defined(OS2) || defined(WIN32) +#define DEFAULT_ERRORLOG "logs/error.log" +#else +#define DEFAULT_ERRORLOG "logs/error_log" +#endif +#endif /* DEFAULT_ERRORLOG */ + +/* 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 */ +#define DEFAULT_ACCESS_FNAME "htaccess" +#else +#define DEFAULT_ACCESS_FNAME ".htaccess" +#endif +#endif /* DEFAULT_ACCESS_FNAME */ + +/* The name of the server config file */ +#ifndef SERVER_CONFIG_FILE +#define SERVER_CONFIG_FILE "conf/httpd.conf" +#endif + +/* Whether we should enable rfc1413 identity checking */ +#ifndef DEFAULT_RFC1413 +#define DEFAULT_RFC1413 0 +#endif + +/* 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 */ +#ifndef SUEXEC_BIN +#define SUEXEC_BIN HTTPD_ROOT "/bin/suexec" +#endif + +/* The timeout for waiting for messages */ +#ifndef DEFAULT_TIMEOUT +#define DEFAULT_TIMEOUT 300 +#endif + +/* The timeout for waiting for keepalive timeout until next request */ +#ifndef DEFAULT_KEEPALIVE_TIMEOUT +#define DEFAULT_KEEPALIVE_TIMEOUT 15 +#endif + +/* 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 + * 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 + * might require large values, but most servers could get by with much + * smaller limits than we use below. The request message body size can + * be limited by the per-dir config directive LimitRequestBody. + * + * 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 + * directives LimitRequestLine and LimitRequestFieldsize, respectively. + * + * DEFAULT_LIMIT_REQUEST_FIELDS can be modified or disabled (set = 0) by + * the server config directive LimitRequestFields. + */ +#ifndef DEFAULT_LIMIT_REQUEST_LINE +#define DEFAULT_LIMIT_REQUEST_LINE 8190 +#endif /* default limit on bytes in Request-Line (Method+URI+HTTP-version) */ +#ifndef DEFAULT_LIMIT_REQUEST_FIELDSIZE +#define DEFAULT_LIMIT_REQUEST_FIELDSIZE 8190 +#endif /* default limit on bytes in any one header field */ +#ifndef DEFAULT_LIMIT_REQUEST_FIELDS +#define DEFAULT_LIMIT_REQUEST_FIELDS 100 +#endif /* default limit on number of request header fields */ + + +/** + * The default default character set name to add if AddDefaultCharset is + * enabled. Overridden with AddDefaultCharsetName. + */ +#define DEFAULT_ADD_DEFAULT_CHARSET_NAME "iso-8859-1" + +#endif /* CORE_PRIVATE */ + +/** default HTTP Server protocol */ +#define AP_SERVER_PROTOCOL "HTTP/1.1" + + +/* ------------------ stuff that modules are allowed to look at ----------- */ + +/** Define this to be what your HTML directory content files are called */ +#ifndef AP_DEFAULT_INDEX +#define AP_DEFAULT_INDEX "index.html" +#endif + + +/** + * Define this to be what type you'd like returned for files with unknown + * suffixes. + * @warning MUST be all lower case. + */ +#ifndef DEFAULT_CONTENT_TYPE +#define DEFAULT_CONTENT_TYPE "text/plain" +#endif + +/** The name of the MIME types file */ +#ifndef AP_TYPES_CONFIG_FILE +#define AP_TYPES_CONFIG_FILE "conf/mime.types" +#endif + +/* + * Define the HTML doctype strings centrally. + */ +/** HTML 2.0 Doctype */ +#define DOCTYPE_HTML_2_0 "\n" +/** HTML 3.2 Doctype */ +#define DOCTYPE_HTML_3_2 "\n" +/** HTML 4.0 Strict Doctype */ +#define DOCTYPE_HTML_4_0S "\n" +/** HTML 4.0 Transitional Doctype */ +#define DOCTYPE_HTML_4_0T "\n" +/** HTML 4.0 Frameset Doctype */ +#define DOCTYPE_HTML_4_0F "\n" +/** XHTML 1.0 Strict Doctype */ +#define DOCTYPE_XHTML_1_0S "\n" +/** XHTML 1.0 Transitional Doctype */ +#define DOCTYPE_XHTML_1_0T "\n" +/** XHTML 1.0 Frameset Doctype */ +#define DOCTYPE_XHTML_1_0F "" + +/** 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) +/** Minor part of HTTP protocol */ +#define HTTP_VERSION_MINOR(number) ((number)%1000) + +/* -------------- Port number for server running standalone --------------- */ + +/** default HTTP Port */ +#define DEFAULT_HTTP_PORT 80 +/** default HTTPS Port */ +#define DEFAULT_HTTPS_PORT 443 +/** + * Check whether @a port is the default port for the request @a r. + * @param port The port number + * @param r The request + * @see #ap_default_port + */ +#define ap_is_default_port(port,r) ((port) == ap_default_port(r)) +/** + * Get the default port for a request (which depends on the scheme). + * @param r The request + */ +#define ap_default_port(r) ap_run_default_port(r) +/** + * Get the scheme for a request. + * @param r The request + * @bug This should be called ap_http_scheme! + */ +#define ap_http_method(r) ap_run_http_method(r) + +/** The default string lengths */ +#define MAX_STRING_LEN HUGE_STRING_LEN +#define HUGE_STRING_LEN 8192 + +/** The size of the server's internal read-write buffers */ +#define AP_IOBUFSIZE 8192 + +/** The max number of regex captures that can be expanded by ap_pregsub */ +#define AP_MAX_REG_MATCH 10 + +/** + * APR_HAS_LARGE_FILES introduces the problem of spliting sendfile into + * mutiple buckets, no greater than MAX(apr_size_t), and more granular + * than that in case the brigade code/filters attempt to read it directly. + * ### 16mb is an invention, no idea if it is reasonable. + */ +#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. + * + */ +/** a normal exit */ +#define APEXIT_OK 0x0 +/** A fatal error arising during the server's init sequence */ +#define APEXIT_INIT 0x2 +/** The child died during its init sequence */ +#define APEXIT_CHILDINIT 0x3 +/** + * The child exited due to a resource shortage. + * The parent should limit the rate of forking until + * the situation is resolved. + */ +#define APEXIT_CHILDSICK 0x7 +/** + * A fatal error, resulting in the whole server aborting. + * If a child exits with this error, the parent process + * considers this a server-wide fatal error and aborts. + */ +#define APEXIT_CHILDFATAL 0xf + +#ifndef AP_DECLARE +/** + * Stuff marked #AP_DECLARE is part of the API, and intended for use + * by modules. Its purpose is to allow us to add attributes that + * particular platforms or compilers require to every exported function. + */ +# define AP_DECLARE(type) type +#endif + +#ifndef AP_DECLARE_NONSTD +/** + * Stuff marked #AP_DECLARE_NONSTD is part of the API, and intended for + * use by modules. The difference between #AP_DECLARE and + * #AP_DECLARE_NONSTD is that the latter is required for any functions + * which use varargs or are used via indirect function call. This + * is to accomodate the two calling conventions in windows dlls. + */ +# define AP_DECLARE_NONSTD(type) type +#endif +#ifndef AP_DECLARE_DATA +# define AP_DECLARE_DATA +#endif + +#ifndef AP_MODULE_DECLARE +# define AP_MODULE_DECLARE(type) type +#endif +#ifndef AP_MODULE_DECLARE_NONSTD +# define AP_MODULE_DECLARE_NONSTD(type) type +#endif +#ifndef AP_MODULE_DECLARE_DATA +# define AP_MODULE_DECLARE_DATA +#endif + +/** + * @internal + * modules should not used 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 + */ + +#ifndef AP_CORE_DECLARE_NONSTD +# define AP_CORE_DECLARE_NONSTD AP_DECLARE_NONSTD +#endif + +/** + * The numeric version information is broken out into fields within this + * structure. + */ +typedef struct { + int major; /**< major number */ + int minor; /**< minor number */ + int patch; /**< patch number */ + const char *add_string; /**< additional string like "-dev" */ +} ap_version_t; + +/** + * Return httpd's version information in a numeric form. + * + * @param version Pointer to a version structure for returning the version + * information. + */ +AP_DECLARE(void) ap_get_server_revision(ap_version_t *version); + +/** + * Get the server version string + * @return The server version string + */ +AP_DECLARE(const char *) ap_get_server_version(void); + +/** + * Add a component to the version string + * @param pconf The pool to allocate the component from + * @param component The string to add + */ +AP_DECLARE(void) ap_add_version_component(apr_pool_t *pconf, const char *component); + +/** + * Get the date a time that the server was built + * @return The server build time string + */ +AP_DECLARE(const char *) ap_get_server_built(void); + +#define DECLINED -1 /**< Module declines to handle */ +#define DONE -2 /**< Module has served the response completely + * - it's safe to die() with no more output + */ +#define OK 0 /**< Module has handled this stage. */ + + +/** + * @defgroup HTTP_Status HTTP Status Codes + * @{ + */ +/** + * The size of the static array in http_protocol.c for storing + * all of the potential response status-lines (a sparse table). + * A future version should dynamically generate the apr_table_t at startup. + */ +#define RESPONSE_CODES 57 + +#define HTTP_CONTINUE 100 +#define HTTP_SWITCHING_PROTOCOLS 101 +#define HTTP_PROCESSING 102 +#define HTTP_OK 200 +#define HTTP_CREATED 201 +#define HTTP_ACCEPTED 202 +#define HTTP_NON_AUTHORITATIVE 203 +#define HTTP_NO_CONTENT 204 +#define HTTP_RESET_CONTENT 205 +#define HTTP_PARTIAL_CONTENT 206 +#define HTTP_MULTI_STATUS 207 +#define HTTP_MULTIPLE_CHOICES 300 +#define HTTP_MOVED_PERMANENTLY 301 +#define HTTP_MOVED_TEMPORARILY 302 +#define HTTP_SEE_OTHER 303 +#define HTTP_NOT_MODIFIED 304 +#define HTTP_USE_PROXY 305 +#define HTTP_TEMPORARY_REDIRECT 307 +#define HTTP_BAD_REQUEST 400 +#define HTTP_UNAUTHORIZED 401 +#define HTTP_PAYMENT_REQUIRED 402 +#define HTTP_FORBIDDEN 403 +#define HTTP_NOT_FOUND 404 +#define HTTP_METHOD_NOT_ALLOWED 405 +#define HTTP_NOT_ACCEPTABLE 406 +#define HTTP_PROXY_AUTHENTICATION_REQUIRED 407 +#define HTTP_REQUEST_TIME_OUT 408 +#define HTTP_CONFLICT 409 +#define HTTP_GONE 410 +#define HTTP_LENGTH_REQUIRED 411 +#define HTTP_PRECONDITION_FAILED 412 +#define HTTP_REQUEST_ENTITY_TOO_LARGE 413 +#define HTTP_REQUEST_URI_TOO_LARGE 414 +#define HTTP_UNSUPPORTED_MEDIA_TYPE 415 +#define HTTP_RANGE_NOT_SATISFIABLE 416 +#define HTTP_EXPECTATION_FAILED 417 +#define HTTP_UNPROCESSABLE_ENTITY 422 +#define HTTP_LOCKED 423 +#define HTTP_FAILED_DEPENDENCY 424 +#define HTTP_UPGRADE_REQUIRED 426 +#define HTTP_INTERNAL_SERVER_ERROR 500 +#define HTTP_NOT_IMPLEMENTED 501 +#define HTTP_BAD_GATEWAY 502 +#define HTTP_SERVICE_UNAVAILABLE 503 +#define HTTP_GATEWAY_TIME_OUT 504 +#define HTTP_VERSION_NOT_SUPPORTED 505 +#define HTTP_VARIANT_ALSO_VARIES 506 +#define HTTP_INSUFFICIENT_STORAGE 507 +#define HTTP_NOT_EXTENDED 510 + +/** is the status code informational */ +#define ap_is_HTTP_INFO(x) (((x) >= 100)&&((x) < 200)) +/** is the status code OK ?*/ +#define ap_is_HTTP_SUCCESS(x) (((x) >= 200)&&((x) < 300)) +/** is the status code a redirect */ +#define ap_is_HTTP_REDIRECT(x) (((x) >= 300)&&((x) < 400)) +/** is the status code a error (client or server) */ +#define ap_is_HTTP_ERROR(x) (((x) >= 400)&&((x) < 600)) +/** is the status code a client error */ +#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)) + +/** should the status code drop the connection */ +#define ap_status_drops_connection(x) \ + (((x) == HTTP_BAD_REQUEST) || \ + ((x) == HTTP_REQUEST_TIME_OUT) || \ + ((x) == HTTP_LENGTH_REQUIRED) || \ + ((x) == HTTP_REQUEST_ENTITY_TOO_LARGE) || \ + ((x) == HTTP_REQUEST_URI_TOO_LARGE) || \ + ((x) == HTTP_INTERNAL_SERVER_ERROR) || \ + ((x) == HTTP_SERVICE_UNAVAILABLE) || \ + ((x) == HTTP_NOT_IMPLEMENTED)) +/** @} */ +/** + * @defgroup Methods List of Methods recognized by the server + * @{ + */ +/** + * 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_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_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_CHECKOUT 16 /* : */ +#define M_UNCHECKOUT 17 +#define M_CHECKIN 18 +#define M_UPDATE 19 +#define M_LABEL 20 +#define M_REPORT 21 +#define M_MKWORKSPACE 22 +#define M_MKACTIVITY 23 +#define M_BASELINE_CONTROL 24 +#define M_MERGE 25 +#define M_INVALID 26 /* RFC 3253: WebDAV Versioning */ + +/** + * METHODS needs to be equal to the number of bits + * we are using for limit masks. + */ +#define METHODS 64 + +/** + * The method mask bit to shift for anding with a bitmask. + */ +#define AP_METHOD_BIT ((apr_int64_t)1) +/** @} */ + + +/** + * 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 */ + apr_int64_t method_mask; + /* the array used for extension methods */ + apr_array_header_t *method_list; +}; +/** + * @defgroup module_magic Module Magic mime types + * @{ + */ +/** Magic for mod_cgi[d] */ +#define CGI_MAGIC_TYPE "application/x-httpd-cgi" +/** Magic for mod_include */ +#define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html" +/** Magic for mod_include */ +#define INCLUDES_MAGIC_TYPE3 "text/x-server-parsed-html3" +/** Magic for mod_dir */ +#define DIR_MAGIC_TYPE "httpd/unix-directory" + +/** @} */ +/* Just in case your linefeed isn't the one the other end is expecting. */ +#if !APR_CHARSET_EBCDIC +/** linefeed */ +#define LF 10 +/** carrige return */ +#define CR 13 +/** carrige return /Line Feed Combo */ +#define CRLF "\015\012" +#else /* APR_CHARSET_EBCDIC */ +/* For platforms using the EBCDIC charset, the transition ASCII->EBCDIC is done + * in the buff package (bread/bputs/bwrite). Everywhere else, we use + * "native EBCDIC" CR and NL characters. These are therefore + * defined as + * '\r' and '\n'. + */ +#define CR '\r' +#define LF '\n' +#define CRLF "\r\n" +#endif /* APR_CHARSET_EBCDIC */ + +/** + * @defgroup values_request_rec_body Possible values for request_rec.read_body + * @{ + * Possible values for request_rec.read_body (set by handling module): + */ + +/** Send 413 error if message has any body */ +#define REQUEST_NO_BODY 0 +/** Send 411 error if body without Content-Length */ +#define REQUEST_CHUNKED_ERROR 1 +/** If chunked, remove the chunks for me. */ +#define REQUEST_CHUNKED_DECHUNK 2 +/** @} */ + +/** + * @defgroup values_request_rec_used_path_info Possible values for request_rec.used_path_info + * @{ + * Possible values for request_rec.used_path_info: + */ + +/** Accept the path_info from the request */ +#define AP_REQ_ACCEPT_PATH_INFO 0 +/** Return a 404 error if path_info was given */ +#define AP_REQ_REJECT_PATH_INFO 1 +/** Module may chose to use the given path_info */ +#define AP_REQ_DEFAULT_PATH_INFO 2 +/** @} */ + +/* + * Things which may vary per file-lookup WITHIN a request --- + * e.g., state of MIME config. Basically, the name of an object, info + * about the object, and any other info we may ahve which may need to + * change as we go poking around looking for it (e.g., overridden by + * .htaccess files). + * + * Note how the default state of almost all these things is properly + * zero, so that allocating it with pcalloc does the right thing without + * a whole lot of hairy initialization... so long as we are willing to + * make the (fairly) portable assumption that the bit pattern of a NULL + * pointer is, in fact, zero. + */ + +/** + * This represents the result of calling htaccess; these are cached for + * each request. + */ +struct htaccess_result { + /** the directory to which this applies */ + const char *dir; + /** the overrides allowed for the .htaccess file */ + int override; + /** the configuration directives */ + struct ap_conf_vector_t *htaccess; + /** the next one, or NULL if no more; N.B. never change this */ + const struct htaccess_result *next; +}; + +/* The following four types define a hierarchy of activities, so that + * given a request_rec r you can write r->connection->server->process + * to get to the process_rec. While this reduces substantially the + * number of arguments that various hooks require beware that in + * threaded versions of the server you must consider multiplexing + * issues. */ + + +/** A structure that represents one process */ +typedef struct process_rec process_rec; +/** A structure that represents a virtual server */ +typedef struct server_rec server_rec; +/** A structure that represents one connection */ +typedef struct conn_rec conn_rec; +/** A structure that represents the current request */ +typedef struct request_rec request_rec; + +/* ### would be nice to not include this from httpd.h ... */ +/* This comes after we have defined the request_rec type */ +#include "apr_uri.h" + +/** A structure that represents one process */ +struct process_rec { + /** Global pool. Cleared upon normal exit */ + apr_pool_t *pool; + /** Configuration pool. Cleared upon restart */ + apr_pool_t *pconf; + /** Number of command line arguments passed to the program */ + int argc; + /** The command line arguments */ + const char * const *argv; + /** The program name used to execute the program */ + const char *short_name; +}; + +/** A structure that represents the current request */ +struct request_rec { + /** The pool associated with the request */ + apr_pool_t *pool; + /** The connection to the client */ + conn_rec *connection; + /** The virtual host for this request */ + server_rec *server; + + /** Pointer to the redirected request if this is an external redirect */ + request_rec *next; + /** Pointer to the previous request if this is an internal redirect */ + request_rec *prev; + + /** Pointer to the main request if this is a sub-request + * (see http_request.h) */ + request_rec *main; + + /* Info about the request itself... we begin with stuff that only + * protocol.c should ever touch... + */ + /** First line of request */ + char *the_request; + /** HTTP/0.9, "simple" request (e.g. GET /foo\n w/no headers) */ + int assbackwards; + /** A proxy request (calculated during post_read_request/translate_name) + * possible values PROXYREQ_NONE, PROXYREQ_PROXY, PROXYREQ_REVERSE, + * PROXYREQ_RESPONSE + */ + int proxyreq; + /** HEAD request, as opposed to GET */ + int header_only; + /** Protocol string, as given to us, or HTTP/0.9 */ + char *protocol; + /** Protocol version number of protocol; 1.1 = 1001 */ + int proto_num; + /** Host, as set by full URI or Host: */ + const char *hostname; + + /** Time when the request started */ + apr_time_t request_time; + + /** Status line, if set by script */ + const char *status_line; + /** Status line */ + int status; + + /* Request method, two ways; also, protocol, etc.. Outside of protocol.c, + * look, but don't touch. + */ + + /** Request method (eg. GET, HEAD, POST, etc.) */ + const char *method; + /** M_GET, M_POST, etc. */ + int method_number; + + /** + * 'allowed' is a bitvector of the allowed methods. + * + * A handler must ensure that the request method is one that + * it is capable of handling. Generally modules should DECLINE + * any request methods they do not handle. Prior to aborting the + * handler like this the handler should set r->allowed to the list + * of methods that it is willing to handle. This bitvector is used + * to construct the "Allow:" header required for OPTIONS requests, + * and HTTP_METHOD_NOT_ALLOWED and HTTP_NOT_IMPLEMENTED status codes. + * + * Since the default_handler deals with OPTIONS, all modules can + * usually decline to deal with OPTIONS. TRACE is always allowed, + * modules don't need to set it explicitly. + * + * Since the default_handler will always handle a GET, a + * module which does *not* implement GET should probably return + * HTTP_METHOD_NOT_ALLOWED. Unfortunately this means that a Script GET + * handler can't be installed by mod_actions. + */ + apr_int64_t allowed; + /** Array of extension methods */ + apr_array_header_t *allowed_xmethods; + /** List of allowed methods */ + ap_method_list_t *allowed_methods; + + /** byte count in stream is for body */ + apr_off_t sent_bodyct; + /** body byte count, for easy access */ + apr_off_t bytes_sent; + /** Last modified time of the requested resource */ + apr_time_t mtime; + + /* HTTP/1.1 connection-level features */ + + /** sending chunked transfer-coding */ + int chunked; + /** The Range: header */ + const char *range; + /** The "real" content length */ + apr_off_t clength; + + /** Remaining bytes left to read from the request body */ + apr_off_t remaining; + /** Number of bytes that have been read from the request body */ + apr_off_t read_length; + /** Method for reading the request body + * (eg. REQUEST_CHUNKED_ERROR, REQUEST_NO_BODY, + * REQUEST_CHUNKED_DECHUNK, etc...) */ + int read_body; + /** reading chunked transfer-coding */ + int read_chunked; + /** is client waiting for a 100 response? */ + unsigned expecting_100; + + /* MIME header environments, in and out. Also, an array containing + * environment variables to be passed to subprocesses, so people can + * write modules to add to that environment. + * + * The difference between headers_out and err_headers_out is that the + * latter are printed even on error, and persist across internal redirects + * (so the headers printed for ErrorDocument handlers will have them). + * + * The 'notes' apr_table_t is for notes from one module to another, with no + * other set purpose in mind... + */ + + /** MIME header environment from the request */ + apr_table_t *headers_in; + /** MIME header environment for the response */ + apr_table_t *headers_out; + /** MIME header environment for the response, printed even on errors and + * persist across internal redirects */ + apr_table_t *err_headers_out; + /** Array of environment variables to be used for sub processes */ + apr_table_t *subprocess_env; + /** Notes from one module to another */ + apr_table_t *notes; + + /* content_type, handler, content_encoding, and all content_languages + * MUST be lowercased strings. They may be pointers to static strings; + * they should not be modified in place. + */ + /** The content-type for the current request */ + const char *content_type; /* Break these out --- we dispatch on 'em */ + /** The handler string that we use to call a handler function */ + const char *handler; /* What we *really* dispatch on */ + + /** How to encode the data */ + const char *content_encoding; + /** Array of strings representing the content languages */ + apr_array_header_t *content_languages; + + /** variant list validator (if negotiated) */ + char *vlist_validator; + + /** If an authentication check was made, this gets set to the user name. */ + char *user; + /** If an authentication check was made, this gets set to the auth type. */ + char *ap_auth_type; + + /** This response can not be cached */ + int no_cache; + /** There is no local copy of this response */ + int no_local_copy; + + /* What object is being requested (either directly, or via include + * or content-negotiation mapping). + */ + + /** The URI without any parsing performed */ + char *unparsed_uri; + /** The path portion of the URI, or "/" if no path provided */ + char *uri; + /** The filename on disk corresponding to this response */ + char *filename; + /* XXX: What does this mean? Please define "canonicalize" -aaron */ + /** The true filename, we canonicalize r->filename if these don't match */ + char *canonical_filename; + /** The PATH_INFO extracted from this request */ + char *path_info; + /** The QUERY_ARGS extracted from this request */ + char *args; + /** finfo.protection (st_mode) set to zero if no such file */ + apr_finfo_t finfo; + /** A struct containing the components of URI */ + apr_uri_t parsed_uri; + + /** + * Flag for the handler to accept or reject path_info on + * the current request. All modules should respect the + * AP_REQ_ACCEPT_PATH_INFO and AP_REQ_REJECT_PATH_INFO + * values, while AP_REQ_DEFAULT_PATH_INFO indicates they + * may follow existing conventions. This is set to the + * user's preference upon HOOK_VERY_FIRST of the fixups. + */ + int used_path_info; + + /* Various other config info which may change with .htaccess files + * These are config vectors, with one void* pointer for each module + * (the thing pointed to being the module's business). + */ + + /** Options set in config files, etc. */ + struct ap_conf_vector_t *per_dir_config; + /** Notes on *this* request */ + struct ap_conf_vector_t *request_config; + + /** + * A linked list of the .htaccess configuration directives + * accessed by this request. + * N.B. always add to the head of the list, _never_ to the end. + * that way, a sub request's list can (temporarily) point to a parent's list + */ + const struct htaccess_result *htaccess; + + /** A list of output filters to be used for this request */ + struct ap_filter_t *output_filters; + /** A list of input filters to be used for this request */ + struct ap_filter_t *input_filters; + + /** A list of protocol level output filters to be used for this + * request */ + struct ap_filter_t *proto_output_filters; + /** A list of protocol level input filters to be used for this + * request */ + struct ap_filter_t *proto_input_filters; + + /** A flag to determine if the eos bucket has been sent yet */ + int eos_sent; + +/* Things placed at the end of the record to avoid breaking binary + * compatibility. It would be nice to remember to reorder the entire + * record to improve 64bit alignment the next time we need to break + * binary compatibility for some other reason. + */ +}; + +/** + * @defgroup ProxyReq Proxy request types + * + * Possible values of request_rec->proxyreq. A request could be normal, + * proxied or reverse proxied. Normally proxied and reverse proxied are + * grouped together as just "proxied", but sometimes it's necessary to + * tell the difference between the two, such as for authentication. + * @{ + */ + +#define PROXYREQ_NONE 0 /**< No proxy */ +#define PROXYREQ_PROXY 1 /**< Standard proxy */ +#define PROXYREQ_REVERSE 2 /**< Reverse proxy */ +#define PROXYREQ_RESPONSE 3 /**< Origin response */ + +/* @} */ + +typedef enum { + AP_CONN_UNKNOWN, + AP_CONN_CLOSE, + AP_CONN_KEEPALIVE +} ap_conn_keepalive_e; + +/** Structure to store things which are per connection */ +struct conn_rec { + /** Pool associated with this connection */ + apr_pool_t *pool; + /** Physical vhost this conn came in on */ + server_rec *base_server; + /** used by http_vhost.c */ + void *vhost_lookup_data; + + /* Information about the connection itself */ + /** local address */ + apr_sockaddr_t *local_addr; + /** remote address */ + apr_sockaddr_t *remote_addr; + + /** Client's IP address */ + char *remote_ip; + /** Client's DNS name, if known. NULL if DNS hasn't been checked, + * "" if it has and no address was found. N.B. Only access this though + * get_remote_host() */ + char *remote_host; + /** Only ever set if doing rfc1413 lookups. N.B. Only access this through + * get_remote_logname() */ + char *remote_logname; + + /** Are we still talking? */ + unsigned aborted:1; + + /** Are we going to keep the connection alive for another request? + * @see ap_conn_keepalive_e */ + ap_conn_keepalive_e keepalive; + + /** have we done double-reverse DNS? -1 yes/failure, 0 not yet, + * 1 yes/success */ + signed int double_reverse:2; + + /** How many times have we used it? */ + int keepalives; + /** server IP address */ + char *local_ip; + /** used for ap_get_server_name when UseCanonicalName is set to DNS + * (ignores setting of HostnameLookups) */ + char *local_host; + + /** ID of this connection; unique at any point in time */ + long id; + /** Config vector containing pointers to connections per-server + * config structures. */ + struct ap_conf_vector_t *conn_config; + /** Notes on *this* connection: send note from one module to + * another. must remain valid for all requests on this conn */ + apr_table_t *notes; + /** A list of input filters to be used for this connection */ + struct ap_filter_t *input_filters; + /** A list of output filters to be used for this connection */ + struct ap_filter_t *output_filters; + /** handle to scoreboard information for this connection */ + void *sbh; + /** The bucket allocator to use for all bucket/brigade creations */ + struct apr_bucket_alloc_t *bucket_alloc; +}; + +/* Per-vhost config... */ + +/** + * The address 255.255.255.255, when used as a virtualhost address, + * will become the "default" server when the ip doesn't match other vhosts. + */ +#define DEFAULT_VHOST_ADDR 0xfffffffful + + +/** 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 */ + server_addr_rec *next; + /** The bound address, for this server */ + apr_sockaddr_t *host_addr; + /** The bound port, for this server */ + apr_port_t host_port; + /** The name given in */ + char *virthost; +}; + +/** A structure to store information for each virtual server */ +struct server_rec { + /** The process this server is running in */ + process_rec *process; + /** The next server in the list */ + server_rec *next; + + /** The name of the server */ + const char *defn_name; + /** The line of the config file that the server was defined on */ + unsigned defn_line_number; + + /* Contact information */ + + /** The admin's contact information */ + char *server_admin; + /** The server hostname */ + char *server_hostname; + /** for redirects, etc. */ + apr_port_t port; + + /* Log files --- note that transfer log is now in the modules... */ + + /** The name of the error log */ + char *error_fname; + /** A file descriptor that references the error log */ + apr_file_t *error_log; + /** The log level for this server */ + int loglevel; + + /* Module-specific configuration for server, and defaults... */ + + /** true if this is the virtual server */ + int is_virtual; + /** Config vector containing pointers to modules' per-server config + * structures. */ + struct ap_conf_vector_t *module_config; + /** MIME type info, etc., before we start checking per-directory info */ + struct ap_conf_vector_t *lookup_defaults; + + /* Transaction handling */ + + /** I haven't got a clue */ + server_addr_rec *addrs; + /** Timeout, as an apr interval, before we give up */ + apr_interval_time_t timeout; + /** The apr interval we will wait for another request */ + apr_interval_time_t keep_alive_timeout; + /** Maximum requests per connection */ + int keep_alive_max; + /** Use persistent connections? */ + int keep_alive; + + /** Pathname for ServerPath */ + const char *path; + /** Length of path */ + int pathlen; + + /** Normal names for ServerAlias servers */ + apr_array_header_t *names; + /** Wildcarded names for ServerAlias servers */ + apr_array_header_t *wild_names; + + /** limit on size of the HTTP request line */ + int limit_req_line; + /** limit on size of any request header field */ + int limit_req_fieldsize; + /** limit on number of request header fields */ + int limit_req_fields; +}; + +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 + */ +} core_output_filter_ctx_t; + +typedef struct core_filter_ctx { + apr_bucket_brigade *b; + apr_bucket_brigade *tmpbb; +} core_ctx_t; + +typedef struct core_net_rec { + /** Connection to the client */ + apr_socket_t *client_socket; + + /** connection record */ + conn_rec *c; + + core_output_filter_ctx_t *out_ctx; + core_ctx_t *in_ctx; +} core_net_rec; + +/** + * Examine a field value (such as a media-/content-type) string and return + * it sans any parameters; e.g., strip off any ';charset=foo' and the like. + * @param p Pool to allocate memory from + * @param intype The field to examine + * @return A copy of the field minus any parameters + */ +AP_DECLARE(char *) ap_field_noparam(apr_pool_t *p, const char *intype); + +/** + * Convert a time from an integer into a string in a specified format + * @param p The pool to allocate memory from + * @param t The time to convert + * @param fmt The format to use for the conversion + * @param gmt Convert the time for GMT? + * @return The string that represents the specified time + */ +AP_DECLARE(char *) ap_ht_time(apr_pool_t *p, apr_time_t t, const char *fmt, int gmt); + +/* String handling. The *_nc variants allow you to use non-const char **s as + arguments (unfortunately C won't automatically convert a char ** to a const + char **) */ + +/** + * Get the characters until the first occurance of a specified character + * @param p The pool to allocate memory from + * @param line The string to get the characters from + * @param stop The character to stop at + * @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 + * @param line The string to get the characters from + * @param stop The character to stop at + * @return A copy of the characters up to the first stop character + * @note This is the same as ap_getword(), except it doesn't use const char **. + */ +AP_DECLARE(char *) ap_getword_nc(apr_pool_t *p, char **line, char stop); + +/** + * 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 + */ +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 **. + */ +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' + * @param p The pool to allocate memory from + * @param line The line to traverse + * @param stop The character to start at + * @return A copy of all caracters after the first occurance of the specified + * character + */ +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' + * @param p The pool to allocate memory from + * @param line The line to traverse + * @param stop The character to start at + * @return A copy of all caracters after the first occurance of the specified + * character + * @note The same as ap_getword_nulls(), except it doesn't use const char **. + */ +AP_DECLARE(char *) ap_getword_nulls_nc(apr_pool_t *p, char **line, char stop); + +/** + * Get the second word in the string paying attention to quoting + * @param p The pool to allocate from + * @param line The line to traverse + * @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 + * @param line The line to traverse + * @return A copy of the string + * @note The same as ap_getword_conf(), except it doesn't use const char **. + */ +AP_DECLARE(char *) ap_getword_conf_nc(apr_pool_t *p, char **line); + +/** + * Check a string for any ${ENV} environment variable construct and replace + * each them by the value of that environment variable, if it exists. If the + * environment value does not exist, leave the ${ENV} construct alone; it + * means something else. + * @param p The pool to allocate from + * @param word The string to check + * @return The string with the replaced environment variables + */ +AP_DECLARE(const char *) ap_resolve_env(apr_pool_t *p, const char * word); + +/** + * Size an HTTP header field list item, as separated by a comma. + * @param field The field to size + * @param len The length of the field + * @return The return value is a pointer to the beginning of the non-empty + * list item within the original string (or NULL if there is none) and the + * address of field is shifted to the next non-comma, non-whitespace + * character. len is the length of the item excluding any beginning whitespace. + */ +AP_DECLARE(const char *) ap_size_list_item(const char **field, int *len); + +/** + * Retrieve an HTTP header field list item, as separated by a comma, + * while stripping insignificant whitespace and lowercasing anything not in + * a quoted string or comment. + * @param p The pool to allocate from + * @param field The field to retrieve + * @return The return value is a new string containing the converted list + * item (or NULL if none) and the address pointed to by field is + * shifted to the next non-comma, non-whitespace. + */ +AP_DECLARE(char *) ap_get_list_item(apr_pool_t *p, const char **field); + +/** + * Find an item in canonical form (lowercase, no extra spaces) within + * an HTTP field value list. + * @param p The pool to allocate from + * @param line The field value list to search + * @param tok The token to search for + * @return 1 if found, 0 if not found. + */ +AP_DECLARE(int) ap_find_list_item(apr_pool_t *p, const char *line, const char *tok); + +/** + * Retrieve a token, spacing over it and returning a pointer to + * the first non-white byte afterwards. Note that these tokens + * are delimited by semis and commas and can also be delimited + * by whitespace at the caller's option. + * @param p The pool to allocate from + * @param accept_line The line to retrieve the token from + * @param accept_white Is it delimited by whitespace + * @return the first non-white byte after the token + */ +AP_DECLARE(char *) ap_get_token(apr_pool_t *p, const char **accept_line, int accept_white); + +/** + * Find http tokens, see the definition of token from RFC2068 + * @param p The pool to allocate from + * @param line The line to find the token + * @param tok The token to find + * @return 1 if the token is found, 0 otherwise + */ +AP_DECLARE(int) ap_find_token(apr_pool_t *p, const char *line, const char *tok); + +/** + * find http tokens from the end of the line + * @param p The pool to allocate from + * @param line The line to find the token + * @param tok The token to find + * @return 1 if the token is found, 0 otherwise + */ +AP_DECLARE(int) ap_find_last_token(apr_pool_t *p, const char *line, const char *tok); + +/** + * Check for an Absolute URI syntax + * @param u The string to check + * @return 1 if URI, 0 otherwise + */ +AP_DECLARE(int) ap_is_url(const char *u); + +/** + * Unescape a URL + * @param url The url to unescape + * @return 0 on success, non-zero otherwise + */ +AP_DECLARE(int) ap_unescape_url(char *url); +/** + * Unescape a URL, but leaving %2f (slashes) escaped + * @param url The url to unescape + * @return 0 on success, non-zero otherwise + */ +AP_DECLARE(int) ap_unescape_url_keep2f(char *url); +/** + * Convert all double slashes to single slashes + * @param name The string to convert + */ +AP_DECLARE(void) ap_no2slash(char *name); + +/** + * Remove all ./ and xx/../ substrings from a file name. Also remove + * any leading ../ or /../ substrings. + * @param name the file name to parse + */ +AP_DECLARE(void) ap_getparents(char *name); + +/** + * Escape a path segment, as defined in RFC 1808 + * @param p The pool to allocate from + * @param s The path to convert + * @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 + * @param path The path to convert + * @param partial if set, assume that the path will be appended to something + * with a '/' in it (and thus does not prefix "./") + * @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) + +/** + * Escape an html string + * @param p The pool to allocate from + * @param s The html to escape + * @return The escaped string + */ +AP_DECLARE(char *) ap_escape_html(apr_pool_t *p, const char *s); + +/** + * Escape a string for logging + * @param p The pool to allocate from + * @param str The string to escape + * @return The escaped string + */ +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) + * @return The len of the escaped string (always < maxlen) + */ +AP_DECLARE(apr_size_t) ap_escape_errorlog_item(char *dest, const char *source, + apr_size_t buflen); + +/** + * Construct a full hostname + * @param p The pool to allocate from + * @param hostname The hostname of the server + * @param port The port the server is running on + * @param r The current request + * @return The server's hostname + */ +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 + * @param s The command to escape + * @return The escaped shell command + */ +AP_DECLARE(char *) ap_escape_shell_cmd(apr_pool_t *p, const char *s); + +/** + * Count the number of directories in a path + * @param path The path to count + * @return The number of directories + */ +AP_DECLARE(int) ap_count_dirs(const char *path); + +/** + * Copy at most @a n leading directories of @a s into @a d. @a d + * should be at least as large as @a s plus 1 extra byte + * + * @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 + * @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. */ +AP_DECLARE(char *) ap_make_dirstr_prefix(char *d, const char *s, int n); + +/** + * Return the parent directory name (including trailing /) of the file + * @a s + * @param p The pool to allocate from + * @param s The file to get the parent of + * @return A copy of the file's parent directory + */ +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 + * 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 + * names that need to remain canonical, unless you are merging an apr_dir_read + * path and returned filename. Otherwise, the result is not canonical. + */ +AP_DECLARE(char *) ap_make_full_path(apr_pool_t *a, const char *dir, const char *f); + +/** + * 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 + * multiple forms of absolute paths. This only reports if the path is absolute + * in a canonical sense. + */ +AP_DECLARE(int) ap_os_is_path_absolute(apr_pool_t *p, const char *dir); + +/** + * Does the provided string contain wildcard characters? This is useful + * for determining if the string should be passed to strcmp_match or to strcmp. + * The only wildcard characters recognized are '?' and '*' + * @param str The string to check + * @return 1 if the string has wildcards, 0 otherwise + */ +AP_DECLARE(int) ap_is_matchexp(const char *str); + +/** + * Determine if a string matches a patterm 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 '*', + * ignoring case + * @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_strcasecmp_match(const char *str, const char *expected); + +/** + * Find the first occurrence of the substring s2 in s1, regardless of case + * @param s1 The string to search + * @param s2 The substring to search for + * @return A pointer to the beginning of the substring + * @remark See apr_strmatch() for a faster alternative + */ +AP_DECLARE(char *) ap_strcasestr(const char *s1, const char *s2); + +/** + * Return a pointer to the location inside of bigstring immediately after prefix + * @param bigstring The input string + * @param prefix The prefix to strip away + * @return A pointer relative to bigstring after prefix + */ +AP_DECLARE(const char *) ap_stripprefix(const char *bigstring, + const char *prefix); + +/** + * Decode a base64 encoded string into memory allocated from a pool + * @param p The pool to allocate from + * @param bufcoded The encoded string + * @return The decoded string + */ +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 + * @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 + * not required + * @li #REG_NEWLINE - Match-any-character operators don't match new-line + * @return The compiled regular expression + */ +AP_DECLARE(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 + * @param reg The regular expression to free + */ +AP_DECLARE(void) ap_pregfree(apr_pool_t *p, regex_t *reg); + +/** + * Match a null-terminated string against a pre-compiled regex. + * @param preg The pre-compiled regex + * @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: + * @li #REG_NOTBOL - match-beginning-of-line operator always + * fails to match + * @li #REG_NOTEOL - match-end-of-line operator always fails to match + * @return 0 for successful match, #REG_NOMATCH otherwise + */ +AP_DECLARE(int) ap_regexec(regex_t *preg, const char *string, + size_t nmatch, regmatch_t pmatch[], int eflags); + +/** + * Return the error code returned by regcomp or regexec into error messages + * @param errcode the error code returned by regexec or regcomp + * @param preg The precompiled regex + * @param errbuf A buffer to store the error in + * @param errbuf_size The size of the buffer + */ +AP_DECLARE(size_t) ap_regerror(int errcode, const regex_t *preg, + char *errbuf, size_t errbuf_size); + +/** + * 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 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 + */ +AP_DECLARE(char *) ap_pregsub(apr_pool_t *p, const char *input, const char *source, + size_t nmatch, regmatch_t pmatch[]); + +/** + * We want to downcase the type/subtype for comparison purposes + * but nothing else because ;parameter=foo values are case sensitive. + * @param s The content-type to convert to lowercase + */ +AP_DECLARE(void) ap_content_type_tolower(char *s); + +/** + * convert a string to all lowercase + * @param s The string to convert to lowercase + */ +AP_DECLARE(void) ap_str_tolower(char *s); + +/** + * Search a string from left to right for the first occurrence of a + * specific character + * @param str The string to search + * @param c The character to search for + * @return The index of the first occurrence of c in str + */ +AP_DECLARE(int) ap_ind(const char *str, char c); /* Sigh... */ + +/** + * Search a string from right to left for the first occurrence of a + * specific character + * @param str The string to search + * @param c The character to search for + * @return The index of the first occurrence of c in str + */ +AP_DECLARE(int) ap_rind(const char *str, char c); + +/** + * Given a string, replace any bare " with \" . + * @param p The pool to allocate memory from + * @param instring The string to search for " + * @return A copy of the string with escaped quotes + */ +AP_DECLARE(char *) ap_escape_quotes(apr_pool_t *p, const char *instring); + +/* Misc system hackery */ +/** + * Given the name of an object in the file system determine if it is a directory + * @param p The pool to allocate from + * @param name The name of the object to check + * @return 1 if it is a directory, 0 otherwise + */ +AP_DECLARE(int) ap_is_rdirectory(apr_pool_t *p, const char *name); + +/** + * Given the name of an object in the file system determine if it is a directory - this version is symlink aware + * @param p The pool to allocate from + * @param name The name of the object to check + * @return 1 if it is a directory, 0 otherwise + */ +AP_DECLARE(int) ap_is_directory(apr_pool_t *p, const char *name); + +#ifdef _OSD_POSIX +extern const char *os_set_account(apr_pool_t *p, const char *account); +extern int os_init_job_environment(server_rec *s, const char *user_name, int one_process); +#endif /* _OSD_POSIX */ + +/** + * Determine the local host name for the current machine + * @param p The pool to allocate from + * @return A copy of the local host name + */ +char *ap_get_local_host(apr_pool_t *p); + +/** + * Log an assertion to the error log + * @param szExp The assertion that failed + * @param szFile The file the assertion is in + * @param nLine The line the assertion is defined on + */ +AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine) + __attribute__((noreturn)); + +/** @internal */ +#define ap_assert(exp) ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__)) + +/** + * Redefine assert() to something more useful for an Apache... + * + * Use ap_assert() if the condition should always be checked. + * 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 +#define AP_DEBUG_ASSERT(exp) ((void)0) +#endif + +/** + * @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 + * with gdb and continue. This is important in cases where one_process + * debugging isn't possible. + */ +/** stop on a Detach */ +#define SIGSTOP_DETACH 1 +/** stop making a child process */ +#define SIGSTOP_MAKE_CHILD 2 +/** stop spawning a child process */ +#define SIGSTOP_SPAWN_CHILD 4 +/** stop spawning a child process with a piped log */ +#define SIGSTOP_PIPED_LOG_SPAWN 8 +/** stop spawning a CGI child process */ +#define SIGSTOP_CGI_CHILD 16 + +/** Macro to get GDB started */ +#ifdef DEBUG_SIGSTOP +extern int raise_sigstop_flags; +#define RAISE_SIGSTOP(x) do { \ + if (raise_sigstop_flags & SIGSTOP_##x) raise(SIGSTOP);\ + } while (0) +#else +#define RAISE_SIGSTOP(x) +#endif +/** @} */ +/** + * Get HTML describing the address and (optionally) admin of the server. + * @param prefix Text which is prepended to the return value + * @param r The request_rec + * @return HTML describing the server, allocated in @a r's pool. + */ +AP_DECLARE(const char *) ap_psignature(const char *prefix, request_rec *r); + +/** strtoul does not exist on sunos4. */ +#ifdef strtoul +#undef strtoul +#endif +#define strtoul strtoul_is_not_a_portable_function_use_strtol_instead + + /* The C library has functions that allow const to be silently dropped ... + these macros detect the drop in maintainer mode, but use the native + methods for normal builds + + Note that on some platforms (e.g., AIX with gcc, Solaris with gcc), string.h needs + to be included before the macros are defined or compilation will fail. + */ +#include + +AP_DECLARE(char *) ap_strchr(char *s, int c); +AP_DECLARE(const char *) ap_strchr_c(const char *s, int c); +AP_DECLARE(char *) ap_strrchr(char *s, int c); +AP_DECLARE(const char *) ap_strrchr_c(const char *s, int c); +AP_DECLARE(char *) ap_strstr(char *s, const char *c); +AP_DECLARE(const char *) ap_strstr_c(const char *s, const char *c); + +#ifdef AP_DEBUG + +#undef strchr +# define strchr(s, c) ap_strchr(s,c) +#undef strrchr +# define strrchr(s, c) ap_strrchr(s,c) +#undef strstr +# define strstr(s, c) ap_strstr(s,c) + +#else + +/** use this instead of strchr */ +# define ap_strchr(s, c) strchr(s, c) +/** use this instead of strchr */ +# define ap_strchr_c(s, c) strchr(s, c) +/** use this instead of strrchr */ +# define ap_strrchr(s, c) strrchr(s, c) +/** use this instead of strrchr */ +# define ap_strrchr_c(s, c) strrchr(s, c) +/** use this instead of strrstr*/ +# define ap_strstr(s, c) strstr(s, c) +/** use this instead of strrstr*/ +# define ap_strstr_c(s, c) strstr(s, c) + +#endif + +#define AP_NORESTART APR_OS_START_USEERR + 1 + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_HTTPD_H */ diff --git a/rubbos/app/apache2/include/mod_cgi.h b/rubbos/app/apache2/include/mod_cgi.h new file mode 100644 index 00000000..9a54895a --- /dev/null +++ b/rubbos/app/apache2/include/mod_cgi.h @@ -0,0 +1,62 @@ +/* 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. + */ + +#ifndef _MOD_CGI_H +#define _MOD_CGI_H 1 + +#include "mod_include.h" + +#define AP_PROC_DETACHED 1 +#define AP_PROC_NEWADDRSPACE 2 + +typedef enum {RUN_AS_SSI, RUN_AS_CGI} prog_types; + +typedef struct { + apr_int32_t in_pipe; + apr_int32_t out_pipe; + apr_int32_t err_pipe; + int process_cgi; + apr_cmdtype_e cmd_type; + apr_int32_t detached; /* used as a bitfield for detached_ & addrspace_set, */ + /* when initializing apr_proc_attr structure */ + prog_types prog_type; + apr_bucket_brigade **bb; + include_ctx_t *ctx; + ap_filter_t *next; +} cgi_exec_info_t; + +/** + * Registerable optional function to override CGI behavior; + * Reprocess the command and arguments to execute the given CGI script. + * @param cmd Pointer to the command to execute (may be overridden) + * @param argv Pointer to the arguments to pass (may be overridden) + * @param r The current request + * @param p The pool to allocate correct cmd/argv elements within. + * @param process_cgi Set true if processing r->filename and r->args + * as a CGI invocation, otherwise false + * @param type Set to APR_SHELLCMD or APR_PROGRAM on entry, may be + * changed to invoke the program with alternate semantics. + * @param detach Should the child start in detached state? Default is no. + * @remark This callback may be registered by the os-specific module + * to correct the command and arguments for apr_proc_create invocation + * on a given os. mod_cgi will call the function if registered. + */ +APR_DECLARE_OPTIONAL_FN(apr_status_t, ap_cgi_build_command, + (const char **cmd, const char ***argv, + request_rec *r, apr_pool_t *p, + cgi_exec_info_t *e_info)); + +#endif /* _MOD_CGI_H */ diff --git a/rubbos/app/apache2/include/mod_core.h b/rubbos/app/apache2/include/mod_core.h new file mode 100644 index 00000000..093f38d1 --- /dev/null +++ b/rubbos/app/apache2/include/mod_core.h @@ -0,0 +1,80 @@ +/* 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. + */ + +#ifndef MOD_CORE_H +#define MOD_CORE_H + +#include "apr.h" +#include "apr_buckets.h" + +#include "httpd.h" +#include "util_filter.h" + + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package mod_core private header file + */ + +/* Handles for core filters */ +extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_input_filter_handle; +extern AP_DECLARE_DATA ap_filter_rec_t *ap_http_header_filter_handle; +extern AP_DECLARE_DATA ap_filter_rec_t *ap_chunk_filter_handle; +extern AP_DECLARE_DATA ap_filter_rec_t *ap_byterange_filter_handle; + +/* + * These (input) filters are internal to the mod_core operation. + */ +apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, + ap_input_mode_t mode, apr_read_type_e block, + apr_off_t readbytes); + +char *ap_response_code_string(request_rec *r, int error_index); + +/** + * Send the minimal part of an HTTP response header. + * @param r The current request + * @param bb The brigade to add the header to. + * @warning Modules should be very careful about using this, and should + * the default behavior. Much of the HTTP/1.1 implementation + * correctness depends on the full headers. + * @deffunc void ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb) + */ +AP_DECLARE(void) ap_basic_http_header(request_rec *r, apr_bucket_brigade *bb); + +/** + * Send an appropriate response to an http TRACE request. + * @param r The current request + * @tip returns DONE or the HTTP status error if it handles the TRACE, + * or DECLINED if the request was not for TRACE. + * request method was not TRACE. + */ +AP_DECLARE_NONSTD(int) ap_send_http_trace(request_rec *r); + +/** + * Send an appropriate response to an http OPTIONS request. + * @param r The current request + */ +AP_DECLARE(int) ap_send_http_options(request_rec *r); + +#ifdef __cplusplus +} +#endif + +#endif /* !MOD_CORE_H */ diff --git a/rubbos/app/apache2/include/mod_dav.h b/rubbos/app/apache2/include/mod_dav.h new file mode 100644 index 00000000..0fb9ac9b --- /dev/null +++ b/rubbos/app/apache2/include/mod_dav.h @@ -0,0 +1,2420 @@ +/* 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. + */ + +/* +** DAV extension module for Apache 2.0.* +*/ + +#ifndef _MOD_DAV_H_ +#define _MOD_DAV_H_ + +#include "apr_hooks.h" +#include "apr_hash.h" +#include "apr_dbm.h" +#include "apr_tables.h" + +#include "httpd.h" +#include "util_filter.h" +#include "util_xml.h" + +#include /* for INT_MAX */ +#include /* for time_t */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#define DAV_VERSION AP_SERVER_BASEREVISION + +#define DAV_XML_HEADER "" +#define DAV_XML_CONTENT_TYPE "text/xml; charset=\"utf-8\"" + +#define DAV_READ_BLOCKSIZE 2048 /* used for reading input blocks */ + +#define DAV_RESPONSE_BODY_1 "\n\n" +#define DAV_RESPONSE_BODY_2 "\n\n

" +#define DAV_RESPONSE_BODY_3 "

\n

" +#define DAV_RESPONSE_BODY_4 "

\n" +#define DAV_RESPONSE_BODY_5 "\n" + +#define DAV_DO_COPY 0 +#define DAV_DO_MOVE 1 + + +#if 1 +#define DAV_DEBUG 1 +#define DEBUG_CR "\n" +#define DBG0(f) ap_log_error(APLOG_MARK, \ + APLOG_ERR, 0, NULL, (f)) +#define DBG1(f,a1) ap_log_error(APLOG_MARK, \ + APLOG_ERR, 0, NULL, f, a1) +#define DBG2(f,a1,a2) ap_log_error(APLOG_MARK, \ + APLOG_ERR, 0, NULL, f, a1, a2) +#define DBG3(f,a1,a2,a3) ap_log_error(APLOG_MARK, \ + APLOG_ERR, 0, NULL, f, a1, a2, a3) +#else +#undef DAV_DEBUG +#define DEBUG_CR "" +#endif + +#define DAV_INFINITY INT_MAX /* for the Depth: header */ + +/* Create a set of DAV_DECLARE(type), DAV_DECLARE_NONSTD(type) and + * DAV_DECLARE_DATA with appropriate export and import tags for the platform + */ +#if !defined(WIN32) +#define DAV_DECLARE(type) type +#define DAV_DECLARE_NONSTD(type) type +#define DAV_DECLARE_DATA +#elif defined(DAV_DECLARE_STATIC) +#define DAV_DECLARE(type) type __stdcall +#define DAV_DECLARE_NONSTD(type) type +#define DAV_DECLARE_DATA +#elif defined(DAV_DECLARE_EXPORT) +#define DAV_DECLARE(type) __declspec(dllexport) type __stdcall +#define DAV_DECLARE_NONSTD(type) __declspec(dllexport) type +#define DAV_DECLARE_DATA __declspec(dllexport) +#else +#define DAV_DECLARE(type) __declspec(dllimport) type __stdcall +#define DAV_DECLARE_NONSTD(type) __declspec(dllimport) type +#define DAV_DECLARE_DATA __declspec(dllimport) +#endif + +/* -------------------------------------------------------------------- +** +** ERROR MANAGEMENT +*/ + +/* +** dav_error structure. +** +** In most cases, mod_dav uses a pointer to a dav_error structure. If the +** pointer is NULL, then no error has occurred. +** +** In certain cases, a dav_error structure is directly used. In these cases, +** a status value of 0 means that an error has not occurred. +** +** Note: this implies that status != 0 whenever an error occurs. +** +** The desc field is optional (it may be NULL). When NULL, it typically +** implies that Apache has a proper description for the specified status. +*/ +typedef struct dav_error { + int status; /* suggested HTTP status (0 for no error) */ + int error_id; /* DAV-specific error ID */ + const char *desc; /* DAV:responsedescription and error log */ + + int save_errno; /* copy of errno causing the error */ + + const char *namespace; /* [optional] namespace of error */ + const char *tagname; /* name of error-tag */ + + struct dav_error *prev; /* previous error (in stack) */ + +} dav_error; + +/* +** Create a new error structure. save_errno will be filled with the current +** errno value. +*/ +DAV_DECLARE(dav_error*) dav_new_error(apr_pool_t *p, int status, + int error_id, const char *desc); + + +/* +** Create a new error structure with tagname and (optional) namespace; +** namespace may be NULL, which means "DAV:". save_errno will be +** filled with the current errno value. +*/ +DAV_DECLARE(dav_error*) dav_new_error_tag(apr_pool_t *p, int status, + int error_id, const char *desc, + const char *namespace, + const char *tagname); + + +/* +** Push a new error description onto the stack of errors. +** +** This function is used to provide an additional description to an existing +** error. +** +** should contain the caller's view of what the current status is, +** given the underlying error. If it doesn't have a better idea, then the +** caller should pass prev->status. +** +** can specify a new error_id since the topmost description has +** changed. +*/ +DAV_DECLARE(dav_error*) dav_push_error(apr_pool_t *p, int status, int error_id, + const char *desc, dav_error *prev); + + +/* error ID values... */ + +/* IF: header errors */ +#define DAV_ERR_IF_PARSE 100 /* general parsing error */ +#define DAV_ERR_IF_MULTIPLE_NOT 101 /* multiple "Not" found */ +#define DAV_ERR_IF_UNK_CHAR 102 /* unknown char in header */ +#define DAV_ERR_IF_ABSENT 103 /* no locktokens given */ +#define DAV_ERR_IF_TAGGED 104 /* in parsing tagged-list */ +#define DAV_ERR_IF_UNCLOSED_PAREN 105 /* in no-tagged-list */ + +/* Prop DB errors */ +#define DAV_ERR_PROP_BAD_MAJOR 200 /* major version was wrong */ +#define DAV_ERR_PROP_READONLY 201 /* prop is read-only */ +#define DAV_ERR_PROP_NO_DATABASE 202 /* writable db not avail */ +#define DAV_ERR_PROP_NOT_FOUND 203 /* prop not found */ +#define DAV_ERR_PROP_BAD_LOCKDB 204 /* could not open lockdb */ +#define DAV_ERR_PROP_OPENING 205 /* problem opening propdb */ +#define DAV_ERR_PROP_EXEC 206 /* problem exec'ing patch */ + +/* Predefined DB errors */ +/* ### any to define?? */ + +/* Predefined locking system errors */ +#define DAV_ERR_LOCK_OPENDB 400 /* could not open lockdb */ +#define DAV_ERR_LOCK_NO_DB 401 /* no database defined */ +#define DAV_ERR_LOCK_CORRUPT_DB 402 /* DB is corrupt */ +#define DAV_ERR_LOCK_UNK_STATE_TOKEN 403 /* unknown State-token */ +#define DAV_ERR_LOCK_PARSE_TOKEN 404 /* bad opaquelocktoken */ +#define DAV_ERR_LOCK_SAVE_LOCK 405 /* err saving locks */ + +/* +** Some comments on Error ID values: +** +** The numbers do not necessarily need to be unique. Uniqueness simply means +** that two errors that have not been predefined above can be distinguished +** from each other. At the moment, mod_dav does not use this distinguishing +** feature, but it could be used in the future to collapse elements +** into groups based on the error ID (and associated responsedescription). +** +** If a compute_desc is provided, then the error ID should be unique within +** the context of the compute_desc function (so the function can figure out +** what to filled into the desc). +** +** Basically, subsystems can ignore defining new error ID values if they want +** to. The subsystems *do* need to return the predefined errors when +** appropriate, so that mod_dav can figure out what to do. Subsystems can +** simply leave the error ID field unfilled (zero) if there isn't an error +** that must be placed there. +*/ + + +/* -------------------------------------------------------------------- +** +** HOOK STRUCTURES +** +** These are here for forward-declaration purposes. For more info, see +** the section title "HOOK HANDLING" for more information, plus each +** structure definition. +*/ + +/* forward-declare this structure */ +typedef struct dav_hooks_propdb dav_hooks_propdb; +typedef struct dav_hooks_locks dav_hooks_locks; +typedef struct dav_hooks_vsn dav_hooks_vsn; +typedef struct dav_hooks_repository dav_hooks_repository; +typedef struct dav_hooks_liveprop dav_hooks_liveprop; +typedef struct dav_hooks_binding dav_hooks_binding; +typedef struct dav_hooks_search dav_hooks_search; + +/* ### deprecated name */ +typedef dav_hooks_propdb dav_hooks_db; + + +/* -------------------------------------------------------------------- +** +** RESOURCE HANDLING +*/ + +/* +** Resource Types: +** The base protocol defines only file and collection resources. +** The versioning protocol defines several additional resource types +** to represent artifacts of a version control system. +** +** This enumeration identifies the type of URL used to identify the +** resource. Since the same resource may have more than one type of +** URL which can identify it, dav_resource_type cannot be used +** alone to determine the type of the resource; attributes of the +** dav_resource object must also be consulted. +*/ +typedef enum { + DAV_RESOURCE_TYPE_UNKNOWN, + + DAV_RESOURCE_TYPE_REGULAR, /* file or collection; could be + * unversioned, or version selector, + * or baseline selector */ + + DAV_RESOURCE_TYPE_VERSION, /* version or baseline URL */ + + DAV_RESOURCE_TYPE_HISTORY, /* version or baseline history URL */ + + DAV_RESOURCE_TYPE_WORKING, /* working resource URL */ + + DAV_RESOURCE_TYPE_WORKSPACE, /* workspace URL */ + + DAV_RESOURCE_TYPE_ACTIVITY, /* activity URL */ + + DAV_RESOURCE_TYPE_PRIVATE /* repository-private type */ + +} dav_resource_type; + +/* +** Opaque, repository-specific information for a resource. +*/ +typedef struct dav_resource_private dav_resource_private; + +/* +** Resource descriptor, generated by a repository provider. +** +** Note: the lock-null state is not explicitly represented here, +** since it may be expensive to compute. Use dav_get_resource_state() +** to determine whether a non-existent resource is a lock-null resource. +** +** A quick explanation of how the flags can apply to different resources: +** +** unversioned file or collection: +** type = DAV_RESOURCE_TYPE_REGULAR +** exists = ? (1 if exists) +** collection = ? (1 if collection) +** versioned = 0 +** baselined = 0 +** working = 0 +** +** version-controlled resource or configuration: +** type = DAV_RESOURCE_TYPE_REGULAR +** exists = 1 +** collection = ? (1 if collection) +** versioned = 1 +** baselined = ? (1 if configuration) +** working = ? (1 if checked out) +** +** version/baseline history: +** type = DAV_RESOURCE_TYPE_HISTORY +** exists = 1 +** collection = 0 +** versioned = 0 +** baselined = 0 +** working = 0 +** +** version/baseline: +** type = DAV_RESOURCE_TYPE_VERSION +** exists = 1 +** collection = ? (1 if collection) +** versioned = 1 +** baselined = ? (1 if baseline) +** working = 0 +** +** working resource: +** type = DAV_RESOURCE_TYPE_WORKING +** exists = 1 +** collection = ? (1 if collection) +** versioned = 1 +** baselined = 0 +** working = 1 +** +** workspace: +** type = DAV_RESOURCE_TYPE_WORKSPACE +** exists = ? (1 if exists) +** collection = 1 +** versioned = ? (1 if version-controlled) +** baselined = ? (1 if baseline-controlled) +** working = ? (1 if checked out) +** +** activity: +** type = DAV_RESOURCE_TYPE_ACTIVITY +** exists = ? (1 if exists) +** collection = 0 +** versioned = 0 +** baselined = 0 +** working = 0 +*/ +typedef struct dav_resource { + dav_resource_type type; + + int exists; /* 0 => null resource */ + + int collection; /* 0 => file; can be 1 for + * REGULAR, VERSION, and WORKING resources, + * and is always 1 for WORKSPACE */ + + int versioned; /* 0 => unversioned; can be 1 for + * REGULAR and WORKSPACE resources, + * and is always 1 for VERSION and WORKING */ + + int baselined; /* 0 => not baselined; can be 1 for + * REGULAR, VERSION, and WORKSPACE resources; + * versioned == 1 when baselined == 1 */ + + int working; /* 0 => not checked out; can be 1 for + * REGULAR and WORKSPACE resources, + * and is always 1 for WORKING */ + + const char *uri; /* the URI for this resource */ + + dav_resource_private *info; /* the provider's private info */ + + const dav_hooks_repository *hooks; /* hooks used for this resource */ + + /* When allocating items related specifically to this resource, the + following pool should be used. Its lifetime will be at least as + long as the dav_resource structure. */ + apr_pool_t *pool; + +} dav_resource; + +/* +** Lock token type. Lock providers define the details of a lock token. +** However, all providers are expected to at least be able to parse +** the "opaquelocktoken" scheme, which is represented by a uuid_t. +*/ +typedef struct dav_locktoken dav_locktoken; + + +/* -------------------------------------------------------------------- +** +** BUFFER HANDLING +** +** These buffers are used as a lightweight buffer reuse mechanism. Apache +** provides sub-pool creation and destruction to much the same effect, but +** the sub-pools are a bit more general and heavyweight than these buffers. +*/ + +/* buffer for reuse; can grow to accomodate needed size */ +typedef struct +{ + apr_size_t alloc_len; /* how much has been allocated */ + apr_size_t cur_len; /* how much is currently being used */ + char *buf; /* buffer contents */ +} dav_buffer; +#define DAV_BUFFER_MINSIZE 256 /* minimum size for buffer */ +#define DAV_BUFFER_PAD 64 /* amount of pad when growing */ + +/* set the cur_len to the given size and ensure space is available */ +DAV_DECLARE(void) dav_set_bufsize(apr_pool_t *p, dav_buffer *pbuf, + apr_size_t size); + +/* initialize a buffer and copy the specified (null-term'd) string into it */ +DAV_DECLARE(void) dav_buffer_init(apr_pool_t *p, dav_buffer *pbuf, + const char *str); + +/* check that the buffer can accomodate more bytes */ +DAV_DECLARE(void) dav_check_bufsize(apr_pool_t *p, dav_buffer *pbuf, + apr_size_t extra_needed); + +/* append a string to the end of the buffer, adjust length */ +DAV_DECLARE(void) dav_buffer_append(apr_pool_t *p, dav_buffer *pbuf, + const char *str); + +/* place a string on the end of the buffer, do NOT adjust length */ +DAV_DECLARE(void) dav_buffer_place(apr_pool_t *p, dav_buffer *pbuf, + const char *str); + +/* place some memory on the end of a buffer; do NOT adjust length */ +DAV_DECLARE(void) dav_buffer_place_mem(apr_pool_t *p, dav_buffer *pbuf, + const void *mem, apr_size_t amt, + apr_size_t pad); + + +/* -------------------------------------------------------------------- +** +** HANDY UTILITIES +*/ + +/* contains results from one of the getprop functions */ +typedef struct +{ + apr_text * propstats; /* element text */ + apr_text * xmlns; /* namespace decls for elem */ +} dav_get_props_result; + +/* holds the contents of a element */ +typedef struct dav_response +{ + const char *href; /* always */ + const char *desc; /* optional description at level */ + + /* use status if propresult.propstats is NULL. */ + dav_get_props_result propresult; + + int status; + + struct dav_response *next; +} dav_response; + +typedef struct +{ + request_rec *rnew; /* new subrequest */ + dav_error err; /* potential error response */ +} dav_lookup_result; + + +DAV_DECLARE(dav_lookup_result) dav_lookup_uri(const char *uri, request_rec *r, + int must_be_absolute); + +/* defines type of property info a provider is to return */ +typedef enum { + DAV_PROP_INSERT_NOTDEF, /* property is defined by this provider, + but nothing was inserted because the + (live) property is not defined for this + resource (it may be present as a dead + property). */ + DAV_PROP_INSERT_NOTSUPP, /* property is recognized by this provider, + but it is not supported, and cannot be + treated as a dead property */ + DAV_PROP_INSERT_NAME, /* a property name (empty elem) was + inserted into the text block */ + DAV_PROP_INSERT_VALUE, /* a property name/value pair was inserted + into the text block */ + DAV_PROP_INSERT_SUPPORTED /* a supported live property was added to + the text block as a + element */ +} dav_prop_insert; + +/* ### this stuff is private to dav/fs/repos.c; move it... */ +/* format a time string (buf must be at least DAV_TIMEBUF_SIZE chars) */ +#define DAV_STYLE_ISO8601 1 +#define DAV_STYLE_RFC822 2 +#define DAV_TIMEBUF_SIZE 30 + +DAV_DECLARE(int) dav_get_depth(request_rec *r, int def_depth); + +DAV_DECLARE(int) dav_validate_root(const apr_xml_doc *doc, + const char *tagname); +DAV_DECLARE(apr_xml_elem *) dav_find_child(const apr_xml_elem *elem, + const char *tagname); + +/* gather up all the CDATA into a single string */ +DAV_DECLARE(const char *) dav_xml_get_cdata(const apr_xml_elem *elem, apr_pool_t *pool, + int strip_white); + +/* +** XML namespace handling +** +** This structure tracks namespace declarations (xmlns:prefix="URI"). +** It maintains a one-to-many relationship of URIs-to-prefixes. In other +** words, one URI may be defined by many prefixes, but any specific +** prefix will specify only one URI. +** +** Prefixes using the "g###" pattern can be generated automatically if +** the caller does not have specific prefix requirements. +*/ +typedef struct { + apr_pool_t *pool; + apr_hash_t *uri_prefix; /* map URIs to an available prefix */ + apr_hash_t *prefix_uri; /* map all prefixes to their URIs */ + int count; /* counter for "g###" prefixes */ +} dav_xmlns_info; + +/* create an empty dav_xmlns_info structure */ +DAV_DECLARE(dav_xmlns_info *) dav_xmlns_create(apr_pool_t *pool); + +/* add a specific prefix/URI pair. the prefix/uri should have a lifetime + at least that of xmlns->pool */ +DAV_DECLARE(void) dav_xmlns_add(dav_xmlns_info *xi, + const char *prefix, const char *uri); + +/* add a URI (if not present); any prefix is acceptable and is returned. + the uri should have a lifetime at least that xmlns->pool */ +DAV_DECLARE(const char *) dav_xmlns_add_uri(dav_xmlns_info *xi, + const char *uri); + +/* return the URI for a specified prefix (or NULL if the prefix is unknown) */ +DAV_DECLARE(const char *) dav_xmlns_get_uri(dav_xmlns_info *xi, + const char *prefix); + +/* return an available prefix for a specified URI (or NULL if the URI + is unknown) */ +DAV_DECLARE(const char *) dav_xmlns_get_prefix(dav_xmlns_info *xi, + const char *uri); + +/* generate xmlns declarations (appending into the given text) */ +DAV_DECLARE(void) dav_xmlns_generate(dav_xmlns_info *xi, + apr_text_header *phdr); + +/* -------------------------------------------------------------------- +** +** DAV PLUGINS +*/ + +/* ### docco ... */ + +/* +** dav_provider +** +** This structure wraps up all of the hooks that a mod_dav provider can +** supply. The provider MUST supply and . The rest are +** optional and should contain NULL if that feature is not supplied. +** +** Note that a provider cannot pick and choose portions from various +** underlying implementations (which was theoretically possible in +** mod_dav 1.0). There are too many dependencies between a dav_resource +** (defined by ) and the other functionality. +** +** Live properties are not part of the dav_provider structure because they +** are handled through the APR_HOOK interface (to allow for multiple liveprop +** providers). The core always provides some properties, and then a given +** provider will add more properties. +** +** Some providers may need to associate a context with the dav_provider +** structure -- the ctx field is available for storing this context. Just +** leave it NULL if it isn't required. +*/ +typedef struct { + const dav_hooks_repository *repos; + const dav_hooks_propdb *propdb; + const dav_hooks_locks *locks; + const dav_hooks_vsn *vsn; + const dav_hooks_binding *binding; + const dav_hooks_search *search; + + void *ctx; +} dav_provider; + +/* +** gather_propsets: gather all live property propset-URIs +** +** The hook implementor should push one or more URIs into the specified +** array. These URIs are returned in the DAV: header to let clients know +** what sets of live properties are supported by the installation. mod_dav +** will place open/close angle brackets around each value (much like +** a Coded-URL); quotes and brackets should not be in the value. +** +** Example: http://apache.org/dav/props/ +** +** (of course, use your own domain to ensure a unique value) +*/ +APR_DECLARE_EXTERNAL_HOOK(dav, DAV, void, gather_propsets, + (apr_array_header_t *uris)) + +/* +** find_liveprop: find a live property, returning a non-zero, unique, +** opaque identifier. +** +** If the hook implementor determines the specified URI/name refers to +** one of its properties, then it should fill in HOOKS and return a +** non-zero value. The returned value is the "property ID" and will +** be passed to the various liveprop hook functions. +** +** Return 0 if the property is not defined by the hook implementor. +*/ +APR_DECLARE_EXTERNAL_HOOK(dav, DAV, int, find_liveprop, + (const dav_resource *resource, + const char *ns_uri, const char *name, + const dav_hooks_liveprop **hooks)) + +/* +** insert_all_liveprops: insert all (known) live property names/values. +** +** The hook implementor should append XML text to PHDR, containing liveprop +** names. If INSVALUE is true, then the property values should also be +** inserted into the output XML stream. +** +** The liveprop provider should insert *all* known and *defined* live +** properties on the specified resource. If a particular liveprop is +** not defined for this resource, then it should not be inserted. +*/ +APR_DECLARE_EXTERNAL_HOOK(dav, DAV, void, insert_all_liveprops, + (request_rec *r, const dav_resource *resource, + dav_prop_insert what, apr_text_header *phdr)) + +DAV_DECLARE(const dav_hooks_locks *) dav_get_lock_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_propdb *) dav_get_propdb_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_vsn *) dav_get_vsn_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_binding *) dav_get_binding_hooks(request_rec *r); +DAV_DECLARE(const dav_hooks_search *) dav_get_search_hooks(request_rec *r); + +DAV_DECLARE(void) dav_register_provider(apr_pool_t *p, const char *name, + const dav_provider *hooks); +DAV_DECLARE(const dav_provider *) dav_lookup_provider(const char *name); + + +/* ### deprecated */ +#define DAV_GET_HOOKS_PROPDB(r) dav_get_propdb_hooks(r) +#define DAV_GET_HOOKS_LOCKS(r) dav_get_lock_hooks(r) +#define DAV_GET_HOOKS_VSN(r) dav_get_vsn_hooks(r) +#define DAV_GET_HOOKS_BINDING(r) dav_get_binding_hooks(r) +#define DAV_GET_HOOKS_SEARCH(r) dav_get_search_hooks(r) + + +/* -------------------------------------------------------------------- +** +** IF HEADER PROCESSING +** +** Here is the definition of the If: header from RFC 2518, S9.4: +** +** If = "If" ":" (1*No-tag-list | 1*Tagged-list) +** No-tag-list = List +** Tagged-list = Resource 1*List +** Resource = Coded-URL +** List = "(" 1*(["Not"](State-token | "[" entity-tag "]")) ")" +** State-token = Coded-URL +** Coded-URL = "<" absoluteURI ">" ; absoluteURI from RFC 2616 +** +** List corresponds to dav_if_state_list. No-tag-list corresponds to +** dav_if_header with uri==NULL. Tagged-list corresponds to a sequence of +** dav_if_header structures with (duplicate) uri==Resource -- one +** dav_if_header per state_list. A second Tagged-list will start a new +** sequence of dav_if_header structures with the new URI. +** +** A summary of the semantics, mapped into our structures: +** - Chained dav_if_headers: OR +** - Chained dav_if_state_lists: AND +** - NULL uri matches all resources +*/ + +typedef enum +{ + dav_if_etag, + dav_if_opaquelock +} dav_if_state_type; + +typedef struct dav_if_state_list +{ + dav_if_state_type type; + + int condition; +#define DAV_IF_COND_NORMAL 0 +#define DAV_IF_COND_NOT 1 /* "Not" was applied */ + + const char *etag; + dav_locktoken *locktoken; + + struct dav_if_state_list *next; +} dav_if_state_list; + +typedef struct dav_if_header +{ + const char *uri; + apr_size_t uri_len; + struct dav_if_state_list *state; + struct dav_if_header *next; + + int dummy_header; /* used internally by the lock/etag validation */ +} dav_if_header; + +typedef struct dav_locktoken_list +{ + dav_locktoken *locktoken; + struct dav_locktoken_list *next; +} dav_locktoken_list; + +DAV_DECLARE(dav_error *) dav_get_locktoken_list(request_rec *r, + dav_locktoken_list **ltl); + + +/* -------------------------------------------------------------------- +** +** LIVE PROPERTY HANDLING +*/ + +/* opaque type for PROPPATCH rollback information */ +typedef struct dav_liveprop_rollback dav_liveprop_rollback; + +struct dav_hooks_liveprop +{ + /* + ** Insert property information into a text block. The property to + ** insert is identified by the propid value. The information to insert + ** is identified by the "what" argument, as follows: + ** DAV_PROP_INSERT_NAME + ** property name, as an empty XML element + ** DAV_PROP_INSERT_VALUE + ** property name/value, as an XML element + ** DAV_PROP_INSERT_SUPPORTED + ** if the property is defined on the resource, then + ** a DAV:supported-live-property element, as defined + ** by the DeltaV extensions to RFC2518. + ** + ** Providers should return DAV_PROP_INSERT_NOTDEF if the property is + ** known and not defined for this resource, so should be handled as a + ** dead property. If a provider recognizes, but does not support, a + ** property, and does not want it handled as a dead property, it should + ** return DAV_PROP_INSERT_NOTSUPP. + ** + ** Returns one of DAV_PROP_INSERT_* based on what happened. + ** + ** ### we may need more context... ie. the lock database + */ + dav_prop_insert (*insert_prop)(const dav_resource *resource, + int propid, dav_prop_insert what, + apr_text_header *phdr); + + /* + ** Determine whether a given property is writable. + ** + ** ### we may want a different semantic. i.e. maybe it should be + ** ### "can we write into this property?" + ** + ** Returns 1 if the live property can be written, 0 if read-only. + */ + int (*is_writable)(const dav_resource *resource, int propid); + + /* + ** This member defines the set of namespace URIs that the provider + ** uses for its properties. When insert_all is called, it will be + ** passed a list of integers that map from indices into this list + ** to namespace IDs for output generation. + ** + ** The last entry in this list should be a NULL value (sentinel). + */ + const char * const * namespace_uris; + + /* + ** ### this is not the final design. we want an open-ended way for + ** ### liveprop providers to attach *new* properties. To this end, + ** ### we'll have a "give me a list of the props you define", a way + ** ### to check for a prop's existence, a way to validate a set/remove + ** ### of a prop, and a way to execute/commit/rollback that change. + */ + + /* + ** Validate that the live property can be assigned a value, and that + ** the provided value is valid. + ** + ** elem will point to the XML element that names the property. For + ** example: + ** T + ** + ** The provider can access the cdata fields and the child elements + ** to extract the relevant pieces. + ** + ** operation is one of DAV_PROP_OP_SET or _DELETE. + ** + ** The provider may return a value in *context which will be passed + ** to each of the exec/commit/rollback functions. For example, this + ** may contain an internal value which has been processed from the + ** input element. + ** + ** The provider must set defer_to_dead to true (non-zero) or false. + ** If true, then the set/remove is deferred to the dead property + ** database. Note: it will be set to zero on entry. + */ + dav_error * (*patch_validate)(const dav_resource *resource, + const apr_xml_elem *elem, + int operation, + void **context, + int *defer_to_dead); + + /* ### doc... */ + dav_error * (*patch_exec)(const dav_resource *resource, + const apr_xml_elem *elem, + int operation, + void *context, + dav_liveprop_rollback **rollback_ctx); + + /* ### doc... */ + void (*patch_commit)(const dav_resource *resource, + int operation, + void *context, + dav_liveprop_rollback *rollback_ctx); + + /* ### doc... */ + dav_error * (*patch_rollback)(const dav_resource *resource, + int operation, + void *context, + dav_liveprop_rollback *rollback_ctx); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; +}; + +/* +** dav_liveprop_spec: specify a live property +** +** This structure is used as a standard way to determine if a particular +** property is a live property. Its use is not part of the mandated liveprop +** interface, but can be used by liveprop providers in conjuction with the +** utility routines below. +** +** spec->name == NULL is the defined end-sentinel for a list of specs. +*/ +typedef struct { + int ns; /* provider-local namespace index */ + const char *name; /* name of the property */ + + int propid; /* provider-local property ID */ + + int is_writable; /* is the property writable? */ + +} dav_liveprop_spec; + +/* +** dav_liveprop_group: specify a group of liveprops +** +** This structure specifies a group of live properties, their namespaces, +** and how to handle them. +*/ +typedef struct { + const dav_liveprop_spec *specs; + const char * const *namespace_uris; + const dav_hooks_liveprop *hooks; + +} dav_liveprop_group; + +/* ### docco */ +DAV_DECLARE(int) dav_do_find_liveprop(const char *ns_uri, const char *name, + const dav_liveprop_group *group, + const dav_hooks_liveprop **hooks); + +/* ### docco */ +DAV_DECLARE(int) dav_get_liveprop_info(int propid, + const dav_liveprop_group *group, + const dav_liveprop_spec **info); + +/* ### docco */ +DAV_DECLARE(void) dav_register_liveprop_group(apr_pool_t *pool, + const dav_liveprop_group *group); + +/* ### docco */ +DAV_DECLARE(int) dav_get_liveprop_ns_index(const char *uri); + +/* ### docco */ +DAV_DECLARE(int) dav_get_liveprop_ns_count(void); + +/* ### docco */ +DAV_DECLARE(void) dav_add_all_liveprop_xmlns(apr_pool_t *p, + apr_text_header *phdr); + +/* +** The following three functions are part of mod_dav's internal handling +** for the core WebDAV properties. They are not part of mod_dav's API. +*/ +DAV_DECLARE_NONSTD(int) dav_core_find_liveprop( + const dav_resource *resource, + const char *ns_uri, + const char *name, + const dav_hooks_liveprop **hooks); +DAV_DECLARE_NONSTD(void) dav_core_insert_all_liveprops( + request_rec *r, + const dav_resource *resource, + dav_prop_insert what, + apr_text_header *phdr); +DAV_DECLARE_NONSTD(void) dav_core_register_uris(apr_pool_t *p); + + +/* +** Standard WebDAV Property Identifiers +** +** A live property provider does not need to use these; they are simply +** provided for convenience. +** +** Property identifiers need to be unique within a given provider, but not +** *across* providers (note: this uniqueness constraint was different in +** older versions of mod_dav). +** +** The identifiers start at 20000 to make it easier for providers to avoid +** conflicts with the standard properties. The properties are arranged +** alphabetically, and may be reordered from time to time (as properties +** are introduced). +** +** NOTE: there is no problem with reordering (e.g. binary compat) since the +** identifiers are only used within a given provider, which would pick up +** the entire set of changes upon a recompile. +*/ +enum { + DAV_PROPID_BEGIN = 20000, + + /* Standard WebDAV properties (RFC 2518) */ + DAV_PROPID_creationdate, + DAV_PROPID_displayname, + DAV_PROPID_getcontentlanguage, + DAV_PROPID_getcontentlength, + DAV_PROPID_getcontenttype, + DAV_PROPID_getetag, + DAV_PROPID_getlastmodified, + DAV_PROPID_lockdiscovery, + DAV_PROPID_resourcetype, + DAV_PROPID_source, + DAV_PROPID_supportedlock, + + /* DeltaV properties (from the I-D (#14)) */ + DAV_PROPID_activity_checkout_set, + DAV_PROPID_activity_set, + DAV_PROPID_activity_version_set, + DAV_PROPID_auto_merge_set, + DAV_PROPID_auto_version, + DAV_PROPID_baseline_collection, + DAV_PROPID_baseline_controlled_collection, + DAV_PROPID_baseline_controlled_collection_set, + DAV_PROPID_checked_in, + DAV_PROPID_checked_out, + DAV_PROPID_checkin_fork, + DAV_PROPID_checkout_fork, + DAV_PROPID_checkout_set, + DAV_PROPID_comment, + DAV_PROPID_creator_displayname, + DAV_PROPID_current_activity_set, + DAV_PROPID_current_workspace_set, + DAV_PROPID_default_variant, + DAV_PROPID_eclipsed_set, + DAV_PROPID_label_name_set, + DAV_PROPID_merge_set, + DAV_PROPID_precursor_set, + DAV_PROPID_predecessor_set, + DAV_PROPID_root_version, + DAV_PROPID_subactivity_set, + DAV_PROPID_subbaseline_set, + DAV_PROPID_successor_set, + DAV_PROPID_supported_method_set, + DAV_PROPID_supported_live_property_set, + DAV_PROPID_supported_report_set, + DAV_PROPID_unreserved, + DAV_PROPID_variant_set, + DAV_PROPID_version_controlled_binding_set, + DAV_PROPID_version_controlled_configuration, + DAV_PROPID_version_history, + DAV_PROPID_version_name, + DAV_PROPID_workspace, + DAV_PROPID_workspace_checkout_set, + + DAV_PROPID_END +}; + +/* +** Property Identifier Registration +** +** At the moment, mod_dav requires live property providers to ensure that +** each property returned has a unique value. For now, this is done through +** central registration (there are no known providers other than the default, +** so this remains manageable). +** +** WARNING: the TEST ranges should never be "shipped". +*/ +#define DAV_PROPID_CORE 10000 /* ..10099. defined by mod_dav */ +#define DAV_PROPID_FS 10100 /* ..10299. + mod_dav filesystem provider. */ +#define DAV_PROPID_TEST1 10300 /* ..10399 */ +#define DAV_PROPID_TEST2 10400 /* ..10499 */ +#define DAV_PROPID_TEST3 10500 /* ..10599 */ +/* Next: 10600 */ + + +/* -------------------------------------------------------------------- +** +** DATABASE FUNCTIONS +*/ + +typedef struct dav_db dav_db; +typedef struct dav_namespace_map dav_namespace_map; +typedef struct dav_deadprop_rollback dav_deadprop_rollback; + +typedef struct { + const char *ns; /* "" signals "no namespace" */ + const char *name; +} dav_prop_name; + +/* hook functions to enable pluggable databases */ +struct dav_hooks_propdb +{ + dav_error * (*open)(apr_pool_t *p, const dav_resource *resource, int ro, + dav_db **pdb); + void (*close)(dav_db *db); + + /* + ** In bulk, define any namespaces that the values and their name + ** elements may need. + ** + ** Note: sometimes mod_dav will defer calling this until output_value + ** returns found==1. If the output process needs the dav_xmlns_info + ** filled for its work, then it will need to fill it on demand rather + ** than depending upon this hook to fill in the structure. + ** + ** Note: this will *always* be called during an output sequence. Thus, + ** the provider may rely solely on using this to fill the xmlns info. + */ + dav_error * (*define_namespaces)(dav_db *db, dav_xmlns_info *xi); + + /* + ** Output the value from the database (i.e. add an element name and + ** the value into *phdr). Set *found based on whether the name/value + ** was found in the propdb. + ** + ** Note: it is NOT an error for the key/value pair to not exist. + ** + ** The dav_xmlns_info passed to define_namespaces() is also passed to + ** each output_value() call so that namespaces can be added on-demand. + ** It can also be used to look up prefixes or URIs during the output + ** process. + */ + dav_error * (*output_value)(dav_db *db, const dav_prop_name *name, + dav_xmlns_info *xi, + apr_text_header *phdr, int *found); + + /* + ** Build a mapping from "global" namespaces (stored in apr_xml_*) + ** into provider-local namespace identifiers. + ** + ** This mapping should be done once per set of namespaces, and the + ** resulting mapping should be passed into the store() hook function. + ** + ** Note: usually, there is just a single document/namespaces for all + ** elements passed. However, the generality of creating multiple + ** mappings and passing them to store() is provided here. + ** + ** Note: this is only in preparation for a series of store() calls. + ** As a result, the propdb must be open for read/write access when + ** this function is called. + */ + dav_error * (*map_namespaces)(dav_db *db, + const apr_array_header_t *namespaces, + dav_namespace_map **mapping); + + /* + ** Store a property value for a given name. The value->combined field + ** MUST be set for this call. + ** + ** ### WARNING: current providers will quote the text within ELEM. + ** ### this implies you can call this function only once with a given + ** ### element structure (a second time will quote it again). + */ + dav_error * (*store)(dav_db *db, const dav_prop_name *name, + const apr_xml_elem *elem, + dav_namespace_map *mapping); + + /* remove a given property */ + dav_error * (*remove)(dav_db *db, const dav_prop_name *name); + + /* returns 1 if the record specified by "key" exists; 0 otherwise */ + int (*exists)(dav_db *db, const dav_prop_name *name); + + /* + ** Iterate over the property names in the database. + ** + ** iter->name.ns == iter->name.name == NULL when there are no more names. + ** + ** Note: only one iteration may occur over the propdb at a time. + */ + dav_error * (*first_name)(dav_db *db, dav_prop_name *pname); + dav_error * (*next_name)(dav_db *db, dav_prop_name *pname); + + /* + ** Rollback support: get rollback context, and apply it. + ** + ** struct dav_deadprop_rollback is a provider-private structure; it + ** should remember the name, and the name's old value (or the fact that + ** the value was not present, and should be deleted if a rollback occurs). + */ + dav_error * (*get_rollback)(dav_db *db, const dav_prop_name *name, + dav_deadprop_rollback **prollback); + dav_error * (*apply_rollback)(dav_db *db, + dav_deadprop_rollback *rollback); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; +}; + + +/* -------------------------------------------------------------------- +** +** LOCK FUNCTIONS +*/ + +/* Used to represent a Timeout header of "Infinity" */ +#define DAV_TIMEOUT_INFINITE 0 + +DAV_DECLARE(time_t) dav_get_timeout(request_rec *r); + +/* +** Opaque, provider-specific information for a lock database. +*/ +typedef struct dav_lockdb_private dav_lockdb_private; + +/* +** Opaque, provider-specific information for a lock record. +*/ +typedef struct dav_lock_private dav_lock_private; + +/* +** Lock database type. Lock providers are urged to implement a "lazy" open, so +** doing an "open" is cheap until something is actually needed from the DB. +*/ +typedef struct +{ + const dav_hooks_locks *hooks; /* the hooks used for this lockdb */ + int ro; /* was it opened readonly? */ + + dav_lockdb_private *info; + +} dav_lockdb; + +typedef enum { + DAV_LOCKSCOPE_UNKNOWN, + DAV_LOCKSCOPE_EXCLUSIVE, + DAV_LOCKSCOPE_SHARED +} dav_lock_scope; + +typedef enum { + DAV_LOCKTYPE_UNKNOWN, + DAV_LOCKTYPE_WRITE +} dav_lock_type; + +typedef enum { + DAV_LOCKREC_DIRECT, /* lock asserted on this resource */ + DAV_LOCKREC_INDIRECT, /* lock inherited from a parent */ + DAV_LOCKREC_INDIRECT_PARTIAL /* most info is not filled in */ +} dav_lock_rectype; + +/* +** dav_lock: hold information about a lock on a resource. +** +** This structure is used for both direct and indirect locks. A direct lock +** is a lock applied to a specific resource by the client. An indirect lock +** is one that is inherited from a parent resource by virtue of a non-zero +** Depth: header when the lock was applied. +** +** mod_dav records both types of locks in the lock database, managing their +** addition/removal as resources are moved about the namespace. +** +** Note that the lockdb is free to marshal this structure in any form that +** it likes. +** +** For a "partial" lock, the and fields must be filled +** in. All other (user) fields should be zeroed. The lock provider will +** usually fill in the field, and the field may be used to +** construct a list of partial locks. +** +** The lock provider MUST use the info field to store a value such that a +** dav_lock structure can locate itself in the underlying lock database. +** This requirement is needed for refreshing: when an indirect dav_lock is +** refreshed, its reference to the direct lock does not specify the direct's +** resource, so the only way to locate the (refreshed, direct) lock in the +** database is to use the info field. +** +** Note that only refers to the resource where this lock was +** found. +** ### hrm. that says the abstraction is wrong. is_locknull may disappear. +*/ +typedef struct dav_lock +{ + dav_lock_rectype rectype; /* type of lock record */ + int is_locknull; /* lock establishes a locknull resource */ + + /* ### put the resource in here? */ + + dav_lock_scope scope; /* scope of the lock */ + dav_lock_type type; /* type of lock */ + int depth; /* depth of the lock */ + time_t timeout; /* when the lock will timeout */ + + const dav_locktoken *locktoken; /* the token that was issued */ + + const char *owner; /* (XML) owner of the lock */ + const char *auth_user; /* auth'd username owning lock */ + + dav_lock_private *info; /* private to the lockdb */ + + struct dav_lock *next; /* for managing a list of locks */ +} dav_lock; + +/* Property-related public lock functions */ +DAV_DECLARE(const char *)dav_lock_get_activelock(request_rec *r, + dav_lock *locks, + dav_buffer *pbuf); + +/* LockDB-related public lock functions */ +DAV_DECLARE(dav_error *) dav_lock_parse_lockinfo(request_rec *r, + const dav_resource *resrouce, + dav_lockdb *lockdb, + const apr_xml_doc *doc, + dav_lock **lock_request); +DAV_DECLARE(int) dav_unlock(request_rec *r, + const dav_resource *resource, + const dav_locktoken *locktoken); +DAV_DECLARE(dav_error *) dav_add_lock(request_rec *r, + const dav_resource *resource, + dav_lockdb *lockdb, dav_lock *request, + dav_response **response); +DAV_DECLARE(dav_error *) dav_notify_created(request_rec *r, + dav_lockdb *lockdb, + const dav_resource *resource, + int resource_state, + int depth); + +DAV_DECLARE(dav_error*) dav_lock_query(dav_lockdb *lockdb, + const dav_resource *resource, + dav_lock **locks); + +DAV_DECLARE(dav_error *) dav_validate_request(request_rec *r, + dav_resource *resource, + int depth, + dav_locktoken *locktoken, + dav_response **response, + int flags, + dav_lockdb *lockdb); +/* +** flags: +** 0x0F -- reserved for values +** +** other flags, detailed below +*/ +#define DAV_VALIDATE_RESOURCE 0x0010 /* validate just the resource */ +#define DAV_VALIDATE_PARENT 0x0020 /* validate resource AND its parent */ +#define DAV_VALIDATE_ADD_LD 0x0040 /* add DAV:lockdiscovery into + the 424 DAV:response */ +#define DAV_VALIDATE_USE_424 0x0080 /* return 424 status, not 207 */ +#define DAV_VALIDATE_IS_PARENT 0x0100 /* for internal use */ + +/* Lock-null related public lock functions */ +DAV_DECLARE(int) dav_get_resource_state(request_rec *r, + const dav_resource *resource); + +/* Lock provider hooks. Locking is optional, so there may be no + * lock provider for a given repository. + */ +struct dav_hooks_locks +{ + /* Return the supportedlock property for a resource */ + const char * (*get_supportedlock)( + const dav_resource *resource + ); + + /* Parse a lock token URI, returning a lock token object allocated + * in the given pool. + */ + dav_error * (*parse_locktoken)( + apr_pool_t *p, + const char *char_token, + dav_locktoken **locktoken_p + ); + + /* Format a lock token object into a URI string, allocated in + * the given pool. + * + * Always returns non-NULL. + */ + const char * (*format_locktoken)( + apr_pool_t *p, + const dav_locktoken *locktoken + ); + + /* Compare two lock tokens. + * + * Result < 0 => lt1 < lt2 + * Result == 0 => lt1 == lt2 + * Result > 0 => lt1 > lt2 + */ + int (*compare_locktoken)( + const dav_locktoken *lt1, + const dav_locktoken *lt2 + ); + + /* Open the provider's lock database. + * + * The provider may or may not use a "real" database for locks + * (a lock could be an attribute on a resource, for example). + * + * The provider may choose to use the value of the DAVLockDB directive + * (as returned by dav_get_lockdb_path()) to decide where to place + * any storage it may need. + * + * The request storage pool should be associated with the lockdb, + * so it can be used in subsequent operations. + * + * If ro != 0, only readonly operations will be performed. + * If force == 0, the open can be "lazy"; no subsequent locking operations + * may occur. + * If force != 0, locking operations will definitely occur. + */ + dav_error * (*open_lockdb)( + request_rec *r, + int ro, + int force, + dav_lockdb **lockdb + ); + + /* Indicates completion of locking operations */ + void (*close_lockdb)( + dav_lockdb *lockdb + ); + + /* Take a resource out of the lock-null state. */ + dav_error * (*remove_locknull_state)( + dav_lockdb *lockdb, + const dav_resource *resource + ); + + /* + ** Create a (direct) lock structure for the given resource. A locktoken + ** will be created. + ** + ** The lock provider may store private information into lock->info. + */ + dav_error * (*create_lock)(dav_lockdb *lockdb, + const dav_resource *resource, + dav_lock **lock); + + /* + ** Get the locks associated with the specified resource. + ** + ** If resolve_locks is true (non-zero), then any indirect locks are + ** resolved to their actual, direct lock (i.e. the reference to followed + ** to the original lock). + ** + ** The locks, if any, are returned as a linked list in no particular + ** order. If no locks are present, then *locks will be NULL. + */ + dav_error * (*get_locks)(dav_lockdb *lockdb, + const dav_resource *resource, + int calltype, + dav_lock **locks); + +#define DAV_GETLOCKS_RESOLVED 0 /* resolve indirects to directs */ +#define DAV_GETLOCKS_PARTIAL 1 /* leave indirects partially filled */ +#define DAV_GETLOCKS_COMPLETE 2 /* fill out indirect locks */ + + /* + ** Find a particular lock on a resource (specified by its locktoken). + ** + ** *lock will be set to NULL if the lock is not found. + ** + ** Note that the provider can optimize the unmarshalling -- only one + ** lock (or none) must be constructed and returned. + ** + ** If partial_ok is true (non-zero), then an indirect lock can be + ** partially filled in. Otherwise, another lookup is done and the + ** lock structure will be filled out as a DAV_LOCKREC_INDIRECT. + */ + dav_error * (*find_lock)(dav_lockdb *lockdb, + const dav_resource *resource, + const dav_locktoken *locktoken, + int partial_ok, + dav_lock **lock); + + /* + ** Quick test to see if the resource has *any* locks on it. + ** + ** This is typically used to determine if a non-existent resource + ** has a lock and is (therefore) a locknull resource. + ** + ** WARNING: this function may return TRUE even when timed-out locks + ** exist (i.e. it may not perform timeout checks). + */ + dav_error * (*has_locks)(dav_lockdb *lockdb, + const dav_resource *resource, + int *locks_present); + + /* + ** Append the specified lock(s) to the set of locks on this resource. + ** + ** If "make_indirect" is true (non-zero), then the specified lock(s) + ** should be converted to an indirect lock (if it is a direct lock) + ** before appending. Note that the conversion to an indirect lock does + ** not alter the passed-in lock -- the change is internal the + ** append_locks function. + ** + ** Multiple locks are specified using the lock->next links. + */ + dav_error * (*append_locks)(dav_lockdb *lockdb, + const dav_resource *resource, + int make_indirect, + const dav_lock *lock); + + /* + ** Remove any lock that has the specified locktoken. + ** + ** If locktoken == NULL, then ALL locks are removed. + */ + dav_error * (*remove_lock)(dav_lockdb *lockdb, + const dav_resource *resource, + const dav_locktoken *locktoken); + + /* + ** Refresh all locks, found on the specified resource, which has a + ** locktoken in the provided list. + ** + ** If the lock is indirect, then the direct lock is referenced and + ** refreshed. + ** + ** Each lock that is updated is returned in the argument. + ** Note that the locks will be fully resolved. + */ + dav_error * (*refresh_locks)(dav_lockdb *lockdb, + const dav_resource *resource, + const dav_locktoken_list *ltl, + time_t new_time, + dav_lock **locks); + + /* + ** Look up the resource associated with a particular locktoken. + ** + ** The search begins at the specified and the lock + ** specified by . + ** + ** If the resource/token specifies an indirect lock, then the direct + ** lock will be looked up, and THAT resource will be returned. In other + ** words, this function always returns the resource where a particular + ** lock (token) was asserted. + ** + ** NOTE: this function pointer is allowed to be NULL, indicating that + ** the provider does not support this type of functionality. The + ** caller should then traverse up the repository hierarchy looking + ** for the resource defining a lock with this locktoken. + */ + dav_error * (*lookup_resource)(dav_lockdb *lockdb, + const dav_locktoken *locktoken, + const dav_resource *start_resource, + const dav_resource **resource); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; +}; + +/* what types of resources can be discovered by dav_get_resource_state() */ +#define DAV_RESOURCE_LOCK_NULL 10 /* resource lock-null */ +#define DAV_RESOURCE_NULL 11 /* resource null */ +#define DAV_RESOURCE_EXISTS 12 /* resource exists */ +#define DAV_RESOURCE_ERROR 13 /* an error occurred */ + + +/* -------------------------------------------------------------------- +** +** PROPERTY HANDLING +*/ + +typedef struct dav_propdb dav_propdb; + + +DAV_DECLARE(dav_error *) dav_open_propdb( + request_rec *r, + dav_lockdb *lockdb, + const dav_resource *resource, + int ro, + apr_array_header_t *ns_xlate, + dav_propdb **propdb); + +DAV_DECLARE(void) dav_close_propdb(dav_propdb *db); + +DAV_DECLARE(dav_get_props_result) dav_get_props( + dav_propdb *db, + apr_xml_doc *doc); + +DAV_DECLARE(dav_get_props_result) dav_get_allprops( + dav_propdb *db, + dav_prop_insert what); + +DAV_DECLARE(void) dav_get_liveprop_supported( + dav_propdb *propdb, + const char *ns_uri, + const char *propname, + apr_text_header *body); + +/* +** 3-phase property modification. +** +** 1) validate props. readable? unlocked? ACLs allow access? +** 2) execute operation (set/delete) +** 3) commit or rollback +** +** ### eventually, auth must be available. a ref to the request_rec (which +** ### contains the auth info) should be in the shared context struct. +** +** Each function may alter the error values and information contained within +** the context record. This should be done as an "increasing" level of +** error, rather than overwriting any previous error. +** +** Note that commit() cannot generate errors. It should simply free the +** rollback information. +** +** rollback() may generate additional errors because the rollback operation +** can sometimes fail(!). +** +** The caller should allocate an array of these, one per operation. It should +** be zero-initialized, then the db, operation, and prop fields should be +** filled in before calling dav_prop_validate. Note that the set/delete +** operations are order-dependent. For a given (logical) context, the same +** pointer must be passed to each phase. +** +** error_type is an internal value, but will have the same numeric value +** for each possible "desc" value. This allows the caller to group the +** descriptions via the error_type variable, rather than through string +** comparisons. Note that "status" does not provide enough granularity to +** differentiate/group the "desc" values. +** +** Note that the propdb will maintain some (global) context across all +** of the property change contexts. This implies that you can have only +** one open transaction per propdb. +*/ +typedef struct dav_prop_ctx +{ + dav_propdb *propdb; + + int operation; +#define DAV_PROP_OP_SET 1 /* set a property value */ +#define DAV_PROP_OP_DELETE 2 /* delete a prop value */ +/* ### add a GET? */ + + apr_xml_elem *prop; /* property to affect */ + + dav_error *err; /* error (if any) */ + + /* private items to the propdb */ + int is_liveprop; + void *liveprop_ctx; + struct dav_rollback_item *rollback; /* optional rollback info */ + + /* private to mod_dav.c */ + request_rec *r; + +} dav_prop_ctx; + +DAV_DECLARE_NONSTD(void) dav_prop_validate(dav_prop_ctx *ctx); +DAV_DECLARE_NONSTD(void) dav_prop_exec(dav_prop_ctx *ctx); +DAV_DECLARE_NONSTD(void) dav_prop_commit(dav_prop_ctx *ctx); +DAV_DECLARE_NONSTD(void) dav_prop_rollback(dav_prop_ctx *ctx); + +#define DAV_PROP_CTX_HAS_ERR(dpc) ((dpc).err && (dpc).err->status >= 300) + + +/* -------------------------------------------------------------------- +** +** WALKER STRUCTURE +*/ + +enum { + DAV_CALLTYPE_MEMBER = 1, /* called for a member resource */ + DAV_CALLTYPE_COLLECTION, /* called for a collection */ + DAV_CALLTYPE_LOCKNULL /* called for a locknull resource */ +}; + +typedef struct +{ + /* the client-provided context */ + void *walk_ctx; + + /* pool to use for allocations in the callback */ + apr_pool_t *pool; + + /* the current resource */ + const dav_resource *resource; + + /* OUTPUT: add responses to this */ + dav_response *response; + +} dav_walk_resource; + +typedef struct +{ + int walk_type; +#define DAV_WALKTYPE_AUTH 0x0001 /* limit to authorized files */ +#define DAV_WALKTYPE_NORMAL 0x0002 /* walk normal files */ +#define DAV_WALKTYPE_LOCKNULL 0x0004 /* walk locknull resources */ + + /* callback function and a client context for the walk */ + dav_error * (*func)(dav_walk_resource *wres, int calltype); + void *walk_ctx; + + /* what pool to use for allocations needed by walk logic */ + apr_pool_t *pool; + + /* beginning root of the walk */ + const dav_resource *root; + + /* lock database to enable walking LOCKNULL resources */ + dav_lockdb *lockdb; + +} dav_walk_params; + +/* directory tree walking context */ +typedef struct dav_walker_ctx +{ + /* input: */ + dav_walk_params w; + + + /* ### client data... phasing out this big glom */ + + /* this brigade buffers data being sent to r->output_filters */ + apr_bucket_brigade *bb; + + /* a scratch pool, used to stream responses and iteratively cleared. */ + apr_pool_t *scratchpool; + + request_rec *r; /* original request */ + + /* for PROPFIND operations */ + apr_xml_doc *doc; + int propfind_type; +#define DAV_PROPFIND_IS_ALLPROP 1 +#define DAV_PROPFIND_IS_PROPNAME 2 +#define DAV_PROPFIND_IS_PROP 3 + + apr_text *propstat_404; /* (cached) propstat giving a 404 error */ + + const dav_if_header *if_header; /* for validation */ + const dav_locktoken *locktoken; /* for UNLOCK */ + const dav_lock *lock; /* for LOCK */ + int skip_root; /* for dav_inherit_locks() */ + + int flags; + + dav_buffer work_buf; /* for dav_validate_request() */ + +} dav_walker_ctx; + +DAV_DECLARE(void) dav_add_response(dav_walk_resource *wres, + int status, + dav_get_props_result *propstats); + + +/* -------------------------------------------------------------------- +** +** "STREAM" STRUCTURE +** +** mod_dav uses this abstraction for interacting with the repository +** while fetching/storing resources. mod_dav views resources as a stream +** of bytes. +** +** Note that the structure is opaque -- it is private to the repository +** that created the stream in the repository's "open" function. +** +** ### THIS STUFF IS GOING AWAY ... GET/read requests are handled by +** ### having the provider jam stuff straight into the filter stack. +** ### this is only left for handling PUT/write requests. +*/ + +typedef struct dav_stream dav_stream; + +typedef enum { + DAV_MODE_WRITE_TRUNC, /* truncate and open for writing */ + DAV_MODE_WRITE_SEEKABLE /* open for writing; random access */ +} dav_stream_mode; + + +/* -------------------------------------------------------------------- +** +** REPOSITORY FUNCTIONS +*/ + +/* Repository provider hooks */ +struct dav_hooks_repository +{ + /* Flag for whether repository requires special GET handling. + * If resources in the repository are not visible in the + * filesystem location which URLs map to, then special handling + * is required to first fetch a resource from the repository, + * respond to the GET request, then free the resource copy. + */ + int handle_get; + + /* Get a resource descriptor for the URI in a request. A descriptor + * should always be returned even if the resource does not exist. This + * repository has been identified as handling the resource given by + * the URI, so an answer must be given. If there is a problem with the + * URI or accessing the resource or whatever, then an error should be + * returned. + * + * root_dir: + * the root of the directory for which this repository is configured. + * + * label: + * if a Label: header is present (and allowed), this is the label + * to use to identify a version resource from the resource's + * corresponding version history. Otherwise, it will be NULL. + * + * use_checked_in: + * use the DAV:checked-in property of the resource identified by the + * Request-URI to identify and return a version resource + * + * The provider may associate the request storage pool with the resource + * (in the resource->pool field), to use in other operations on that + * resource. + */ + dav_error * (*get_resource)( + request_rec *r, + const char *root_dir, + const char *label, + int use_checked_in, + dav_resource **resource + ); + + /* Get a resource descriptor for the parent of the given resource. + * The resources need not exist. NULL is returned if the resource + * is the root collection. + * + * An error should be returned only if there is a fatal error in + * fetching information about the parent resource. + */ + dav_error * (*get_parent_resource)( + const dav_resource *resource, + dav_resource **parent_resource + ); + + /* Determine whether two resource descriptors refer to the same resource. + * + * Result != 0 => the resources are the same. + */ + int (*is_same_resource)( + const dav_resource *res1, + const dav_resource *res2 + ); + + /* Determine whether one resource is a parent (immediate or otherwise) + * of another. + * + * Result != 0 => res1 is a parent of res2. + */ + int (*is_parent_resource)( + const dav_resource *res1, + const dav_resource *res2 + ); + + /* + ** Open a stream for this resource, using the specified mode. The + ** stream will be returned in *stream. + */ + dav_error * (*open_stream)(const dav_resource *resource, + dav_stream_mode mode, + dav_stream **stream); + + /* + ** Close the specified stream. + ** + ** mod_dav will (ideally) make sure to call this. For safety purposes, + ** a provider should (ideally) register a cleanup function with the + ** request pool to get this closed and cleaned up. + ** + ** Note the possibility of an error from the close -- it is entirely + ** feasible that the close does a "commit" of some kind, which can + ** produce an error. + ** + ** commit should be TRUE (non-zero) or FALSE (0) if the stream was + ** opened for writing. This flag states whether to retain the file + ** or not. + ** Note: the commit flag is ignored for streams opened for reading. + */ + dav_error * (*close_stream)(dav_stream *stream, int commit); + + /* + ** Write data to the stream. + ** + ** All of the bytes must be written, or an error should be returned. + */ + dav_error * (*write_stream)(dav_stream *stream, + const void *buf, apr_size_t bufsize); + + /* + ** Seek to an absolute position in the stream. This is used to support + ** Content-Range in a GET/PUT. + ** + ** NOTE: if this function is NULL (which is allowed), then any + ** operations using Content-Range will be refused. + */ + dav_error * (*seek_stream)(dav_stream *stream, apr_off_t abs_position); + + /* + ** If a GET is processed using a stream (open_stream, read_stream) + ** rather than via a sub-request (on get_pathname), then this function + ** is used to provide the repository with a way to set the headers + ** in the response. + ** + ** This function may be called without a following deliver(), to + ** handle a HEAD request. + ** + ** This may be NULL if handle_get is FALSE. + */ + dav_error * (*set_headers)(request_rec *r, + const dav_resource *resource); + + /* + ** The provider should deliver the resource into the specified filter. + ** Basically, this is the response to the GET method. + ** + ** Note that this is called for all resources, including collections. + ** The provider should determine what has content to deliver or not. + ** + ** set_headers will be called prior to this function, allowing the + ** provider to set the appropriate response headers. + ** + ** This may be NULL if handle_get is FALSE. + ** ### maybe toss handle_get and just use this function as the marker + */ + dav_error * (*deliver)(const dav_resource *resource, + ap_filter_t *output); + + /* Create a collection resource. The resource must not already exist. + * + * Result == NULL if the collection was created successfully. Also, the + * resource object is updated to reflect that the resource exists, and + * is a collection. + */ + dav_error * (*create_collection)( + dav_resource *resource + ); + + /* Copy one resource to another. The destination may exist, if it is + * versioned. + * Handles both files and collections. Properties are copied as well. + * If the destination exists and is versioned, the provider must update + * the destination to have identical content to the source, + * recursively for collections. + * The depth argument is ignored for a file, and can be either 0 or + * DAV_INFINITY for a collection. + * If an error occurs in a child resource, then the return value is + * non-NULL, and *response is set to a multistatus response. + * If the copy is successful, the dst resource object is + * updated to reflect that the resource exists. + */ + dav_error * (*copy_resource)( + const dav_resource *src, + dav_resource *dst, + int depth, + dav_response **response + ); + + /* Move one resource to another. The destination must not exist. + * Handles both files and collections. Properties are moved as well. + * If an error occurs in a child resource, then the return value is + * non-NULL, and *response is set to a multistatus response. + * If the move is successful, the src and dst resource objects are + * updated to reflect that the source no longer exists, and the + * destination does. + */ + dav_error * (*move_resource)( + dav_resource *src, + dav_resource *dst, + dav_response **response + ); + + /* Remove a resource. Handles both files and collections. + * Removes any associated properties as well. + * If an error occurs in a child resource, then the return value is + * non-NULL, and *response is set to a multistatus response. + * If the delete is successful, the resource object is updated to + * reflect that the resource no longer exists. + */ + dav_error * (*remove_resource)( + dav_resource *resource, + dav_response **response + ); + + /* Walk a resource hierarchy. + * + * Iterates over the resource hierarchy specified by params->root. + * Control of the walk and the callback are specified by 'params'. + * + * An error may be returned. *response will contain multistatus + * responses (if any) suitable for the body of the error. It is also + * possible to return NULL, yet still have multistatus responses. + * In this case, typically the caller should return a 207 (Multistatus) + * and the responses (in the body) as the HTTP response. + */ + dav_error * (*walk)(const dav_walk_params *params, int depth, + dav_response **response); + + /* Get the entity tag for a resource */ + const char * (*getetag)(const dav_resource *resource); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; +}; + + +/* -------------------------------------------------------------------- +** +** VERSIONING FUNCTIONS +*/ + + +/* dav_add_vary_header + * + * If there were any headers in the request which require a Vary header + * in the response, add it. + */ +DAV_DECLARE(void) dav_add_vary_header(request_rec *in_req, + request_rec *out_req, + const dav_resource *resource); + +/* +** Flags specifying auto-versioning behavior, returned by +** the auto_versionable hook. The value returned depends +** on both the state of the resource and the value of the +** DAV:auto-versioning property for the resource. +** +** If the resource does not exist (null or lock-null), +** DAV_AUTO_VERSION_ALWAYS causes creation of a new version-controlled resource +** +** If the resource is checked in, +** DAV_AUTO_VERSION_ALWAYS causes it to be checked out always, +** DAV_AUTO_VERSION_LOCKED causes it to be checked out only when locked +** +** If the resource is checked out, +** DAV_AUTO_VERSION_ALWAYS causes it to be checked in always, +** DAV_AUTO_VERSION_LOCKED causes it to be checked in when unlocked +** (note: a provider should allow auto-checkin only for resources which +** were automatically checked out) +** +** In all cases, DAV_AUTO_VERSION_NEVER results in no auto-versioning behavior. +*/ +typedef enum { + DAV_AUTO_VERSION_NEVER, + DAV_AUTO_VERSION_ALWAYS, + DAV_AUTO_VERSION_LOCKED +} dav_auto_version; + +/* +** This structure is used to record what auto-versioning operations +** were done to make a resource writable, so that they can be undone +** at the end of a request. +*/ +typedef struct { + int resource_versioned; /* 1 => resource was auto-version-controlled */ + int resource_checkedout; /* 1 => resource was auto-checked-out */ + int parent_checkedout; /* 1 => parent was auto-checked-out */ + dav_resource *parent_resource; /* parent resource, if it was needed */ +} dav_auto_version_info; + +/* Ensure that a resource is writable. If there is no versioning + * provider, then this is essentially a no-op. Versioning repositories + * require explicit resource creation and checkout before they can + * be written to. If a new resource is to be created, or an existing + * resource deleted, the parent collection must be checked out as well. + * + * Set the parent_only flag to only make the parent collection writable. + * Otherwise, both parent and child are made writable as needed. If the + * child does not exist, then a new versioned resource is created and + * checked out. + * + * If auto-versioning is not enabled for a versioned resource, then an error is + * returned, since the resource cannot be modified. + * + * The dav_auto_version_info structure is filled in with enough information + * to restore both parent and child resources to the state they were in + * before the auto-versioning operations occurred. + */ +DAV_DECLARE(dav_error *) dav_auto_checkout( + request_rec *r, + dav_resource *resource, + int parent_only, + dav_auto_version_info *av_info); + +/* Revert the writability of resources back to what they were + * before they were modified. If undo == 0, then the resource + * modifications are maintained (i.e. they are checked in). + * If undo != 0, then resource modifications are discarded + * (i.e. they are unchecked out). + * + * Set the unlock flag to indicate that the resource is about + * to be unlocked; it will be checked in if the resource + * auto-versioning property indicates it should be. In this case, + * av_info is ignored, so it can be NULL. + * + * The resource argument may be NULL if only the parent resource + * was checked out (i.e. the parent_only was != 0 in the + * dav_auto_checkout call). + */ +DAV_DECLARE(dav_error *) dav_auto_checkin( + request_rec *r, + dav_resource *resource, + int undo, + int unlock, + dav_auto_version_info *av_info); + +/* +** This structure is used to describe available reports +** +** "nmspace" should be valid XML and URL-quoted. mod_dav will place +** double-quotes around it and use it in an xmlns declaration. +*/ +typedef struct { + const char *nmspace; /* namespace of the XML report element */ + const char *name; /* element name for the XML report */ +} dav_report_elem; + + +/* Versioning provider hooks */ +struct dav_hooks_vsn +{ + /* + ** MANDATORY HOOKS + ** The following hooks are mandatory for all versioning providers; + ** they define the functionality needed to implement "core" versioning. + */ + + /* Return supported versioning options. + * Each dav_text item in the list will be returned as a separate + * DAV header. Providers are advised to limit the length of an + * individual text item to 63 characters, to conform to the limit + * used by MS Web Folders. + */ + void (*get_vsn_options)(apr_pool_t *p, apr_text_header *phdr); + + /* Get the value of a specific option for an OPTIONS request. + * The option being requested is given by the parsed XML + * element object "elem". The value of the option should be + * appended to the "option" text object. + */ + dav_error * (*get_option)(const dav_resource *resource, + const apr_xml_elem *elem, + apr_text_header *option); + + /* Determine whether a non-versioned (or non-existent) resource + * is versionable. Returns != 0 if resource can be versioned. + */ + int (*versionable)(const dav_resource *resource); + + /* Determine whether auto-versioning is enabled for a resource + * (which may not exist, or may not be versioned). If the resource + * is a checked-out resource, the provider must only enable + * auto-checkin if the resource was automatically checked out. + * + * The value returned depends on both the state of the resource + * and the value of its DAV:auto-version property. See the description + * of the dav_auto_version enumeration above for the details. + */ + dav_auto_version (*auto_versionable)(const dav_resource *resource); + + /* Put a resource under version control. If the resource already + * exists unversioned, then it becomes the initial version of the + * new version history, and it is replaced by a version selector + * which targets the new version. + * + * If the resource does not exist, then a new version-controlled + * resource is created which either targets an existing version (if the + * "target" argument is not NULL), or the initial, empty version + * in a new history resource (if the "target" argument is NULL). + * + * If successful, the resource object state is updated appropriately + * (that is, changed to refer to the new version-controlled resource). + */ + dav_error * (*vsn_control)(dav_resource *resource, + const char *target); + + /* Checkout a resource. If successful, the resource + * object state is updated appropriately. + * + * The auto_checkout flag will be set if this checkout is being + * done automatically, as part of some method which modifies + * the resource. The provider must remember that the resource + * was automatically checked out, so it can determine whether it + * can be automatically checked in. (Auto-checkin should only be + * enabled for resources which were automatically checked out.) + * + * If the working resource has a different URL from the + * target resource, a dav_resource descriptor is returned + * for the new working resource. Otherwise, the original + * resource descriptor will refer to the working resource. + * The working_resource argument can be NULL if the caller + * is not interested in the working resource. + * + * If the client has specified DAV:unreserved or DAV:fork-ok in the + * checkout request, then the corresponding flags are set. If + * DAV:activity-set has been specified, then create_activity is set + * if DAV:new was specified; otherwise, the DAV:href elements' CDATA + * (the actual href text) is passed in the "activities" array (each + * element of the array is a const char *). activities will be NULL + * no DAV:activity-set was provided or when create_activity is set. + */ + dav_error * (*checkout)(dav_resource *resource, + int auto_checkout, + int is_unreserved, int is_fork_ok, + int create_activity, + apr_array_header_t *activities, + dav_resource **working_resource); + + /* Uncheckout a checked-out resource. If successful, the resource + * object state is updated appropriately. + */ + dav_error * (*uncheckout)(dav_resource *resource); + + /* Checkin a checked-out resource. If successful, the resource + * object state is updated appropriately, and the + * version_resource descriptor will refer to the new version. + * The version_resource argument can be NULL if the caller + * is not interested in the new version resource. + * + * If the client has specified DAV:keep-checked-out in the checkin + * request, then the keep_checked_out flag is set. The provider + * should create a new version, but keep the resource in the + * checked-out state. + */ + dav_error * (*checkin)(dav_resource *resource, + int keep_checked_out, + dav_resource **version_resource); + + /* + ** Return the set of reports available at this resource. + ** + ** An array of report elements should be returned, with an end-marker + ** element containing namespace==NULL. The value of the + ** DAV:supported-report-set property will be constructed and + ** returned. + */ + dav_error * (*avail_reports)(const dav_resource *resource, + const dav_report_elem **reports); + + /* + ** Determine whether a Label header can be used + ** with a particular report. The dav_xml_doc structure + ** contains the parsed report request body. + ** Returns 0 if the Label header is not allowed. + */ + int (*report_label_header_allowed)(const apr_xml_doc *doc); + + /* + ** Generate a report on a resource. Since a provider is free + ** to define its own reports, and the value of request headers + ** may affect the interpretation of a report, the request record + ** must be passed to this routine. + ** + ** The dav_xml_doc structure contains the parsed report request + ** body. The report response should be generated into the specified + ** output filter. + ** + ** If an error occurs, and a response has not yet been generated, + ** then an error can be returned from this function. mod_dav will + ** construct an appropriate error response. Once some output has + ** been placed into the filter, however, the provider should not + ** return an error -- there is no way that mod_dav can deliver it + ** properly. + ** + ** ### maybe we need a way to signal an error anyways, and then + ** ### apache can abort the connection? + */ + dav_error * (*deliver_report)(request_rec *r, + const dav_resource *resource, + const apr_xml_doc *doc, + ap_filter_t *output); + + /* + ** OPTIONAL HOOKS + ** The following hooks are optional; if not defined, then the + ** corresponding protocol methods will be unsupported. + */ + + /* + ** Set the state of a checked-in version-controlled resource. + ** + ** If the request specified a version, the version resource + ** represents that version. If the request specified a label, + ** then "version" is NULL, and "label" is the label. + ** + ** The depth argument is ignored for a file, and can be 0, 1, or + ** DAV_INFINITY for a collection. The depth argument only applies + ** with a label, not a version. + ** + ** If an error occurs in a child resource, then the return value is + ** non-NULL, and *response is set to a multistatus response. + ** + ** This hook is optional; if not defined, then the UPDATE method + ** will not be supported. + */ + dav_error * (*update)(const dav_resource *resource, + const dav_resource *version, + const char *label, + int depth, + dav_response **response); + + /* + ** Add a label to a version. The resource is either a specific + ** version, or a version selector, in which case the label should + ** be added to the current target of the version selector. The + ** version selector cannot be checked out. + ** + ** If replace != 0, any existing label by the same name is + ** effectively deleted first. Otherwise, it is an error to + ** attempt to add a label which already exists on some version + ** of the same history resource. + ** + ** This hook is optional; if not defined, then the LABEL method + ** will not be supported. If it is defined, then the remove_label + ** hook must be defined also. + */ + dav_error * (*add_label)(const dav_resource *resource, + const char *label, + int replace); + + /* + ** Remove a label from a version. The resource is either a specific + ** version, or a version selector, in which case the label should + ** be added to the current target of the version selector. The + ** version selector cannot be checked out. + ** + ** It is an error if no such label exists on the specified version. + ** + ** This hook is optional, but if defined, the add_label hook + ** must be defined also. + */ + dav_error * (*remove_label)(const dav_resource *resource, + const char *label); + + /* + ** Determine whether a null resource can be created as a workspace. + ** The provider may restrict workspaces to certain locations. + ** Returns 0 if the resource cannot be a workspace. + ** + ** This hook is optional; if the provider does not support workspaces, + ** it should be set to NULL. + */ + int (*can_be_workspace)(const dav_resource *resource); + + /* + ** Create a workspace resource. The resource must not already + ** exist. Any element is passed to the provider + ** in the "doc" structure; it may be empty. + ** + ** If workspace creation is succesful, the state of the resource + ** object is updated appropriately. + ** + ** This hook is optional; if the provider does not support workspaces, + ** it should be set to NULL. + */ + dav_error * (*make_workspace)(dav_resource *resource, + apr_xml_doc *doc); + + /* + ** Determine whether a null resource can be created as an activity. + ** The provider may restrict activities to certain locations. + ** Returns 0 if the resource cannot be an activity. + ** + ** This hook is optional; if the provider does not support activities, + ** it should be set to NULL. + */ + int (*can_be_activity)(const dav_resource *resource); + + /* + ** Create an activity resource. The resource must not already + ** exist. + ** + ** If activity creation is succesful, the state of the resource + ** object is updated appropriately. + ** + ** This hook is optional; if the provider does not support activities, + ** it should be set to NULL. + */ + dav_error * (*make_activity)(dav_resource *resource); + + /* + ** Merge a resource (tree) into target resource (tree). + ** + ** ### more doc... + ** + ** This hook is optional; if the provider does not support merging, + ** then this should be set to NULL. + */ + dav_error * (*merge)(dav_resource *target, dav_resource *source, + int no_auto_merge, int no_checkout, + apr_xml_elem *prop_elem, + ap_filter_t *output); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; +}; + + +/* -------------------------------------------------------------------- +** +** BINDING FUNCTIONS +*/ + +/* binding provider hooks */ +struct dav_hooks_binding { + + /* Determine whether a resource can be the target of a binding. + * Returns 0 if the resource cannot be a binding target. + */ + int (*is_bindable)(const dav_resource *resource); + + /* Create a binding to a resource. + * The resource argument is the target of the binding; + * the binding argument must be a resource which does not already + * exist. + */ + dav_error * (*bind_resource)(const dav_resource *resource, + dav_resource *binding); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; + +}; + + +/* -------------------------------------------------------------------- +** +** SEARCH(DASL) FUNCTIONS +*/ + +/* search provider hooks */ +struct dav_hooks_search { + /* Set header for a OPTION method + * An error may be returned. + * To set a hadder, this function might call + * apr_table_setn(r->headers_out, "DASL", dasl_optin1); + * + * Examples: + * DASL: + * DASL: + * DASL: + */ + dav_error * (*set_option_head)(request_rec *r); + + /* Search resources + * An error may be returned. *response will contain multistatus + * responses (if any) suitable for the body of the error. It is also + * possible to return NULL, yet still have multistatus responses. + * In this case, typically the caller should return a 207 (Multistatus) + * and the responses (in the body) as the HTTP response. + */ + dav_error * (*search_resource)(request_rec *r, + dav_response **response); + + /* + ** If a provider needs a context to associate with this hooks structure, + ** then this field may be used. In most cases, it will just be NULL. + */ + void *ctx; + +}; + + +/* -------------------------------------------------------------------- +** +** MISCELLANEOUS STUFF +*/ + +/* fetch the "LimitXMLRequestBody" in force for this resource */ +DAV_DECLARE(apr_size_t) dav_get_limit_xml_body(const request_rec *r); + +typedef struct { + int propid; /* live property ID */ + const dav_hooks_liveprop *provider; /* the provider defining this prop */ +} dav_elem_private; + +#ifdef __cplusplus +} +#endif + +#endif /* _MOD_DAV_H_ */ diff --git a/rubbos/app/apache2/include/mod_include.h b/rubbos/app/apache2/include/mod_include.h new file mode 100644 index 00000000..6264b888 --- /dev/null +++ b/rubbos/app/apache2/include/mod_include.h @@ -0,0 +1,206 @@ +/* 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. + */ + +#ifndef _MOD_INCLUDE_H +#define _MOD_INCLUDE_H 1 + +#include "apr_pools.h" +#include "apr_optional.h" + +#define STARTING_SEQUENCE "" + +#define DEFAULT_ERROR_MSG "[an error occurred while processing this directive]" +#define DEFAULT_TIME_FORMAT "%A, %d-%b-%Y %H:%M:%S %Z" +#define SIZEFMT_BYTES 0 +#define SIZEFMT_KMG 1 +#define TMP_BUF_SIZE 1024 +#if APR_CHARSET_EBCDIC +#define RAW_ASCII_CHAR(ch) apr_xlate_conv_byte(ap_hdrs_from_ascii, (unsigned char)ch) +#else /*APR_CHARSET_EBCDIC*/ +#define RAW_ASCII_CHAR(ch) (ch) +#endif /*APR_CHARSET_EBCDIC*/ + +/**************************************************************************** + * Used to keep context information during parsing of a request for SSI tags. + * This is especially useful if the tag stretches across multiple buckets or + * brigades. This keeps track of which buckets need to be replaced with the + * content generated by the SSI tag. + * + * state: PRE_HEAD - State prior to finding the first character of the + * STARTING_SEQUENCE. Next state is PARSE_HEAD. + * PARSE_HEAD - State entered once the first character of the + * STARTING_SEQUENCE is found and exited when the + * the full STARTING_SEQUENCE has been matched or + * a match failure occurs. Next state is PRE_HEAD + * or PARSE_TAG. + * PARSE_TAG - State entered once the STARTING sequence has been + * matched. It is exited when the first character in + * ENDING_SEQUENCE is found. Next state is PARSE_TAIL. + * PARSE_TAIL - State entered from PARSE_TAG state when the first + * character in ENDING_SEQUENCE is encountered. This + * state is exited when the ENDING_SEQUENCE has been + * completely matched, or when a match failure occurs. + * Next state is PARSE_TAG or PARSED. + * PARSED - State entered from PARSE_TAIL once the complete + * ENDING_SEQUENCE has been matched. The SSI tag is + * processed and the SSI buckets are replaced with the + * SSI content during this state. + * parse_pos: Current matched position within the STARTING_SEQUENCE or + * ENDING_SEQUENCE during the PARSE_HEAD and PARSE_TAIL states. + * This is especially useful when the sequence spans brigades. + * X_start_bucket: These point to the buckets containing the first character + * of the STARTING_SEQUENCE, the first non-whitespace + * character of the tag, and the first character in the + * ENDING_SEQUENCE (head_, tag_, and tail_ respectively). + * The buckets are kept intact until the PARSED state is + * reached, at which time the tag is consolidated and the + * buckets are released. The buckets that these point to + * have all been set aside in the ssi_tag_brigade (along + * with all of the intervening buckets). + * X_start_index: The index points within the specified bucket contents + * where the first character of the STARTING_SEQUENCE, + * the first non-whitespace character of the tag, and the + * first character in the ENDING_SEQUENCE can be found + * (head_, tag_, and tail_ respectively). + * combined_tag: Once the PARSED state is reached the tag is collected from + * the bucket(s) in the ssi_tag_brigade into this contiguous + * buffer. The buckets in the ssi_tag_brigade are released + * and the tag is processed. + * curr_tag_pos: Ptr to the combined_tag buffer indicating the current + * parse position. + * tag_length: The number of bytes in the actual tag (excluding the + * STARTING_SEQUENCE, leading and trailing whitespace, + * and ENDING_SEQUENCE). This length is computed as the + * buckets are parsed and set aside during the PARSE_TAG state. + * ssi_tag_brigade: The temporary brigade used by this filter to set aside + * the buckets containing parts of the ssi tag and headers. + */ + +/* I keep this stuff here, because of binary compat. It probably doesn't care, + * but who knows ...? + */ +#ifdef MOD_INCLUDE_REDESIGN +typedef enum {PRE_HEAD, BLOW_PARSE_HEAD, BLOW_PARSE_DIRECTIVE, PARSE_TAG, + BLOW_PARSE_TAIL, PARSED} states; +#else +typedef enum {PRE_HEAD, PARSE_HEAD, PARSE_DIRECTIVE, PARSE_TAG, PARSE_TAIL, + PARSED} states; +#endif + +/** forward referenced as it needs to be held on the context */ +typedef struct bndm_t bndm_t; + +typedef struct include_filter_ctx { + states state; + long flags; /* See the FLAG_XXXXX definitions. */ + int if_nesting_level; + apr_size_t parse_pos; + int bytes_parsed; + apr_status_t status; + int output_now; + int output_flush; + + apr_bucket *head_start_bucket; + apr_size_t head_start_index; + + apr_bucket *tag_start_bucket; + apr_size_t tag_start_index; + + apr_bucket *tail_start_bucket; + apr_size_t tail_start_index; + + char *combined_tag; + char *curr_tag_pos; + apr_size_t directive_length; + apr_size_t tag_length; + + char *error_str; + char *error_str_override; + char *time_str; + char *time_str_override; + apr_pool_t *pool; + + apr_bucket_brigade *ssi_tag_brigade; + bndm_t *start_seq_pat; + char *start_seq; + int start_seq_len; + char *end_seq; + char *re_string; + regmatch_t (*re_result)[10]; +} include_ctx_t; + +/* These flags are used to set flag bits. */ +#define FLAG_PRINTING 0x00000001 /* Printing conditional lines. */ +#define FLAG_COND_TRUE 0x00000002 /* Conditional eval'd to true. */ +#define FLAG_SIZE_IN_BYTES 0x00000004 /* Sizes displayed in bytes. */ +#define FLAG_NO_EXEC 0x00000008 /* No Exec in current context. */ + +/* These flags are used to clear flag bits. */ +#define FLAG_SIZE_ABBREV 0xFFFFFFFB /* Reset SIZE_IN_BYTES bit. */ +#define FLAG_CLEAR_PRINT_COND 0xFFFFFFFC /* Reset PRINTING and COND_TRUE*/ +#define FLAG_CLEAR_PRINTING 0xFFFFFFFE /* Reset just PRINTING bit. */ + +#define CREATE_ERROR_BUCKET(cntx, t_buck, h_ptr, ins_head) \ +{ \ + /* XXX: it'd probably be nice to use a pool bucket here */ \ + t_buck = apr_bucket_heap_create(cntx->error_str, \ + strlen(cntx->error_str), \ + NULL, h_ptr->list); \ + APR_BUCKET_INSERT_BEFORE(h_ptr, t_buck); \ + \ + if (ins_head == NULL) { \ + ins_head = t_buck; \ + } \ +} + +/* Make sure to check the return code rc. If it is anything other + * than APR_SUCCESS, then you should return this value up the + * call chain. + */ +#define SPLIT_AND_PASS_PRETAG_BUCKETS(brgd, cntxt, next, rc) \ +if ((APR_BRIGADE_EMPTY((cntxt)->ssi_tag_brigade)) && \ + ((cntxt)->head_start_bucket != NULL)) { \ + apr_bucket_brigade *tag_plus; \ + \ + tag_plus = apr_brigade_split((brgd), (cntxt)->head_start_bucket); \ + if ((cntxt)->output_flush) { \ + APR_BRIGADE_INSERT_TAIL((brgd), apr_bucket_flush_create((brgd)->bucket_alloc)); \ + } \ + (rc) = ap_pass_brigade((next), (brgd)); \ + (cntxt)->bytes_parsed = 0; \ + (brgd) = tag_plus; \ +} + + +typedef int (include_handler_fn_t)(include_ctx_t *ctx, apr_bucket_brigade **bb, + request_rec *r, ap_filter_t *f, apr_bucket *head_ptr, + apr_bucket **inserted_head); + +APR_DECLARE_OPTIONAL_FN(void, ap_ssi_get_tag_and_value, (include_ctx_t *ctx, + char **tag, + char **tag_val, + int dodecode)); +APR_DECLARE_OPTIONAL_FN(char*, ap_ssi_parse_string, (request_rec *r, + include_ctx_t *ctx, + const char *in, + char *out, + apr_size_t length, + int leave_name)); +APR_DECLARE_OPTIONAL_FN(void, ap_register_include_handler, + (char *tag, include_handler_fn_t *func)); + +#endif /* MOD_INCLUDE */ diff --git a/rubbos/app/apache2/include/mod_log_config.h b/rubbos/app/apache2/include/mod_log_config.h new file mode 100644 index 00000000..00e79014 --- /dev/null +++ b/rubbos/app/apache2/include/mod_log_config.h @@ -0,0 +1,63 @@ +/* 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 "apr_optional.h" +#include "httpd.h" +#include "scoreboard.h" + +#ifndef _MOD_LOG_CONFIG_H +#define _MOD_LOG_CONFIG_H 1 + +/** + * callback function prototype for a external log handler + */ +typedef const char *ap_log_handler_fn_t(request_rec *r, char *a); + +/** + * callback function prototype for external writer initialization. + */ +typedef void *ap_log_writer_init(apr_pool_t *p, server_rec *s, + const char *name); +/** + * callback which gets called where there is a log line to write. + */ +typedef apr_status_t ap_log_writer( + request_rec *r, + void *handle, + const char **portions, + int *lengths, + int nelts, + apr_size_t len); + +typedef struct ap_log_handler { + ap_log_handler_fn_t *func; + int want_orig_default; +} ap_log_handler; + +APR_DECLARE_OPTIONAL_FN(void, ap_register_log_handler, + (apr_pool_t *p, char *tag, ap_log_handler_fn_t *func, + int def)); +/** + * you will need to set your init handler *BEFORE* the open_logs + * in mod_log_config gets executed + */ +APR_DECLARE_OPTIONAL_FN(void, ap_log_set_writer_init,(ap_log_writer_init *func)); +/** + * you should probably set the writer at the same time (ie..before open_logs) + */ +APR_DECLARE_OPTIONAL_FN(void, ap_log_set_writer, (ap_log_writer* func)); + +#endif /* MOD_LOG_CONFIG */ diff --git a/rubbos/app/apache2/include/mod_proxy.h b/rubbos/app/apache2/include/mod_proxy.h new file mode 100644 index 00000000..d1ed7d46 --- /dev/null +++ b/rubbos/app/apache2/include/mod_proxy.h @@ -0,0 +1,255 @@ +/* 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. + */ + +#ifndef MOD_PROXY_H +#define MOD_PROXY_H + +/* + * Main include file for the Apache proxy + */ + +/* + + Also note numerous FIXMEs and CHECKMEs which should be eliminated. + + This code is once again experimental! + + Things to do: + + 1. Make it completely work (for FTP too) + + 2. HTTP/1.1 + + Chuck Murcko 02-06-01 + + */ + +#define CORE_PRIVATE + +#include "apr_hooks.h" +#include "apr.h" +#include "apr_lib.h" +#include "apr_strings.h" +#include "apr_buckets.h" +#include "apr_md5.h" +#include "apr_network_io.h" +#include "apr_pools.h" +#include "apr_strings.h" +#include "apr_uri.h" +#include "apr_date.h" +#include "apr_fnmatch.h" +#define APR_WANT_STRFUNC +#include "apr_want.h" + +#include "httpd.h" +#include "http_config.h" +#include "ap_config.h" +#include "http_core.h" +#include "http_protocol.h" +#include "http_request.h" +#include "http_vhost.h" +#include "http_main.h" +#include "http_log.h" +#include "http_connection.h" +#include "util_filter.h" +#include "util_ebcdic.h" + +#if APR_HAVE_NETINET_IN_H +#include +#endif +#if APR_HAVE_ARPA_INET_H +#include +#endif + +/* for proxy_canonenc() */ +enum enctype { + enc_path, enc_search, enc_user, enc_fpath, enc_parm +}; + +#if APR_CHARSET_EBCDIC +#define CRLF "\r\n" +#else /*APR_CHARSET_EBCDIC*/ +#define CRLF "\015\012" +#endif /*APR_CHARSET_EBCDIC*/ + +/* default Max-Forwards header setting */ +#define DEFAULT_MAX_FORWARDS 10 + +/* static information about a remote proxy */ +struct proxy_remote { + const char *scheme; /* the schemes handled by this proxy, or '*' */ + const char *protocol; /* the scheme used to talk to this proxy */ + const char *hostname; /* the hostname of this proxy */ + apr_port_t port; /* the port for this proxy */ + regex_t *regexp; /* compiled regex (if any) for the remote */ + int use_regex; /* simple boolean. True if we have a regex pattern */ +}; + +struct proxy_alias { + const char *real; + const char *fake; +}; + +struct dirconn_entry { + char *name; + struct in_addr addr, mask; + struct apr_sockaddr_t *hostaddr; + int (*matcher) (struct dirconn_entry * This, request_rec *r); +}; + +struct noproxy_entry { + const char *name; + struct apr_sockaddr_t *addr; +}; + +typedef struct { + apr_array_header_t *proxies; + apr_array_header_t *sec_proxy; + apr_array_header_t *aliases; + apr_array_header_t *raliases; + apr_array_header_t *noproxies; + apr_array_header_t *dirconn; + apr_array_header_t *allowed_connect_ports; + const char *domain; /* domain name to use in absence of a domain name in the request */ + int req; /* true if proxy requests are enabled */ + char req_set; + enum { + via_off, + via_on, + via_block, + via_full + } viaopt; /* how to deal with proxy Via: headers */ + char viaopt_set; + apr_size_t recv_buffer_size; + char recv_buffer_size_set; + apr_size_t io_buffer_size; + char io_buffer_size_set; + long maxfwd; + char maxfwd_set; + /** + * the following setting masks the error page + * returned from the 'proxied server' and just + * forwards the status code upwards. + * This allows the main server (us) to generate + * the error page, (so it will look like a error + * returned from the rest of the system + */ + int error_override; + int error_override_set; + int preserve_host; + int preserve_host_set; + apr_interval_time_t timeout; + apr_interval_time_t timeout_set; + enum { + bad_error, + bad_ignore, + bad_body + } badopt; /* how to deal with bad headers */ + char badopt_set; + +} proxy_server_conf; + +typedef struct { + const char *p; /* The path */ + int p_is_fnmatch; /* Is this path an fnmatch candidate? */ + regex_t *r; /* Is this a regex? */ + const char *ftp_directory_charset; +} proxy_dir_conf; + +typedef struct { + conn_rec *connection; + char *hostname; + apr_port_t port; + int is_ssl; +} proxy_conn_rec; + +typedef struct { + float cache_completion; /* completion percentage */ + int content_length; /* length of the content */ +} proxy_completion; + + +/* hooks */ + +/* Create a set of PROXY_DECLARE(type), PROXY_DECLARE_NONSTD(type) and + * PROXY_DECLARE_DATA with appropriate export and import tags for the platform + */ +#if !defined(WIN32) +#define PROXY_DECLARE(type) type +#define PROXY_DECLARE_NONSTD(type) type +#define PROXY_DECLARE_DATA +#elif defined(PROXY_DECLARE_STATIC) +#define PROXY_DECLARE(type) type __stdcall +#define PROXY_DECLARE_NONSTD(type) type +#define PROXY_DECLARE_DATA +#elif defined(PROXY_DECLARE_EXPORT) +#define PROXY_DECLARE(type) __declspec(dllexport) type __stdcall +#define PROXY_DECLARE_NONSTD(type) __declspec(dllexport) type +#define PROXY_DECLARE_DATA __declspec(dllexport) +#else +#define PROXY_DECLARE(type) __declspec(dllimport) type __stdcall +#define PROXY_DECLARE_NONSTD(type) __declspec(dllimport) type +#define PROXY_DECLARE_DATA __declspec(dllimport) +#endif + +/** + * Hook an optional proxy hook. Unlike static hooks, this uses a macro + * instead of a function. + */ +#define PROXY_OPTIONAL_HOOK(name,fn,pre,succ,order) \ + APR_OPTIONAL_HOOK(proxy,name,fn,pre,succ,order) + +APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, scheme_handler, (request_rec *r, + proxy_server_conf *conf, char *url, + const char *proxyhost, apr_port_t proxyport)) +APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, canon_handler, (request_rec *r, + char *url)) + +APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, create_req, (request_rec *r, request_rec *pr)) +APR_DECLARE_EXTERNAL_HOOK(proxy, PROXY, int, fixups, (request_rec *r)) + +/* proxy_util.c */ + +PROXY_DECLARE(request_rec *)ap_proxy_make_fake_req(conn_rec *c, request_rec *r); +PROXY_DECLARE(int) ap_proxy_hex2c(const char *x); +PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x); +PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t, + int isenc); +PROXY_DECLARE(char *)ap_proxy_canon_netloc(apr_pool_t *p, char **const urlp, char **userp, + char **passwordp, char **hostp, apr_port_t *port); +PROXY_DECLARE(const char *)ap_proxy_date_canon(apr_pool_t *p, const char *x); +PROXY_DECLARE(apr_table_t *)ap_proxy_read_headers(request_rec *r, request_rec *rp, char *buffer, int size, conn_rec *c); +PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val); +PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, const char *val); +PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x); +PROXY_DECLARE(void) ap_proxy_sec2hex(int t, char *y); +PROXY_DECLARE(int) ap_proxyerror(request_rec *r, int statuscode, const char *message); +PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_is_word(struct dirconn_entry *This, apr_pool_t *p); +PROXY_DECLARE(int) ap_proxy_checkproxyblock(request_rec *r, proxy_server_conf *conf, apr_sockaddr_t *uri_addr); +PROXY_DECLARE(int) ap_proxy_pre_http_request(conn_rec *c, request_rec *r); +PROXY_DECLARE(apr_status_t) ap_proxy_string_read(conn_rec *c, apr_bucket_brigade *bb, char *buff, size_t bufflen, int *eos); +PROXY_DECLARE(void) ap_proxy_table_unmerge(apr_pool_t *p, apr_table_t *t, char *key); +PROXY_DECLARE(int) ap_proxy_connect_to_backend(apr_socket_t **, const char *, apr_sockaddr_t *, const char *, proxy_server_conf *, server_rec *, apr_pool_t *); +PROXY_DECLARE(int) ap_proxy_ssl_enable(conn_rec *c); +PROXY_DECLARE(int) ap_proxy_ssl_disable(conn_rec *c); + +/* For proxy_util */ +extern module AP_MODULE_DECLARE_DATA proxy_module; + +#endif /*MOD_PROXY_H*/ diff --git a/rubbos/app/apache2/include/mod_ssl.h b/rubbos/app/apache2/include/mod_ssl.h new file mode 100644 index 00000000..6f69c26f --- /dev/null +++ b/rubbos/app/apache2/include/mod_ssl.h @@ -0,0 +1,724 @@ +/* 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. + */ + +/* _ _ + * _ __ ___ ___ __| | ___ ___| | mod_ssl + * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL + * | | | | | | (_) | (_| | \__ \__ \ | + * |_| |_| |_|\___/ \__,_|___|___/___/_| + * |_____| + * mod_ssl.h + * Global header + */ + /* ``The Apache Group: a collection + of talented individuals who are + trying to perfect the art of + never finishing something.'' + -- Rob Hartill */ +#ifndef __MOD_SSL_H__ +#define __MOD_SSL_H__ + +/* + * Optionally enable the experimental stuff, but allow the user to + * override the decision which experimental parts are included by using + * CFLAGS="-DSSL_EXPERIMENTAL_xxxx_IGNORE". + */ +#ifdef SSL_EXPERIMENTAL +#ifdef SSL_ENGINE +#ifndef SSL_EXPERIMENTAL_ENGINE_IGNORE +#define SSL_EXPERIMENTAL_ENGINE +#endif +#endif +#endif /* SSL_EXPERIMENTAL */ + +/* + * Power up our brain... + */ + +/* Apache headers */ +#include "httpd.h" +#include "http_config.h" +#include "http_core.h" +#include "http_log.h" +#include "http_main.h" +#include "http_connection.h" +#include "http_request.h" +#include "http_protocol.h" +#include "util_script.h" +#include "util_filter.h" +#include "mpm.h" +#include "apr.h" +#include "apr_strings.h" +#define APR_WANT_STRFUNC +#include "apr_want.h" +#include "apr_tables.h" +#include "apr_lib.h" +#include "apr_fnmatch.h" +#include "apr_strings.h" +#include "apr_dbm.h" +#include "apr_rmm.h" +#include "apr_shm.h" +#include "apr_global_mutex.h" +#include "apr_optional.h" + +#define MOD_SSL_VERSION AP_SERVER_BASEREVISION + +#ifdef HAVE_SSLC + +#include +#include +#include +#include +#include +#include +#include +#include + +#else /* !HAVE_SSLC (implicit HAVE_OPENSSL) */ + +#include +#include +#include +#include +#include +#include +#include +#ifdef SSL_EXPERIMENTAL_ENGINE +#include +#endif +#ifdef HAVE_SSL_X509V3_H +#include +#endif + +#endif /* !HAVE_SSLC (implicit HAVE_OPENSSL) */ + + +/* mod_ssl headers */ +#include "ssl_toolkit_compat.h" +#include "ssl_expr.h" +#include "ssl_util_ssl.h" +#include "ssl_util_table.h" + +/* The #ifdef macros are only defined AFTER including the above + * therefore we cannot include these system files at the top :-( + */ +#if APR_HAVE_SYS_TIME_H +#include +#endif +#if APR_HAVE_UNISTD_H +#include /* needed for STDIN_FILENO et.al., at least on FreeBSD */ +#endif + +/* + * Provide reasonable default for some defines + */ +#ifndef FALSE +#define FALSE (0) +#endif +#ifndef TRUE +#define TRUE (!FALSE) +#endif +#ifndef PFALSE +#define PFALSE ((void *)FALSE) +#endif +#ifndef PTRUE +#define PTRUE ((void *)TRUE) +#endif +#ifndef UNSET +#define UNSET (-1) +#endif +#ifndef NUL +#define NUL '\0' +#endif +#ifndef RAND_MAX +#include +#define RAND_MAX INT_MAX +#endif + +/* + * Provide reasonable defines for some types + */ +#ifndef BOOL +#define BOOL unsigned int +#endif +#ifndef UCHAR +#define UCHAR unsigned char +#endif + +/* + * Provide useful shorthands + */ +#define strEQ(s1,s2) (strcmp(s1,s2) == 0) +#define strNE(s1,s2) (strcmp(s1,s2) != 0) +#define strEQn(s1,s2,n) (strncmp(s1,s2,n) == 0) +#define strNEn(s1,s2,n) (strncmp(s1,s2,n) != 0) + +#define strcEQ(s1,s2) (strcasecmp(s1,s2) == 0) +#define strcNE(s1,s2) (strcasecmp(s1,s2) != 0) +#define strcEQn(s1,s2,n) (strncasecmp(s1,s2,n) == 0) +#define strcNEn(s1,s2,n) (strncasecmp(s1,s2,n) != 0) + +#define strIsEmpty(s) (s == NULL || s[0] == NUL) + +#define myConnConfig(c) \ +(SSLConnRec *)ap_get_module_config(c->conn_config, &ssl_module) +#define myCtxConfig(sslconn, sc) (sslconn->is_proxy ? sc->proxy : sc->server) +#define myConnConfigSet(c, val) \ +ap_set_module_config(c->conn_config, &ssl_module, val) +#define mySrvConfig(srv) (SSLSrvConfigRec *)ap_get_module_config(srv->module_config, &ssl_module) +#define myDirConfig(req) (SSLDirConfigRec *)ap_get_module_config(req->per_dir_config, &ssl_module) +#define myModConfig(srv) (mySrvConfig((srv)))->mc + +#define myCtxVarSet(mc,num,val) mc->rCtx.pV##num = val +#define myCtxVarGet(mc,num,type) (type)(mc->rCtx.pV##num) + +/* + * Defaults for the configuration + */ +#ifndef SSL_SESSION_CACHE_TIMEOUT +#define SSL_SESSION_CACHE_TIMEOUT 300 +#endif + +/* + * Support for MM library + */ +#define SSL_MM_FILE_MODE ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD ) + +/* + * Support for DBM library + */ +#define SSL_DBM_FILE_MODE ( APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD ) + +#if !defined(SSL_DBM_FILE_SUFFIX_DIR) && !defined(SSL_DBM_FILE_SUFFIX_PAG) +#if defined(DBM_SUFFIX) +#define SSL_DBM_FILE_SUFFIX_DIR DBM_SUFFIX +#define SSL_DBM_FILE_SUFFIX_PAG DBM_SUFFIX +#elif defined(__FreeBSD__) || (defined(DB_LOCK) && defined(DB_SHMEM)) +#define SSL_DBM_FILE_SUFFIX_DIR ".db" +#define SSL_DBM_FILE_SUFFIX_PAG ".db" +#else +#define SSL_DBM_FILE_SUFFIX_DIR ".dir" +#define SSL_DBM_FILE_SUFFIX_PAG ".pag" +#endif +#endif + +/* + * Define the certificate algorithm types + */ + +typedef int ssl_algo_t; + +#define SSL_ALGO_UNKNOWN (0) +#define SSL_ALGO_RSA (1<<0) +#define SSL_ALGO_DSA (1<<1) +#define SSL_ALGO_ALL (SSL_ALGO_RSA|SSL_ALGO_DSA) + +#define SSL_AIDX_RSA (0) +#define SSL_AIDX_DSA (1) +#define SSL_AIDX_MAX (2) + + +/* + * Define IDs for the temporary RSA keys and DH params + */ + +#define SSL_TMP_KEY_RSA_512 (0) +#define SSL_TMP_KEY_RSA_1024 (1) +#define SSL_TMP_KEY_DH_512 (2) +#define SSL_TMP_KEY_DH_1024 (3) +#define SSL_TMP_KEY_MAX (4) + +/* + * Define the SSL options + */ +#define SSL_OPT_NONE (0) +#define SSL_OPT_RELSET (1<<0) +#define SSL_OPT_STDENVVARS (1<<1) +#define SSL_OPT_COMPATENVVARS (1<<2) +#define SSL_OPT_EXPORTCERTDATA (1<<3) +#define SSL_OPT_FAKEBASICAUTH (1<<4) +#define SSL_OPT_STRICTREQUIRE (1<<5) +#define SSL_OPT_OPTRENEGOTIATE (1<<6) +#define SSL_OPT_ALL (SSL_OPT_STDENVVARS|SSL_OPT_COMPATENVVAR|SSL_OPT_EXPORTCERTDATA|SSL_OPT_FAKEBASICAUTH|SSL_OPT_STRICTREQUIRE|SSL_OPT_OPTRENEGOTIATE) +typedef int ssl_opt_t; + +/* + * Define the SSL Protocol options + */ +#define SSL_PROTOCOL_NONE (0) +#define SSL_PROTOCOL_SSLV2 (1<<0) +#define SSL_PROTOCOL_SSLV3 (1<<1) +#define SSL_PROTOCOL_TLSV1 (1<<2) +#define SSL_PROTOCOL_ALL (SSL_PROTOCOL_SSLV2|SSL_PROTOCOL_SSLV3|SSL_PROTOCOL_TLSV1) +typedef int ssl_proto_t; + +/* + * Define the SSL verify levels + */ +typedef enum { + SSL_CVERIFY_UNSET = UNSET, + SSL_CVERIFY_NONE = 0, + SSL_CVERIFY_OPTIONAL = 1, + SSL_CVERIFY_REQUIRE = 2, + SSL_CVERIFY_OPTIONAL_NO_CA = 3 +} ssl_verify_t; + +#define SSL_VERIFY_PEER_STRICT \ + (SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT) + +#ifndef X509_V_ERR_CERT_UNTRUSTED +#define X509_V_ERR_CERT_UNTRUSTED 27 +#endif + +#define ssl_verify_error_is_optional(errnum) \ + ((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) \ + || (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN) \ + || (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY) \ + || (errnum == X509_V_ERR_CERT_UNTRUSTED) \ + || (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE)) + +/* + * Define the SSL pass phrase dialog types + */ +typedef enum { + SSL_PPTYPE_UNSET = UNSET, + SSL_PPTYPE_BUILTIN = 0, + SSL_PPTYPE_FILTER = 1, + SSL_PPTYPE_PIPE = 2 +} ssl_pphrase_t; + +/* + * Define the Path Checking modes + */ +#define SSL_PCM_EXISTS 1 +#define SSL_PCM_ISREG 2 +#define SSL_PCM_ISDIR 4 +#define SSL_PCM_ISNONZERO 8 +typedef unsigned int ssl_pathcheck_t; + +/* + * Define the SSL session cache modes and structures + */ +typedef enum { + SSL_SCMODE_UNSET = UNSET, + SSL_SCMODE_NONE = 0, + SSL_SCMODE_DBM = 1, + SSL_SCMODE_SHMHT = 2, + SSL_SCMODE_SHMCB = 3 +} ssl_scmode_t; + +/* + * Define the SSL mutex modes + */ +typedef enum { + SSL_MUTEXMODE_UNSET = UNSET, + SSL_MUTEXMODE_NONE = 0, + SSL_MUTEXMODE_USED = 1 +} ssl_mutexmode_t; + +/* + * Define the SSL requirement structure + */ +typedef struct { + char *cpExpr; + ssl_expr *mpExpr; +} ssl_require_t; + +/* + * Define the SSL random number generator seeding source + */ +typedef enum { + SSL_RSCTX_STARTUP = 1, + SSL_RSCTX_CONNECT = 2 +} ssl_rsctx_t; +typedef enum { + SSL_RSSRC_BUILTIN = 1, + SSL_RSSRC_FILE = 2, + SSL_RSSRC_EXEC = 3, + SSL_RSSRC_EGD = 4 +} ssl_rssrc_t; +typedef struct { + ssl_rsctx_t nCtx; + ssl_rssrc_t nSrc; + char *cpPath; + int nBytes; +} ssl_randseed_t; + +/* + * Define the structure of an ASN.1 anything + */ +typedef struct { + long int nData; + unsigned char *cpData; + apr_time_t source_mtime; +} ssl_asn1_t; + +/* + * Define the mod_ssl per-module configuration structure + * (i.e. the global configuration for each httpd process) + */ + +typedef enum { + SSL_SHUTDOWN_TYPE_UNSET, + SSL_SHUTDOWN_TYPE_STANDARD, + SSL_SHUTDOWN_TYPE_UNCLEAN, + SSL_SHUTDOWN_TYPE_ACCURATE +} ssl_shutdown_type_e; + +typedef struct { + SSL *ssl; + const char *client_dn; + X509 *client_cert; + ssl_shutdown_type_e shutdown_type; + const char *verify_info; + const char *verify_error; + int verify_depth; + int is_proxy; + int disabled; + int non_ssl_request; + + /* Track the handshake/renegotiation state for the connection so + * that all client-initiated renegotiations can be rejected, as a + * partial fix for CVE-2009-3555. */ + enum { + RENEG_INIT = 0, /* Before initial handshake */ + RENEG_REJECT, /* After initial handshake; any client-initiated + * renegotiation should be rejected */ + RENEG_ALLOW, /* A server-initated renegotiation is taking + * place (as dictated by configuration) */ + RENEG_ABORT /* Renegotiation initiated by client, abort the + * connection */ + } reneg_state; +} SSLConnRec; + +typedef struct { + pid_t pid; + apr_pool_t *pPool; + BOOL bFixed; + int nSessionCacheMode; + char *szSessionCacheDataFile; + int nSessionCacheDataSize; + apr_shm_t *pSessionCacheDataMM; + apr_rmm_t *pSessionCacheDataRMM; + apr_table_t *tSessionCacheDataTable; + ssl_mutexmode_t nMutexMode; + apr_lockmech_e nMutexMech; + const char *szMutexFile; + apr_global_mutex_t *pMutex; + apr_array_header_t *aRandSeed; + apr_hash_t *tVHostKeys; + void *pTmpKeys[SSL_TMP_KEY_MAX]; + apr_hash_t *tPublicCert; + apr_hash_t *tPrivateKey; +#ifdef SSL_EXPERIMENTAL_ENGINE + char *szCryptoDevice; +#endif + struct { + void *pV1, *pV2, *pV3, *pV4, *pV5, *pV6, *pV7, *pV8, *pV9, *pV10; + } rCtx; +} SSLModConfigRec; + +/* public cert/private key */ +typedef struct { + /* + * server only has 1-2 certs/keys + * 1 RSA and/or 1 DSA + */ + const char *cert_files[SSL_AIDX_MAX]; + const char *key_files[SSL_AIDX_MAX]; + X509 *certs[SSL_AIDX_MAX]; + EVP_PKEY *keys[SSL_AIDX_MAX]; +} modssl_pk_server_t; + +typedef struct { + /* proxy can have any number of cert/key pairs */ + const char *cert_file; + const char *cert_path; + STACK_OF(X509_INFO) *certs; +} modssl_pk_proxy_t; + +/* stuff related to authentication that can also be per-dir */ +typedef struct { + /* known/trusted CAs */ + const char *ca_cert_path; + const char *ca_cert_file; + + const char *cipher_suite; + + /* for client or downstream server authentication */ + int verify_depth; + ssl_verify_t verify_mode; +} modssl_auth_ctx_t; + +typedef struct SSLSrvConfigRec SSLSrvConfigRec; + +typedef struct { + SSLSrvConfigRec *sc; /* pointer back to server config */ + SSL_CTX *ssl_ctx; + + /* we are one or the other */ + modssl_pk_server_t *pks; + modssl_pk_proxy_t *pkp; + + ssl_proto_t protocol; + + /* config for handling encrypted keys */ + ssl_pphrase_t pphrase_dialog_type; + const char *pphrase_dialog_path; + + const char *cert_chain; + + /* certificate revocation list */ + const char *crl_path; + const char *crl_file; + X509_STORE *crl; + + modssl_auth_ctx_t auth; +} modssl_ctx_t; + +struct SSLSrvConfigRec { + SSLModConfigRec *mc; + BOOL enabled; + BOOL proxy_enabled; + const char *vhost_id; + int vhost_id_len; + int session_cache_timeout; + BOOL insecure_reneg; + modssl_ctx_t *server; + modssl_ctx_t *proxy; +}; + +/* + * Define the mod_ssl per-directory configuration structure + * (i.e. the local configuration for all + * and .htaccess contexts) + */ +typedef struct { + BOOL bSSLRequired; + apr_array_header_t *aRequirement; + ssl_opt_t nOptions; + ssl_opt_t nOptionsAdd; + ssl_opt_t nOptionsDel; + const char *szCipherSuite; + ssl_verify_t nVerifyClient; + int nVerifyDepth; + const char *szCACertificatePath; + const char *szCACertificateFile; + const char *szUserName; +} SSLDirConfigRec; + +/* + * function prototypes + */ + +/* API glue structures */ +extern module AP_MODULE_DECLARE_DATA ssl_module; + +/* "global" stuff */ +extern const char ssl_valid_ssl_mutex_string[]; + +/* configuration handling */ +SSLModConfigRec *ssl_config_global_create(server_rec *); +void ssl_config_global_fix(SSLModConfigRec *); +BOOL ssl_config_global_isfixed(SSLModConfigRec *); +void *ssl_config_server_create(apr_pool_t *, server_rec *); +void *ssl_config_server_merge(apr_pool_t *, void *, void *); +void *ssl_config_perdir_create(apr_pool_t *, char *); +void *ssl_config_perdir_merge(apr_pool_t *, void *, void *); +const char *ssl_cmd_SSLMutex(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLPassPhraseDialog(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCryptoDevice(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLRandomSeed(cmd_parms *, void *, const char *, const char *, const char *); +const char *ssl_cmd_SSLEngine(cmd_parms *, void *, int); +const char *ssl_cmd_SSLCipherSuite(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCertificateFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCertificateKeyFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCertificateChainFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCACertificatePath(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCACertificateFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCARevocationPath(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLCARevocationFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLVerifyClient(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLVerifyDepth(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLSessionCache(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLSessionCacheTimeout(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProtocol(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLOptions(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLRequireSSL(cmd_parms *, void *); +const char *ssl_cmd_SSLRequire(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLUserName(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLInsecureRenegotiation(cmd_parms *cmd, void *dcfg, int flag); + +const char *ssl_cmd_SSLProxyEngine(cmd_parms *cmd, void *dcfg, int flag); +const char *ssl_cmd_SSLProxyProtocol(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyCipherSuite(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyVerify(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyVerifyDepth(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyCACertificatePath(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyCACertificateFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyCARevocationPath(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyCARevocationFile(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyMachineCertificatePath(cmd_parms *, void *, const char *); +const char *ssl_cmd_SSLProxyMachineCertificateFile(cmd_parms *, void *, const char *); + +/* module initialization */ +int ssl_init_Module(apr_pool_t *, apr_pool_t *, apr_pool_t *, server_rec *); +void ssl_init_Engine(server_rec *, apr_pool_t *); +void ssl_init_ConfigureServer(server_rec *, apr_pool_t *, apr_pool_t *, SSLSrvConfigRec *); +void ssl_init_CheckServers(server_rec *, apr_pool_t *); +STACK_OF(X509_NAME) + *ssl_init_FindCAList(server_rec *, apr_pool_t *, const char *, const char *); +void ssl_init_Child(apr_pool_t *, server_rec *); +apr_status_t ssl_init_ModuleKill(void *data); + +/* Apache API hooks */ +int ssl_hook_Auth(request_rec *); +int ssl_hook_UserCheck(request_rec *); +int ssl_hook_Access(request_rec *); +int ssl_hook_Fixup(request_rec *); +int ssl_hook_ReadReq(request_rec *); + +/* OpenSSL callbacks */ +RSA *ssl_callback_TmpRSA(SSL *, int, int); +DH *ssl_callback_TmpDH(SSL *, int, int); +int ssl_callback_SSLVerify(int, X509_STORE_CTX *); +int ssl_callback_SSLVerify_CRL(int, X509_STORE_CTX *, conn_rec *); +int ssl_callback_proxy_cert(SSL *ssl, MODSSL_CLIENT_CERT_CB_ARG_TYPE **x509, EVP_PKEY **pkey); +int ssl_callback_NewSessionCacheEntry(SSL *, SSL_SESSION *); +SSL_SESSION *ssl_callback_GetSessionCacheEntry(SSL *, unsigned char *, int, int *); +void ssl_callback_DelSessionCacheEntry(SSL_CTX *, SSL_SESSION *); +void ssl_callback_Info(MODSSL_INFO_CB_ARG_TYPE, int, int); + +/* Session Cache Support */ +void ssl_scache_init(server_rec *, apr_pool_t *); +#if 0 /* XXX */ +void ssl_scache_status_register(apr_pool_t *p); +#endif +void ssl_scache_kill(server_rec *); +BOOL ssl_scache_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *); +SSL_SESSION *ssl_scache_retrieve(server_rec *, UCHAR *, int); +void ssl_scache_remove(server_rec *, UCHAR *, int); +void ssl_scache_expire(server_rec *); +void ssl_scache_status(server_rec *, apr_pool_t *, void (*)(char *, void *), void *); +char *ssl_scache_id2sz(UCHAR *, int); +void ssl_scache_dbm_init(server_rec *, apr_pool_t *); +void ssl_scache_dbm_kill(server_rec *); +BOOL ssl_scache_dbm_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *); +SSL_SESSION *ssl_scache_dbm_retrieve(server_rec *, UCHAR *, int); +void ssl_scache_dbm_remove(server_rec *, UCHAR *, int); +void ssl_scache_dbm_expire(server_rec *); +void ssl_scache_dbm_status(server_rec *, apr_pool_t *, void (*)(char *, void *), void *); + +void ssl_scache_shmht_init(server_rec *, apr_pool_t *); +void ssl_scache_shmht_kill(server_rec *); +BOOL ssl_scache_shmht_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *); +SSL_SESSION *ssl_scache_shmht_retrieve(server_rec *, UCHAR *, int); +void ssl_scache_shmht_remove(server_rec *, UCHAR *, int); +void ssl_scache_shmht_expire(server_rec *); +void ssl_scache_shmht_status(server_rec *, apr_pool_t *, void (*)(char *, void *), void *); + +void ssl_scache_shmcb_init(server_rec *, apr_pool_t *); +void ssl_scache_shmcb_kill(server_rec *); +BOOL ssl_scache_shmcb_store(server_rec *, UCHAR *, int, time_t, SSL_SESSION *); +SSL_SESSION *ssl_scache_shmcb_retrieve(server_rec *, UCHAR *, int); +void ssl_scache_shmcb_remove(server_rec *, UCHAR *, int); +void ssl_scache_shmcb_expire(server_rec *); +void ssl_scache_shmcb_status(server_rec *, apr_pool_t *, void (*)(char *, void *), void *); + +/* Pass Phrase Support */ +void ssl_pphrase_Handle(server_rec *, apr_pool_t *); + +/* Diffie-Hellman Parameter Support */ +DH *ssl_dh_GetTmpParam(int); +DH *ssl_dh_GetParamFromFile(char *); + +unsigned char *ssl_asn1_table_set(apr_hash_t *table, + const char *key, + long int length); + +ssl_asn1_t *ssl_asn1_table_get(apr_hash_t *table, + const char *key); + +void ssl_asn1_table_unset(apr_hash_t *table, + const char *key); + +const char *ssl_asn1_keystr(int keytype); + +const char *ssl_asn1_table_keyfmt(apr_pool_t *p, + const char *id, + int keytype); +/* Mutex Support */ +int ssl_mutex_init(server_rec *, apr_pool_t *); +int ssl_mutex_reinit(server_rec *, apr_pool_t *); +int ssl_mutex_on(server_rec *); +int ssl_mutex_off(server_rec *); + +/* Logfile Support */ +void ssl_die(void); +void ssl_log_ssl_error(const char *, int, int, server_rec *); + +/* Variables */ +void ssl_var_register(void); +char *ssl_var_lookup(apr_pool_t *, server_rec *, conn_rec *, request_rec *, char *); +void ssl_var_log_config_register(apr_pool_t *p); + +APR_DECLARE_OPTIONAL_FN(char *, ssl_var_lookup, + (apr_pool_t *, server_rec *, + conn_rec *, request_rec *, + char *)); + +/* An optional function which returns non-zero if the given connection + * is using SSL/TLS. */ +APR_DECLARE_OPTIONAL_FN(int, ssl_is_https, (conn_rec *)); + +/* Proxy Support */ +int ssl_proxy_enable(conn_rec *c); +int ssl_engine_disable(conn_rec *c); + +APR_DECLARE_OPTIONAL_FN(int, ssl_proxy_enable, (conn_rec *)); + +APR_DECLARE_OPTIONAL_FN(int, ssl_engine_disable, (conn_rec *)); + +/* I/O */ +void ssl_io_filter_init(conn_rec *, SSL *); +void ssl_io_filter_register(apr_pool_t *); +long ssl_io_data_cb(BIO *, int, MODSSL_BIO_CB_ARG_TYPE *, int, long, long); + +/* ssl_io_buffer_fill fills the setaside buffering of the HTTP request + * to allow an SSL renegotiation to take place. */ +int ssl_io_buffer_fill(request_rec *r); + +/* PRNG */ +int ssl_rand_seed(server_rec *, apr_pool_t *, ssl_rsctx_t, char *); + +/* Utility Functions */ +char *ssl_util_vhostid(apr_pool_t *, server_rec *); +void ssl_util_strupper(char *); +void ssl_util_uuencode(char *, const char *, BOOL); +void ssl_util_uuencode_binary(unsigned char *, const unsigned char *, int, BOOL); +apr_file_t *ssl_util_ppopen(server_rec *, apr_pool_t *, const char *, + const char * const *); +void ssl_util_ppclose(server_rec *, apr_pool_t *, apr_file_t *); +char *ssl_util_readfilter(server_rec *, apr_pool_t *, const char *, + const char * const *); +BOOL ssl_util_path_check(ssl_pathcheck_t, const char *, apr_pool_t *); +ssl_algo_t ssl_util_algotypeof(X509 *, EVP_PKEY *); +char *ssl_util_algotypestr(ssl_algo_t); +char *ssl_util_ptxtsub(apr_pool_t *, const char *, const char *, char *); +void ssl_util_thread_setup(apr_pool_t *); + +#define APR_SHM_MAXSIZE (64 * 1024 * 1024) +#endif /* __MOD_SSL_H__ */ diff --git a/rubbos/app/apache2/include/mod_status.h b/rubbos/app/apache2/include/mod_status.h new file mode 100644 index 00000000..03911a02 --- /dev/null +++ b/rubbos/app/apache2/include/mod_status.h @@ -0,0 +1,54 @@ +/* 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. + */ + +#ifndef MOD_STATUS_H +#define MOD_STATUS_H + +#include "ap_config.h" +#include "httpd.h" + +#define AP_STATUS_SHORT (0x1) /* short, non-HTML report requested */ +#define AP_STATUS_NOTABLE (0x2) /* HTML report without tables */ +#define AP_STATUS_EXTENDED (0x4) /* detailed report */ + +#if !defined(WIN32) +#define STATUS_DECLARE(type) type +#define STATUS_DECLARE_NONSTD(type) type +#define STATUS_DECLARE_DATA +#elif defined(STATUS_DECLARE_STATIC) +#define STATUS_DECLARE(type) type __stdcall +#define STATUS_DECLARE_NONSTD(type) type +#define STATUS_DECLARE_DATA +#elif defined(STATUS_DECLARE_EXPORT) +#define STATUS_DECLARE(type) __declspec(dllexport) type __stdcall +#define STATUS_DECLARE_NONSTD(type) __declspec(dllexport) type +#define STATUS_DECLARE_DATA __declspec(dllexport) +#else +#define STATUS_DECLARE(type) __declspec(dllimport) type __stdcall +#define STATUS_DECLARE_NONSTD(type) __declspec(dllimport) type +#define STATUS_DECLARE_DATA __declspec(dllimport) +#endif + +/* Optional hooks which can insert extra content into the mod_status + * output. FLAGS will be set to the bitwise OR of any of the + * AP_STATUS_* flags. + * + * Implementations of this hook should generate content using + * functions in the ap_rputs/ap_rprintf family; each hook should + * return OK or DECLINED. */ +APR_DECLARE_EXTERNAL_HOOK(ap, STATUS, int, status_hook, + (request_rec *r, int flags)) +#endif diff --git a/rubbos/app/apache2/include/mpm.h b/rubbos/app/apache2/include/mpm.h new file mode 100644 index 00000000..31830c6c --- /dev/null +++ b/rubbos/app/apache2/include/mpm.h @@ -0,0 +1,50 @@ +/* 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 "scoreboard.h" +#include "unixd.h" + +#ifndef APACHE_MPM_WORKER_H +#define APACHE_MPM_WORKER_H + +#define WORKER_MPM + +#define MPM_NAME "Worker" + +#define AP_MPM_WANT_RECLAIM_CHILD_PROCESSES +#define AP_MPM_WANT_WAIT_OR_TIMEOUT +#define AP_MPM_WANT_PROCESS_CHILD_STATUS +#define AP_MPM_WANT_SET_PIDFILE +#define AP_MPM_WANT_SET_SCOREBOARD +#define AP_MPM_WANT_SET_LOCKFILE +#define AP_MPM_WANT_SET_MAX_REQUESTS +#define AP_MPM_WANT_SET_COREDUMPDIR +#define AP_MPM_WANT_SET_ACCEPT_LOCK_MECH +#define AP_MPM_WANT_SIGNAL_SERVER +#define AP_MPM_WANT_SET_MAX_MEM_FREE +#define AP_MPM_WANT_FATAL_SIGNAL_HANDLER +#define AP_MPM_DISABLE_NAGLE_ACCEPTED_SOCK + +#define MPM_CHILD_PID(i) (ap_scoreboard_image->parent[i].pid) +#define MPM_NOTE_CHILD_KILLED(i) (MPM_CHILD_PID(i) = 0) +#define MPM_ACCEPT_FUNC unixd_accept + +extern int ap_threads_per_child; +extern int ap_max_daemons_limit; +extern server_rec *ap_server_conf; +extern char ap_coredump_dir[MAX_STRING_LEN]; + +#endif /* APACHE_MPM_WORKER_H */ diff --git a/rubbos/app/apache2/include/mpm_common.h b/rubbos/app/apache2/include/mpm_common.h new file mode 100644 index 00000000..68ead5f7 --- /dev/null +++ b/rubbos/app/apache2/include/mpm_common.h @@ -0,0 +1,298 @@ +/* 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. + */ + +/* The purpose of this file is to store the code that MOST mpm's will need + * this does not mean a function only goes into this file if every MPM needs + * it. It means that if a function is needed by more than one MPM, and + * future maintenance would be served by making the code common, then the + * function belongs here. + * + * This is going in src/main because it is not platform specific, it is + * specific to multi-process servers, but NOT to Unix. Which is why it + * does not belong in src/os/unix + */ + +#ifndef APACHE_MPM_COMMON_H +#define APACHE_MPM_COMMON_H + +#include "ap_config.h" + +#if APR_HAVE_NETINET_TCP_H +#include /* for TCP_NODELAY */ +#endif + +#include "mpm.h" + +#ifdef __cplusplus +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. + * + * It defaults to 511 instead of 512 because some systems store it + * as an 8-bit datatype; 512 truncated to 8-bits is 0, while 511 is + * 255 when truncated. + */ +#ifndef DEFAULT_LISTENBACKLOG +#define DEFAULT_LISTENBACKLOG 511 +#endif + +/** + * Make sure all child processes that have been spawned by the parent process + * have died. This includes process registered as "other_children". + * @warning This is only defined if the MPM defines + * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES + * @param terminate Either 1 or 0. If 1, send the child processes SIGTERM + * each time through the loop. If 0, give the process time to die + * on its own before signalling it. + * @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 reclaimed 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_reclaim_child_processes(int terminate); +#endif + +/** + * Tell ap_reclaim_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 + * reclaimed when ap_reclaim_child_processes() is called. + * @tip If an extra MPM child process terminates prior to calling + * ap_reclaim_child_processes(), remove it from the list of such processes + * by calling ap_unregister_extra_mpm_process(). + */ +#ifdef AP_MPM_WANT_RECLAIM_CHILD_PROCESSES +void ap_register_extra_mpm_process(pid_t pid); +#endif + +/** + * Unregister an MPM child process which was previously registered by a + * call to ap_register_extra_mpm_process(). + * @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 no longer needs to + * be reclaimed. + * @return 1 if the process was found and removed, 0 otherwise + */ +#ifdef AP_MPM_WANT_RECLAIM_CHILD_PROCESSES +int ap_unregister_extra_mpm_process(pid_t pid); +#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 + * macro SCOREBOARD_MAINTENANCE_INTERVAL. + * @param status The return code if a process has died + * @param ret The process id of the process that died + * @param p The pool to allocate out of + */ +#ifdef AP_MPM_WANT_WAIT_OR_TIMEOUT +void ap_wait_or_timeout(apr_exit_why_e *status, int *exitcode, apr_proc_t *ret, + apr_pool_t *p); +#endif + +/** + * Log why a child died to the error log, if the child died without the + * parent signalling it. + * @param pid The child that has died + * @param status The status returned from ap_wait_or_timeout + * @return 0 on success, APEXIT_CHILDFATAL if MPM should terminate + */ +#ifdef AP_MPM_WANT_PROCESS_CHILD_STATUS +int ap_process_child_status(apr_proc_t *pid, apr_exit_why_e why, int status); +#endif + +#if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF) +/** + * Turn off the nagle algorithm for the specified socket. The nagle algorithm + * says that we should delay sending partial packets in the hopes of getting + * more data. There are bad interactions between persistent connections and + * Nagle's algorithm that have severe performance penalties. + * @param s The socket to disable nagle for. + */ +void ap_sock_disable_nagle(apr_socket_t *s); +#else +#define ap_sock_disable_nagle(s) /* NOOP */ +#endif + +#ifdef HAVE_GETPWNAM +/** + * Convert a username to a numeric ID + * @param name The name to convert + * @return The user id corresponding to a name + * @deffunc uid_t ap_uname2id(const char *name) + */ +AP_DECLARE(uid_t) ap_uname2id(const char *name); +#endif + +#ifdef HAVE_GETGRNAM +/** + * Convert a group name to a numeric ID + * @param name The name to convert + * @return The group id corresponding to a name + * @deffunc gid_t ap_gname2id(const char *name) + */ +AP_DECLARE(gid_t) ap_gname2id(const char *name); +#endif + +#define AP_MPM_HARD_LIMITS_FILE APACHE_MPM_DIR "/mpm_default.h" + +#ifdef AP_MPM_USES_POD + +typedef struct ap_pod_t ap_pod_t; + +struct ap_pod_t { + apr_file_t *pod_in; + apr_file_t *pod_out; + apr_pool_t *p; + apr_sockaddr_t *sa; +}; + +/** + * Open the pipe-of-death. The pipe of death is used to tell all child + * processes that it is time to die gracefully. + * @param p The pool to use for allocating the pipe + */ +AP_DECLARE(apr_status_t) ap_mpm_pod_open(apr_pool_t *p, ap_pod_t **pod); + +/** + * Check the pipe to determine if the process has been signalled to die. + */ +AP_DECLARE(apr_status_t) ap_mpm_pod_check(ap_pod_t *pod); + +/** + * Close the pipe-of-death + */ +AP_DECLARE(apr_status_t) ap_mpm_pod_close(ap_pod_t *pod); + +/** + * Write data to the pipe-of-death, signalling that one child process + * should die. + * @param p The pool to use when allocating any required structures. + */ +AP_DECLARE(apr_status_t) ap_mpm_pod_signal(ap_pod_t *pod); + +/** + * Write data to the pipe-of-death, signalling that all child process + * should die. + * @param p The pool to use when allocating any required structures. + * @param num The number of child processes to kill + */ +AP_DECLARE(void) ap_mpm_pod_killpg(ap_pod_t *pod, int num); +#endif + +/* + * These data members are common to all mpms. Each new mpm + * should either use the appropriate ap_mpm_set_* function + * in their command table or create their own for custom or + * OS specific needs. These should work for most. + */ + +/** + * The maximum number of requests each child thread or + * process handles before dying off + */ +#ifdef AP_MPM_WANT_SET_MAX_REQUESTS +extern int ap_max_requests_per_child; +const char *ap_mpm_set_max_requests(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +/** + * The filename used to store the process id. + */ +#ifdef AP_MPM_WANT_SET_PIDFILE +extern const char *ap_pid_fname; +const char *ap_mpm_set_pidfile(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +/** + * The name of lockfile used when Apache needs to lock the accept() call. + */ +#ifdef AP_MPM_WANT_SET_LOCKFILE +extern const char *ap_lock_fname; +const char *ap_mpm_set_lockfile(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +/** + * The system mutex implementation to use for the accept mutex. + */ +#ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH +extern apr_lockmech_e ap_accept_lock_mech; +extern const char ap_valid_accept_mutex_string[]; +const char *ap_mpm_set_accept_lock_mech(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +/* + * Set the scorboard file. + */ +#ifdef AP_MPM_WANT_SET_SCOREBOARD +const char *ap_mpm_set_scoreboard(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +/* + * The directory that the server changes directory to dump core. + */ +#ifdef AP_MPM_WANT_SET_COREDUMPDIR +extern char ap_coredump_dir[MAX_STRING_LEN]; +extern int ap_coredumpdir_configured; +const char *ap_mpm_set_coredumpdir(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +#ifdef AP_MPM_WANT_SIGNAL_SERVER +int ap_signal_server(int *, apr_pool_t *); +void ap_mpm_rewrite_args(process_rec *); +#endif + +#ifdef AP_MPM_WANT_SET_MAX_MEM_FREE +extern apr_uint32_t ap_max_mem_free; +extern const char *ap_mpm_set_max_mem_free(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +#ifdef AP_MPM_WANT_FATAL_SIGNAL_HANDLER +extern apr_status_t ap_fatal_signal_setup(server_rec *s, apr_pool_t *pconf); +extern apr_status_t ap_fatal_signal_child_setup(server_rec *s); +#endif + +#if AP_ENABLE_EXCEPTION_HOOK +extern const char *ap_mpm_set_exception_hook(cmd_parms *cmd, void *dummy, + const char *arg); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_MPM_COMMON_H */ diff --git a/rubbos/app/apache2/include/mpm_default.h b/rubbos/app/apache2/include/mpm_default.h new file mode 100644 index 00000000..d5a33989 --- /dev/null +++ b/rubbos/app/apache2/include/mpm_default.h @@ -0,0 +1,69 @@ +/* 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. + */ + +#ifndef APACHE_MPM_DEFAULT_H +#define APACHE_MPM_DEFAULT_H + +/* Number of servers to spawn off by default --- also, if fewer than + * this free when the caretaker checks, it will spawn more. + */ +#ifndef DEFAULT_START_DAEMON +#define DEFAULT_START_DAEMON 3 +#endif + +/* Maximum number of *free* server processes --- more than this, and + * they will die off. + */ + +#ifndef DEFAULT_MAX_FREE_DAEMON +#define DEFAULT_MAX_FREE_DAEMON 10 +#endif + +/* Minimum --- fewer than this, and more will be created */ + +#ifndef DEFAULT_MIN_FREE_DAEMON +#define DEFAULT_MIN_FREE_DAEMON 3 +#endif + +#ifndef DEFAULT_THREADS_PER_CHILD +#define DEFAULT_THREADS_PER_CHILD 25 +#endif + +/* File used for accept locking, when we use a file */ +#ifndef DEFAULT_LOCKFILE +#define DEFAULT_LOCKFILE DEFAULT_REL_RUNTIMEDIR "/accept.lock" +#endif + +/* Where the main/parent process's pid is logged */ +#ifndef DEFAULT_PIDLOG +#define DEFAULT_PIDLOG DEFAULT_REL_RUNTIMEDIR "/httpd.pid" +#endif + +/* + * Interval, in microseconds, between scoreboard maintenance. + */ +#ifndef SCOREBOARD_MAINTENANCE_INTERVAL +#define SCOREBOARD_MAINTENANCE_INTERVAL 1000000 +#endif + +/* Number of requests to try to handle in a single process. If <= 0, + * the children don't die off. + */ +#ifndef DEFAULT_MAX_REQUESTS_PER_CHILD +#define DEFAULT_MAX_REQUESTS_PER_CHILD 10000 +#endif + +#endif /* AP_MPM_DEFAULT_H */ diff --git a/rubbos/app/apache2/include/os.h b/rubbos/app/apache2/include/os.h new file mode 100644 index 00000000..59f1a439 --- /dev/null +++ b/rubbos/app/apache2/include/os.h @@ -0,0 +1,27 @@ +/* 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. + */ + +#ifndef APACHE_OS_H +#define APACHE_OS_H + +#include "apr.h" +#include "ap_config.h" + +#ifndef PLATFORM +#define PLATFORM "Unix" +#endif + +#endif /* !APACHE_OS_H */ diff --git a/rubbos/app/apache2/include/pcre.h b/rubbos/app/apache2/include/pcre.h new file mode 100644 index 00000000..d6c23939 --- /dev/null +++ b/rubbos/app/apache2/include/pcre.h @@ -0,0 +1,113 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* Copyright (c) 1997-2001 University of Cambridge */ + +#ifndef _PCRE_H +#define _PCRE_H + +/* The file pcre.h is build by "configure". Do not edit it; instead +make changes to pcre.in. */ + +#define PCRE_MAJOR 3 +#define PCRE_MINOR 9 +#define PCRE_DATE 02-Jan-2002 + +/* Win32 uses DLL by default */ + +#ifdef _WIN32 +# ifdef STATIC +# define PCRE_DL_IMPORT +# else +# define PCRE_DL_IMPORT __declspec(dllimport) +# endif +#else +# define PCRE_DL_IMPORT +#endif + +/* Have to include stdlib.h in order to ensure that size_t is defined; +it is needed here for malloc. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options */ + +#define PCRE_CASELESS 0x0001 +#define PCRE_MULTILINE 0x0002 +#define PCRE_DOTALL 0x0004 +#define PCRE_EXTENDED 0x0008 +#define PCRE_ANCHORED 0x0010 +#define PCRE_DOLLAR_ENDONLY 0x0020 +#define PCRE_EXTRA 0x0040 +#define PCRE_NOTBOL 0x0080 +#define PCRE_NOTEOL 0x0100 +#define PCRE_UNGREEDY 0x0200 +#define PCRE_NOTEMPTY 0x0400 +#define PCRE_UTF8 0x0800 + +/* Exec-time and get-time error codes */ + +#define PCRE_ERROR_NOMATCH (-1) +#define PCRE_ERROR_NULL (-2) +#define PCRE_ERROR_BADOPTION (-3) +#define PCRE_ERROR_BADMAGIC (-4) +#define PCRE_ERROR_UNKNOWN_NODE (-5) +#define PCRE_ERROR_NOMEMORY (-6) +#define PCRE_ERROR_NOSUBSTRING (-7) + +/* Request types for pcre_fullinfo() */ + +#define PCRE_INFO_OPTIONS 0 +#define PCRE_INFO_SIZE 1 +#define PCRE_INFO_CAPTURECOUNT 2 +#define PCRE_INFO_BACKREFMAX 3 +#define PCRE_INFO_FIRSTCHAR 4 +#define PCRE_INFO_FIRSTTABLE 5 +#define PCRE_INFO_LASTLITERAL 6 + +/* Types */ + +struct real_pcre; /* declaration; the definition is private */ +struct real_pcre_extra; /* declaration; the definition is private */ + +typedef struct real_pcre pcre; +typedef struct real_pcre_extra pcre_extra; + +/* Store get and free functions. These can be set to alternative malloc/free +functions if required. Some magic is required for Win32 DLL; it is null on +other OS. */ + +PCRE_DL_IMPORT extern void *(*pcre_malloc)(size_t); +PCRE_DL_IMPORT extern void (*pcre_free)(void *); + +#undef PCRE_DL_IMPORT + +/* Functions */ + +extern pcre *pcre_compile(const char *, int, const char **, int *, + const unsigned char *); +extern int pcre_copy_substring(const char *, int *, int, int, char *, int); +extern int pcre_exec(const pcre *, const pcre_extra *, const char *, + int, int, int, int *, int); +extern void pcre_free_substring(const char *); +extern void pcre_free_substring_list(const char **); +extern int pcre_get_substring(const char *, int *, int, int, const char **); +extern int pcre_get_substring_list(const char *, int *, int, const char ***); +extern int pcre_info(const pcre *, int *, int *); +extern int pcre_fullinfo(const pcre *, const pcre_extra *, int, void *); +extern const unsigned char *pcre_maketables(void); +extern pcre_extra *pcre_study(const pcre *, int, const char **); +extern const char *pcre_version(void); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcre.h */ diff --git a/rubbos/app/apache2/include/pcreposix.h b/rubbos/app/apache2/include/pcreposix.h new file mode 100644 index 00000000..e70af2de --- /dev/null +++ b/rubbos/app/apache2/include/pcreposix.h @@ -0,0 +1,88 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* Copyright (c) 1997-2001 University of Cambridge */ + +#ifndef _PCREPOSIX_H +#define _PCREPOSIX_H + +/* This is the header for the POSIX wrapper interface to the PCRE Perl- +Compatible Regular Expression library. It defines the things POSIX says should +be there. I hope. */ + +/* Have to include stdlib.h in order to ensure that size_t is defined. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options defined by POSIX. */ + +#define REG_ICASE 0x01 +#define REG_NEWLINE 0x02 +#define REG_NOTBOL 0x04 +#define REG_NOTEOL 0x08 + +/* These are not used by PCRE, but by defining them we make it easier +to slot PCRE into existing programs that make POSIX calls. */ + +#define REG_EXTENDED 0 +#define REG_NOSUB 0 + +/* Error values. Not all these are relevant or used by the wrapper. */ + +enum { + REG_ASSERT = 1, /* internal error ? */ + REG_BADBR, /* invalid repeat counts in {} */ + REG_BADPAT, /* pattern error */ + REG_BADRPT, /* ? * + invalid */ + REG_EBRACE, /* unbalanced {} */ + REG_EBRACK, /* unbalanced [] */ + REG_ECOLLATE, /* collation error - not relevant */ + REG_ECTYPE, /* bad class */ + REG_EESCAPE, /* bad escape sequence */ + REG_EMPTY, /* empty expression */ + REG_EPAREN, /* unbalanced () */ + REG_ERANGE, /* bad range inside [] */ + REG_ESIZE, /* expression too big */ + REG_ESPACE, /* failed to get memory */ + REG_ESUBREG, /* bad back reference */ + REG_INVARG, /* bad argument */ + REG_NOMATCH /* match failed */ +}; + + +/* The structure representing a compiled regular expression. */ + +typedef struct { + void *re_pcre; + size_t re_nsub; + size_t re_erroffset; +} regex_t; + +/* The structure in which a captured offset is returned. */ + +typedef int regoff_t; + +typedef struct { + regoff_t rm_so; + regoff_t rm_eo; +} regmatch_t; + +/* The functions */ + +extern int regcomp(regex_t *, const char *, int); +extern int regexec(regex_t *, const char *, size_t, regmatch_t *, int); +extern size_t regerror(int, const regex_t *, char *, size_t); +extern void regfree(regex_t *); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* End of pcreposix.h */ diff --git a/rubbos/app/apache2/include/pod.h b/rubbos/app/apache2/include/pod.h new file mode 100644 index 00000000..21651e6f --- /dev/null +++ b/rubbos/app/apache2/include/pod.h @@ -0,0 +1,50 @@ +/* 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 "apr.h" +#include "apr_strings.h" +#define APR_WANT_STRFUNC +#include "apr_want.h" + +#include "httpd.h" +#include "http_config.h" +#include "http_log.h" +#include "http_main.h" +#include "mpm.h" +#include "mpm_common.h" +#include "ap_mpm.h" +#include "ap_listen.h" +#include "mpm_default.h" + +#define RESTART_CHAR '$' +#define GRACEFUL_CHAR '!' + +#define AP_RESTART 0 +#define AP_GRACEFUL 1 + +typedef struct ap_pod_t ap_pod_t; + +struct ap_pod_t { + apr_file_t *pod_in; + apr_file_t *pod_out; + apr_pool_t *p; +}; + +AP_DECLARE(apr_status_t) ap_mpm_pod_open(apr_pool_t *p, ap_pod_t **pod); +AP_DECLARE(int) ap_mpm_pod_check(ap_pod_t *pod); +AP_DECLARE(apr_status_t) ap_mpm_pod_close(ap_pod_t *pod); +AP_DECLARE(apr_status_t) ap_mpm_pod_signal(ap_pod_t *pod, int graceful); +AP_DECLARE(void) ap_mpm_pod_killpg(ap_pod_t *pod, int num, int graceful); diff --git a/rubbos/app/apache2/include/rfc1413.h b/rubbos/app/apache2/include/rfc1413.h new file mode 100644 index 00000000..a4ffdf11 --- /dev/null +++ b/rubbos/app/apache2/include/rfc1413.h @@ -0,0 +1,42 @@ +/* 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. + */ + +#ifndef APACHE_RFC1413_H +#define APACHE_RFC1413_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package RFC1413 package + */ + +/** + * Retrieve the remote user name, given socket structures. This implements + * RFC1413, which involves querying the client's identd or auth daemon. + * @param conn The current connection + * @param srv The current server + * @return The remote user name + * @deffunc char *ap_rfc1413(conn_rec *conn, server_rec *srv) + */ +extern char *ap_rfc1413(conn_rec *conn, server_rec *srv); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_RFC1413_H */ diff --git a/rubbos/app/apache2/include/scoreboard.h b/rubbos/app/apache2/include/scoreboard.h new file mode 100644 index 00000000..6ca18582 --- /dev/null +++ b/rubbos/app/apache2/include/scoreboard.h @@ -0,0 +1,197 @@ +/* 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. + */ + +#ifndef APACHE_SCOREBOARD_H +#define APACHE_SCOREBOARD_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef HAVE_SYS_TIMES_H +#include +#include +#elif defined(TPF) +#include +#endif + +#include "ap_config.h" +#include "apr_hooks.h" +#include "apr_thread_proc.h" +#include "apr_portable.h" +#include "apr_shm.h" + +/* Scoreboard file, if there is one */ +#ifndef DEFAULT_SCOREBOARD +#define DEFAULT_SCOREBOARD "logs/apache_runtime_status" +#endif + +/* Scoreboard info on a process is, for now, kept very brief --- + * just status value and pid (the latter so that the caretaker process + * can properly update the scoreboard when a process dies). We may want + * to eventually add a separate set of long_score structures which would + * give, for each process, the number of requests serviced, and info on + * the current, or most recent, request. + * + * Status values: + */ + +#define SERVER_DEAD 0 +#define SERVER_STARTING 1 /* Server Starting up */ +#define SERVER_READY 2 /* Waiting for connection (or accept() lock) */ +#define SERVER_BUSY_READ 3 /* Reading a client request */ +#define SERVER_BUSY_WRITE 4 /* Processing a client request */ +#define SERVER_BUSY_KEEPALIVE 5 /* Waiting for more requests via keepalive */ +#define SERVER_BUSY_LOG 6 /* Logging the request */ +#define SERVER_BUSY_DNS 7 /* Looking up a hostname */ +#define SERVER_CLOSING 8 /* Closing the connection */ +#define SERVER_GRACEFUL 9 /* server is gracefully finishing request */ +#define SERVER_IDLE_KILL 10 /* Server is cleaning up idle children. */ +#define SERVER_NUM_STATUS 11 /* number of status settings */ + +/* Type used for generation indicies. Startup and every restart cause a + * new generation of children to be spawned. Children within the same + * generation share the same configuration information -- pointers to stuff + * created at config time in the parent are valid across children. However, + * this can't work effectively with non-forked architectures. So while the + * arrays in the scoreboard never change between the parent and forked + * children, so they do not require shm storage, the contents of the shm + * may contain no pointers. + */ +typedef int ap_generation_t; + +/* Is the scoreboard shared between processes or not? + * Set by the MPM when the scoreboard is created. + */ +typedef enum { + SB_NOT_SHARED = 1, + SB_SHARED = 2 +} ap_scoreboard_e; + +#define SB_WORKING 0 /* The server is busy and the child is useful. */ +#define SB_IDLE_DIE 1 /* The server is idle and the child is superfluous. */ + /* The child should check for this and exit gracefully. */ + +/* stuff which is worker specific */ +/***********************WARNING***************************************/ +/* These are things that are used by mod_status. Do not put anything */ +/* in here that you cannot live without. This structure will not */ +/* be available if mod_status is not loaded. */ +/*********************************************************************/ +typedef struct worker_score worker_score; + +struct worker_score { + int thread_num; +#if APR_HAS_THREADS + apr_os_thread_t tid; +#endif + unsigned char status; + unsigned long access_count; + apr_off_t bytes_served; + unsigned long my_access_count; + apr_off_t my_bytes_served; + apr_off_t conn_bytes; + unsigned short conn_count; + apr_time_t start_time; + apr_time_t stop_time; +#ifdef HAVE_TIMES + struct tms times; +#endif + apr_time_t last_used; + char client[32]; /* Keep 'em small... */ + char request[64]; /* We just want an idea... */ + char vhost[32]; /* What virtual host is being accessed? */ +}; + +typedef struct { + int server_limit; + int thread_limit; + ap_scoreboard_e sb_type; + ap_generation_t running_generation; /* the generation of children which + * should still be serving requests. */ + apr_time_t restart_time; +} global_score; + +/* stuff which the parent generally writes and the children rarely read */ +typedef struct process_score process_score; +struct process_score{ + pid_t pid; + ap_generation_t generation; /* generation of this child */ + ap_scoreboard_e sb_type; + int quiescing; /* the process whose pid is stored above is + * going down gracefully + */ +}; + +/* Scoreboard is now in 'local' memory, since it isn't updated once created, + * even in forked architectures. Child created-processes (non-fork) will + * set up these indicies into the (possibly relocated) shmem records. + */ +typedef struct { + global_score *global; + process_score *parent; + worker_score **servers; +} scoreboard; + +typedef struct ap_sb_handle_t ap_sb_handle_t; + +AP_DECLARE(int) ap_exists_scoreboard_image(void); +AP_DECLARE(void) ap_increment_counts(ap_sb_handle_t *sbh, request_rec *r); + +int ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e t); +apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int detached); +void ap_init_scoreboard(void *shared_score); +AP_DECLARE(int) ap_calc_scoreboard_size(void); +apr_status_t ap_cleanup_scoreboard(void *d); + +AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p, + int child_num, int thread_num); + +AP_DECLARE(int) find_child_by_pid(apr_proc_t *pid); +AP_DECLARE(int) ap_update_child_status(ap_sb_handle_t *sbh, int status, request_rec *r); +AP_DECLARE(int) ap_update_child_status_from_indexes(int child_num, int thread_num, + int status, request_rec *r); +void ap_time_process_request(ap_sb_handle_t *sbh, int status); + +AP_DECLARE(worker_score *) ap_get_scoreboard_worker(int x, int y); +AP_DECLARE(process_score *) ap_get_scoreboard_process(int x); +AP_DECLARE(global_score *) ap_get_scoreboard_global(void); + +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 ap_generation_t volatile ap_my_generation; + +/* Hooks */ +/** + * Hook for post scoreboard creation, pre mpm. + * @param p Apache pool to allocate from. + * @param sb_type + * @ingroup hooks + * @return OK or DECLINE on success; anything else is a error + */ +AP_DECLARE_HOOK(int, pre_mpm, (apr_pool_t *p, ap_scoreboard_e sb_type)) + +/* for time_process_request() in http_main.c */ +#define START_PREQUEST 1 +#define STOP_PREQUEST 2 + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_SCOREBOARD_H */ diff --git a/rubbos/app/apache2/include/ssl_expr.h b/rubbos/app/apache2/include/ssl_expr.h new file mode 100644 index 00000000..20b9fbdb --- /dev/null +++ b/rubbos/app/apache2/include/ssl_expr.h @@ -0,0 +1,104 @@ +/* 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. + */ + +/* _ _ + * _ __ ___ ___ __| | ___ ___| | mod_ssl + * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL + * | | | | | | (_) | (_| | \__ \__ \ | + * |_| |_| |_|\___/ \__,_|___|___/___/_| + * |_____| + * ssl_expr.h + * Expression Handling (Header) + */ + /* ``May all your PUSHes be POPed.'' */ + +#ifndef __SSL_EXPR_H__ +#define __SSL_EXPR_H__ + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE !FALSE +#endif + +#ifndef YY_NULL +#define YY_NULL 0 +#endif + +#ifndef MIN +#define MIN(a,b) (((a)<(b))?(a):(b)) +#endif + +#ifndef BOOL +#define BOOL unsigned int +#endif + +#ifndef NULL +#define NULL (void *)0 +#endif + +#ifndef NUL +#define NUL '\0' +#endif + +#ifndef YYDEBUG +#define YYDEBUG 0 +#endif + +typedef enum { + op_NOP, op_ListElement, + op_True, op_False, op_Not, op_Or, op_And, op_Comp, + op_EQ, op_NE, op_LT, op_LE, op_GT, op_GE, op_IN, op_REG, op_NRE, + op_Digit, op_String, op_Regex, op_Var, op_Func +} ssl_expr_node_op; + +typedef struct { + ssl_expr_node_op node_op; + void *node_arg1; + void *node_arg2; + apr_pool_t *p; +} ssl_expr_node; + +typedef ssl_expr_node ssl_expr; + +typedef struct { + apr_pool_t *pool; + char *inputbuf; + int inputlen; + char *inputptr; + ssl_expr *expr; +} ssl_expr_info_type; + +extern ssl_expr_info_type ssl_expr_info; +extern char *ssl_expr_error; + +#define yylval ssl_expr_yylval +#define yyerror ssl_expr_yyerror +#define yyinput ssl_expr_yyinput + +extern int ssl_expr_yyparse(void); +extern int ssl_expr_yyerror(char *); +extern int ssl_expr_yylex(void); + +extern ssl_expr *ssl_expr_comp(apr_pool_t *, char *); +extern int ssl_expr_exec(request_rec *, ssl_expr *); +extern char *ssl_expr_get_error(void); +extern ssl_expr *ssl_expr_make(ssl_expr_node_op, void *, void *); +extern BOOL ssl_expr_eval(request_rec *, ssl_expr *); + +#endif /* __SSL_EXPR_H__ */ diff --git a/rubbos/app/apache2/include/ssl_expr_parse.h b/rubbos/app/apache2/include/ssl_expr_parse.h new file mode 100644 index 00000000..5378e287 --- /dev/null +++ b/rubbos/app/apache2/include/ssl_expr_parse.h @@ -0,0 +1,27 @@ +typedef union { + char *cpVal; + ssl_expr *exVal; +} YYSTYPE; +#define T_TRUE 257 +#define T_FALSE 258 +#define T_DIGIT 259 +#define T_ID 260 +#define T_STRING 261 +#define T_REGEX 262 +#define T_REGEX_I 263 +#define T_FUNC_FILE 264 +#define T_OP_EQ 265 +#define T_OP_NE 266 +#define T_OP_LT 267 +#define T_OP_LE 268 +#define T_OP_GT 269 +#define T_OP_GE 270 +#define T_OP_REG 271 +#define T_OP_NRE 272 +#define T_OP_IN 273 +#define T_OP_OR 274 +#define T_OP_AND 275 +#define T_OP_NOT 276 + + +extern YYSTYPE ssl_expr_yylval; diff --git a/rubbos/app/apache2/include/ssl_toolkit_compat.h b/rubbos/app/apache2/include/ssl_toolkit_compat.h new file mode 100644 index 00000000..72772150 --- /dev/null +++ b/rubbos/app/apache2/include/ssl_toolkit_compat.h @@ -0,0 +1,239 @@ +/* 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. + */ + +#ifndef SSL_TOOLKIT_COMPAT_H +#define SSL_TOOLKIT_COMPAT_H + +/* + * this header file provides a compatiblity layer + * between OpenSSL and RSA sslc + */ + +#ifdef OPENSSL_VERSION_NUMBER + +/* + * rsa sslc uses incomplete types for most structures + * so we macroize for OpenSSL those which cannot be dereferenced + * using the same sames as the sslc functions + */ + +#define EVP_PKEY_key_type(k) (EVP_PKEY_type(k->type)) + +#define X509_NAME_get_entries(xs) (xs->entries) +#define X509_REVOKED_get_serialNumber(xs) (xs->serialNumber) + +#define X509_get_signature_algorithm(xs) (xs->cert_info->signature->algorithm) +#define X509_get_key_algorithm(xs) (xs->cert_info->key->algor->algorithm) + +#define X509_NAME_ENTRY_get_data_ptr(xs) (xs->value->data) +#define X509_NAME_ENTRY_get_data_len(xs) (xs->value->length) + +#define SSL_CTX_get_extra_certs(ctx) (ctx->extra_certs) +#define SSL_CTX_set_extra_certs(ctx,value) {ctx->extra_certs = value;} + +#define SSL_CIPHER_get_name(s) (s->name) +#define SSL_CIPHER_get_valid(s) (s->valid) + +#define SSL_SESSION_get_session_id(s) (s->session_id) +#define SSL_SESSION_get_session_id_length(s) (s->session_id_length) + +/* + * Support for retrieving/overriding states + */ +#ifndef SSL_get_state +#define SSL_get_state(ssl) SSL_state(ssl) +#endif + +#define SSL_set_state(ssl,val) (ssl)->state = val + +#define MODSSL_BIO_CB_ARG_TYPE const char +#define MODSSL_CRYPTO_CB_ARG_TYPE const char +#if (OPENSSL_VERSION_NUMBER < 0x00907000) +#define MODSSL_INFO_CB_ARG_TYPE SSL* +#else +#define MODSSL_INFO_CB_ARG_TYPE const SSL* +#endif +#define MODSSL_CLIENT_CERT_CB_ARG_TYPE X509 +#define MODSSL_PCHAR_CAST + +/* ...shifting sands of openssl... */ +#if (OPENSSL_VERSION_NUMBER >= 0x0090707f) +# define MODSSL_D2I_SSL_SESSION_CONST const +#else +# define MODSSL_D2I_SSL_SESSION_CONST +#endif + +#if (OPENSSL_VERSION_NUMBER >= 0x00908000) +# define MODSSL_D2I_PrivateKey_CONST const +# define MODSSL_D2I_X509_CONST const +#else +# define MODSSL_D2I_PrivateKey_CONST +# define MODSSL_D2I_X509_CONST +#endif + +#define modssl_X509_verify_cert X509_verify_cert + +typedef int (modssl_read_bio_cb_fn)(char*,int,int,void*); + +#if (OPENSSL_VERSION_NUMBER < 0x00904000) +#define modssl_PEM_read_bio_X509(b, x, cb, arg) PEM_read_bio_X509(b, x, cb) +#else +#define modssl_PEM_read_bio_X509(b, x, cb, arg) PEM_read_bio_X509(b, x, cb, arg) +#endif + +#define modssl_PEM_X509_INFO_read_bio PEM_X509_INFO_read_bio + +#define modssl_PEM_read_bio_PrivateKey PEM_read_bio_PrivateKey + +#define modssl_set_cipher_list SSL_set_cipher_list + +#define modssl_free OPENSSL_free + +#define EVP_PKEY_reference_inc(pkey) \ + CRYPTO_add(&((pkey)->references), +1, CRYPTO_LOCK_X509_PKEY) + +#define X509_reference_inc(cert) \ + CRYPTO_add(&((cert)->references), +1, CRYPTO_LOCK_X509) + +#define HAVE_SSL_RAND_EGD /* since 9.5.1 */ + +#ifdef HAVE_SSL_X509V3_H +#define HAVE_SSL_X509V3_EXT_d2i +#endif + +#ifndef PEM_F_DEF_CALLBACK +#ifdef PEM_F_PEM_DEF_CALLBACK +/* In OpenSSL 0.9.8 PEM_F_DEF_CALLBACK was renamed */ +#define PEM_F_DEF_CALLBACK PEM_F_PEM_DEF_CALLBACK +#endif +#endif + +#elif defined (SSLC_VERSION_NUMBER) /* RSA */ + +/* sslc does not support this function, OpenSSL has since 9.5.1 */ +#define RAND_status() 1 + +/* sslc names this function a bit differently */ +#define CRYPTO_num_locks() CRYPTO_get_num_locks() + +#ifndef STACK_OF +#define STACK_OF(type) STACK +#endif + +#define MODSSL_BIO_CB_ARG_TYPE char +#define MODSSL_CRYPTO_CB_ARG_TYPE char +#define MODSSL_INFO_CB_ARG_TYPE SSL* +#define MODSSL_CLIENT_CERT_CB_ARG_TYPE void +#define MODSSL_PCHAR_CAST (char *) +#define MODSSL_D2I_SSL_SESSION_CONST +#define MODSSL_D2I_PrivateKey_CONST +#define MODSSL_D2I_X509_CONST + +typedef int (modssl_read_bio_cb_fn)(char*,int,int); + +#define modssl_X509_verify_cert(c) X509_verify_cert(c, NULL) + +#define modssl_PEM_read_bio_X509(b, x, cb, arg) \ + PEM_read_bio_X509(b, x, cb) + +#define modssl_PEM_X509_INFO_read_bio(b, x, cb, arg)\ + PEM_X509_INFO_read_bio(b, x, cb) + +#define modssl_PEM_read_bio_PrivateKey(b, k, cb, arg) \ + PEM_read_bio_PrivateKey(b, k, cb) + +#ifndef HAVE_SSL_SET_STATE +#define SSL_set_state(ssl, state) /* XXX: should throw an error */ +#endif + +#define modssl_set_cipher_list(ssl, l) \ + SSL_set_cipher_list(ssl, (char *)l) + +#define modssl_free free + +#ifndef PEM_F_DEF_CALLBACK +#define PEM_F_DEF_CALLBACK PEM_F_DEF_CB +#endif + +#if SSLC_VERSION_NUMBER < 0x2000 + +#define X509_STORE_CTX_set_depth(st, d) +#define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate) +#define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate) +#define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) +#define X509_REVOKED_get_serialNumber(xs) (xs->serialNumber) + +#define modssl_set_verify(ssl, verify, cb) \ + SSL_set_verify(ssl, verify) + +#define NO_SSL_X509V3_H + +#else /* SSLC_VERSION_NUMBER >= 0x2000 */ + +#define CRYPTO_malloc_init R_malloc_init + +#define EVP_cleanup() + +#endif /* SSLC_VERSION_NUMBER >= 0x2000 */ + +typedef void (*modssl_popfree_fn)(char *data); + +#define sk_SSL_CIPHER_dup sk_dup +#define sk_SSL_CIPHER_find(st, data) sk_find(st, (void *)data) +#define sk_SSL_CIPHER_free sk_free +#define sk_SSL_CIPHER_num sk_num +#define sk_SSL_CIPHER_value (SSL_CIPHER *)sk_value +#define sk_X509_num sk_num +#define sk_X509_push sk_push +#define sk_X509_pop_free(st, free) sk_pop_free((STACK*)(st), (modssl_popfree_fn)(free)) +#define sk_X509_value (X509 *)sk_value +#define sk_X509_INFO_free sk_free +#define sk_X509_INFO_pop_free(st, free) sk_pop_free((STACK*)(st), (modssl_popfree_fn)(free)) +#define sk_X509_INFO_num sk_num +#define sk_X509_INFO_new_null sk_new_null +#define sk_X509_INFO_value (X509_INFO *)sk_value +#define sk_X509_NAME_find(st, data) sk_find(st, (void *)data) +#define sk_X509_NAME_free sk_free +#define sk_X509_NAME_new sk_new +#define sk_X509_NAME_num sk_num +#define sk_X509_NAME_push(st, data) sk_push(st, (void *)data) +#define sk_X509_NAME_value (X509_NAME *)sk_value +#define sk_X509_NAME_ENTRY_num sk_num +#define sk_X509_NAME_ENTRY_value (X509_NAME_ENTRY *)sk_value +#define sk_X509_NAME_set_cmp_func sk_set_cmp_func +#define sk_X509_REVOKED_num sk_num +#define sk_X509_REVOKED_value (X509_REVOKED *)sk_value + +#else /* ! OPENSSL_VERSION_NUMBER && ! SSLC_VERSION_NUMBER */ + +#error "Unrecognized SSL Toolkit!" + +#endif /* ! OPENSSL_VERSION_NUMBER && ! SSLC_VERSION_NUMBER */ + +#ifndef modssl_set_verify +#define modssl_set_verify(ssl, verify, cb) \ + SSL_set_verify(ssl, verify, cb) +#endif + +#ifndef NO_SSL_X509V3_H +#define HAVE_SSL_X509V3_H +#endif + +#ifndef SSL_SESS_CACHE_NO_INTERNAL +#define SSL_SESS_CACHE_NO_INTERNAL SSL_SESS_CACHE_NO_INTERNAL_LOOKUP +#endif + +#endif /* SSL_TOOLKIT_COMPAT_H */ diff --git a/rubbos/app/apache2/include/ssl_util_ssl.h b/rubbos/app/apache2/include/ssl_util_ssl.h new file mode 100644 index 00000000..d5c48f16 --- /dev/null +++ b/rubbos/app/apache2/include/ssl_util_ssl.h @@ -0,0 +1,93 @@ +/* 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. + */ + +/* _ _ + * _ __ ___ ___ __| | ___ ___| | mod_ssl + * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL + * | | | | | | (_) | (_| | \__ \__ \ | + * |_| |_| |_|\___/ \__,_|___|___/___/_| + * |_____| + * ssl_util_ssl.h + * Additional Utility Functions for OpenSSL + */ + +#ifndef __SSL_UTIL_SSL_H__ +#define __SSL_UTIL_SSL_H__ + +/* + * Determine SSL library version number + */ +#define SSL_NIBBLE(x,n) ((x >> (n * 4)) & 0xF) + +#ifdef OPENSSL_VERSION_NUMBER +#define SSL_LIBRARY_VERSION OPENSSL_VERSION_NUMBER +#define SSL_LIBRARY_NAME "OpenSSL" +#define SSL_LIBRARY_TEXT OPENSSL_VERSION_TEXT +#define SSL_LIBRARY_DYNTEXT SSLeay_version(SSLEAY_VERSION) +#elif defined(SSLC_VERSION_NUMBER) +#define SSL_LIBRARY_VERSION SSLC_VERSION_NUMBER +#define SSL_LIBRARY_NAME "SSL-C" +#define SSL_LIBRARY_TEXT { 'S', 'S', 'L', '-', 'C', ' ', \ + '0' + SSL_NIBBLE(SSLC_VERSION_NUMBER,3), '.', \ + '0' + SSL_NIBBLE(SSLC_VERSION_NUMBER,2), '.', \ + '0' + SSL_NIBBLE(SSLC_VERSION_NUMBER,1), '.', \ + '0' + SSL_NIBBLE(SSLC_VERSION_NUMBER,0), 0 } +#define SSL_LIBRARY_DYNTEXT SSLC_library_info(SSLC_INFO_VERSION) +#elif !defined(SSL_LIBRARY_VERSION) +#define SSL_LIBRARY_VERSION 0x0000 +#define SSL_LIBRARY_NAME "OtherSSL" +#define SSL_LIBRARY_TEXT "OtherSSL 0.0.0 00 XXX 0000" +#define SSL_LIBRARY_DYNTEXT "OtherSSL 0.0.0 00 XXX 0000" +#endif + +/* + * Maximum length of a DER encoded session. + * FIXME: There is no define in OpenSSL, but OpenSSL uses 1024*10, + * so this value should be ok. Although we have no warm feeling. + */ +#define SSL_SESSION_MAX_DER 1024*10 + +/* max length for SSL_SESSION_id2sz */ +#define SSL_SESSION_ID_STRING_LEN \ + ((SSL_MAX_SSL_SESSION_ID_LENGTH + 1) * 2) + +/* + * Additional Functions + */ +void SSL_init_app_data2_idx(void); +void *SSL_get_app_data2(SSL *); +void SSL_set_app_data2(SSL *, void *); +X509 *SSL_read_X509(char *, X509 **, modssl_read_bio_cb_fn *); +EVP_PKEY *SSL_read_PrivateKey(char *, EVP_PKEY **, modssl_read_bio_cb_fn *, void *); +int SSL_smart_shutdown(SSL *ssl); +X509_STORE *SSL_X509_STORE_create(char *, char *); +int SSL_X509_STORE_lookup(X509_STORE *, int, X509_NAME *, X509_OBJECT *); +char *SSL_make_ciphersuite(apr_pool_t *, SSL *); +BOOL SSL_X509_isSGC(X509 *); +BOOL SSL_X509_getBC(X509 *, int *, int *); +BOOL SSL_X509_getCN(apr_pool_t *, X509 *, char **); +BOOL SSL_X509_INFO_load_file(apr_pool_t *, STACK_OF(X509_INFO) *, const char *); +BOOL SSL_X509_INFO_load_path(apr_pool_t *, STACK_OF(X509_INFO) *, const char *); +int SSL_CTX_use_certificate_chain(SSL_CTX *, char *, int, modssl_read_bio_cb_fn *); +char *SSL_SESSION_id2sz(unsigned char *, int, char *, int); + +/* util functions for OpenSSL+sslc compat */ +int modssl_session_get_time(SSL_SESSION *session); + +DH *modssl_dh_configure(unsigned char *p, int plen, + unsigned char *g, int glen); + +#endif /* __SSL_UTIL_SSL_H__ */ diff --git a/rubbos/app/apache2/include/ssl_util_table.h b/rubbos/app/apache2/include/ssl_util_table.h new file mode 100644 index 00000000..33438b2f --- /dev/null +++ b/rubbos/app/apache2/include/ssl_util_table.h @@ -0,0 +1,152 @@ +/* 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. + */ + +/* _ _ + * _ __ ___ ___ __| | ___ ___| | mod_ssl + * | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL + * | | | | | | (_) | (_| | \__ \__ \ | + * |_| |_| |_|\___/ \__,_|___|___/___/_| + * |_____| + * ssl_util_table.h + * High Performance Hash Table Header + */ + +/* + * Generic hash table defines + * Table 4.1.0 July-28-1998 + * + * This library is a generic open hash table with buckets and + * linked lists. It is pretty high performance. Each element + * has a key and a data. The user indexes on the key to find the + * data. + * + * Copyright 1998 by Gray Watson + * + * Permission to use, copy, modify, and distribute this software for any + * purpose and without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies, + * and that the name of Gray Watson not be used in advertising or + * publicity pertaining to distribution of the document or software + * without specific, written prior permission. + * + * Gray Watson makes no representations about the suitability of the + * software described herein for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#ifndef __SSL_UTIL_TABLE_H__ +#define __SSL_UTIL_TABLE_H__ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/* + * To build a "key" in any of the below routines, pass in a pointer to + * the key and its size [i.e. sizeof(int), etc]. With any of the + * "key" or "data" arguments, if their size is < 0, it will do an + * internal strlen of the item and add 1 for the \0. + * + * If you are using firstkey() and nextkey() functions, be careful if, + * after starting your firstkey loop, you use delete or insert, it + * will not crash but may produce interesting results. If you are + * deleting from firstkey to NULL it will work fine. + */ + +/* return types for table functions */ +#define TABLE_ERROR_NONE 1 /* no error from function */ +#define TABLE_ERROR_PNT 2 /* bad table pointer */ +#define TABLE_ERROR_ARG_NULL 3 /* buffer args were null */ +#define TABLE_ERROR_SIZE 4 /* size of data was bad */ +#define TABLE_ERROR_OVERWRITE 5 /* key exists and we cant overwrite */ +#define TABLE_ERROR_NOT_FOUND 6 /* key does not exist */ +#define TABLE_ERROR_ALLOC 7 /* memory allocation error */ +#define TABLE_ERROR_LINEAR 8 /* no linear access started */ +#define TABLE_ERROR_OPEN 9 /* could not open file */ +#define TABLE_ERROR_SEEK 10 /* could not seek to pos in file */ +#define TABLE_ERROR_READ 11 /* could not read from file */ +#define TABLE_ERROR_WRITE 12 /* could not write to file */ +#define TABLE_ERROR_EMPTY 13 /* table is empty */ +#define TABLE_ERROR_NOT_EMPTY 14 /* table contains data */ +#define TABLE_ERROR_ALIGNMENT 15 /* invalid alignment value */ + +/* + * Table flags set with table_attr. + */ + +/* + * Automatically adjust the number of table buckets on the fly. + * Whenever the number of entries gets above some threshold, the + * number of buckets is realloced to a new size and each entry is + * re-hashed. Although this may take some time when it re-hashes, the + * table will perform better over time. + */ +#define TABLE_FLAG_AUTO_ADJUST (1<<0) + +/* + * If the above auto-adjust flag is set, also adjust the number of + * table buckets down as we delete entries. + */ +#define TABLE_FLAG_ADJUST_DOWN (1<<1) + +/* structure to walk through the fields in a linear order */ +typedef struct { + unsigned int tl_magic; /* magic structure to ensure correct init */ + unsigned int tl_bucket_c; /* where in the table buck array we are */ + unsigned int tl_entry_c; /* in the bucket, which entry we are on */ +} table_linear_t; + +typedef int (*table_compare_t)(const void *key1, const int key1_size, + const void *data1, const int data1_size, + const void *key2, const int key2_size, + const void *data2, const int data2_size); + +#ifndef TABLE_PRIVATE +typedef void table_t; +typedef void table_entry_t; +#endif + +/* + * Prototypes + */ +extern table_t *table_alloc(const unsigned int bucket_n, int *error_p, void *(*malloc_f)(void *opt_param, size_t size), void *(*calloc_f)(void *opt_param, size_t number, size_t size), void *(*realloc_f)(void *opt_param, void *ptr, size_t size), void (*free_f)(void *opt_param, void *ptr), void *opt_param); +extern int table_attr(table_t *table_p, const int attr); +extern int table_set_data_alignment(table_t *table_p, const int alignment); +extern int table_clear(table_t *table_p); +extern int table_free(table_t *table_p); +extern int table_insert_kd(table_t *table_p, const void *key_buf, const int key_size, const void *data_buf, const int data_size, void **key_buf_p, void **data_buf_p, const char overwrite_b); +extern int table_insert(table_t *table_p, const void *key_buf, const int key_size, const void *data_buf, const int data_size, void **data_buf_p, const char overwrite_b); +extern int table_retrieve(table_t *table_p, const void *key_buf, const int key_size, void **data_buf_p, int *data_size_p); +extern int table_delete(table_t *table_p, const void *key_buf, const int key_size, void **data_buf_p, int *data_size_p); +extern int table_delete_first(table_t *table_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_info(table_t *table_p, int *num_buckets_p, int *num_entries_p); +extern int table_adjust(table_t *table_p, const int bucket_n); +extern const char *table_strerror(const int error); +extern int table_type_size(void); +extern int table_first(table_t *table_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_next(table_t *table_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_this(table_t *table_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_first_r(table_t *table_p, table_linear_t *linear_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_next_r(table_t *table_p, table_linear_t *linear_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern int table_this_r(table_t *table_p, table_linear_t *linear_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); +extern table_entry_t **table_order(table_t *table_p, table_compare_t compare, int *num_entries_p, int *error_p); +extern int table_entry_info(table_t *table_p, table_entry_t *entry_p, void **key_buf_p, int *key_size_p, void **data_buf_p, int *data_size_p); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __SSL_UTIL_TABLE_H__ */ diff --git a/rubbos/app/apache2/include/unixd.h b/rubbos/app/apache2/include/unixd.h new file mode 100644 index 00000000..c6bec924 --- /dev/null +++ b/rubbos/app/apache2/include/unixd.h @@ -0,0 +1,109 @@ +/* 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. + */ + +#ifndef UNIXD_H +#define UNIXD_H + +#include "httpd.h" +#include "http_config.h" +#include "ap_listen.h" +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif +#include "apr_hooks.h" +#include "apr_thread_proc.h" +#include "apr_proc_mutex.h" +#include "apr_global_mutex.h" + +#include +#include +#ifdef APR_HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_IPC_H +#include +#endif + +typedef struct { + uid_t uid; + gid_t gid; + int userdir; +} ap_unix_identity_t; + +AP_DECLARE_HOOK(ap_unix_identity_t *, get_suexec_identity,(const request_rec *r)) + +/* common stuff that unix MPMs will want */ + +/* Default user name and group name. These may be specified as numbers by + * placing a # before a number */ + +#ifndef DEFAULT_USER +#define DEFAULT_USER "#-1" +#endif +#ifndef DEFAULT_GROUP +#define DEFAULT_GROUP "#-1" +#endif + +typedef struct { + const char *user_name; + uid_t user_id; + gid_t group_id; + int suexec_enabled; +} unixd_config_rec; +AP_DECLARE_DATA extern unixd_config_rec unixd_config; + +AP_DECLARE(int) unixd_setup_child(void); +AP_DECLARE(void) unixd_pre_config(apr_pool_t *ptemp); +AP_DECLARE(const char *) unixd_set_user(cmd_parms *cmd, void *dummy, + const char *arg); +AP_DECLARE(const char *) unixd_set_group(cmd_parms *cmd, void *dummy, + const char *arg); +#if defined(RLIMIT_CPU) || defined(RLIMIT_DATA) || defined(RLIMIT_VMEM) || defined(RLIMIT_NPROC) || defined(RLIMIT_AS) +AP_DECLARE(void) unixd_set_rlimit(cmd_parms *cmd, struct rlimit **plimit, + const char *arg, const char * arg2, int type); +#endif + +/** + * One of the functions to set mutex permissions should be called in + * the parent process on platforms that switch identity when the + * server is started as root. + * If the child init logic is performed before switching identity + * (e.g., MPM setup for an accept mutex), it should only be called + * for SysV semaphores. Otherwise, it is safe to call it for all + * mutex types. + */ +AP_DECLARE(apr_status_t) unixd_set_proc_mutex_perms(apr_proc_mutex_t *pmutex); +AP_DECLARE(apr_status_t) unixd_set_global_mutex_perms(apr_global_mutex_t *gmutex); +AP_DECLARE(apr_status_t) unixd_accept(void **accepted, ap_listen_rec *lr, apr_pool_t *ptrans); + +#ifdef HAVE_KILLPG +#define unixd_killpg(x, y) (killpg ((x), (y))) +#define ap_os_killpg(x, y) (killpg ((x), (y))) +#else /* HAVE_KILLPG */ +#define unixd_killpg(x, y) (kill (-(x), (y))) +#define ap_os_killpg(x, y) (kill (-(x), (y))) +#endif /* HAVE_KILLPG */ + +#define UNIX_DAEMON_COMMANDS \ +AP_INIT_TAKE1("User", unixd_set_user, NULL, RSRC_CONF, \ + "Effective user id for this server"), \ +AP_INIT_TAKE1("Group", unixd_set_group, NULL, RSRC_CONF, \ + "Effective group id for this server") + +#endif diff --git a/rubbos/app/apache2/include/util_cfgtree.h b/rubbos/app/apache2/include/util_cfgtree.h new file mode 100644 index 00000000..a23330bc --- /dev/null +++ b/rubbos/app/apache2/include/util_cfgtree.h @@ -0,0 +1,79 @@ +/* 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. + */ + +#ifndef AP_CONFTREE_H +#define AP_CONFTREE_H + +#include "ap_config.h" + +/** + * @package Config Tree Package + */ + +typedef struct ap_directive_t ap_directive_t; + +/** + * 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 + * directive () is not stored in the tree. + */ +struct ap_directive_t { + /** The current directive */ + const char *directive; + /** The arguments for the current directive, stored as a space + * separated list */ + const char *args; + /** The next directive node in the tree + * @defvar ap_directive_t *next */ + struct ap_directive_t *next; + /** The first child node of this directive + * @defvar ap_directive_t *first_child */ + struct ap_directive_t *first_child; + /** The parent node of this directive + * @defvar ap_directive_t *parent */ + struct ap_directive_t *parent; + + /** directive's module can store add'l data here */ + void *data; + + /* ### these may go away in the future, but are needed for now */ + /** The name of the file this directive was found in */ + const char *filename; + /** The line number the directive was on */ + int line_num; +}; + +/** + * The root of the configuration tree + * @defvar ap_directive_t *conftree + */ +AP_DECLARE_DATA extern ap_directive_t *ap_conftree; + +/** + * Add a node to the configuration tree. + * @param parent The current parent node. If the added node is a first_child, + then this is changed to the current node + * @param current The current node + * @param toadd The node to add to the tree + * @param child Is the node to add a child node + * @return the added node + */ +ap_directive_t *ap_add_node(ap_directive_t **parent, ap_directive_t *current, + ap_directive_t *toadd, int child); + +#endif diff --git a/rubbos/app/apache2/include/util_charset.h b/rubbos/app/apache2/include/util_charset.h new file mode 100644 index 00000000..449a8700 --- /dev/null +++ b/rubbos/app/apache2/include/util_charset.h @@ -0,0 +1,54 @@ +/* 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. + */ + +#ifndef APACHE_UTIL_CHARSET_H +#define APACHE_UTIL_CHARSET_H + +#ifdef APACHE_XLATE + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package charset conversion + */ +#include "apr_xlate.h" + +/** On EBCDIC machine this is a translation handle used to translate the + * headers from the local machine format to ASCII for network transmission. + * On an ASCII machine this is NULL */ +extern apr_xlate_t *ap_hdrs_to_ascii; +/** On EBCDIC machine this is a translation handle used to translate the + * headers from ASCII to the local machine format after network transmission. + * On an ASCII machine this is NULL */ +extern apr_xlate_t *ap_hdrs_from_ascii; +/** On EBCDIC machine this is a translation handle used to translate the + * content from the local machine format to ASCII for network transmission. + * On an ASCII machine this is NULL */ +extern apr_xlate_t *ap_locale_to_ascii; +/** On EBCDIC machine this is a translation handle used to translate the + * content from ASCII to the local machine format after network transmission. + * On an ASCII machine this is NULL */ +extern apr_xlate_t *ap_locale_from_ascii; + +#ifdef __cplusplus +} +#endif + +#endif /* APACHE_XLATE */ + +#endif /* !APACHE_UTIL_CHARSET_H */ diff --git a/rubbos/app/apache2/include/util_ebcdic.h b/rubbos/app/apache2/include/util_ebcdic.h new file mode 100644 index 00000000..0cd54cee --- /dev/null +++ b/rubbos/app/apache2/include/util_ebcdic.h @@ -0,0 +1,78 @@ +/* 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. + */ + +#ifndef APACHE_UTIL_EBCDIC_H +#define APACHE_UTIL_EBCDIC_H + + +#ifdef __cplusplus +extern "C" { +#endif + +#include "apr_xlate.h" +#include "httpd.h" +#include "util_charset.h" + +/** + * @package Utilities for EBCDIC conversion + */ + +#if APR_CHARSET_EBCDIC + +/** + * Setup all of the global translation handlers + * @param pool pool to allocate out of + */ +apr_status_t ap_init_ebcdic(apr_pool_t *pool); + +/** + * Convert protocol data from the implementation character + * set to ASCII. + * @param buffer buffer to translate + * @param len number of bytes to translate + */ +void ap_xlate_proto_to_ascii(char *buffer, apr_size_t len); + +/** + * Convert protocol data to the implementation character + * set from ASCII. + * @param buffer buffer to translate + * @param len number of bytes to translate + */ +void ap_xlate_proto_from_ascii(char *buffer, apr_size_t len); + +/** + * Convert protocol data from the implementation charater + * set to ASCII, then send it. + * @param r the current request + * @param ... the strings to write, followed by a NULL pointer + */ +int ap_rvputs_proto_in_ascii(request_rec *r, ...); + +#else /* APR_CHARSET_EBCDIC */ + +#define ap_xlate_proto_to_ascii(x,y) /* NOOP */ +#define ap_xlate_proto_from_ascii(x,y) /* NOOP */ + +#define ap_rvputs_proto_in_ascii ap_rvputs + +#endif /* APR_CHARSET_EBCDIC */ + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_UTIL_EBCDIC_H */ diff --git a/rubbos/app/apache2/include/util_filter.h b/rubbos/app/apache2/include/util_filter.h new file mode 100644 index 00000000..a5c9802a --- /dev/null +++ b/rubbos/app/apache2/include/util_filter.h @@ -0,0 +1,516 @@ +/* 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. + */ + +#ifndef AP_FILTER_H +#define AP_FILTER_H + +#include "apr.h" +#include "apr_buckets.h" + +#include "httpd.h" + +#if APR_HAVE_STDARG_H +#include +#endif + +#ifdef __cplusplus +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 +/** Returned by the bottom-most filter if no data was read. + * @see ap_get_brigade(). */ +#define AP_NOBODY_READ -2 +/** Returned when?? @bug find out when! */ +#define AP_FILTER_ERROR -3 + +/** + * input filtering modes + */ +typedef enum { + /** The filter should return at most readbytes data. */ + AP_MODE_READBYTES, + /** The filter should return at most one line of CRLF data. + * (If a potential line is too long or no CRLF is found, the + * filter may return partial data). + */ + AP_MODE_GETLINE, + /** The filter should implicitly eat any CRLF pairs that it sees. */ + AP_MODE_EATCRLF, + /** The filter read should be treated as speculative and any returned + * data should be stored for later retrieval in another mode. */ + AP_MODE_SPECULATIVE, + /** The filter read should be exhaustive and read until it can not + * read any more. + * Use this mode with extreme caution. + */ + AP_MODE_EXHAUSTIVE, + /** The filter should initialize the connection if needed, + * NNTP or FTP over SSL for example. + */ + AP_MODE_INIT +} ap_input_mode_t; + +/** + * @defgroup filter FILTER CHAIN + * + * Filters operate using a "chaining" mechanism. The filters are chained + * together into a sequence. When output is generated, it is passed through + * each of the filters on this chain, until it reaches the end (or "bottom") + * and is placed onto the network. + * + * The top of the chain, the code generating the output, is typically called + * a "content generator." The content generator's output is fed into the + * filter chain using the standard Apache output mechanisms: ap_rputs(), + * ap_rprintf(), ap_rwrite(), etc. + * + * Each filter is defined by a callback. This callback takes the output from + * the previous filter (or the content generator if there is no previous + * filter), operates on it, and passes the result to the next filter in the + * chain. This pass-off is performed using the ap_fc_* functions, such as + * ap_fc_puts(), ap_fc_printf(), ap_fc_write(), etc. + * + * When content generation is complete, the system will pass an "end of + * stream" marker into the filter chain. The filters will use this to flush + * out any internal state and to detect incomplete syntax (for example, an + * unterminated SSI directive). + */ + +/* forward declare the filter type */ +typedef struct ap_filter_t ap_filter_t; + +/** + * @name Filter callbacks + * + * This function type is used for filter callbacks. It will be passed a + * pointer to "this" filter, and a "bucket" containing the content to be + * filtered. + * + * In filter->ctx, the callback will find its context. This context is + * provided here, so that a filter may be installed multiple times, each + * receiving its own per-install context pointer. + * + * Callbacks are associated with a filter definition, which is specified + * by name. See ap_register_input_filter() and ap_register_output_filter() + * for setting the association between a name for a filter and its + * associated callback (and other information). + * + * If the initialization function argument passed to the registration + * functions is non-NULL, it will be called iff the filter is in the input + * or output filter chains and before any data is generated to allow the + * filter to prepare for processing. + * + * The *bucket structure (and all those referenced by ->next and ->prev) + * should be considered "const". The filter is allowed to modify the + * next/prev to insert/remove/replace elements in the bucket list, but + * the types and values of the individual buckets should not be altered. + * + * For the input and output filters, the return value of a filter should be + * an APR status value. For the init function, the return value should + * be an HTTP error code or OK if it was successful. + * + * @ingroup filter + * @{ + */ +typedef apr_status_t (*ap_out_filter_func)(ap_filter_t *f, + apr_bucket_brigade *b); +typedef apr_status_t (*ap_in_filter_func)(ap_filter_t *f, + apr_bucket_brigade *b, + ap_input_mode_t mode, + apr_read_type_e block, + apr_off_t readbytes); +typedef int (*ap_init_filter_func)(ap_filter_t *f); + +typedef union ap_filter_func { + ap_out_filter_func out_func; + ap_in_filter_func in_func; +} ap_filter_func; + +/** @} */ + +/** + * Filters have different types/classifications. These are used to group + * and sort the filters to properly sequence their operation. + * + * The types have a particular sort order, which allows us to insert them + * into the filter chain in a determistic order. Within a particular grouping, + * the ordering is equivalent to the order of calls to ap_add_*_filter(). + */ +typedef enum { + /** These filters are used to alter the content that is passed through + * them. Examples are SSI or PHP. */ + AP_FTYPE_RESOURCE = 10, + /** These filters are used to alter the content as a whole, but after all + * AP_FTYPE_RESOURCE filters are executed. These filters should not + * change the content-type. An example is deflate. */ + AP_FTYPE_CONTENT_SET = 20, + /** These filters are used to handle the protocol between server and + * client. Examples are HTTP and POP. */ + AP_FTYPE_PROTOCOL = 30, + /** These filters implement transport encodings (e.g., chunking). */ + AP_FTYPE_TRANSCODE = 40, + /** These filters will alter the content, but in ways that are + * more strongly associated with the connection. Examples are + * splitting an HTTP connection into multiple requests and + * buffering HTTP responses across multiple requests. + * + * It is important to note that these types of filters are not + * allowed in a sub-request. A sub-request's output can certainly + * be filtered by ::AP_FTYPE_RESOURCE filters, but all of the "final + * processing" is determined by the main request. */ + AP_FTYPE_CONNECTION = 50, + /** These filters don't alter the content. They are responsible for + * sending/receiving data to/from the client. */ + AP_FTYPE_NETWORK = 60 +} ap_filter_type; + +/** + * This is the request-time context structure for an installed filter (in + * the output filter chain). It provides the callback to use for filtering, + * the request this filter is associated with (which is important when + * an output chain also includes sub-request filters), the context for this + * installed filter, and the filter ordering/chaining fields. + * + * Filter callbacks are free to use ->ctx as they please, to store context + * during the filter process. Generally, this is superior over associating + * the state directly with the request. A callback should not change any of + * the other fields. + */ + +typedef struct ap_filter_rec_t ap_filter_rec_t; + +/** + * This structure is used for recording information about the + * registered filters. It associates a name with the filter's callback + * and filter type. + * + * At the moment, these are simply linked in a chain, so a ->next pointer + * is available. + */ +struct ap_filter_rec_t { + /** The registered name for this filter */ + const char *name; + /** 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 + * initiliazed by the protocols themselves. */ + ap_init_filter_func filter_init_func; + /** The type of filter, either AP_FTYPE_CONTENT or AP_FTYPE_CONNECTION. + * An AP_FTYPE_CONTENT filter modifies the data based on information + * found in the content. An AP_FTYPE_CONNECTION filter modifies the + * data based on the type of connection. + */ + ap_filter_type ftype; + + /** The next filter_rec in the list */ + struct ap_filter_rec_t *next; +}; + +/** + * 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. + */ +struct ap_filter_t { + /** The internal representation of this filter. This includes + * the filter's name, type, and the actual function pointer. + */ + ap_filter_rec_t *frec; + + /** A place to store any data associated with the current filter */ + void *ctx; + + /** The next filter in the chain */ + ap_filter_t *next; + + /** The request_rec associated with the current filter. If a sub-request + * adds filters, then the sub-request is the request associated with the + * filter. + */ + request_rec *r; + + /** The conn_rec associated with the current filter. This is analogous + * to the request_rec, except that it is used for input filtering. + */ + conn_rec *c; +}; + +/** + * Get the current bucket brigade from the next filter on the filter + * stack. The filter returns an apr_status_t value. If the bottom-most + * filter doesn't read from the network, then ::AP_NOBODY_READ is returned. + * The bucket brigade will be empty when there is nothing left to get. + * @param filter The next filter in the chain + * @param bucket The current bucket brigade. The original brigade passed + * to ap_get_brigade() must be empty. + * @param mode The way in which the data should be read + * @param block How the operations should be performed + * ::APR_BLOCK_READ, ::APR_NONBLOCK_READ + * @param readbytes How many bytes to read from the next filter. + */ +AP_DECLARE(apr_status_t) ap_get_brigade(ap_filter_t *filter, + apr_bucket_brigade *bucket, + ap_input_mode_t mode, + apr_read_type_e block, + apr_off_t readbytes); + +/** + * Pass the current bucket brigade down to the next filter on the filter + * stack. The filter returns an apr_status_t value. If the bottom-most + * filter doesn't write to the network, then ::AP_NOBODY_WROTE is returned. + * The caller relinquishes ownership of the brigade. + * @param filter The next filter in the chain + * @param bucket The current bucket brigade + */ +AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter, + apr_bucket_brigade *bucket); + +/** + * This function is used to register an input filter with the system. + * After this registration is performed, then a filter may be added + * into the filter chain by using ap_add_input_filter() and simply + * specifying the name. + * + * @param name The name to attach to the filter function + * @param filter_func The filter function to name + * @param filter_init The function to call before the filter handlers + are invoked + * @param ftype The type of filter function, either ::AP_FTYPE_CONTENT or + * ::AP_FTYPE_CONNECTION + * @see add_input_filter() + */ +AP_DECLARE(ap_filter_rec_t *) ap_register_input_filter(const char *name, + ap_in_filter_func filter_func, + ap_init_filter_func filter_init, + ap_filter_type ftype); +/** + * This function is used to register an output filter with the system. + * After this registration is performed, then a filter may be added + * into the filter chain by using ap_add_output_filter() and simply + * specifying the name. + * + * @param name The name to attach to the filter function + * @param filter_func The filter function to name + * @param filter_init The function to call before the filter handlers + * are invoked + * @param ftype The type of filter function, either ::AP_FTYPE_CONTENT or + * ::AP_FTYPE_CONNECTION + * @see ap_add_output_filter() + */ +AP_DECLARE(ap_filter_rec_t *) ap_register_output_filter(const char *name, + ap_out_filter_func filter_func, + ap_init_filter_func filter_init, + ap_filter_type ftype); + +/** + * Adds a named filter into the filter chain on the specified request record. + * The filter will be installed with the specified context pointer. + * + * Filters added in this way will always be placed at the end of the filters + * that have the same type (thus, the filters have the same order as the + * calls to ap_add_filter). If the current filter chain contains filters + * from another request, then this filter will be added before those other + * filters. + * + * To re-iterate that last comment. This function is building a FIFO + * list of filters. Take note of that when adding your filter to the chain. + * + * @param name The name of the filter to add + * @param ctx Context data to provide to the filter + * @param r The request to add this filter for (or NULL if it isn't associated with a request) + * @param c The connection to add the fillter for + */ +AP_DECLARE(ap_filter_t *) ap_add_input_filter(const char *name, void *ctx, + request_rec *r, conn_rec *c); + +/** + * Variant of ap_add_input_filter() that accepts a registered filter handle + * (as returned by ap_register_input_filter()) rather than a filter name + * + * @param f The filter handle to add + * @param ctx Context data to provide to the filter + * @param r The request to add this filter for (or NULL if it isn't associated with a request) + * @param c The connection to add the fillter for + */ +AP_DECLARE(ap_filter_t *) ap_add_input_filter_handle(ap_filter_rec_t *f, + void *ctx, + request_rec *r, + conn_rec *c); + +/** + * Returns the filter handle for use with ap_add_input_filter_handle. + * + * @param name The filter name to look up + */ +AP_DECLARE(ap_filter_rec_t *) ap_get_input_filter_handle(const char *name); + +/** + * Add a filter to the current request. Filters are added in a FIFO manner. + * The first filter added will be the first filter called. + * @param name The name of the filter to add + * @param ctx Context data to set in the filter + * @param r The request to add this filter for (or NULL if it isn't associated with a request) + * @param c The connection to add this filter for + */ +AP_DECLARE(ap_filter_t *) ap_add_output_filter(const char *name, void *ctx, + request_rec *r, conn_rec *c); + +/** + * Variant of ap_add_output_filter() that accepts a registered filter handle + * (as returned by ap_register_output_filter()) rather than a filter name + * + * @param f The filter handle to add + * @param r The request to add this filter for (or NULL if it isn't associated with a request) + * @param c The connection to add the fillter for + */ +AP_DECLARE(ap_filter_t *) ap_add_output_filter_handle(ap_filter_rec_t *f, + void *ctx, + request_rec *r, + conn_rec *c); + +/** + * Returns the filter handle for use with ap_add_output_filter_handle. + * + * @param name The filter name to look up + */ +AP_DECLARE(ap_filter_rec_t *) ap_get_output_filter_handle(const char *name); + +/** + * Remove an input filter from either the request or connection stack + * it is associated with. + * @param f The filter to remove + */ + +AP_DECLARE(void) ap_remove_input_filter(ap_filter_t *f); + +/** + * Remove an output filter from either the request or connection stack + * it is associated with. + * @param f The filter to remove + */ + +AP_DECLARE(void) ap_remove_output_filter(ap_filter_t *f); + +/* The next two filters are for abstraction purposes only. They could be + * done away with, but that would require that we break modules if we ever + * want to change our filter registration method. The basic idea, is that + * all filters have a place to store data, the ctx pointer. These functions + * fill out that pointer with a bucket brigade, and retrieve that data on + * the next call. The nice thing about these functions, is that they + * automatically concatenate the bucket brigades together for you. This means + * that if you have already stored a brigade in the filters ctx pointer, then + * when you add more it will be tacked onto the end of that brigade. When + * you retrieve data, if you pass in a bucket brigade to the get function, + * it will append the current brigade onto the one that you are retrieving. + */ + +/** + * prepare a bucket brigade to be setaside. If a different brigade was + * set-aside earlier, then the two brigades are concatenated together. + * @param f The current filter + * @param save_to The brigade that was previously set-aside. Regardless, the + * new bucket brigade is returned in this location. + * @param b The bucket brigade to save aside. This brigade is always empty + * on return + * @param p Ensure that all data in the brigade lives as long as this pool + */ +AP_DECLARE(apr_status_t) ap_save_brigade(ap_filter_t *f, + apr_bucket_brigade **save_to, + apr_bucket_brigade **b, apr_pool_t *p); + +/** + * Flush function for apr_brigade_* calls. This calls ap_pass_brigade + * to flush the brigade if the brigade buffer overflows. + * @param bb The brigade to flush + * @param ctx The filter to pass the brigade to + * @note this function has nothing to do with FLUSH buckets. It is simply + * a way to flush content out of a brigade and down a filter stack. + */ +AP_DECLARE_NONSTD(apr_status_t) ap_filter_flush(apr_bucket_brigade *bb, + void *ctx); + +/** + * Flush the current brigade down the filter stack. + * @param f The current filter + * @param bb The brigade to flush + */ +AP_DECLARE(apr_status_t) ap_fflush(ap_filter_t *f, apr_bucket_brigade *bb); + +/** + * Write a buffer for the current filter, buffering if possible. + * @param f the filter doing the writing + * @param bb The brigade to buffer into + * @param data The data to write + * @param nbyte The number of bytes in the data + */ +#define ap_fwrite(f, bb, data, nbyte) \ + apr_brigade_write(bb, ap_filter_flush, f, data, nbyte) + +/** + * Write a buffer for the current filter, buffering if possible. + * @param f the filter doing the writing + * @param bb The brigade to buffer into + * @param str The string to write + */ +#define ap_fputs(f, bb, str) \ + apr_brigade_puts(bb, ap_filter_flush, f, str) + +/** + * Write a character for the current filter, buffering if possible. + * @param f the filter doing the writing + * @param bb The brigade to buffer into + * @param c The character to write + */ +#define ap_fputc(f, bb, c) \ + apr_brigade_putc(bb, ap_filter_flush, f, c) + +/** + * Write an unspecified number of strings to the current filter + * @param f the filter doing the writing + * @param bb The brigade to buffer into + * @param ... The strings to write + */ +AP_DECLARE_NONSTD(apr_status_t) ap_fputstrs(ap_filter_t *f, + apr_bucket_brigade *bb, + ...); + +/** + * Output data to the filter in printf format + * @param f the filter doing the writing + * @param bb The brigade to buffer into + * @param fmt The format string + * @param ... The argumets to use to fill out the format string + */ +AP_DECLARE_NONSTD(apr_status_t) ap_fprintf(ap_filter_t *f, + apr_bucket_brigade *bb, + const char *fmt, + ...) + __attribute__((format(printf,3,4))); + +#ifdef __cplusplus +} +#endif + +#endif /* !AP_FILTER_H */ diff --git a/rubbos/app/apache2/include/util_ldap.h b/rubbos/app/apache2/include/util_ldap.h new file mode 100644 index 00000000..605f3b72 --- /dev/null +++ b/rubbos/app/apache2/include/util_ldap.h @@ -0,0 +1,318 @@ +/* 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. + */ + +#ifndef UTIL_LDAP_H +#define UTIL_LDAP_H + +#include + +/* this whole thing disappears if LDAP is not enabled */ +#ifdef APU_HAS_LDAP + +/* APR header files */ +#include +#include +#include +#include + +/* Apache header files */ +#include "ap_config.h" +#include "httpd.h" +#include "http_config.h" +#include "http_core.h" +#include "http_log.h" +#include "http_protocol.h" +#include "http_request.h" + +#if APR_HAS_SHARED_MEMORY +#include "apr_rmm.h" +#include "apr_shm.h" +#endif + +/* Create a set of LDAP_DECLARE(type), LDLDAP_DECLARE(type) and + * LDAP_DECLARE_DATA with appropriate export and import tags for the platform + */ +#if !defined(WIN32) +#define LDAP_DECLARE(type) type +#define LDAP_DECLARE_NONSTD(type) type +#define LDAP_DECLARE_DATA +#elif defined(LDAP_DECLARE_STATIC) +#define LDAP_DECLARE(type) type __stdcall +#define LDAP_DECLARE_NONSTD(type) type +#define LDAP_DECLARE_DATA +#elif defined(LDAP_DECLARE_EXPORT) +#define LDAP_DECLARE(type) __declspec(dllexport) type __stdcall +#define LDAP_DECLARE_NONSTD(type) __declspec(dllexport) type +#define LDAP_DECLARE_DATA __declspec(dllexport) +#else +#define LDAP_DECLARE(type) __declspec(dllimport) type __stdcall +#define LDAP_DECLARE_NONSTD(type) __declspec(dllimport) type +#define LDAP_DECLARE_DATA __declspec(dllimport) +#endif + +/* + * LDAP Connections + */ + +/* Values that the deref member can have */ +typedef enum { + never=LDAP_DEREF_NEVER, + searching=LDAP_DEREF_SEARCHING, + finding=LDAP_DEREF_FINDING, + always=LDAP_DEREF_ALWAYS +} deref_options; + +/* Structure representing an LDAP connection */ +typedef struct util_ldap_connection_t { + LDAP *ldap; + apr_pool_t *pool; /* Pool from which this connection is created */ +#if APR_HAS_THREADS + apr_thread_mutex_t *lock; /* Lock to indicate this connection is in use */ +#endif + int bound; /* Flag to indicate whether this connection is bound yet */ + + const char *host; /* Name of the LDAP server (or space separated list) */ + int port; /* Port of the LDAP server */ + deref_options deref; /* how to handle alias dereferening */ + + const char *binddn; /* DN to bind to server (can be NULL) */ + const char *bindpw; /* Password to bind to server (can be NULL) */ + + int secure; /* True if use SSL connection */ + + const char *reason; /* Reason for an error failure */ + + struct util_ldap_connection_t *next; +} util_ldap_connection_t; + +/* LDAP cache state information */ +typedef struct util_ldap_state_t { + apr_pool_t *pool; /* pool from which this state is allocated */ +#if APR_HAS_THREADS + apr_thread_mutex_t *mutex; /* mutex lock for the connection list */ +#endif + apr_global_mutex_t *util_ldap_cache_lock; + + apr_size_t cache_bytes; /* Size (in bytes) of shared memory cache */ + char *cache_file; /* filename for shm */ + long search_cache_ttl; /* TTL for search cache */ + long search_cache_size; /* Size (in entries) of search cache */ + long compare_cache_ttl; /* TTL for compare cache */ + long compare_cache_size; /* Size (in entries) of compare cache */ + + struct util_ldap_connection_t *connections; + char *cert_auth_file; + int cert_file_type; + int ssl_support; + +#if APR_HAS_SHARED_MEMORY + apr_shm_t *cache_shm; + apr_rmm_t *cache_rmm; +#endif + + /* cache ald */ + void *util_ldap_cache; + char *lock_file; /* filename for shm lock mutex */ + int connectionTimeout; + +} util_ldap_state_t; + + +/** + * Open a connection to an LDAP server + * @param ldc A structure containing the expanded details of the server + * to connect to. The handle to the LDAP connection is returned + * as ldc->ldap. + * @tip This function connects to the LDAP server and binds. It does not + * connect if already connected (ldc->ldap != NULL). Does not bind + * if already bound. + * @return If successful LDAP_SUCCESS is returned. + * @deffunc int util_ldap_connection_open(request_rec *r, + * util_ldap_connection_t *ldc) + */ +LDAP_DECLARE(int) util_ldap_connection_open(request_rec *r, + util_ldap_connection_t *ldc); + +/** + * Close a connection to an LDAP server + * @param ldc A structure containing the expanded details of the server + * that was connected. + * @tip This function unbinds from the LDAP server, and clears ldc->ldap. + * It is possible to rebind to this server again using the same ldc + * structure, using apr_ldap_open_connection(). + * @deffunc util_ldap_close_connection(util_ldap_connection_t *ldc) + */ +LDAP_DECLARE(void) util_ldap_connection_close(util_ldap_connection_t *ldc); + +/** + * Unbind a connection to an LDAP server + * @param ldc A structure containing the expanded details of the server + * that was connected. + * @tip This function unbinds the LDAP connection, and disconnects from + * the server. It is used during error conditions, to bring the LDAP + * connection back to a known state. + * @deffunc apr_status_t util_ldap_connection_unbind(util_ldap_connection_t *ldc) + */ +LDAP_DECLARE_NONSTD(apr_status_t) util_ldap_connection_unbind(void *param); + +/** + * Cleanup a connection to an LDAP server + * @param ldc A structure containing the expanded details of the server + * that was connected. + * @tip This function is registered with the pool cleanup to close down the + * LDAP connections when the server is finished with them. + * @deffunc apr_status_t util_ldap_connection_cleanup(util_ldap_connection_t *ldc) + */ +LDAP_DECLARE_NONSTD(apr_status_t) util_ldap_connection_cleanup(void *param); + +/** + * Find a connection in a list of connections + * @param r The request record + * @param host The hostname to connect to (multiple hosts space separated) + * @param port The port to connect to + * @param binddn The DN to bind with + * @param bindpw The password to bind with + * @param deref The dereferencing behavior + * @param secure use SSL on the connection + * @tip Once a connection is found and returned, a lock will be acquired to + * lock that particular connection, so that another thread does not try and + * use this connection while it is busy. Once you are finished with a connection, + * apr_ldap_connection_close() must be called to release this connection. + * @deffunc util_ldap_connection_t *util_ldap_connection_find(request_rec *r, const char *host, int port, + * const char *binddn, const char *bindpw, deref_options deref, + * int netscapessl, int starttls) + */ +LDAP_DECLARE(util_ldap_connection_t *) util_ldap_connection_find(request_rec *r, const char *host, int port, + const char *binddn, const char *bindpw, deref_options deref, + int secure); + + +/** + * Compare two DNs for sameness + * @param r The request record + * @param ldc The LDAP connection being used. + * @param url The URL of the LDAP connection - used for deciding which cache to use. + * @param dn The first DN to compare. + * @param reqdn The DN to compare the first DN to. + * @param compare_dn_on_server Flag to determine whether the DNs should be checked using + * LDAP calls or with a direct string comparision. A direct + * string comparison is faster, but not as accurate - false + * negative comparisons are possible. + * @tip Two DNs can be equal and still fail a string comparison. Eg "dc=example,dc=com" + * and "dc=example, dc=com". Use the compare_dn_on_server unless there are serious + * performance issues. + * @deffunc int util_ldap_cache_comparedn(request_rec *r, util_ldap_connection_t *ldc, + * const char *url, const char *dn, const char *reqdn, + * int compare_dn_on_server) + */ +LDAP_DECLARE(int) util_ldap_cache_comparedn(request_rec *r, util_ldap_connection_t *ldc, + const char *url, const char *dn, const char *reqdn, + int compare_dn_on_server); + +/** + * A generic LDAP compare function + * @param r The request record + * @param ldc The LDAP connection being used. + * @param url The URL of the LDAP connection - used for deciding which cache to use. + * @param dn The DN of the object in which we do the compare. + * @param attrib The attribute within the object we are comparing for. + * @param value The value of the attribute we are trying to compare for. + * @tip Use this function to determine whether an attribute/value pair exists within an + * object. Typically this would be used to determine LDAP group membership. + * @deffunc int util_ldap_cache_compare(request_rec *r, util_ldap_connection_t *ldc, + * const char *url, const char *dn, const char *attrib, const char *value) + */ +LDAP_DECLARE(int) util_ldap_cache_compare(request_rec *r, util_ldap_connection_t *ldc, + const char *url, const char *dn, const char *attrib, const char *value); + +/** + * Checks a username/password combination by binding to the LDAP server + * @param r The request record + * @param ldc The LDAP connection being used. + * @param url The URL of the LDAP connection - used for deciding which cache to use. + * @param basedn The Base DN to search for the user in. + * @param scope LDAP scope of the search. + * @param attrs LDAP attributes to return in search. + * @param filter The user to search for in the form of an LDAP filter. This filter must return + * exactly one user for the check to be successful. + * @param bindpw The user password to bind as. + * @param binddn The DN of the user will be returned in this variable. + * @param retvals The values corresponding to the attributes requested in the attrs array. + * @tip The filter supplied will be searched for. If a single entry is returned, an attempt + * is made to bind as that user. If this bind succeeds, the user is not validated. + * @deffunc int util_ldap_cache_checkuserid(request_rec *r, util_ldap_connection_t *ldc, + * char *url, const char *basedn, int scope, char **attrs, + * char *filter, char *bindpw, char **binddn, char ***retvals) + */ +LDAP_DECLARE(int) util_ldap_cache_checkuserid(request_rec *r, util_ldap_connection_t *ldc, + const char *url, const char *basedn, int scope, char **attrs, + const char *filter, const char *bindpw, const char **binddn, const char ***retvals); + +/** + * Retrieves the LDAP DN of the user without the need to know user password + * @param r The request record + * @param ldc The LDAP connection being used. + * @param url The URL of the LDAP connection - used for deciding which cache to use. + * @param basedn The Base DN to search for the user in. + * @param scope LDAP scope of the search. + * @param attrs LDAP attributes to return in search. + * @param filter The user to search for in the form of an LDAP filter. This filter must return + * exactly one user for the check to be successful. + * @param binddn The DN of the user will be returned in this variable. + * @param retvals The values corresponding to the attributes requested in the attrs array. + * @tip The filter supplied will be searched for. A single entry matching the search is returned. + * @deffunc int util_ldap_cache_getuserdn(request_rec *r, util_ldap_connection_t *ldc, + * char *url, const char *basedn, int scope, char **attrs, + * char *filter, char **binddn, char ***retvals) + */ +LDAP_DECLARE(int) util_ldap_cache_getuserdn(request_rec *r, util_ldap_connection_t *ldc, + const char *url, const char *basedn, int scope, char **attrs, + const char *filter, const char **binddn, const char ***retvals); + +/** + * Checks if SSL support is available in mod_ldap + * @deffunc int util_ldap_ssl_supported(request_rec *r) + */ +LDAP_DECLARE(int) util_ldap_ssl_supported(request_rec *r); + +/* from apr_ldap_cache.c */ + +/** + * Init the LDAP cache + * @param pool The pool to use to initialise the cache + * @param reqsize The size of the shared memory segement to request. A size + * of zero requests the max size possible from + * apr_shmem_init() + * @deffunc void util_ldap_cache_init(apr_pool_t *p, util_ldap_state_t *st) + * @return The status code returned is the status code of the + * apr_smmem_init() call. Regardless of the status, the cache + * will be set up at least for in-process or in-thread operation. + */ +apr_status_t util_ldap_cache_init(apr_pool_t *pool, util_ldap_state_t *st); + +/* from apr_ldap_cache_mgr.c */ + +/** + * Display formatted stats for cache + * @param The pool to allocate the returned string from + * @tip This function returns a string allocated from the provided pool that describes + * various stats about the cache. + * @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); + +#endif /* APU_HAS_LDAP */ +#endif /* UTIL_LDAP_H */ diff --git a/rubbos/app/apache2/include/util_md5.h b/rubbos/app/apache2/include/util_md5.h new file mode 100644 index 00000000..6c5299de --- /dev/null +++ b/rubbos/app/apache2/include/util_md5.h @@ -0,0 +1,70 @@ +/* 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. + */ + +#ifndef APACHE_UTIL_MD5_H +#define APACHE_UTIL_MD5_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Apache MD5 library + */ + +#include "apr_md5.h" + +/** + * Create an MD5 checksum of a given string + * @param a Pool to allocate out of + * @param string String to get the checksum of + * @return The checksum + * @deffunc char *ap_md5(apr_pool_t *a, const unsigned char *string) + */ +AP_DECLARE(char *) ap_md5(apr_pool_t *a, const unsigned char *string); + +/** + * Create an MD5 checksum of a string of binary data + * @param a Pool to allocate out of + * @param buf Buffer to generate checksum for + * @param len The length of the buffer + * @return The checksum + * @deffunc char *ap_md5_binary(apr_pool_t *a, const unsigned char *buf, int len) + */ +AP_DECLARE(char *) ap_md5_binary(apr_pool_t *a, const unsigned char *buf, int len); + +/** + * Convert an MD5 checksum into a base64 encoding + * @param p The pool to allocate out of + * @param context The context to convert + * @return The converted encoding + * @deffunc char *ap_md5contextTo64(apr_pool_t *p, apr_md5_ctx_t *context) + */ +AP_DECLARE(char *) ap_md5contextTo64(apr_pool_t *p, apr_md5_ctx_t *context); + +/** + * Create an MD5 Digest for a given file + * @param p The pool to allocate out of + * @param infile The file to create the digest for + * @deffunc char *ap_md5digest(apr_pool_t *p, apr_file_t *infile) + */ +AP_DECLARE(char *) ap_md5digest(apr_pool_t *p, apr_file_t *infile); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_UTIL_MD5_H */ diff --git a/rubbos/app/apache2/include/util_script.h b/rubbos/app/apache2/include/util_script.h new file mode 100644 index 00000000..c68b81d9 --- /dev/null +++ b/rubbos/app/apache2/include/util_script.h @@ -0,0 +1,142 @@ +/* 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. + */ + +#ifndef APACHE_UTIL_SCRIPT_H +#define APACHE_UTIL_SCRIPT_H + +#include "apr_buckets.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Apache script tools + */ + +#ifndef APACHE_ARG_MAX +#ifdef _POSIX_ARG_MAX +#define APACHE_ARG_MAX _POSIX_ARG_MAX +#else +#define APACHE_ARG_MAX 512 +#endif +#endif + +/** + * Create an environment variable out of an Apache table of key-value pairs + * @param p pool to allocate out of + * @param t Apache table of key-value pairs + * @return An array containing the same key-value pairs suitable for + * use with an exec call. + * @deffunc char **ap_create_environment(apr_pool_t *p, apr_table_t *t) + */ +AP_DECLARE(char **) ap_create_environment(apr_pool_t *p, apr_table_t *t); + +/** + * This "cute" little function comes about because the path info on + * filenames and URLs aren't always the same. So we take the two, + * and find as much of the two that match as possible. + * @param uri The uri we are currently parsing + * @param path_info The current path info + * @return The length of the path info + * @deffunc int ap_find_path_info(const char *uri, const char *path_info) + */ +AP_DECLARE(int) ap_find_path_info(const char *uri, const char *path_info); + +/** + * Add CGI environment variables required by HTTP/1.1 to the request's + * environment table + * @param r the current request + * @deffunc void ap_add_cgi_vars(request_rec *r) + */ +AP_DECLARE(void) ap_add_cgi_vars(request_rec *r); + +/** + * Add common CGI environment variables to the requests environment table + * @param r The current request + * @deffunc void ap_add_common_vars(request_rec *r) + */ +AP_DECLARE(void) ap_add_common_vars(request_rec *r); + +/** + * Read headers output from a script, ensuring that the output is valid. If + * the output is valid, then the headers are added to the headers out of the + * current request + * @param r The current request + * @param f The file to read from + * @param buffer Empty when calling the function. On output, if there was an + * error, the string that cause the error is stored here. + * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise + * @deffunc int ap_scan_script_header_err(request_rec *r, apr_file_t *f, char *buffer) + */ +AP_DECLARE(int) ap_scan_script_header_err(request_rec *r, apr_file_t *f, char *buffer); + +/** + * Read headers output from a script, ensuring that the output is valid. If + * the output is valid, then the headers are added to the headers out of the + * current request + * @param r The current request + * @param bb The brigade from which to read + * @param buffer Empty when calling the function. On output, if there was an + * error, the string that cause the error is stored here. + * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise + * @deffunc int ap_scan_script_header_err_brigade(request_rec *r, apr_bucket_brigade *bb, char *buffer) + */ +AP_DECLARE(int) ap_scan_script_header_err_brigade(request_rec *r, + apr_bucket_brigade *bb, + char *buffer); + +/** + * Read headers strings from a script, ensuring that the output is valid. If + * the output is valid, then the headers are added to the headers out of the + * current request + * @param r The current request + * @param buffer Empty when calling the function. On output, if there was an + * error, the string that cause the error is stored here. + * @param termch Pointer to the last character parsed. + * @param termarg Pointer to an int to capture the last argument parsed. + * @param args String arguments to parse consecutively for headers, + * a NULL argument terminates the list. + * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise + * @deffunc int ap_scan_script_header_err_core(request_rec *r, char *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data) + */ +AP_DECLARE_NONSTD(int) ap_scan_script_header_err_strs(request_rec *r, + char *buffer, + const char **termch, + int *termarg, ...); + +/** + * Read headers output from a script, ensuring that the output is valid. If + * the output is valid, then the headers are added to the headers out of the + * current request + * @param r The current request + * @param buffer Empty when calling the function. On output, if there was an + * error, the string that cause the error is stored here. + * @param getsfunc Function to read the headers from. This function should + act like gets() + * @param getsfunc_data The place to read from + * @return HTTP_OK on success, HTTP_INTERNAL_SERVER_ERROR otherwise + * @deffunc int ap_scan_script_header_err_core(request_rec *r, char *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data) + */ +AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer, + int (*getsfunc) (char *, int, void *), + void *getsfunc_data); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_UTIL_SCRIPT_H */ diff --git a/rubbos/app/apache2/include/util_time.h b/rubbos/app/apache2/include/util_time.h new file mode 100644 index 00000000..5e8e394f --- /dev/null +++ b/rubbos/app/apache2/include/util_time.h @@ -0,0 +1,85 @@ +/* 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. + */ + +#ifndef APACHE_UTIL_TIME_H +#define APACHE_UTIL_TIME_H + +#include "apr.h" +#include "apr_time.h" +#include "httpd.h" + +#ifdef __cplusplus +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!) + */ +#define AP_TIME_RECENT_THRESHOLD 15 + +/** + * convert a recent time to its human readable components in local timezone + * @param tm the exploded time + * @param t the time to explode: MUST be within the last + * AP_TIME_RECENT_THRESHOLD seconds + * @note This is a faster alternative to apr_explode_localtime that uses + * a cache of pre-exploded time structures. It is useful for things + * that need to explode the current time multiple times per second, + * like loggers. + * @return APR_SUCCESS iff successful + */ +AP_DECLARE(apr_status_t) ap_explode_recent_localtime(apr_time_exp_t *tm, + apr_time_t t); + +/** + * convert a recent time to its human readable components in GMT timezone + * @param tm the exploded time + * @param t the time to explode: MUST be within the last + * AP_TIME_RECENT_THRESHOLD seconds + * @note This is a faster alternative to apr_time_exp_gmt that uses + * a cache of pre-exploded time structures. It is useful for things + * that need to explode the current time multiple times per second, + * like loggers. + * @return APR_SUCCESS iff successful + */ +AP_DECLARE(apr_status_t) ap_explode_recent_gmt(apr_time_exp_t *tm, + apr_time_t t); + + +/** + * format a recent timestamp in the ctime() format. + * @param date_str String to write to. + * @param t the time to convert + */ +AP_DECLARE(apr_status_t) ap_recent_ctime(char *date_str, apr_time_t t); + +/** + * format a recent timestamp in the RFC822 format + * @param date_str String to write to (must have length >= APR_RFC822_DATE_LEN) + * @param t the time to convert + */ +AP_DECLARE(apr_status_t) ap_recent_rfc822_date(char *date_str, apr_time_t t); + +#ifdef __cplusplus +} +#endif + +#endif /* !APACHE_UTIL_TIME_H */ diff --git a/rubbos/app/apache2/include/util_xml.h b/rubbos/app/apache2/include/util_xml.h new file mode 100644 index 00000000..4965b14e --- /dev/null +++ b/rubbos/app/apache2/include/util_xml.h @@ -0,0 +1,46 @@ +/* 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. + */ + +#ifndef UTIL_XML_H +#define UTIL_XML_H + +#include "apr_xml.h" + +#include "httpd.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @package Apache XML library + */ + +/** + * Get XML post data and parse it + * @param r The current request + * @param pdoc The XML post data + * @return HTTP status code + * @deffunc int ap_xml_parse_input(request_rec *r, apr_xml_doc **pdoc) + */ +AP_DECLARE(int) ap_xml_parse_input(request_rec *r, apr_xml_doc **pdoc); + + +#ifdef __cplusplus +} +#endif + +#endif /* UTIL_XML_H */ diff --git a/rubbos/app/apache2/lib/apr.exp b/rubbos/app/apache2/lib/apr.exp new file mode 100644 index 00000000..830875dc --- /dev/null +++ b/rubbos/app/apache2/lib/apr.exp @@ -0,0 +1,419 @@ +#! libapr-0.so +* This file was AUTOGENERATED at build time. +* Please do not edit by hand. +apr_allocator_create +apr_allocator_destroy +apr_allocator_alloc +apr_allocator_free +apr_allocator_owner_set +apr_allocator_set_owner +apr_allocator_owner_get +apr_allocator_get_owner +apr_allocator_max_free_set +apr_allocator_set_max_free +apr_allocator_mutex_set +apr_allocator_set_mutex +apr_allocator_mutex_get +apr_allocator_get_mutex +apr_dso_load +apr_dso_unload +apr_dso_sym +apr_dso_error +apr_env_get +apr_env_set +apr_env_delete +apr_strerror +apr_stat +apr_lstat +apr_dir_open +apr_dir_close +apr_dir_read +apr_dir_rewind +apr_filepath_root +apr_filepath_merge +apr_filepath_list_split +apr_filepath_list_merge +apr_filepath_get +apr_filepath_set +apr_filepath_encoding +apr_file_open +apr_file_close +apr_file_remove +apr_file_rename +apr_file_copy +apr_file_append +apr_file_eof +apr_file_open_stderr +apr_file_open_stdout +apr_file_open_stdin +apr_file_read +apr_file_write +apr_file_writev +apr_file_read_full +apr_file_write_full +apr_file_putc +apr_file_getc +apr_file_ungetc +apr_file_gets +apr_file_puts +apr_file_flush +apr_file_dup +apr_file_dup2 +apr_file_setaside +apr_file_seek +apr_file_pipe_create +apr_file_namedpipe_create +apr_file_pipe_timeout_get +apr_file_pipe_timeout_set +apr_file_lock +apr_file_unlock +apr_file_name_get +apr_file_data_get +apr_file_data_set +apr_file_printf +apr_file_perms_set +apr_file_attrs_set +apr_file_mtime_set +apr_dir_make +apr_dir_make_recursive +apr_dir_remove +apr_file_info_get +apr_file_trunc +apr_file_flags_get +apr_file_pool_get +apr_file_inherit_set +apr_file_set_inherit +apr_file_inherit_unset +apr_file_unset_inherit +apr_file_mktemp +apr_temp_dir_get +apr_fnmatch +apr_fnmatch_test +apr_is_fnmatch +apr_initialize +apr_app_initialize +apr_terminate +apr_terminate2 +apr_generate_random_bytes +apr_getopt_init +apr_getopt +apr_getopt_long +apr_global_mutex_create +apr_global_mutex_child_init +apr_global_mutex_lock +apr_global_mutex_trylock +apr_global_mutex_unlock +apr_global_mutex_destroy +apr_global_mutex_pool_get +apr_hash_make +apr_hash_copy +apr_hash_set +apr_hash_get +apr_hash_first +apr_hash_next +apr_hash_this +apr_hash_count +apr_hash_overlay +apr_hash_merge +apr_hash_pool_get +apr_filepath_name_get +apr_filename_of_pathname +apr_vformatter +apr_password_get +apr_mmap_create +apr_mmap_dup +apr_mmap_delete +apr_mmap_offset +apr_socket_create +apr_socket_create_ex +apr_socket_shutdown +apr_shutdown +apr_socket_close +apr_socket_bind +apr_bind +apr_socket_listen +apr_listen +apr_socket_accept +apr_accept +apr_socket_connect +apr_connect +apr_sockaddr_info_get +apr_getnameinfo +apr_parse_addr_port +apr_gethostname +apr_socket_data_get +apr_socket_data_set +apr_socket_send +apr_send +apr_socket_sendv +apr_sendv +apr_socket_sendto +apr_sendto +apr_socket_recvfrom +apr_recvfrom +apr_socket_sendfile +apr_sendfile +apr_socket_recv +apr_recv +apr_socket_opt_set +apr_setsocketopt +apr_socket_timeout_set +apr_socket_opt_get +apr_getsocketopt +apr_socket_timeout_get +apr_socket_atmark +apr_socket_addr_get +apr_sockaddr_port_set +apr_sockaddr_port_get +apr_sockaddr_ip_set +apr_sockaddr_ip_get +apr_sockaddr_equal +apr_socket_from_file +apr_getservbyname +apr_ipsubnet_create +apr_ipsubnet_test +apr_socket_protocol_get +apr_socket_inherit_set +apr_socket_set_inherit +apr_socket_inherit_unset +apr_socket_unset_inherit +apr_poll_setup +apr_poll +apr_poll_socket_add +apr_poll_socket_mask +apr_poll_socket_remove +apr_poll_socket_clear +apr_poll_revents_get +apr_pollset_create +apr_pollset_destroy +apr_pollset_add +apr_pollset_remove +apr_pollset_poll +apr_pool_initialize +apr_pool_terminate +apr_pool_create_ex +apr_pool_create_ex_debug +apr_pool_allocator_get +apr_pool_clear +apr_pool_clear_debug +apr_pool_destroy +apr_pool_destroy_debug +apr_palloc +apr_palloc_debug +apr_pcalloc_debug +apr_pool_abort_set +apr_pool_set_abort +apr_pool_abort_get +apr_pool_get_abort +apr_pool_parent_get +apr_pool_get_parent +apr_pool_is_ancestor +apr_pool_tag +apr_pool_userdata_set +apr_pool_userdata_setn +apr_pool_userdata_get +apr_pool_cleanup_register +apr_pool_cleanup_kill +apr_pool_child_cleanup_set +apr_pool_cleanup_run +apr_pool_cleanup_null +apr_pool_cleanup_for_exec +apr_os_global_mutex_get +apr_os_file_get +apr_os_dir_get +apr_os_sock_get +apr_os_proc_mutex_get +apr_os_exp_time_get +apr_os_imp_time_get +apr_os_shm_get +apr_os_thread_get +apr_os_threadkey_get +apr_os_thread_put +apr_os_threadkey_put +apr_os_thread_current +apr_os_thread_equal +apr_os_file_put +apr_os_pipe_put +apr_os_pipe_put_ex +apr_os_dir_put +apr_os_sock_put +apr_os_sock_make +apr_os_proc_mutex_put +apr_os_imp_time_put +apr_os_exp_time_put +apr_os_shm_put +apr_os_dso_handle_put +apr_os_dso_handle_get +apr_os_default_encoding +apr_os_locale_encoding +apr_proc_mutex_create +apr_proc_mutex_child_init +apr_proc_mutex_lock +apr_proc_mutex_trylock +apr_proc_mutex_unlock +apr_proc_mutex_destroy +apr_proc_mutex_cleanup +apr_proc_mutex_lockfile +apr_proc_mutex_name +apr_proc_mutex_defname +apr_proc_mutex_pool_get +apr_shm_create +apr_shm_destroy +apr_shm_attach +apr_shm_detach +apr_shm_baseaddr_get +apr_shm_size_get +apr_shm_pool_get +apr_signal +apr_signal_description_get +apr_signal_get_description +apr_strnatcmp +apr_strnatcasecmp +apr_pstrdup +apr_pstrmemdup +apr_pstrndup +apr_pmemdup +apr_pstrcat +apr_pstrcatv +apr_pvsprintf +apr_psprintf +apr_cpystrn +apr_collapse_spaces +apr_tokenize_to_argv +apr_strtok +apr_snprintf +apr_vsnprintf +apr_itoa +apr_ltoa +apr_off_t_toa +apr_strtoi64 +apr_atoi64 +apr_strfsize +apr_table_elts +apr_is_empty_table +apr_is_empty_array +apr_array_make +apr_array_push +apr_array_pop +apr_array_cat +apr_array_copy +apr_array_copy_hdr +apr_array_append +apr_array_pstrcat +apr_table_make +apr_table_copy +apr_table_clear +apr_table_get +apr_table_set +apr_table_setn +apr_table_unset +apr_table_merge +apr_table_mergen +apr_table_add +apr_table_addn +apr_table_overlay +apr_table_do +apr_table_vdo +apr_table_overlap +apr_table_compress +apr_thread_cond_create +apr_thread_cond_wait +apr_thread_cond_timedwait +apr_thread_cond_signal +apr_thread_cond_broadcast +apr_thread_cond_destroy +apr_thread_cond_pool_get +apr_thread_mutex_create +apr_thread_mutex_lock +apr_thread_mutex_trylock +apr_thread_mutex_unlock +apr_thread_mutex_destroy +apr_thread_mutex_pool_get +apr_threadattr_create +apr_threadattr_detach_set +apr_threadattr_detach_get +apr_threadattr_stacksize_set +apr_thread_create +apr_thread_exit +apr_thread_join +apr_thread_yield +apr_thread_once_init +apr_thread_once +apr_thread_detach +apr_thread_data_get +apr_thread_data_set +apr_threadkey_private_create +apr_threadkey_private_get +apr_threadkey_private_set +apr_threadkey_private_delete +apr_threadkey_data_get +apr_threadkey_data_set +apr_procattr_create +apr_procattr_io_set +apr_procattr_child_in_set +apr_procattr_child_out_set +apr_procattr_child_err_set +apr_procattr_dir_set +apr_procattr_cmdtype_set +apr_procattr_detach_set +apr_procattr_limit_set +apr_procattr_child_errfn_set +apr_procattr_error_check_set +apr_procattr_addrspace_set +apr_proc_fork +apr_proc_create +apr_proc_wait +apr_proc_wait_all_procs +apr_proc_detach +apr_proc_other_child_register +apr_proc_other_child_unregister +apr_proc_other_child_alert +apr_proc_other_child_refresh +apr_proc_other_child_refresh_all +apr_proc_other_child_check +apr_proc_other_child_read +apr_proc_kill +apr_pool_note_subprocess +apr_setup_signal_thread +apr_signal_thread +apr_thread_pool_get +apr_thread_rwlock_create +apr_thread_rwlock_rdlock +apr_thread_rwlock_tryrdlock +apr_thread_rwlock_wrlock +apr_thread_rwlock_trywrlock +apr_thread_rwlock_unlock +apr_thread_rwlock_destroy +apr_thread_rwlock_pool_get +apr_time_now +apr_time_ansi_put +apr_time_exp_tz +apr_explode_time +apr_time_exp_gmt +apr_time_exp_lt +apr_explode_localtime +apr_time_exp_get +apr_time_exp_gmt_get +apr_implode_gmt +apr_sleep +apr_rfc822_date +apr_ctime +apr_strftime +apr_time_clock_hires +apr_uid_current +apr_current_userid +apr_uid_name_get +apr_get_username +apr_uid_get +apr_get_userid +apr_uid_homepath_get +apr_get_home_directory +apr_gid_name_get +apr_group_name_get +apr_get_groupname +apr_gid_get +apr_get_groupid +apr_version +apr_version_string +apr_month_snames +apr_day_snames diff --git a/rubbos/app/apache2/lib/aprutil.exp b/rubbos/app/apache2/lib/aprutil.exp new file mode 100644 index 00000000..85ae803c --- /dev/null +++ b/rubbos/app/apache2/lib/aprutil.exp @@ -0,0 +1,187 @@ +#! libaprutil-0.so +* This file was AUTOGENERATED at build time. +* Please do not edit by hand. +apr_base64_encode_len +apr_base64_encode +apr_base64_encode_binary +apr_base64_decode_len +apr_base64_decode +apr_base64_decode_binary +apr_brigade_create +apr_brigade_destroy +apr_brigade_cleanup +apr_brigade_split +apr_brigade_partition +apr_brigade_length +apr_brigade_flatten +apr_brigade_pflatten +apr_brigade_split_line +apr_brigade_to_iovec +apr_brigade_vputstrs +apr_brigade_write +apr_brigade_writev +apr_brigade_puts +apr_brigade_putc +apr_brigade_putstrs +apr_brigade_printf +apr_brigade_vprintf +apr_bucket_alloc_create +apr_bucket_alloc_create_ex +apr_bucket_alloc_destroy +apr_bucket_alloc +apr_bucket_free +apr_bucket_setaside_noop +apr_bucket_setaside_notimpl +apr_bucket_split_notimpl +apr_bucket_copy_notimpl +apr_bucket_destroy_noop +apr_bucket_simple_split +apr_bucket_simple_copy +apr_bucket_shared_make +apr_bucket_shared_destroy +apr_bucket_shared_split +apr_bucket_shared_copy +apr_bucket_eos_create +apr_bucket_eos_make +apr_bucket_flush_create +apr_bucket_flush_make +apr_bucket_immortal_create +apr_bucket_immortal_make +apr_bucket_transient_create +apr_bucket_transient_make +apr_bucket_heap_create +apr_bucket_heap_make +apr_bucket_pool_create +apr_bucket_pool_make +apr_bucket_mmap_create +apr_bucket_mmap_make +apr_bucket_socket_create +apr_bucket_socket_make +apr_bucket_pipe_create +apr_bucket_pipe_make +apr_bucket_file_create +apr_bucket_file_make +apr_bucket_file_enable_mmap +apr_date_checkmask +apr_date_parse_http +apr_date_parse_rfc +apr_dbm_open_ex +apr_dbm_open +apr_dbm_close +apr_dbm_fetch +apr_dbm_store +apr_dbm_delete +apr_dbm_exists +apr_dbm_firstkey +apr_dbm_nextkey +apr_dbm_freedatum +apr_dbm_geterror +apr_dbm_get_usednames_ex +apr_dbm_get_usednames +apr_hook_sort_register +apr_hook_sort_all +apr_sort_hooks +apr_hook_debug_show +apr_show_hook +apr_hook_deregister_all +apr_md4_init +apr_md4_set_xlate +apr_md4_update +apr_md4_final +apr_md4 +apr_md5_init +apr_md5_set_xlate +apr_md5_update +apr_md5_final +apr_md5 +apr_md5_encode +apr_password_validate +apr_dynamic_fn_register +apr_register_optional_fn +apr_dynamic_fn_retrieve +apr_retrieve_optional_fn +apr_optional_hook_add +apr_optional_hook_get +apr_queue_create +apr_queue_push +apr_queue_pop +apr_queue_trypush +apr_queue_trypop +apr_queue_size +apr_queue_interrupt_all +apr_queue_term +apr_reslist_create +apr_reslist_destroy +apr_reslist_acquire +apr_reslist_release +apr_reslist_timeout_set +apr_reslist_invalidate +apr_rmm_init +apr_rmm_destroy +apr_rmm_attach +apr_rmm_detach +apr_rmm_malloc +apr_rmm_realloc +apr_rmm_calloc +apr_rmm_free +apr_rmm_addr_get +apr_rmm_offset_get +apr_rmm_overhead_get +apr_sdbm_open +apr_sdbm_close +apr_sdbm_lock +apr_sdbm_unlock +apr_sdbm_fetch +apr_sdbm_store +apr_sdbm_delete +apr_sdbm_firstkey +apr_sdbm_nextkey +apr_sdbm_rdonly +apr_sha1_base64 +apr_sha1_init +apr_sha1_update +apr_sha1_update_binary +apr_sha1_final +apr_strmatch_precompile +apr_uri_port_of_scheme +apr_uri_default_port_for_scheme +apr_uri_unparse +apr_uri_parse +apr_uri_parse_hostinfo +apr_uuid_get +apr_uuid_format +apr_uuid_parse +apr_xlate_open +apr_xlate_sb_get +apr_xlate_get_sb +apr_xlate_conv_buffer +apr_xlate_conv_byte +apr_xlate_close +apr_text_append +apr_xml_parser_create +apr_xml_parse_file +apr_xml_parser_feed +apr_xml_parser_done +apr_xml_parser_geterror +apr_xml_to_text +apr_xml_empty_elem +apr_xml_quote_string +apr_xml_quote_elem +apr_xml_insert_uri +apu_version +apu_version_string +apr_bucket_type_flush +apr_bucket_type_eos +apr_bucket_type_file +apr_bucket_type_heap +apr_bucket_type_pool +apr_bucket_type_pipe +apr_bucket_type_immortal +apr_bucket_type_transient +apr_bucket_type_socket +apr_hook_global_pool +apr_global_hook_pool +apr_hook_debug_enabled +apr_debug_module_hooks +apr_hook_debug_current +apr_current_hooking_module diff --git a/rubbos/app/apache2/lib/libapr-0.a b/rubbos/app/apache2/lib/libapr-0.a new file mode 100644 index 00000000..4f06340e Binary files /dev/null and b/rubbos/app/apache2/lib/libapr-0.a differ diff --git a/rubbos/app/apache2/lib/libapr-0.la b/rubbos/app/apache2/lib/libapr-0.la new file mode 100644 index 00000000..7906d95a --- /dev/null +++ b/rubbos/app/apache2/lib/libapr-0.la @@ -0,0 +1,35 @@ +# libapr-0.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libapr-0.so.0' + +# Names of this library. +library_names='libapr-0.so.0.9.19 libapr-0.so.0 libapr-0.so' + +# The name of the static archive. +old_library='libapr-0.a' + +# Libraries that this one depends upon. +dependency_libs=' -lrt -lm -lcrypt -lnsl -lpthread -ldl' + +# Version information for libapr-0. +current=9 +age=9 +revision=19 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/bottlenecks/rubbos/app/apache2/lib' diff --git a/rubbos/app/apache2/lib/libapr-0.so b/rubbos/app/apache2/lib/libapr-0.so new file mode 100755 index 00000000..605582aa Binary files /dev/null and b/rubbos/app/apache2/lib/libapr-0.so differ diff --git a/rubbos/app/apache2/lib/libapr-0.so.0 b/rubbos/app/apache2/lib/libapr-0.so.0 new file mode 100755 index 00000000..605582aa Binary files /dev/null and b/rubbos/app/apache2/lib/libapr-0.so.0 differ diff --git a/rubbos/app/apache2/lib/libapr-0.so.0.9.19 b/rubbos/app/apache2/lib/libapr-0.so.0.9.19 new file mode 100755 index 00000000..605582aa Binary files /dev/null and b/rubbos/app/apache2/lib/libapr-0.so.0.9.19 differ diff --git a/rubbos/app/apache2/lib/libaprutil-0.a b/rubbos/app/apache2/lib/libaprutil-0.a new file mode 100644 index 00000000..122a2f88 Binary files /dev/null and b/rubbos/app/apache2/lib/libaprutil-0.a differ diff --git a/rubbos/app/apache2/lib/libaprutil-0.la b/rubbos/app/apache2/lib/libaprutil-0.la new file mode 100644 index 00000000..8b817d00 --- /dev/null +++ b/rubbos/app/apache2/lib/libaprutil-0.la @@ -0,0 +1,35 @@ +# libaprutil-0.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libaprutil-0.so.0' + +# Names of this library. +library_names='libaprutil-0.so.0.9.19 libaprutil-0.so.0 libaprutil-0.so' + +# The name of the static archive. +old_library='libaprutil-0.a' + +# Libraries that this one depends upon. +dependency_libs='' + +# Version information for libaprutil-0. +current=9 +age=9 +revision=19 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/bottlenecks/rubbos/app/apache2/lib' diff --git a/rubbos/app/apache2/lib/libaprutil-0.so b/rubbos/app/apache2/lib/libaprutil-0.so new file mode 100755 index 00000000..7e6097b0 Binary files /dev/null and b/rubbos/app/apache2/lib/libaprutil-0.so differ diff --git a/rubbos/app/apache2/lib/libaprutil-0.so.0 b/rubbos/app/apache2/lib/libaprutil-0.so.0 new file mode 100755 index 00000000..7e6097b0 Binary files /dev/null and b/rubbos/app/apache2/lib/libaprutil-0.so.0 differ diff --git a/rubbos/app/apache2/lib/libaprutil-0.so.0.9.19 b/rubbos/app/apache2/lib/libaprutil-0.so.0.9.19 new file mode 100755 index 00000000..7e6097b0 Binary files /dev/null and b/rubbos/app/apache2/lib/libaprutil-0.so.0.9.19 differ diff --git a/rubbos/app/apache2/lib/libexpat.a b/rubbos/app/apache2/lib/libexpat.a new file mode 100644 index 00000000..35f1c124 Binary files /dev/null and b/rubbos/app/apache2/lib/libexpat.a differ diff --git a/rubbos/app/apache2/lib/libexpat.la b/rubbos/app/apache2/lib/libexpat.la new file mode 100755 index 00000000..b5f91d99 --- /dev/null +++ b/rubbos/app/apache2/lib/libexpat.la @@ -0,0 +1,35 @@ +# libexpat.la - a libtool library file +# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18) +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libexpat.so.0' + +# Names of this library. +library_names='libexpat.so.0.5.0 libexpat.so.0 libexpat.so' + +# The name of the static archive. +old_library='libexpat.a' + +# Libraries that this one depends upon. +dependency_libs='' + +# Version information for libexpat. +current=5 +age=5 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/bottlenecks/rubbos/app/apache2/lib' diff --git a/rubbos/app/apache2/lib/libexpat.so b/rubbos/app/apache2/lib/libexpat.so new file mode 100755 index 00000000..aecd7ef4 Binary files /dev/null and b/rubbos/app/apache2/lib/libexpat.so differ diff --git a/rubbos/app/apache2/lib/libexpat.so.0 b/rubbos/app/apache2/lib/libexpat.so.0 new file mode 100755 index 00000000..aecd7ef4 Binary files /dev/null and b/rubbos/app/apache2/lib/libexpat.so.0 differ diff --git a/rubbos/app/apache2/lib/libexpat.so.0.5.0 b/rubbos/app/apache2/lib/libexpat.so.0.5.0 new file mode 100755 index 00000000..aecd7ef4 Binary files /dev/null and b/rubbos/app/apache2/lib/libexpat.so.0.5.0 differ diff --git a/rubbos/app/apache2/logs/access_log b/rubbos/app/apache2/logs/access_log new file mode 100644 index 00000000..e69de29b diff --git a/rubbos/app/apache2/logs/error_log b/rubbos/app/apache2/logs/error_log new file mode 100644 index 00000000..4fd748c7 --- /dev/null +++ b/rubbos/app/apache2/logs/error_log @@ -0,0 +1,2 @@ +[Fri Nov 27 10:59:55 2015] [crit] (22)Invalid argument: mod_jk: Could not set permissions on jk_log_lock; check User and Group directives +Configuration Failed diff --git a/rubbos/app/apache2/man/man1/dbmmanage.1 b/rubbos/app/apache2/man/man1/dbmmanage.1 new file mode 100644 index 00000000..a297070d --- /dev/null +++ b/rubbos/app/apache2/man/man1/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 "2004-11-20" "Apache HTTP Server" "dbmmanage" + +.SH NAME +dbmmanage \- Manage user authentication files in DBM format + +.SH "SYNOPSIS" + +.PP +\fBdbmmanage\fR [ \fIencoding\fR ] \fIfilename\fR add|adduser|check|delete|update \fIusername\fR [ \fIencpasswd\fR [ \fIgroup\fR[,\fIgroup\fR\&.\&.\&.] [ \fIcomment\fR ] ] ] + +.PP +\fBdbmmanage\fR \fIfilename\fR view [ \fIusername\fR ] + +.PP +\fBdbmmanage\fR \fIfilename\fR import + + +.SH "SUMMARY" + +.PP +dbmmanage is used to create and update the DBM format files used to store usernames and password for basic authentication of HTTP users via mod_auth_dbm\&. Resources available from the Apache HTTP server can be restricted to just the users listed in the files created by dbmmanage\&. This program can only be used when the usernames are stored in a DBM file\&. To use a flat-file database see htpasswd\&. + +.PP +This manual page only lists the command line arguments\&. For details of the directives necessary to configure user authentication in httpd see the httpd manual, which is part of the Apache distribution or can be found at http://httpd\&.apache\&.org/\&. + + +.SH "OPTIONS" + + +.TP +\fIfilename\fR +The filename of the DBM format file\&. Usually without the extension \&.db, \&.pag, or \&.dir\&. +.TP +\fIusername\fR +The user for which the operations are performed\&. The \fIusername\fR may not contain a colon (:)\&. +.TP +\fIencpasswd\fR +This is the already encrypted password to use for the update and add commands\&. You may use a hyphen (-) if you want to get prompted for the password, but fill in the fields afterwards\&. Additionally when using the update command, a period (\&.) keeps the original password untouched\&. +.TP +\fIgroup\fR +A group, which the user is member of\&. A groupname may not contain a colon (:)\&. You may use a hyphen (-) if you don't want to assign the user to a group, but fill in the comment field\&. Additionally when using the update command, a period (\&.) keeps the original groups untouched\&. +.TP +\fIcomment\fR +This is the place for your opaque comments about the user, like realname, mailaddress or such things\&. The server will ignore this field\&. + +.SS "Encodings" + + +.TP +-d +crypt encryption (default, except on Win32, Netware) +.TP +-m +MD5 encryption (default on Win32, Netware) +.TP +-s +SHA1 encryption +.TP +-p +plaintext (\fInot recommended\fR) + +.SS "Commands" + + +.TP +add +Adds an entry for \fIusername\fR to \fIfilename\fR using the encrypted password \fIencpasswd\fR\&. dbmmanage passwords\&.dat add rbowen foKntnEF3KSXA +.TP +adduser +Asks for a password and then adds an entry for \fIusername\fR to \fIfilename\fR\&. dbmmanage passwords\&.dat adduser krietz +.TP +check +Asks for a password and then checks if \fIusername\fR is in \fIfilename\fR and if it's password matches the specified one\&. dbmmanage passwords\&.dat check rbowen +.TP +delete +Deletes the \fIusername\fR entry from \fIfilename\fR\&. dbmmanage passwords\&.dat delete rbowen +.TP +import +Reads \fIusername\fR:\fIpassword\fR entries (one per line) from STDIN and adds them to \fIfilename\fR\&. The passwords already have to be crypted\&. +.TP +update +Same as the adduser command, except that it makes sure \fIusername\fR already exists in \fIfilename\fR\&. dbmmanage passwords\&.dat update rbowen +.TP +view +Just displays the contents of the DBM file\&. If you specify a \fIusername\fR, it displays the particular record only\&. dbmmanage passwords\&.dat view + +.SH "BUGS" + +.PP +One should be aware that there are a number of different DBM file formats in existence, and with all likelihood, libraries for more than one format may exist on your system\&. The three primary examples are SDBM, NDBM, the GNU project's GDBM, and Berkeley DB 2\&. Unfortunately, all these libraries use different file formats, and you must make sure that the file format used by \fIfilename\fR is the same format that dbmmanage expects to see\&. dbmmanage currently has no way of determining what type of DBM file it is looking at\&. If used against the wrong format, will simply return nothing, or may create a different DBM file with a different name, or at worst, it may corrupt the DBM file if you were attempting to write to it\&. + +.PP +dbmmanage has a list of DBM format preferences, defined by the @AnyDBM::ISA array near the beginning of the program\&. Since we prefer the Berkeley DB 2 file format, the order in which dbmmanage will look for system libraries is Berkeley DB 2, then NDBM, then GDBM and then SDBM\&. The first library found will be the library dbmmanage will attempt to use for all DBM file transactions\&. This ordering is slightly different than the standard @AnyDBM::ISA ordering in Perl, as well as the ordering used by the simple dbmopen() call in Perl, so if you use any other utilities to manage your DBM files, they must also follow this preference ordering\&. Similar care must be taken if using programs in other languages, like C, to access these files\&. + +.PP +One can usually use the file program supplied with most Unix systems to see what format a DBM file is in\&. + diff --git a/rubbos/app/apache2/man/man1/htdbm.1 b/rubbos/app/apache2/man/man1/htdbm.1 new file mode 100644 index 00000000..2b7b95f9 --- /dev/null +++ b/rubbos/app/apache2/man/man1/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 "2005-04-07" "Apache HTTP Server" "htdbm" + +.SH NAME +htdbm \- Manipulate DBM password databases + +.SH "SYNOPSIS" + +.PP +\fBhtdbm\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] [ -\fBx\fR ] \fIfilename\fR \fIusername\fR + +.PP +\fBhtdbm\fR -\fBb\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR \fIpassword\fR + +.PP +\fBhtdbm\fR -\fBn\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIusername\fR + +.PP +\fBhtdbm\fR -\fBnb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIusername\fR \fIpassword\fR + +.PP +\fBhtdbm\fR -\fBv\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR + +.PP +\fBhtdbm\fR -\fBvb\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBt\fR ] [ -\fBv\fR ] \fIfilename\fR \fIusername\fR \fIpassword\fR + +.PP +\fBhtdbm\fR -\fBx\fR [ -\fBT\fR\fIDBTYPE\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] \fIfilename\fR \fIusername\fR + +.PP +\fBhtdbm\fR -\fBl\fR [ -\fBT\fR\fIDBTYPE\fR ] + + +.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\&. + + +.SH "OPTIONS" + + +.TP +-b +Use batch mode; \fIi\&.e\&.\fR, get the password from the command line rather than prompting for it\&. This option should be used with extreme care, since \fBthe password is clearly visible\fR on the command line\&. +.TP +-c +Create the \fIpasswdfile\fR\&. If \fIpasswdfile\fR already exists, it is rewritten and truncated\&. This option cannot be combined with the -n option\&. +.TP +-n +Display the results on standard output rather than updating a database\&. 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\&. +.TP +-d +Use crypt() encryption for passwords\&. The default on all platforms but Windows, Netware and TPF\&. Though possibly supported by htdbm on all platforms, it is not supported by the httpd server on Windows, Netware and TPF\&. +.TP +-s +Use SHA encryption for passwords\&. Facilitates migration from/to Netscape servers using the LDAP Directory Interchange Format (ldif)\&. +.TP +-p +Use plaintext passwords\&. Though htdbm will support creation on all platforms, the httpd daemon will only accept plain text passwords on Windows, Netware and TPF\&. +.TP +-l +Print each of the usernames and comments from the database on stdout\&. +.TP +-t +Interpret the final parameter as a comment\&. When this option is specified, an additional string can be appended to the command line; this string will be stored in the "Comment" field of the database, associated with the specified username\&. +.TP +-v +Verify the username and password\&. The program will print a message indicating whether the supplied password is valid\&. If the password is invalid, the program exits with error code 3\&. +.TP +-x +Delete user\&. If the username exists in the specified DBM file, it will be deleted\&. +.TP +\fIfilename\fR +The filename of the DBM format file\&. Usually without the extension \&.db, \&.pag, or \&.dir\&. If -c is given, the DBM file is created if it does not already exist, or updated if it does exist\&. +.TP +\fIusername\fR +The username to create or update in \fIpasswdfile\fR\&. If \fIusername\fR does not exist in this file, an entry is added\&. If it does exist, the password is changed\&. +.TP +\fIpassword\fR +The plaintext password to be encrypted and stored in the DBM file\&. Used only with the -b flag\&. +.TP +-T\fIDBTYPE\fR +Type of DBM file (SDBM, GDBM, DB, or "default")\&. + +.SH "BUGS" + +.PP +One should be aware that there are a number of different DBM file formats in existence, and with all likelihood, libraries for more than one format may exist on your system\&. The three primary examples are SDBM, NDBM, GNU GDBM, and Berkeley/Sleepycat DB 2/3/4\&. Unfortunately, all these libraries use different file formats, and you must make sure that the file format used by \fIfilename\fR is the same format that htdbm expects to see\&. htdbm currently has no way of determining what type of DBM file it is looking at\&. If used against the wrong format, will simply return nothing, or may create a different DBM file with a different name, or at worst, it may corrupt the DBM file if you were attempting to write to it\&. + +.PP +One can usually use the file program supplied with most Unix systems to see what format a DBM file is in\&. + +.SH "EXIT STATUS" + +.PP +htdbm returns a zero status ("true") if the username and password have been successfully added or updated in the DBM File\&. htdbm returns 1 if it encounters some problem accessing files, 2 if there was a syntax problem with the command line, 3 if the password was entered interactively and the verification entry didn't match, 4 if its operation was interrupted, 5 if a value is too long (username, filename, password, or final computed record), 6 if the username contains illegal characters (see the Restrictions section), and 7 if the file is not a valid DBM password file\&. + +.SH "EXAMPLES" + +.nf + + htdbm /usr/local/etc/apache/\&.htdbm-users jsmith + +.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, htdbm will do nothing except return an error\&. + +.nf + + htdbm -c /home/doe/public_html/\&.htdbm jane + +.fi + +.PP +Creates a new file and stores a record in it for user jane\&. The user is prompted for the password\&. If the file exists and cannot be read, or cannot be written, it is not altered and htdbm will display a message and return an error status\&. + +.nf + + htdbm -mb /usr/web/\&.htdbm-all jones Pwd4Steve + +.fi + +.PP +Encrypts the password from the command line (Pwd4Steve) using the MD5 algorithm, and stores it in the specified file\&. + +.SH "SECURITY CONSIDERATIONS" + +.PP +Web password files such as those managed by htdbm should \fInot\fR be within the Web server's URI space -- that is, they should not be fetchable with a browser\&. + +.PP +The use of the -b option is discouraged, since when it is used the unencrypted password appears on the command line\&. + +.SH "RESTRICTIONS" + +.PP +On the Windows and MPE platforms, passwords encrypted with htdbm are limited to no more than 255 characters in length\&. Longer passwords will be truncated to 255 characters\&. + +.PP +The MD5 algorithm used by htdbm is specific to the Apache software; passwords encrypted using it will not be usable with other Web servers\&. + +.PP +Usernames are limited to 255 bytes and may not include the character :\&. + diff --git a/rubbos/app/apache2/man/man1/htdigest.1 b/rubbos/app/apache2/man/man1/htdigest.1 new file mode 100644 index 00000000..9c8c0dfd --- /dev/null +++ b/rubbos/app/apache2/man/man1/htdigest.1 @@ -0,0 +1,57 @@ +.\" 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 "HTDIGEST" 1 "2004-01-06" "Apache HTTP Server" "htdigest" + +.SH NAME +htdigest \- manage user files for digest authentication + +.SH "SYNOPSIS" + +.PP +\fBhtdigest\fR [ -\fBc\fR ] \fIpasswdfile\fR \fIrealm\fR \fIusername\fR + + +.SH "SUMMARY" + +.PP +htdigest is used to create and update the flat-files used to store usernames, realm and password for digest authentication of HTTP users\&. Resources available from the Apache HTTP server can be restricted to just the users listed in the files created by htdigest\&. + +.PP +This manual page only lists the command line arguments\&. For details of the directives necessary to configure digest authentication in httpd see the Apache manual, which is part of the Apache distribution or can be found at http://httpd\&.apache\&.org/\&. + + +.SH "OPTIONS" + + +.TP +-c +Create the \fIpasswdfile\fR\&. If \fIpasswdfile\fR already exists, it is deleted first\&. +.TP +\fIpasswdfile\fR +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\&. +.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\&. + diff --git a/rubbos/app/apache2/man/man1/htpasswd.1 b/rubbos/app/apache2/man/man1/htpasswd.1 new file mode 100644 index 00000000..4ed581f6 --- /dev/null +++ b/rubbos/app/apache2/man/man1/htpasswd.1 @@ -0,0 +1,146 @@ +.\" 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 "2004-01-06" "Apache HTTP Server" "htpasswd" + +.SH NAME +htpasswd \- Manage user files for basic authentication + +.SH "SYNOPSIS" + +.PP +\fBhtpasswd\fR [ -\fBc\fR ] [ -\fBm\fR ] [ -\fBD\fR ] \fIpasswdfile\fR \fIusername\fR + +.PP +\fBhtpasswd\fR -\fBb\fR [ -\fBc\fR ] [ -\fBm\fR | -\fBd\fR | -\fBp\fR | -\fBs\fR ] [ -\fBD\fR ] \fIpasswdfile\fR \fIusername\fR \fIpassword\fR + +.PP +\fBhtpasswd\fR -\fBn\fR [ -\fBm\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] \fIusername\fR + +.PP +\fBhtpasswd\fR -\fBnb\fR [ -\fBm\fR | -\fBd\fR | -\fBs\fR | -\fBp\fR ] \fIusername\fR \fIpassword\fR + + +.SH "SUMMARY" + +.PP +htpasswd is used to create and update the flat-files used to store usernames and password for basic authentication of HTTP users\&. If htpasswd cannot access a file, such as not being able to write to the output file or not being able to read the file in order to update it, it returns an error status and makes no changes\&. + +.PP +Resources available from the Apache HTTP server can be restricted to just the users listed in the files created by htpasswd\&. This program can only manage usernames and passwords stored in a flat-file\&. It can encrypt and display password information for use in other types of data stores, though\&. To use a DBM database see dbmmanage\&. + +.PP +htpasswd encrypts passwords using either a version of MD5 modified for Apache, or the system's crypt() routine\&. Files managed by htpasswd may contain both types of passwords; some user records may have MD5-encrypted passwords while others in the same file may have passwords encrypted with crypt()\&. + +.PP +This manual page only lists the command line arguments\&. For details of the directives necessary to configure user authentication in httpd see the Apache manual, which is part of the Apache distribution or can be found at http://httpd\&.apache\&.org/\&. + + +.SH "OPTIONS" + + +.TP +-b +Use batch mode; \fIi\&.e\&.\fR, get the password from the command line rather than prompting for it\&. This option should be used with extreme care, since \fBthe password is clearly visible\fR on the command line\&. +.TP +-c +Create the \fIpasswdfile\fR\&. If \fIpasswdfile\fR already exists, it is rewritten and truncated\&. This option cannot be combined with the -n option\&. +.TP +-n +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\&. +.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\&. +.TP +-s +Use SHA encryption for passwords\&. Facilitates migration from/to Netscape servers using the LDAP Directory Interchange Format (ldif)\&. +.TP +-p +Use plaintext passwords\&. Though htpasswd will support creation on all platforms, the httpd daemon will only accept plain text passwords on Windows, Netware and TPF\&. +.TP +-D +Delete user\&. If the username exists in the specified htpasswd file, it will be deleted\&. +.TP +\fIpasswdfile\fR +Name of the file to contain the user name and password\&. If -c is given, this file is created if it does not already exist, or rewritten and truncated if it does exist\&. +.TP +\fIusername\fR +The username to create or update in \fIpasswdfile\fR\&. If \fIusername\fR does not exist in this file, an entry is added\&. If it does exist, the password is changed\&. +.TP +\fIpassword\fR +The plaintext password to be encrypted and stored in the file\&. Only used with the -b flag\&. + +.SH "EXIT STATUS" + +.PP +htpasswd returns a zero status ("true") if the username and password have been successfully added or updated in the \fIpasswdfile\fR\&. htpasswd returns 1 if it encounters some problem accessing files, 2 if there was a syntax problem with the command line, 3 if the password was entered interactively and the verification entry didn't match, 4 if its operation was interrupted, 5 if a value is too long (username, filename, password, or final computed record), 6 if the username contains illegal characters (see the Restrictions section), and 7 if the file is not a valid password file\&. + +.SH "EXAMPLES" + +.nf + + htpasswd /usr/local/etc/apache/\&.htpasswd-users jsmith + +.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\&. + +.nf + + htpasswd -c /home/doe/public_html/\&.htpasswd jane + +.fi + +.PP +Creates a new file and stores a record in it for user jane\&. The user is prompted for the password\&. If the file exists and cannot be read, or cannot be written, it is not altered and htpasswd will display a message and return an error status\&. + +.nf + + htpasswd -mb /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\&. + +.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 +The use of the -b option is discouraged, since when it is used the unencrypted password appears on the command line\&. + +.SH "RESTRICTIONS" + +.PP +On the Windows and MPE platforms, passwords encrypted with htpasswd are limited to no more than 255 characters in length\&. Longer passwords will be truncated to 255 characters\&. + +.PP +The MD5 algorithm used by htpasswd is specific to the Apache software; passwords encrypted using it will not be usable with other Web servers\&. + +.PP +Usernames are limited to 255 bytes and may not include the character :\&. + diff --git a/rubbos/app/apache2/man/man8/ab.8 b/rubbos/app/apache2/man/man8/ab.8 new file mode 100644 index 00000000..aa1c7ab2 --- /dev/null +++ b/rubbos/app/apache2/man/man8/ab.8 @@ -0,0 +1,125 @@ +.\" 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 "2004-11-14" "Apache HTTP Server" "ab" + +.SH NAME +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-attributes\fR ] [ -\fBX\fR \fIproxy\fR[:\fIport\fR] ] [ -\fBy\fR \fI-attributes\fR ] [ -\fBz\fR \fI
-attributes\fR ] [http://]\fIhostname\fR[:\fIport\fR]/\fIpath\fR + + +.SH "SUMMARY" + +.PP +ab is a tool for benchmarking your Apache Hypertext Transfer Protocol (HTTP) server\&. It is designed to give you an impression of how your current Apache installation performs\&. This especially shows you how many requests per second your Apache installation is capable of serving\&. + + +.SH "OPTIONS" + + +.TP +-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 +-c \fIconcurrency\fR +Number of multiple requests to perform at a time\&. Default is one request at a time\&. +.TP +-C \fIcookie-name\fR=\fIvalue\fR +Add a Cookie: line to the request\&. The argument is typically in the form of a \fIname\fR=\fIvalue\fR pair\&. This field is repeatable\&. +.TP +-d +Do not display the "percentage served within XX [ms] table"\&. (legacy support)\&. +.TP +-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 +-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 +-h +Display usage information\&. +.TP +-H \fIcustom-header\fR +Append extra headers to the request\&. The argument is typically in the form of a valid header line, containing a colon-separated field-value pair (\fIi\&.e\&.\fR, "Accept-Encoding: zip/zop;8bit")\&. +.TP +-i +Do HEAD requests instead of GET\&. +.TP +-k +Enable the HTTP KeepAlive feature, \fIi\&.e\&.\fR, perform multiple requests within one HTTP session\&. Default is no KeepAlive\&. +.TP +-n \fIrequests\fR +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\&. +.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)\&. +.TP +-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 +-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 +-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 min/avg/max values\&. (legacy support)\&. +.TP +-t \fItimelimit\fR +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\&. +.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\&. +.TP +-V +Display version number and exit\&. +.TP +-w +Print out results in HTML tables\&. Default table is two columns wide, with a white background\&. +.TP +-x \fI-attributes\fR +String to use as attributes for
\&. Attributes are inserted
\&. +.TP +-X \fIproxy\fR[:\fIport\fR] +Use a proxy server for the requests\&. +.TP +-y \fI-attributes\fR +String to use as attributes for \&. +.TP +-z \fI
-attributes\fR +String to use as attributes for \&. + +.SH "BUGS" + +.PP +There are various statically declared buffers of fixed length\&. Combined with the lazy parsing of the command line arguments, the response headers from the server and other external inputs, this might bite you\&. + +.PP +It does not implement HTTP/1\&.x fully; only accepts some 'expected' forms of responses\&. The rather heavy use of strstr(3) shows up top in profile, which might indicate a performance problem; \fIi\&.e\&.\fR, you would measure the ab performance rather than the server's\&. + diff --git a/rubbos/app/apache2/man/man8/apachectl.8 b/rubbos/app/apache2/man/man8/apachectl.8 new file mode 100644 index 00000000..3b727381 --- /dev/null +++ b/rubbos/app/apache2/man/man8/apachectl.8 @@ -0,0 +1,92 @@ +.\" 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 "2004-01-06" "Apache HTTP Server" "apachectl" + +.SH NAME +apachectl \- Apache HTTP Server Control Interface + +.SH "SYNOPSIS" + +.PP +When acting in pass-through mode, apachectl can take all the arguments available for the httpd binary\&. + +.PP +\fBapachectl\fR [ \fIhttpd-argument\fR ] + +.PP +When acting in SysV init mode, apachectl takes simple, one-word commands, defined below\&. + +.PP +\fBapachectl\fR \fIcommand\fR + + +.SH "SUMMARY" + +.PP +apachectl is a front end to the Apache HyperText Transfer Protocol (HTTP) server\&. It is designed to help the administrator control the functioning of the Apache httpd daemon\&. + +.PP +The apachectl script can operate in two modes\&. First, it can act as a simple front-end to the httpd command that simply sets any necessary environment variables and then invokes httpd, passing through any command line arguments\&. Second, apachectl can act as a SysV init script, taking simple one-word arguments like start, restart, and stop, and translating them into appropriate signals to httpd\&. + +.PP +If your Apache installation uses non-standard paths, you will need to edit the apachectl script to set the appropriate paths to the httpd binary\&. You can also specify any necessary httpd command line arguments\&. See the comments in the script for details\&. + +.PP +The apachectl script returns a 0 exit value on success, and >0 if an error occurs\&. For more details, view the comments in the script\&. + + +.SH "OPTIONS" + +.PP +Only the SysV init-style options are defined here\&. Other arguments are defined on the httpd manual page\&. + + +.TP +start +Start the Apache httpd daemon\&. Gives an error if it is already running\&. This is equivalent to apachectl -k start\&. +.TP +stop +Stops the Apache httpd daemon\&. This is equivalent to apachectl -k stop\&. +.TP +restart +Restarts the Apache httpd daemon\&. If the daemon is not running, it is started\&. This command automatically checks the configuration files as in configtest before initiating the restart to make sure the daemon doesn't die\&. This is equivalent to apachectl -k restart\&. +.TP +fullstatus +Displays a full status report from mod_status\&. For this to work, you need to have mod_status enabled on your server and a text-based browser such as lynx available on your system\&. The URL used to access the status report can be set by editing the STATUSURL variable in the script\&. +.TP +status +Displays a brief status report\&. Similar to the fullstatus option, except that the list of requests currently being served is omitted\&. +.TP +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 +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\&. + +.PP +The following additional option is available, but deprecated\&. + + +.TP +startssl +This is equivalent to apachectl -k start -DSSL\&. We recommend that you use that command explicitly, or you adjust your httpd\&.conf to remove the section so that SSL will always be available\&. + diff --git a/rubbos/app/apache2/man/man8/apxs.8 b/rubbos/app/apache2/man/man8/apxs.8 new file mode 100644 index 00000000..759a0459 --- /dev/null +++ b/rubbos/app/apache2/man/man8/apxs.8 @@ -0,0 +1,255 @@ +.\" 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 "2004-11-20" "Apache HTTP Server" "apxs" + +.SH NAME +apxs \- APache eXtenSion tool + +.SH "SYNOPSIS" + +.PP +\fBapxs\fR -\fBg\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] -\fBn\fR \fImodname\fR + +.PP +\fBapxs\fR -\fBq\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] \fIquery\fR \&.\&.\&. + +.PP +\fBapxs\fR -\fBc\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] [ -\fBo\fR \fIdsofile\fR ] [ -\fBI\fR \fIincdir\fR ] [ -\fBD\fR \fIname\fR=\fIvalue\fR ] [ -\fBL\fR \fIlibdir\fR ] [ -\fBl\fR \fIlibname\fR ] [ -\fBWc,\fR\fIcompiler-flags\fR ] [ -\fBWl,\fR\fIlinker-flags\fR ] \fIfiles\fR \&.\&.\&. + +.PP +\fBapxs\fR -\fBi\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] [ -\fBn\fR \fImodname\fR ] [ -\fBa\fR ] [ -\fBA\fR ] \fIdso-file\fR \&.\&.\&. + +.PP +\fBapxs\fR -\fBe\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] [ -\fBn\fR \fImodname\fR ] [ -\fBa\fR ] [ -\fBA\fR ] \fIdso-file\fR \&.\&.\&. + + +.SH "SUMMARY" + +.PP +apxs is a tool for building and installing extension modules for the Apache HyperText Transfer Protocol (HTTP) server\&. This is achieved by building a dynamic shared object (DSO) from one or more source or object \fIfiles\fR which then can be loaded into the Apache server under runtime via the LoadModule directive from mod_so\&. + +.PP +So to use this extension mechanism your platform has to support the DSO feature and your Apache httpd binary has to be built with the mod_so module\&. The apxs tool automatically complains if this is not the case\&. You can check this yourself by manually running the command + +.nf + + $ httpd -l + +.fi + +.PP +The module mod_so should be part of the displayed list\&. If these requirements are fulfilled you can easily extend your Apache server's functionality by installing your own modules with the DSO mechanism by the help of this apxs tool: + +.nf + + $ apxs -i -a -c mod_foo\&.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo\&.c + ld -Bshareable -o mod_foo\&.so mod_foo\&.o + cp mod_foo\&.so /path/to/apache/modules/mod_foo\&.so + chmod 755 /path/to/apache/modules/mod_foo\&.so + [activating module `foo' in /path/to/apache/etc/httpd\&.conf] + $ apachectl restart + /path/to/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 + /path/to/apache/sbin/apachectl restart: httpd started + $ _ + +.fi + +.PP +The arguments \fIfiles\fR can be any C source file (\&.c), a object file (\&.o) or even a library archive (\&.a)\&. The apxs tool automatically recognizes these extensions and automatically used the C source files for compilation while just using the object and archive files for the linking phase\&. But when using such pre-compiled objects make sure they are compiled for position independent code (PIC) to be able to use them for a dynamically loaded shared object\&. For instance with GCC you always just have to use -fpic\&. For other C compilers consult its manual page or at watch for the flags apxs uses to compile the object files\&. + +.PP +For more details about DSO support in Apache read the documentation of mod_so or perhaps even read the src/modules/standard/mod_so\&.c source file\&. + + +.SH "OPTIONS" + +.SS "Common Options" + + +.TP +-n \fImodname\fR +This explicitly sets the module name for the -i (install) and -g (template generation) option\&. Use this to explicitly specify the module name\&. For option -g this is required, for option -i the apxs tool tries to determine the name from the source or (as a fallback) at least by guessing it from the filename\&. + +.SS "Query Options" + + +.TP +-q +Performs a query for apxs's knowledge about certain settings\&. The \fIquery\fR parameters can be one or more of the following strings: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET\&. .PP Use this for manually determining settings\&. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files\&. + +.SS "Configuration Options" + + +.TP +-S \fIname\fR=\fIvalue\fR +This option changes the apxs settings described above\&. + +.SS "Template Generation Options" + + +.TP +-g +This generates a subdirectory \fIname\fR (see option -n) and there two files: A sample module source file named mod_\fIname\fR\&.c which can be used as a template for creating your own modules or as a quick start for playing with the apxs mechanism\&. And a corresponding Makefile for even easier build and installing of this module\&. + +.SS "DSO Compilation Options" + + +.TP +-c +This indicates the compilation operation\&. It first compiles the C source files (\&.c) of \fIfiles\fR into corresponding object files (\&.o) and then builds a dynamically shared object in \fIdsofile\fR by linking these object files plus the remaining object files (\&.o and \&.a) of \fIfiles\fR\&. If no -o option is specified the output file is guessed from the first filename in \fIfiles\fR and thus usually defaults to mod_\fIname\fR\&.so\&. +.TP +-o \fIdsofile\fR +Explicitly specifies the filename of the created dynamically shared object\&. If not specified and the name cannot be guessed from the \fIfiles\fR list, the fallback name mod_unknown\&.so is used\&. +.TP +-D \fIname\fR=\fIvalue\fR +This option is directly passed through to the compilation command(s)\&. Use this to add your own defines to the build process\&. +.TP +-I \fIincdir\fR +This option is directly passed through to the compilation command(s)\&. Use this to add your own include directories to search to the build process\&. +.TP +-L \fIlibdir\fR +This option is directly passed through to the linker command\&. Use this to add your own library directories to search to the build process\&. +.TP +-l \fIlibname\fR +This option is directly passed through to the linker command\&. Use this to add your own libraries to search to the build process\&. +.TP +-Wc,\fIcompiler-flags\fR +This option passes \fIcompiler-flags\fR as additional flags to the compiler command\&. Use this to add local compiler-specific options\&. +.TP +-Wl,\fIlinker-flags\fR +This option passes \fIlinker-flags\fR as additional flags to the linker command\&. Use this to add local linker-specific options\&. + +.SS "DSO Installation and Configuration Options" + + +.TP +-i +This indicates the installation operation and installs one or more dynamically shared objects into the server's \fImodules\fR directory\&. +.TP +-a +This activates the module by automatically adding a corresponding LoadModule line to Apache's httpd\&.conf configuration file, or by enabling it if it already exists\&. +.TP +-A +Same as option -a but the created LoadModule directive is prefixed with a hash sign (#), \fIi\&.e\&.\fR, the module is just prepared for later activation but initially disabled\&. +.TP +-e +This indicates the editing operation, which can be used with the -a and -A options similarly to the -i operation to edit Apache's httpd\&.conf configuration file without attempting to install the module\&. + +.SH "EXAMPLES" + +.PP +Assume you have an Apache module named mod_foo\&.c available which should extend Apache's server functionality\&. To accomplish this you first have to compile the C source into a shared object suitable for loading into the Apache server under runtime via the following command: + +.nf + + $ apxs -c mod_foo\&.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo\&.c + ld -Bshareable -o mod_foo\&.so mod_foo\&.o + $ _ + +.fi + +.PP +Then you have to update the Apache configuration by making sure a LoadModule directive is present to load this shared object\&. To simplify this step apxs provides an automatic way to install the shared object in its "modules" directory and updating the httpd\&.conf file accordingly\&. This can be achieved by running: + +.nf + + $ apxs -i -a mod_foo\&.c + cp mod_foo\&.so /path/to/apache/modules/mod_foo\&.so + chmod 755 /path/to/apache/modules/mod_foo\&.so + [activating module `foo' in /path/to/apache/etc/httpd\&.conf] + $ _ + +.fi + +.PP +This way a line named + +.nf + + LoadModule foo_module modules/mod_foo\&.so + +.fi + +.PP +is added to the configuration file if still not present\&. If you want to have this disabled per default use the -A option, \fIi\&.e\&.\fR + +.nf + + $ apxs -i -A mod_foo\&.c + +.fi + +.PP +For a quick test of the apxs mechanism you can create a sample Apache module template plus a corresponding Makefile via: + +.nf + + $ apxs -g -n foo + Creating [DIR] foo + Creating [FILE] foo/Makefile + Creating [FILE] foo/mod_foo\&.c + $ _ + +.fi + +.PP +Then you can immediately compile this sample module into a shared object and load it into the Apache server: + +.nf + + $ cd foo + $ make all reload + apxs -c mod_foo\&.c + gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo\&.c + ld -Bshareable -o mod_foo\&.so mod_foo\&.o + apxs -i -a -n "foo" mod_foo\&.so + cp mod_foo\&.so /path/to/apache/modules/mod_foo\&.so + chmod 755 /path/to/apache/modules/mod_foo\&.so + [activating module `foo' in /path/to/apache/etc/httpd\&.conf] + apachectl restart + /path/to/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 + /path/to/apache/sbin/apachectl restart: httpd started + $ _ + +.fi + +.PP +You can even use apxs to compile complex modules outside the Apache source tree, like PHP3: + +.nf + + $ cd php3 + $ \&./configure --with-shared-apache=\&.\&./apache-1\&.3 + $ apxs -c -o libphp3\&.so mod_php3\&.c libmodphp3-so\&.a + gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3\&.c + ld -Bshareable -o libphp3\&.so mod_php3\&.o libmodphp3-so\&.a + $ _ + +.fi + +.PP +because apxs automatically recognized C source files and object files\&. Only C source files are compiled while remaining object files are used for the linking phase\&. + diff --git a/rubbos/app/apache2/man/man8/httpd.8 b/rubbos/app/apache2/man/man8/httpd.8 new file mode 100644 index 00000000..9553a2a1 --- /dev/null +++ b/rubbos/app/apache2/man/man8/httpd.8 @@ -0,0 +1,116 @@ +.\" 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 "2004-01-06" "Apache HTTP Server" "httpd" + +.SH NAME +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 ] + +.PP +On Windows systems, the following additional arguments are available: + +.PP +\fBhttpd\fR [ -\fBk\fR install|config|uninstall ] [ -\fBn\fR \fIname\fR ] [ -\fBw\fR ] + + +.SH "SUMMARY" + +.PP +httpd is the Apache HyperText Transfer Protocol (HTTP) server program\&. It is designed to be run as a standalone daemon process\&. When used like this it will create a pool of child processes or threads to handle requests\&. + +.PP +In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, 2000 and XP and as a console application on Windows 9x and ME\&. + + +.SH "OPTIONS" + + +.TP +-d \fIserverroot\fR +Set the initial value for the ServerRoot directive to \fIserverroot\fR\&. This can be overridden by the ServerRoot directive in the configuration file\&. The default is /usr/local/apache2\&. +.TP +-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\&. +.TP +-C \fIdirective\fR +Process the configuration \fIdirective\fR before reading config files\&. +.TP +-c \fIdirective\fR +Process the configuration \fIdirective\fR after reading config files\&. +.TP +-D \fIparameter\fR +Sets a configuration \fIparameter \fRwhich can be used with sections in the configuration files to conditionally skip or process commands at server startup and restart\&. +.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\&. +.TP +-E \fIfile\fR +Send error messages during server startup to \fIfile\fR\&. +.TP +-R \fIdirectory\fR +When the server is compiled using the SHARED_CORE rule, this specifies the \fIdirectory\fR for the shared object files\&. +.TP +-h +Output a short summary of available command line options\&. +.TP +-l +Output a list of modules compiled into the server\&. This will \fBnot\fR list dynamically loaded modules included using the LoadModule directive\&. +.TP +-L +Output a list of directives together with expected arguments and places where the directive is valid\&. +.TP +-S +Show the settings as parsed from the config file (currently only shows the virtualhost settings)\&. +.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\&. +.TP +-v +Print the version of httpd, and then exit\&. +.TP +-V +Print the version and build parameters of httpd, and then exit\&. +.TP +-X +Run httpd in debug mode\&. Only one worker will be started and the server will not detach from the console\&. + +.PP +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\&. +.TP +-n \fIname\fR +The \fIname\fR of the Apache service to signal\&. +.TP +-w +Keep the console window open on error so that the error message can be read\&. + diff --git a/rubbos/app/apache2/man/man8/logresolve.8 b/rubbos/app/apache2/man/man8/logresolve.8 new file mode 100644 index 00000000..6ddc7a4f --- /dev/null +++ b/rubbos/app/apache2/man/man8/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 "2004-01-06" "Apache HTTP Server" "logresolve" + +.SH NAME +logresolve \- Resolve IP-addresses to hostnames in Apache log files + +.SH "SYNOPSIS" + +.PP +\fBlogresolve\fR [ -\fBs\fR \fIfilename\fR ] [ -\fBc\fR ] < \fIaccess_log\fR > \fIaccess_log\&.new\fR + + +.SH "SUMMARY" + +.PP +logresolve is a post-processing program to resolve IP-addresses in Apache's access logfiles\&. To minimize impact on your nameserver, logresolve has its very own internal hash-table cache\&. This means that each IP number will only be looked up the first time it is found in the log file\&. + +.PP +Takes an Apache log file on standard input\&. The IP addresses must be the first thing on each line and must be seperated from the remainder of the line by a space\&. + + +.SH "OPTIONS" + + +.TP +-s \fIfilename\fR +Specifies a filename to record statistics\&. +.TP +-c +This causes logresolve to apply some DNS checks: after finding the hostname from the IP address, it looks up the IP addresses for the hostname and checks that one of these matches the original address\&. + diff --git a/rubbos/app/apache2/man/man8/rotatelogs.8 b/rubbos/app/apache2/man/man8/rotatelogs.8 new file mode 100644 index 00000000..91fee917 --- /dev/null +++ b/rubbos/app/apache2/man/man8/rotatelogs.8 @@ -0,0 +1,133 @@ +.\" 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 "2004-09-04" "Apache HTTP Server" "rotatelogs" + +.SH NAME +rotatelogs \- Piped logging program to rotate Apache logs + +.SH "SYNOPSIS" + +.PP +\fBrotatelogs\fR [ -\fBl\fR ] \fIlogfile\fR [ \fIrotationtime\fR [ \fIoffset\fR ]] | [ \fIfilesize\fRM ] + + +.SH "SUMMARY" + +.PP +rotatelogs is a simple program for use in conjunction with Apache's piped logfile feature\&. For example: + +.nf + + CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common + +.fi + +.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 /var/logs/logfile 5M" common + +.fi + +.PP +This configuration will rotate the logfile whenever it reaches a size of 5 megabytes\&. + +.nf + + ErrorLog "|bin/rotatelogs /var/logs/errorlog\&.%Y-%m-%d-%H_%M_%S 5M" + +.fi + +.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 (\fI2\&.0\&.51 and later\fR) +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 +The following logfile format string substitutions should be supported by all strftime(3) implementations, see the strftime(3) man page for library-specific extensions\&. + +.Ip "\(bu \s-1%A\s0 \- full weekday name (localized) + +.Ip "\(bu \s-1%a\s0 \- 3-character weekday name (localized) + +.Ip "\(bu \s-1%B\s0 \- full month name (localized) + +.Ip "\(bu \s-1%b\s0 \- 3-character month name (localized) + +.Ip "\(bu \s-1%c\s0 \- date and time (localized) + +.Ip "\(bu \s-1%d\s0 \- 2-digit day of month + +.Ip "\(bu \s-1%H\s0 \- 2-digit hour (24 hour clock) + +.Ip "\(bu \s-1%I\s0 \- 2-digit hour (12 hour clock) + +.Ip "\(bu \s-1%j\s0 \- 3-digit day of year + +.Ip "\(bu \s-1%M\s0 \- 2-digit minute + +.Ip "\(bu \s-1%m\s0 \- 2-digit month + +.Ip "\(bu \s-1%p\s0 \- am/pm of 12 hour clock (localized) + +.Ip "\(bu \s-1%S\s0 \- 2-digit second + +.Ip "\(bu \s-1%U\s0 \- 2-digit week of year (Sunday first day of week) + +.Ip "\(bu \s-1%W\s0 \- 2-digit week of year (Monday first day of week) + +.Ip "\(bu \s-1%w\s0 \- 1-digit weekday (Sunday first day of week) + +.Ip "\(bu \s-1%X\s0 \- time (localized) + +.Ip "\(bu \s-1%x\s0 \- date (localized) + +.Ip "\(bu \s-1%Y\s0 \- 4-digit year + +.Ip "\(bu \s-1%y\s0 \- 2-digit year + +.Ip "\(bu \s-1%Z\s0 \- time zone name + +.Ip "\(bu \s-1%%\s0 \- literal `%' + diff --git a/rubbos/app/apache2/man/man8/suexec.8 b/rubbos/app/apache2/man/man8/suexec.8 new file mode 100644 index 00000000..e42bf3c9 --- /dev/null +++ b/rubbos/app/apache2/man/man8/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 "2005-11-13" "Apache HTTP Server" "suexec" + +.SH NAME +suexec \- Switch user before executing external programs + +.SH "SYNOPSIS" + +.PP +\fBsuexec\fR -\fBV\fR + + +.SH "SUMMARY" + +.PP +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\&.0/suexec\&.html)\&. + + +.SH "OPTIONS" + + +.TP +-V +If you are root, this option displays the compile options of suexec\&. For security reasons all configuration options are changeable only at compile time\&. + diff --git a/rubbos/app/apache2/manual/LICENSE b/rubbos/app/apache2/manual/LICENSE new file mode 100644 index 00000000..57bc88a1 --- /dev/null +++ b/rubbos/app/apache2/manual/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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 + + 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. + diff --git a/rubbos/app/apache2/manual/bind.html b/rubbos/app/apache2/manual/bind.html new file mode 100644 index 00000000..3cdb8888 --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: bind.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: bind.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: bind.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: bind.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/bind.html.en b/rubbos/app/apache2/manual/bind.html.en new file mode 100644 index 00000000..4925f910 --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.en @@ -0,0 +1,177 @@ + + + +Binding - Apache HTTP Server + + + + + +
<-
+

Binding

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Configuring Apache to listen on specific addresses and ports.

+
+ +
top
+
+

Overview

+ + + + + +

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 + different IP addresses, hostnames and ports.

+ +

The Listen + directive tells the server to accept + incoming requests only on the specified port or + address-and-port combinations. If only a port number is + specified in the Listen + directive, the server + listens to the given port on all interfaces. If an IP address + is given as well as a port, the server will listen on the given + port and interface. Multiple Listen directives may be used to + specify a number of addresses and ports to listen on. The + server will respond to requests from any of the listed + addresses and ports.

+ +

For example, to make the server accept connections on both + port 80 and port 8000, use:

+ +

+ Listen 80
+ Listen 8000 +

+ +

To make the server accept connections on two specified + interfaces and port numbers, use

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

IPv6 addresses must be surrounded in square brackets, as in the + following example:

+ +

+ 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.

+ +

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 + special configure parameter can change this behavior + for Apache.

+ +

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 and use generic Listen + directives like the following:

+ +

+ Listen 80 +

+ +

With --enable-v4-mapped, the Listen directives in the + default configuration file created by Apache will use this form. + --enable-v4-mapped is the default on all platforms but + FreeBSD, NetBSD, and OpenBSD, so this is probably how your Apache was + built.

+ +

If you want Apache to handle IPv4 connections only, regardless of + what your platform and APR will support, specify an IPv4 address on all + Listen directives, as in the + following examples:

+ +

+ Listen 0.0.0.0:80
+ Listen 192.170.2.1:80 +

+ +

If you want Apache to handle IPv4 and IPv6 connections on separate + sockets (i.e., to disable IPv4-mapped addresses), specify the + --disable-v4-mapped configure option and + use specific Listen directives like the following:

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

With --disable-v4-mapped, the Listen directives in the + default configuration file created by Apache will use this form. + --disable-v4-mapped is the default on FreeBSD, NetBSD, and + OpenBSD.

+ +
top
+
+

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 <VirtualHost> directives are used, the server will behave + the same 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 + 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 + behavior of this virtual host. Note that if the + <VirtualHost> + is set for an address and port that the + server is not listening to, it cannot be accessed.

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/bind.html.es b/rubbos/app/apache2/manual/bind.html.es new file mode 100644 index 00000000..fa77a258 --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.es @@ -0,0 +1,187 @@ + + + +Direcciones IP y puertos de escucha - Servidor HTTP Apache + + + + + +
<-
+

Direcciones IP y puertos de escucha

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Cmo configurar Apache para que escuche en direcciones IP + y puertos especficos.

+
+ +
top
+
+

Introduccin

+ + + + + +

Cuando Apache se inicia, comienza a esperar peticiones + entrantes en determinados puertos y direcciones de la mquina + en la que se est ejecutando. Sin embargo, si quiere que + Apache escuche solamente en determinados puertos especficos, + o solamente en determinadas direcciones, o en una combinacin + de ambos, debe especificarlo adecuadamente. Esto puede adems + combinarlo con la posibilidad de usar hosts virtuales, + funcionalidad con la que un servidor Apache puede responder a + peticiones en diferentes direcciones IP, diferentes nombres de + hosts y diferentes puertos.

+ +

La directiva Listen + le indica al servidor que acepte peticiones entrantes solamente en + los puertos y en las combinaciones de puertos y direcciones que se + especifiquen. Si solo se especifica un nmero de puerto en la + directiva Listen el + servidor escuchar en ese puerto, en todas las interfaces de + red de la mquina. Si se especifica una direccin IP y + un puerto, el servidor escuchar solamente en la interfaz de + red a la que pertenezca esa direccin IP y solamente en el + puerto indicado. Se pueden usar varias directivas Listen para + especificar varias direcciones IP y puertos de escucha. El + servidor responder a las peticiones de todas las direcciones + y puertos que se incluyan.

+ +

Por ejemplo, para hacer que el servidor acepte conexiones tanto + en el puerto 80 como en el puerto 8000, puede usar:

+ +

+ Listen 80
+ Listen 8000 +

+ +

Para hacer que el servidor acepte conexiones en dos interfaces + de red y puertos especficos, use

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

Las direcciones IPv6 deben escribirse entre corchetes, como en el siguiente ejemplo:

+ +

+ Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

+
top
+
+

Consideraciones especiales para IPv6

+ + +

Cada vez ms plataformas implementan IPv6, y APR soporta + IPv6 en la mayor parte de esas plataformas, permitiendo que Apache + use sockets IPv6 y pueda tratar las peticiones que se envan + con IPv6.

+ +

Un factor de complejidad para los administradores de Apache es + si un socket IPv6 puede tratar tanto conexiones IPv4 como + IPv6. Para tratar conexiones IPv4 con sockets IPv6 se utiliza un + traductor de direcciones IPv4-IPv6, cuyo uso est permitido + por defecto en la mayor parte de las plataformas, pero que + est desactivado por defecto en FreeBSD, NetBSD, y OpenBSD + para cumplir con la poltica system-wide en esas + palaformas. Pero incluso en los sistemas en los que no est + permitido su uso por defecto, un parmetro especial de + configure puede modificar ese + comportamiento.

+ +

Si quiere que Apache trate conexiones IPv4 y IPv6 con un + mnimo de sockets, lo que requiere traducir direcciones IPv4 + a IPv6, especifique la opcin de configure + --enable-v4-mapped y use directivas Listen genricas de la + siguiente forma:

+ +

+ Listen 80 +

+ +

Con --enable-v4-mapped, las directivas Listen en + el fichero de configuracin por defecto creado por Apache + usarn ese formato. --enable-v4-mapped es el + valor por defecto en todas las plataformas excepto en FreeBSD, + NetBSD, y OpenBSD, de modo que esa es probablemente la manera en + que su servidor Apache fue construido.

+ +

Si quiere que Apache solo procese conexiones IPv4, sin tener en + cuenta cul es su plataforma o qu soporta APR, especifique + una direccin IPv4 en todas las directivas Listen, como en + estos ejemplos:

+ +

+ Listen 0.0.0.0:80
+ Listen 192.170.2.1:80 +

+ +

Si quiere que Apache procese conexiones IPv4 y IPv6 en sockets + diferentes (es decir, deshabilitar la conversin de + direcciones IPv4 a IPv6), especifique la opcin de + configure --disable-v4-mapped y + use directivas Listen especficas como en el siguiente ejemplo:

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

Con --disable-v4-mapped, las directivas Listen en + el fichero de configuracin que Apache crea por defecto + usarn ese formato. --disable-v4-mapped se usa + por defecto en FreeBSD, NetBSD, y OpenBSD.

+ +
top
+
+

Cmo funciona este mecanismo en hosts virtuales

+ + +

Listen no implementa + hosts virtuales. Solo le dice al servidor + principal en qu direcciones y puertos tiene que escuchar. Si no + se usan directivas <VirtualHost>, el servidor se comporta de + la misma manera con todas las peticiones que se acepten. Sin + embargo, <VirtualHost> puede usarse para + especificar un comportamiento diferente en una o varias + direcciones y puertos. Para implementar un host virtual, hay que + indicarle primero al servidor que escuche en aquellas direcciones y + puertos a usar. Entonces se debe crear un una seccin + <VirtualHost> + en una direccin y puerto especficos para determinar + el comportamiento de ese host virtual. Tenga en cuenta que si se + especifica en una seccin <VirtualHost> una direccin y puerto + en los que el servidor no est escuchando, ese host virtual no + podr ser accedido.

+
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/bind.html.fr b/rubbos/app/apache2/manual/bind.html.fr new file mode 100644 index 00000000..2ca22a1d --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.fr @@ -0,0 +1,194 @@ + + + +Liaison - Serveur Apache HTTP + + + + + +
<-
+

Liaison

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Configuration des adresses et ports sur lesquels Apache coute.

+
+ +
top
+
+

Informations gnrales

+ + + + + +

Au moment de son dmarrage, Apache se lie un port et une + adresse sur la machine et se met en attente de requtes entrantes. + Par dfaut, toutes les adresses de la machine se retrouvent + l'coute. Dans tous les cas, Apache accepte d'couter sur un + ou plusieurs ports spcifiques, ou sur une seule ou plusieurs + adresses, ou encore une combinaison des deux. + Il est frquent d'utiliser ces possibilits avec les fonctionnalits + de Serveurs Virtuels, qui permettent de faire rpondre Apache de + manire diffrente en fonction de l'adresse IP, du nom ou du port.

+ +

Le serveur utilise la directive + Listen + pour n'accepter que des requtes provenant de ports spcifiques ou + d'une combinaison adresse IP + port passs en argument. + Dans le cas o seul un port est spcifi avec la directive + Listen, + le serveur se met l'coute sur le port spcifi, sur toutes + les interfaces et adresses de la machine. Si une adresse IP est + prcise en plus du port, le serveur n'coute que sur l'adresse + et le port spcifis. Il est possible de configurer plusieurs + directives Listen, + afin qu'Apache coute sur plusieurs adresses + et ports. Dans ce cas, le serveur rpondra aux requtes faites + sur tous les adresses et ports numrs.

+ + +

Par exemple, pour que le serveur accepte les connexions la fois sur + les ports 80 et 8000, spcifiez :

+ +

+ Listen 80
+ Listen 8000 +

+ +

Pour qu'Apache accepte les connexions sur deux combinaisons + adresses + ports, spcifiez :

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

Les adresses IPv6 sont acceptes, pourvu qu'elles soient entoures + entre crochets de la faon suivante :

+ +

+ Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

+
top
+
+

Prcisions au sujet d'IPv6

+ + +

De plus en plus de plates-formes implmentent IPv6, et APR + supporte IPv6 sur la plupart d'entre elles, si bien qu'Apache + peut utiliser des sockets IPv6 et rpondre aux requtes envoyes + en IPv6.

+ +

Une complication possible pour les administrateurs Apache est de + savoir si un socket IPv6 est capable de grer les connexions IPv4 + aussi bien qu'IPv6. Grer les connexions IPv4 sur une socket IPv6 + suppose l'utilisation d'adresses IPv6 mappes en IPv4, ce qui est + le cas sur la plupart des plates-formes, mais pas sur FreeBSD, NetBSD + et OpenBSD, en raison des politiques systmes de ces plates-formes. + Mme sur des systmes o cette fonctionnalit n'est pas active par + dfaut, un paramtre de compilation pour configure + permet de changer ce comportement pour Apache.

+ +

Pour qu'Apache puisse grer la fois les connexions IPv4 et IPv6 + avec un minimum de sockets, il faut permettre l'utilisation des adresses + IPv6 mappes en IPv4, ce qui est faisable en spcifiant l'option + de compilation --enable-v4-mapped et en utilisant la + directive gnrique Listen + comme suit :

+ +

+ Listen 80 +

+ +

Si --enable-v4-mapped a t spcifi la compilation, + les directives Listen de la configuration par dfaut sont de la forme + ci-dessus. --enable-v4-mapped est l'option de compilation + par dfaut sur toutes les plates-formes, sauf pour FreeBSD, NetBSD, et + OpenBSD, donc il est probable que votre Apache ait t compil avec + cette option.

+ +

Pour qu'Apache ne gre que les connexions IPv4, en ignorant l'ventuel + support IPv6 de la plate-forme ou d'APR, une adresse IPv4 peut tre + donne dans toutes les directives + Listen, comme dans les + exemples suivants :

+ +

+ Listen 0.0.0.0:80
+ Listen 192.170.2.1:80 +

+ +

Pour qu'Apache gre les connexions IPv4 et IPv6 sur des sockets + diffrents (i.e., pour ne pas accepter les adresses IPv6 mappes + en IPv4), spcifiez l'option de compilation + --disable-v4-mapped et utilisez des directives + Listen spcifiques telles que :

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

Si le paramtre --disable-v4-mapped a t dfini + au moment de la compilation, les directives Listen de la + configuration par dfaut sont de la forme ci-dessus. + --disable-v4-mapped est l'option de + compilation par dfaut sous FreeBSD, NetBSD, et OpenBSD.

+ +
top
+
+

Faire fonctionner tout ceci avec les Serveurs Virtuels

+ + +

La directive Listen + n'implmente aucun Serveur Virtuel. Elle sert simplement + indiquer au serveur principal sur quels adresses et ports couter. + Dans le cas o aucune section + <VirtualHost> + n'est utilise, le serveur rpondra de la mme manire pour toutes + les requtes qu'il recevra. + Des sections + <VirtualHost> + peuvent tre utilises pour qu'Apache ragisse diffremment selon que la + requte est destine telle adresse ou tel port. Avant d'implmenter + un Serveur Virtuel au moyen de la directive VirtualHost, la directive + Listen doit tre configure pour que le serveur coute sur l'adresse + ou le port utilis. Ensuite, une section + <VirtualHost> + devrait tre utilise pour qu'Apache ragisse diffremment selon + l'adresse ou le port. + noter que si un Serveur Virtuel + <VirtualHost> + est configur sur une adresse et un port sur lesquels le serveur + n'est pas l'coute, le Serveur Virtuel ne sera pas accessible.

+
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/bind.html.ja.utf8 b/rubbos/app/apache2/manual/bind.html.ja.utf8 new file mode 100644 index 00000000..3d170dde --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.ja.utf8 @@ -0,0 +1,193 @@ + + + +バインド - Apache HTTP サーバ + + + + + +
<-
+

バインド

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

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 [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 では、システム全体としてのポリシーとの整合性から、 + デフォルトでは使用不可に設定されています。 + これらのデフォルトで使用不可のプラットホームであっても、 + 特別な設定パラメータで Apache の挙動を変化させることができます。

+ +

IPv4 と IPv6 のコネクションを最小限のソケットで扱いたいのであれば、 + IPv4 マップの IPv6 アドレスを使用する必要があり、 + --enable-v4-mapped configure オプションを指定して、単純に + Listen + ディレクティブで次のように設定します。

+ +

+ Listen 80 +

+ +

--enable-v4-mapped では、Apache + の生成するデフォルトの設定ファイル中の + Listen + ディレクティブはこの形式を使用しています。 + --enable-v4-mapped は、 + FreeBSD, NetBSD, OpenBSD 以外の全てのプラットホームでのデフォルトです。 + ですから、おそらくお手元の Apache はこの設定でビルドされているでしょう。

+ +

プラットフォームや APR が何をサポートするかに関わらず、 + IPv4 コネクションのみを扱うようにしたい場合は、 + 次の例のように全ての + Listen ディレクティブで + IPv4 アドレスを指定してください。

+ +

+ Listen 0.0.0.0:80
+ Listen 192.170.2.1:80 +

+ +

IPv4 と IPv6 のコネクションを個別のソケットで扱うようにしたい場合 + (つまり IPv4 マップのアドレスを無効にしたい場合) + は、--disable-v4-mapped configure + オプションを指定して、次のように個別指定の + Listen + ディレクティブを使用してください。

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

--disable-v4-mapped では、Apache + の生成するデフォルトの設定ファイル中の + Listen + ディレクティブはこの形式を使用しています。 + --disable-v4-mapped は、 + FreeBSD, NetBSD, OpenBSD プラットホームでのデフォルトです。

+ +
top
+
+

バーチャルホストに対してどう働くのか

+ + +

Listen でバーチャルホストが実装されるわけではありません。 + Listen は単にメインサーバにどのアドレスとポートを listen すべきかを + 教えるだけです。 + <VirtualHost> + ディレクティブが使われない場合は、 + 受け入れたリクエストすべてに対して全く同じ挙動をします。 + しかしながら + <VirtualHost> + を使って、 + 一つ以上のアドレスやポートに対して異なる挙動をするように + 指定することができます。 + VirtualHost を実装するには、使用するアドレスとポートを + まず初めにサーバに通知しなければなりません。 + そして、その指定したアドレスとポートでの + このバーチャルホストの挙動を設定するために、 + <VirtualHost> + セクションを作ります。もし + <VirtualHost> + が listen していないアドレスとポートに対して + 設定されてしまうと、 + それにはアクセスできないということに注意してください。

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/bind.html.ko.euc-kr b/rubbos/app/apache2/manual/bind.html.ko.euc-kr new file mode 100644 index 00000000..727cb6da --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.ko.euc-kr @@ -0,0 +1,163 @@ + + + +ּҿ Ʈ (Binding) - Apache HTTP Server + + + + + +
<-
+

ּҿ Ʈ (Binding)

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ Ư ּҿ Ʈ ϵ ϱ.

+
+ +
top
+
+

+ + + + + +

ġ ϸ ġ ǻ  Ʈ ּҿ + Ͽ, û ٸ. ⺻ ġ + ǻ ּҿ ٸ. ׷ ġ Ư Ʈ + ּҸ ٸ ؾ 찡 ִ. + ġ  ٸ 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 +

+
top
+
+

IPv6 Ư

+ + +

IPv6 ÷ ð ְ APR ̵ ÷ κп + IPv6 ϱ⶧, ġ IPv6 ҴϿ IPv6 + û ó ִ.

+ +

ġ ڿ κ IPv6 IPv4 + IPv6 ó ִĴ ̴. κ ÷ + IPv4-(mapped) IPv6 ּҸ Ͽ IPv6 Ͽ IPv4 + , FreeBSD NetBSD OpenBSD ýü å + ⺻ ʴ´. ׷ ⺻ ʴ + ý̶ ġ Ư Ķͷ + ִ.

+ +

ġ ּ Ͽ IPv4 IPv6 + ޵Ϸ IPv4- IPv6 ּҸ ؾ Ѵ. ׷ؼ + ϶ ɼ --enable-v4-mapped ϰ, + Ϲ Listen þ Ѵ:

+ +

+ Listen 80 +

+ +

--enable-v4-mapped Ҷ ġ + ⺻ Listen þ . + --enable-v4-mapped FreeBSD, NetBSD, OpenBSD + ÷ ⺻̰, Ƹ ġ + ̴.

+ +

÷ APR ο ġ IPv4 Ḹ + ޵Ϸ, Listen þ IPv4 ּҸ + Ѵ:

+ +

+ Listen 0.0.0.0:80
+ Listen 192.170.2.1:80 +

+ +

IPv4 IPv6 ٸ , + ϶ ɼ --disable-v4-mapped ϰ + Listen þ Ѵ:

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

--disable-v4-mapped Ҷ ġ + ⺻ Listen þ . + --disable-v4-mapped FreeBSD, NetBSD, OpenBSD + ⺻̴.

+ +
top
+
+

ȣƮ  dz

+ + +

Listen ȣƮ ʴ´. ̴ ּ +  ּҿ Ʈ ٸ ˷ش. <VirtualHost> þ + , û Ȱ óѴ. + ׷ <VirtualHost> ּҿ Ʈ + ٸ ൿ ִ. ȣƮ + ּҿ Ʈ ˷ Ѵ. ׸ + Ư ּҿ Ʈ ȣƮ ൿ + <VirtualHost> + ʿϴ. ּ ٸʴ ּҿ Ʈ ϴ + <VirtualHost> + ϶.

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/bind.html.tr.utf8 b/rubbos/app/apache2/manual/bind.html.tr.utf8 new file mode 100644 index 00000000..c9504466 --- /dev/null +++ b/rubbos/app/apache2/manual/bind.html.tr.utf8 @@ -0,0 +1,172 @@ + + + +Dinleme - Apache HTTP Sunucusu + + + + + +
<-
+

Dinleme

+
+

Mevcut Diller:  en  | + es  | + 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 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.

+ +

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 ve Listen yönergesini örnekteki gibi + kullanınız:

+ +

+ Listen 80 +

+ +

--enable-v4-mapped seçeneği ile derlenen Apache + tarafından oluşturulan öntanımlı yapılandırma dosyasındaki Listen yönergeleri bu biçimi + kullanacaktır. --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 +

+ +

Apache’nin IPv4 ve IPv6 adresleri ayrı soketlerden kabul etmesini + (yani IPv4 eşlemli IPv6 adreslerin iptalini) istiyorsanız + configure betiğine --disable-v4-mapped + seçeneğini belirtiniz ve bu amaca yönelik Listen yönergelerini örnekteki gibi + belirtiniz:

+ +

+ Listen [::]:80
+ Listen 0.0.0.0:80 +

+ +

--disable-v4-mapped seçeneği ile derlenen Apache + tarafından oluşturulan öntanımlı yapılandırma dosyasındaki Listen yönergeleri bu biçimi + kullanacaktır. --disable-v4-mapped seçeneği, 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 ve 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:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html b/rubbos/app/apache2/manual/configuring.html new file mode 100644 index 00000000..3a97c489 --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: configuring.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: configuring.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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=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/rubbos/app/apache2/manual/configuring.html.de b/rubbos/app/apache2/manual/configuring.html.de new file mode 100644 index 00000000..dbacaaae --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.de @@ -0,0 +1,190 @@ + + + +Konfigurationsdateien - Apache HTTP Server + + + + + +
<-
+

Konfigurationsdateien

+
+

Verfgbare Sprachen:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen Sie die englische Version auf + die neuesten nderungen.
+ +

Dieses Dokument beschreibt die Dateien, die zur Konfiguration des Apache + HTTP Servers verwendet werden.

+
+ +
top
+
+

Hauptkonfigurationsdateien

+ + + +

Der Apache wird konfiguriert, indem Direktiven in einfache Textdateien + eingetragen werden. Die Hauptkonfigurationsdatei heit + blicherweise httpd.conf. Der Ablageort dieser Datei + wird bei der Kompilierung festgelegt, kann jedoch mit der + Befehlszeilenoption -f berschrieben werden. Durch + Verwendung der Direktive Include + knnen auerdem weitere Konfigurationsdateien hinzugefgt + werden. Zum Einfgen von mehreren Konfigurationsdateien knnen + Platzhalter verwendet werden. Jede Direktive darf in jeder dieser + Konfigurationsdateien angegeben werden. nderungen in den + Hauptkonfigurationsdateien werden vom Apache nur beim Start oder Neustart + erkannt.

+ +

Der Server liest auch eine Datei mit MIME-Dokumenttypen ein. Der + Name dieser Datei wird durch die Direktive TypesConfig bestimmt. Die Voreinstellung + ist mime.types.

+
top
+
+

Syntax der Konfigurationsdateien

+ + +

Die Konfigurationsdateien des Apache enthalten eine Direktive pro Zeile. + Der Backslash "\" lt sich als letztes Zeichen in einer Zeile + dazu verwenden, die Fortsetzung der Direktive in der nchsten 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 + differenziert. Zeilen, die mit dem Doppelkreuz "#" beginnen, werden als + Kommentare betrachtet und ignoriert. Kommentare drfen + nicht am Ende einer Zeile nach der Direktive + eingefgt werden. Leerzeilen und Whitespaces vor einer Direktive + werden ignoriert. Dadurch lassen sich Direktiven zur besseren Lesbarbeit + einrcken.

+ +

Sie knnen die Syntax Ihrer Konfigurationsdateien auf Fehler + prfen, ohne den Server zu starten, indem Sie apachectl + configtest oder die Befehlszeilenoption -t + verwenden.

+
top
+
+

Module

+ + + + +

Der Apache ist ein modularer Server. Das bedeutet, dass nur die abolute + Grundfunktionalitt im Kernserver enthalten ist. Weitergehende + Fhigkeiten sind mittels Modulen verfgbar, + die in den Apache geladen werden knnen. Standardmig + wird bei der Kompilierung ein Satz von Basismodulen (Anm.d..: die so + genannten Base-Module) in den Server eingebunden. Wenn der + Server fr die Verwendung von dynamisch + ladbaren Modulen kompiliert wurde, dann knnen Module separat + kompiliert und jederzeit mittels der Direktive LoadModule hinzugefgt werden. + Andernfalls muss der Apache neu kompiliert werden, um Module + hinzuzufgen oder zu entfernen. Konfigurationsanweisungen knnen + abhngig 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 Gltigkeitsbereich von Direktiven

+ + + + +

Direktiven in den Hauptkonfigurationsdateien gelten fr den + gesamten Server. Wenn Sie die Konfiguration nur fr einen Teil des + Servers verndern mchten, knnen Sie den + Gltigkeitsbereich der Direktiven beschrnken, indem Sie diese + in <Directory>-, + <DirectoryMatch>-, + <Files>-, + <FilesMatch>-, + <Location>- oder + <LocationMatch>-Abschnitte eingefgen. + Diese Abschnitte begrenzen die Anwendung der umschlossenen Direktiven + auf bestimmte Pfade des Dateisystems oder auf + bestimmte URLs. Sie knnen fr eine fein abgestimmte + Konfiguration auch ineinander verschachtelt werden.

+ + +

Der Apache besitzt die Fhigkeit, mehrere verschiedene Websites + gleichzeitig zu bedienen. Dies wird virtuelles + Hosten genannt. Direktiven knnen auch in ihrem + Gltigkeitsgereich eingeschrnkt werden, indem sie innerhalb + eines <VirtualHost>-Abschnittes angegeben werden. + Sie werden dann nur auf Anfragen fr eine bestimmte Website + angewendet.

+ +

Obwohl die meisten Direktiven in jedem dieser Abschnitte platziert + werden knnen, ergeben einige Direktiven in manchen Kontexten + keinen Sinn. Direktiven zur Prozesssteuerung beispielsweise + drfen nur im Kontext des Hauptservers angegeben werden. Prfen + Sie den Kontext der + Direktive, um herauszufinden, welche Direktiven in welche Abschnitte + eingefgt werden knnen. Weitere Informationen finden Sie unter + "Wie Directory-, Location- und Files-Abschnitte + arbeiten".

+ +
top
+
+

.htaccess-Dateien

+ + + + +

Der Apache ermglicht die dezentrale Verwaltung der + Konfiguration mittes spezieller Dateien innerhalb des + Web-Verzeichnisbaums. Diese speziellen Dateien heien + gewhnlich .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.

+ +

Prfen Sie den Kontext der Direktive, um + herauszufinden, welche Direktiven in .htaccess-Dateien + angegeben werden knnen. Darber hinaus steuert der + Serveradministrator mit der Einstellung der Direktive AllowOverride in den + Hauptkonfigurationsdateien welche Direktiven in + .htaccess-Dateien verwendet werden drfen.

+ +

Weitere Informationen ber .htaccess-Dateien finden + Sie in der .htaccess-Einfhrung.

+
+
+

Verfgbare Sprachen:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html.en b/rubbos/app/apache2/manual/configuring.html.en new file mode 100644 index 00000000..e57c8e23 --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.en @@ -0,0 +1,171 @@ + + + +Configuration Files - Apache HTTP Server + + + + + +
<-
+

Configuration Files

+
+

Available Languages:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ +

This document describes the files used to configure the Apache +HTTP server.

+
+ +
top
+
+

Main Configuration Files

+ + + +

Apache is configured by placing directives in plain text + configuration files. The main configuration file is usually called + httpd.conf. The location of this file is set at + compile-time, but may be overridden with the -f + command line flag. In addition, other configuration files may be + added using the Include + directive, and wildcards can be used to include many configuration + files. Any directive may be placed in any of these configuration + files. Changes to the main configuration files are only + recognized by Apache when it is started or restarted.

+ +

The server also reads a file containing mime document types; + the filename is set by the TypesConfig directive, + and is mime.types by default.

+
top
+
+

Syntax of the Configuration Files

+ + +

Apache configuration files contain one directive per 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 + 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.

+ +

You can check your configuration files for syntax errors + without starting the server by using apachectl + configtest or the -t command line + option.

+
top
+
+

Modules

+ + + + +

Apache is a modular server. This implies that only the most + basic functionality is included in the core server. Extended + features are available through modules which can be loaded + into Apache. By default, a base set of modules is + included in the server at compile-time. If the server is + compiled to use dynamically loaded + modules, then modules can be compiled separately and added at + any time using the LoadModule + directive. + Otherwise, Apache must be recompiled to add or remove modules. + Configuration directives may be included conditional on a + presence of a particular module by enclosing them in an <IfModule> block.

+ +

To see which modules are currently compiled into the server, + you can use the -l command line option.

+
top
+
+

Scope of Directives

+ + + + +

Directives placed in the main configuration files apply to + the entire server. If you wish to change the configuration for + only a part of the server, you can scope your directives by + placing them in <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, and <LocationMatch> + sections. These sections limit the application of the + directives which they enclose to particular filesystem + locations or URLs. They can also be nested, allowing for very + fine grained configuration.

+ +

Apache has the capability to serve many different websites + simultaneously. This is called Virtual + Hosting. Directives can also be scoped by placing them + inside <VirtualHost> + sections, so that they will only apply to requests for a + particular website.

+ +

Although most directives can be placed in any of these + sections, some directives do not make sense in some contexts. + For example, directives controlling process creation can only + be placed in the main server context. To find which directives + can be placed in which sections, check the Context of the + directive. For further information, we provide details on How Directory, Location and Files sections + work.

+
top
+
+

.htaccess Files

+ + + + +

Apache allows for decentralized management of configuration + via special files placed inside the web tree. The special files + are usually called .htaccess, but any name can be + specified in the AccessFileName + directive. Directives placed in .htaccess files + apply to the directory where you place the file, and all + sub-directories. The .htaccess files follow the + same syntax as the main configuration files. Since + .htaccess files are read on every request, changes + made in these files take immediate effect.

+ +

To find which directives can be placed in + .htaccess files, check the Context of the + directive. The server administrator further controls what + directives may be placed in .htaccess files by + configuring the AllowOverride + directive in the main configuration files.

+ +

For more information on .htaccess files, see + the .htaccess tutorial.

+
+
+

Available Languages:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html.fr b/rubbos/app/apache2/manual/configuring.html.fr new file mode 100644 index 00000000..17f0af3c --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.fr @@ -0,0 +1,185 @@ + + + +Fichiers de Configuration - Serveur Apache HTTP + + + + + +
<-
+

Fichiers de Configuration

+
+

Langues Disponibles:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+
Cette traduction peut tre prime. Consultez la version + Anglaise pour les changements rcents.
+ +

Ce document prsente les fichiers utiliss pour la configuration +du serveur HTTP Apache.

+
+ +
top
+
+

Fichiers de Configuration principaux

+ + + +

Apache se configure en positionnant des directives dans des fichiers de + configurations, au format texte. Le fichier de configuration principal + est habituellement nomm httpd.conf. + L'emplacement de ce fichier est dfini lors de la compilation + mais il est possible de le modifier en ligne de commande au lancement + d'Apache au moyen de l'option -f. + De plus, il est possible d'ajouter d'autres fichiers de configuration au + moyen de la directive Include, + qui accepte des jokers, rendant possible la lecture de multiples + fichiers de configuration. Cette directive peut tre incluse dans + n'importe quel fichier de configuration. Les changements apports + aux fichiers de configuration principale ne seront pris en compte + qu'au dmarrage d'Apache ou son redmarrage.

+ +

Le serveur lit galement un fichier contenant les types de documents + mime ; le nom de ce fichier est dfini au moyen de la directive + TypesConfig, et son nom + par dfaut est mime.types.

+
top
+
+

Syntaxe des fichiers de configuration

+ + +

Les fichiers de configuration d'Apache contiennent une directive par + ligne. Il est possible d'utiliser le caractre antislash "\" la fin + d'une ligne pour signaler que celle-ci se continue sur la ligne suivante. + Dans ce cas l'antislash doit imprativement tre le tout dernier + caractre de la ligne et ne doit pas tre suivi d'espaces.

+ +

Les directives places dans les fichiers de configuration + ne sont pas sensibles la casse, mais leurs arguments le sont. + Les lignes commenant par le caractre "#" sont considres comme + des commentaires, et sont donc ignores. Il n'est + pas possible d'ajouter un commentaire en fin de + ligne, aprs une directive. Les lignes vides, ainsi que les + espaces prcdant les directives, sont ignors, ce qui vous + permet d'indenter le fichier pour de simplifier sa lecture.

+ +

Vous pouvez tester vos fichiers de configuration sans + avoir dmarrer le serveur en utilisant la commande + apachectl configtest ou en appelant Apache + avec l'option -t.

+
top
+
+

Modules

+ + + + +

Apache est un serveur modulaire, ce qui signifie que le + noyau du serveur ne dispose que des fonctions des plus basiques. + Toutes les fonctions tendues sont possibles grce des modules, qui peuvent tre chargs par Apache. + Par dfaut, un certain + nombre de modules est fourni et compil avec le serveur. + Dans le cas o le serveur a t compil avec le + support dynamique des modules, il est possible de compiler + des modules part et de les charger au moyen de la directive + LoadModule. Dans le cas + contraire, il faudra recompiler tout Apache pour lui ajouter ou + lui enlever des modules. Des directives peuvent tre incluses de + faon conditionnelle selon la prsence d'un module particulier en + les positionnant dans un bloc <IfModule>.

+ +

L'option -l, passer en ligne de commande, provoque + l'affichage des modules qui sont compils dans Apache.

+
top
+
+

Directives Possibles

+ + + + +

Les directives positionnes dans les fichiers de configuration principaux + s'appliquent au serveur dans son ensemble. Pour spcifier des directives + spcifiques une partie du serveur, il est possible de les positionner + l'intrieur d'une des sections <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, ou <LocationMatch>. + Chacune de ces sections limite la validit des directives qu'elle + contient la partie du systme de fichier ou de l'URL qu'elle + contient. Ces sections peuvent galement se contenir les unes les autres, + ce qui permet une configuration trs fine.

+ +

Il est possible d'utiliser un seul serveur Apache pour servir plusieurs + sites web, ce qu'on appelle des Serveurs Virtuels. + Les diffrentes directives peuvent tre positionnes l'intrieur de + sections <VirtualHost>, + afin qu'elles rgulent le fonctionnement d'un site (dit virtuel) + particulier.

+ +

La plupart des directives peuvent tre positionnes dans toutes les + sections prsentes ci-dessus, sauf dans certains cas. Par exemple, + les directives qui contrlent la cration du processus Apache ne + peuvent tre places que dans le contexte du serveur principal. Les + sections possibles pour chaque directive sont dcrites au niveau du Contexte de celle-ci. + Des informations plus compltes au sujet du fonctionnement des sections + Directory, Location et Files + sont disponibles ailleurs.

+
top
+
+

Fichiers .htaccess

+ + + + +

Apache permet de dlocaliser la gestion de la configuration, au + moyen de fichiers spciaux, placs directement dans l'arborescence Web. + Ces fichiers spciaux portent le plus souvent le nom .htaccess, + mais il est bien sr possible de changer ce nom au moyen de la directive + AccessFileName. + Les directives positionnes dans un fichier .htaccess + s'appliquent au rpertoire le contenant ainsi qu' tous ses + sous-rpertoires. La syntaxe employer dans un fichier + .htaccess est identique la syntaxe des fichiers de + configuration principaux. De plus, les fichiers .htaccess + tant lus au moment de chaque requte les concernant, toute + modification de ces fichiers prend effet immdiatement sans qu'il soit + ncessaire de redmarrer le serveur.

+ +

Pour savoir si une directive peut tre place dans un fichier + .htaccess, il suffit de vrifier son Contexte. Il est possible + l'administrateur du serveur de spcifier quelles directives sont + autorises ou non dans les fichiers .htaccess, au moyen + de la directive AllowOverride, + positionne dans les fichiers de configuration principaux.

+ +

Des informations plus compltes concernant les fichiers + .htaccess sont disponible dans le + tutoriel .htaccess.

+ +
+
+

Langues Disponibles:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html.ja.utf8 b/rubbos/app/apache2/manual/configuring.html.ja.utf8 new file mode 100644 index 00000000..02b9e0cc --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.ja.utf8 @@ -0,0 +1,175 @@ + + + +設定ファイル - Apache HTTP サーバ + + + + + +
<-
+

設定ファイル

+
+

Available Languages:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

この文書では、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 + ファイルに書けるかを調べるには、ディレクティブのコンテキスト + を調べてください。サーバ管理者はさらにメイン設定ファイルの + AllowOverride + を設定することでどのディレクティブを .htaccess + ファイルに書けるようにするかを制御することができます。

+ +

.htaccess ファイルに関する詳しい情報は + .htaccess チュートリアル + を参照してください。

+
+
+

Available Languages:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html.ko.euc-kr b/rubbos/app/apache2/manual/configuring.html.ko.euc-kr new file mode 100644 index 00000000..c947dd81 --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.ko.euc-kr @@ -0,0 +1,156 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ ϴ ϵ Ѵ.

+
+ +
top
+
+

ּ

+ + + +

Ϲ Ͽ þ Ͽ ġ + Ѵ. ּ httpd.conf + θ. ġ Ͻ , -f + ɼ ִ. ٸ Include þ Ͽ + ְ, ϵī带 Ͽ + ִ. þ  Ͽ ص ȴ. + ּ ϸ ġ ϰų Ŀ + ݿȴ.

+ +

mime Ÿ ϵ д´. ϸ + TypesConfig þ + ϰ, ⺻ mime.types̴.

+
top
+
+

+ + +

ġ ٿ þ Ѵ. + ڰ 齽 "\"̸ þ ٿ ӵ Ѵ. + 齽 ڿ  ڳ 鵵 ȵȴ.

+ +

þ ҹڸ , þ + ƱԸƮ ҹڸ ϴ 찡 ִ. ؽ "#" + ϴ ּ Ѵ. ּ þ + ٿ . ٰ þ տ + ϹǷ, ϰ ̵ þ ٵ(indent) + ִ.

+ +

apachectl configtest -t + ɼ Ͽ ġ ʰ + ˻ ִ.

+
top
+
+

+ + + + +

ġ ȭ . ̴ ſ ⺻ ɸ + ٽɿ Ե Ѵ. ġ о鿩 + ȮѴ. ⺻ ϸ base Եȴ. + о̴ + ְ Ͽٸ Ͽ ƹ + LoadModule þ + ߰ ִ. ׷ ߰ϰų + ġ ٽ ؾ Ѵ. þ IfModule μ Ư + ִ 쿡 ó ִ.

+ +

 ϵִ -l + ɼ Ѵ.

+
top
+
+

þ

+ + + + +

ּϿ ִ þ ü ȴ. þ + Ϻο ǰ Ϸ þ <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch> ȿ ξѴ. + ǵ ׵ δ þ Ͻý̳ + URL Ư ġ Ѵ. , ļ ֱ⶧ + ſ ϴ.

+ +

ġ ٸ Ʈ ÿ ϴ + ɷ ִ. ̸ ȣƮ Ѵ. + þ + <VirtualHost> + ȿ ξ Ư Ʈ þ ִ.

+ +

þ κ  ǿ ͵ ,  þ + Ư ҿ ǹ̰ . μ ϴ + þ ּ ҿ ִ. þ +  ǿ ġ ִ ˷ þ Ȯ϶. + ڼ  Directory, + Location, Files ϳ ϶.

+
top
+
+

.htaccess

+ + + + +

ġ Ư Ͽ + (б) ִ. Ư + .htaccess θ, ̸ AccessFileName þ + ִ. .htaccess Ͽ ִ þ + ִ 丮 丮 ȴ. + .htaccess ּϰ + . .htaccess û б⶧ + ϸ ȿ ִ.

+ +

 þ .htaccess Ͽ + ִ ˷ þ + Ȯ϶. ڴ ּ AllowOverride þ + .htaccess Ͽ  þ ִ + ִ.

+ +

.htaccess Ͽ ڼ + .htaccess 丮 + ϶.

+
+
+

:  de  | + en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/configuring.html.tr.utf8 b/rubbos/app/apache2/manual/configuring.html.tr.utf8 new file mode 100644 index 00000000..0c85b6b2 --- /dev/null +++ b/rubbos/app/apache2/manual/configuring.html.tr.utf8 @@ -0,0 +1,101 @@ + + + +Yapılandırma Dosyaları - Apache HTTP Sunucusu + + + + + +
<-
+

Yapılandırma Dosyaları

+
+

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

+
+ +

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.

+ +

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/content-negotiation.html b/rubbos/app/apache2/manual/content-negotiation.html new file mode 100644 index 00000000..d2170a4b --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html @@ -0,0 +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.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=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/rubbos/app/apache2/manual/content-negotiation.html.en b/rubbos/app/apache2/manual/content-negotiation.html.en new file mode 100644 index 00000000..89093c86 --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html.en @@ -0,0 +1,666 @@ + + + +Content Negotiation - Apache HTTP Server + + + + + +
<-
+

Content Negotiation

+
+

Available Languages:  en  | + fr  | + ja  | + ko  | + tr 

+
+ + +

Apache supports content negotiation as described in + the HTTP/1.1 specification. It can choose the best + representation of a resource based on the browser-supplied + preferences for media type, languages, character set and + encoding. It also implements a couple of features to give + more intelligent handling of requests from browsers that send + incomplete negotiation information.

+ +

Content negotiation is provided by the + mod_negotiation module, which is compiled in + by default.

+
+ +
top
+
+

About Content Negotiation

+ +

A resource may be available in several different + representations. For example, it might be available in + different languages or different media types, or a combination. + One way of selecting the most appropriate choice is to give the + user an index page, and let them select. However it is often + possible for the server to choose automatically. This works + because browsers can send, as part of each request, information + about what representations they prefer. For example, a browser + could indicate that it would like to see information in French, + if possible, else English will do. Browsers indicate their + preferences by headers in the request. To request only French + representations, the browser would send

+ +

Accept-Language: fr

+ +

Note that this preference will only be applied when there is + a choice of representations and they vary by language.

+ +

As an example of a more complex request, this browser has + been configured to accept French and English, but prefer + French, and to accept various media types, preferring HTML over + plain text or other text types, and preferring GIF or JPEG over + other media types, but also allowing any other media type as a + last resort:

+ +

+ 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 supports 'server driven' content negotiation, as + defined in the HTTP/1.1 specification. It fully supports the + Accept, Accept-Language, + Accept-Charset andAccept-Encoding + request headers. Apache also supports 'transparent' + content negotiation, which is an experimental negotiation + protocol defined in RFC 2295 and RFC 2296. It does not offer + support for 'feature negotiation' as defined in these RFCs.

+ +

A resource is a conceptual entity + identified by a URI (RFC 2396). An HTTP server like Apache + provides access to representations of the + resource(s) within its namespace, with each representation in + the form of a sequence of bytes with a defined media type, + character set, encoding, etc. Each resource may be associated + with zero, one, or more than one representation at any given + time. If multiple representations are available, the resource + is referred to as negotiable and each of its + representations is termed a variant. The ways + in which the variants for a negotiable resource vary are called + the dimensions of negotiation.

+
top
+
+

Negotiation in Apache

+ +

In order to negotiate a resource, the server needs to be + given information about each of the variants. This is done in + one of two ways:

+ +
    +
  • Using a type map (i.e., a *.var + file) which names the files containing the variants + explicitly, or
  • + +
  • Using a 'MultiViews' search, where the server does an + implicit filename pattern match and chooses from among the + results.
  • +
+ +

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

+ +

AddHandler type-map .var

+ +

in the server configuration file.

+ +

Type map files should have the same name as the resource + which they are describing, and have an entry for each available + variant; these entries consist of contiguous HTTP-format header + lines. Entries for different variants are separated by blank + lines. Blank lines are illegal within an entry. It is + conventional to begin a map file with an entry for the combined + entity as a whole (although this is not required, and if + present will be ignored). An example map file is shown below. + This file would be named foo.var, as it describes + a resource named 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
+

+

Note also that a typemap file will take precedence over the + filename's extension, even when Multiviews is on. If the + variants have different source qualities, that may be indicated + by the "qs" parameter to the media type, as in this picture + (available as JPEG, GIF, or 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
+

+ +

qs values can vary in the range 0.000 to 1.000. Note that + any variant with a qs value of 0.000 will never be chosen. + Variants with no 'qs' parameter value are given a qs factor of + 1.0. The qs parameter indicates 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 is + attempting to represent a photograph. However, if the resource + being represented is an original ASCII art, then an ASCII + representation would have a higher source quality than a JPEG + representation. A qs value is therefore specific to a given + variant depending on the nature of the resource it + represents.

+ +

The full list of headers recognized is available in the mod_negotation + typemap documentation.

+ + +

Multiviews

+ +

MultiViews is a per-directory option, meaning it + can be set with an Options + directive within a <Directory>, <Location> or <Files> section in + httpd.conf, or (if AllowOverride is properly set) in + .htaccess files. Note that Options All + does not set MultiViews; you have to ask for it by + name.

+ +

The effect of MultiViews is as follows: if the + server receives a request for /some/dir/foo, if + /some/dir has MultiViews enabled, and + /some/dir/foo does not exist, then the + server reads the directory looking for files named foo.*, and + effectively fakes up a type map which names all those files, + assigning them the same media types and content-encodings it + would have if the client had asked for one of them by name. It + then chooses the best match to the client's requirements.

+ +

MultiViews may also apply to searches for the file + named by the DirectoryIndex directive, if the + server is trying to index a directory. If the configuration files + specify

+

DirectoryIndex index

+

then the server will arbitrate between index.html + and index.html3 if both are present. If neither + are present, and index.cgi is there, the server + will run it.

+ +

If one of the files found when reading the directory does not + have an extension recognized by mod_mime to designate + its Charset, Content-Type, Language, or Encoding, then the result + depends on the setting of the MultiViewsMatch directive. This + directive determines whether handlers, filters, and other + extension types can participate in MultiViews negotiation.

+ +
top
+
+

The Negotiation Methods

+ +

After Apache has obtained a list of the variants for a given + resource, either from a type-map file or from the filenames in + the directory, it invokes one of two methods to decide on the + 'best' variant to return, if any. It is not necessary to know + any of the details of how negotiation actually takes place in + order to use Apache's content negotiation features. However the + rest of this document explains the methods used for those + interested.

+ +

There are two negotiation methods:

+ +
    +
  1. Server driven negotiation with the Apache + algorithm is used in the normal case. The Apache + algorithm is explained in more detail below. When this + algorithm is used, Apache can sometimes 'fiddle' the quality + factor of a particular dimension to achieve a better result. + The ways Apache can fiddle quality factors is explained in + more detail below.
  2. + +
  3. Transparent content negotiation is used + when the browser specifically requests this through the + mechanism defined in RFC 2295. This negotiation method gives + the browser full control over deciding on the 'best' variant, + the result is therefore dependent on the specific algorithms + used by the browser. As part of the transparent negotiation + process, the browser can ask Apache to run the 'remote + variant selection algorithm' defined in RFC 2296.
  4. +
+ +

Dimensions of Negotiation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DimensionNotes
Media TypeBrowser indicates preferences with the Accept + header field. Each item can have an associated quality factor. + Variant description can also have a quality factor (the "qs" + parameter).
LanguageBrowser indicates preferences with the + Accept-Language header field. Each item can have + a quality factor. Variants can be associated with none, one or + more than one language.
EncodingBrowser indicates preference with the + Accept-Encoding header field. Each item can have + a quality factor.
CharsetBrowser indicates preference with the + Accept-Charset header field. Each item can have a + quality factor. Variants can indicate a charset as a parameter + of the media type.
+ + +

Apache Negotiation Algorithm

+ +

Apache can use the following algorithm to select the 'best' + variant (if any) to return to the browser. This algorithm is + not further configurable. It operates as follows:

+ +
    +
  1. First, for each dimension of the negotiation, check the + appropriate Accept* header field and assign a + quality to each variant. If the Accept* header for + any dimension implies that this variant is not acceptable, + eliminate it. If no variants remain, go to step 4.
  2. + +
  3. + Select the 'best' variant by a process of elimination. Each + of the following tests is applied in order. Any variants + not selected at each test are eliminated. After each test, + if only one variant remains, select it as the best match + and proceed to step 3. If more than one variant remains, + move on to the next test. + +
      +
    1. Multiply the quality factor from the Accept + header with the quality-of-source factor for this variants + media type, and select the variants with the highest + value.
    2. + +
    3. Select the variants with the highest language quality + factor.
    4. + +
    5. Select the variants with the best language match, + using either the order of languages in the + Accept-Language header (if present), or else + the order of languages in the LanguagePriority + directive (if present).
    6. + +
    7. Select the variants with the highest 'level' media + parameter (used to give the version of text/html media + types).
    8. + +
    9. Select variants with the best charset media + parameters, as given on the Accept-Charset + header line. Charset ISO-8859-1 is acceptable unless + explicitly excluded. Variants with a text/* + media type but not explicitly associated with a particular + charset are assumed to be in ISO-8859-1.
    10. + +
    11. Select those variants which have associated charset + media parameters that are not ISO-8859-1. If + there are no such variants, select all variants + instead.
    12. + +
    13. Select the variants with the best encoding. If there + are variants with an encoding that is acceptable to the + user-agent, select only these variants. Otherwise if + there is a mix of encoded and non-encoded variants, + select only the unencoded variants. If either all + variants are encoded or all variants are not encoded, + select all variants.
    14. + +
    15. Select the variants with the smallest content + length.
    16. + +
    17. Select the first variant of those remaining. This + will be either the first listed in the type-map file, or + when variants are read from the directory, the one whose + file name comes first when sorted using ASCII code + order.
    18. +
    +
  4. + +
  5. The algorithm has now selected one 'best' variant, so + return it as the response. The HTTP response header + Vary is set to indicate the dimensions of + negotiation (browsers and caches can use this information when + caching the resource). End.
  6. + +
  7. To get here means no variant was selected (because none + are acceptable to the browser). Return a 406 status (meaning + "No acceptable representation") with a response body + consisting of an HTML document listing the available + variants. Also set the HTTP Vary header to + indicate the dimensions of variance.
  8. +
+ +
top
+
+

Fiddling with Quality + Values

+ +

Apache sometimes changes the quality values from what would + be expected by a strict interpretation of the Apache + negotiation algorithm above. This is to get a better result + from the algorithm for browsers which do not send full or + accurate information. Some of the most popular browsers send + Accept header information which would otherwise + result in the selection of the wrong variant in many cases. If a + browser sends full and correct information these fiddles will not + be applied.

+ +

Media Types and Wildcards

+ +

The Accept: request header indicates preferences + for media types. It can also include 'wildcard' media types, such + as "image/*" or "*/*" where the * matches any string. So a request + including:

+ +

Accept: image/*, */*

+ +

would indicate that any type starting "image/" is acceptable, + as is any other type. + Some browsers routinely send wildcards in addition to explicit + types they can handle. For example:

+ +

+ Accept: text/html, text/plain, image/gif, image/jpeg, */* +

+

The intention of this is to indicate that the explicitly listed + types are preferred, but if a different representation is + available, that is ok too. Using explicit quality values, + what the browser really wants is something like:

+

+ Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

+

The explicit types have no quality factor, so they default to a + preference of 1.0 (the highest). The wildcard */* is given a + low preference of 0.01, so other types will only be returned if + no variant matches an explicitly listed type.

+ +

If the Accept: header contains no q + factors at all, Apache sets the q value of "*/*", if present, to + 0.01 to emulate the desired behavior. It also sets the q value of + wildcards of the format "type/*" to 0.02 (so these are preferred + over matches against "*/*". If any media type on the + Accept: header contains a q factor, these special + values are not applied, so requests from browsers which + send the explicit information to start with work as expected.

+ + +

Language Negotiation Exceptions

+ +

New in Apache 2.0, some exceptions have been added to the + negotiation algorithm to allow graceful fallback when language + negotiation fails to find a match.

+ +

When a client requests a page on your server, but the server + cannot find a single page that matches the + Accept-language sent by + the browser, the server will return either a "No Acceptable + Variant" or "Multiple Choices" response to the client. To avoid + these error messages, it is possible to configure Apache to ignore + the Accept-language in these cases and provide a + document that does not explicitly match the client's request. The + ForceLanguagePriority + directive can be used to override one or both of these error + messages and substitute the servers judgement in the form of the + LanguagePriority + directive.

+ +

The server will also attempt to match language-subsets when no + other match can be found. For example, if a client requests + documents with the language en-GB for British + English, the server is not normally allowed by the HTTP/1.1 + standard to match that against a document that is marked as simply + en. (Note that it is almost surely a configuration + error to include en-GB and not en in the + Accept-Language header, since it is very unlikely + that a reader understands British English, but doesn't understand + English in general. Unfortunately, many current clients have + default configurations that resemble this.) However, if no other + language match is possible and the server is about to return a "No + Acceptable Variants" error or fallback to the LanguagePriority, the server + will ignore the subset specification and match en-GB + against en documents. Implicitly, Apache will add + the parent language to the client's acceptable language list with + a very low quality value. But note that if the client requests + "en-GB; q=0.9, fr; q=0.8", and the server has documents + designated "en" and "fr", then the "fr" document will be returned. + This is necessary to maintain compliance with the HTTP/1.1 + specification and to work effectively with properly configured + clients.

+ +

In order to support advanced techniques (such as cookies or + special URL-paths) to determine the user's preferred language, + since Apache 2.0.47 mod_negotiation recognizes + the environment variable + prefer-language. If it exists and contains an + appropriate language tag, mod_negotiation will + try to select a matching variant. If there's no such variant, + the normal negotiation process applies.

+ +

Example

+ SetEnvIf Cookie "language=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +

+ +
top
+
+

Extensions to Transparent Content +Negotiation

+ +

Apache extends the transparent content negotiation protocol (RFC +2295) as follows. A new {encoding ..} element is used in +variant lists to label variants which are available with a specific +content-encoding only. The implementation of the RVSA/1.0 algorithm +(RFC 2296) is extended to recognize encoded variants in the list, and +to use them as candidate variants whenever their encodings are +acceptable according to the Accept-Encoding request +header. The RVSA/1.0 implementation does not round computed quality +factors to 5 decimal places before choosing the best variant.

+
top
+
+

Note on hyperlinks and naming conventions

+ +

If you are using language negotiation you can choose between + different naming conventions, because files can have more than + one extension, and the order of the extensions is normally + irrelevant (see the mod_mime documentation + for details).

+ +

A typical file has a MIME-type extension (e.g., + html), maybe an encoding extension (e.g., + gz), and of course a language extension + (e.g., en) when we have different + language variants of this file.

+ +

Examples:

+ +
    +
  • foo.en.html
  • + +
  • foo.html.en
  • + +
  • foo.en.html.gz
  • +
+ +

Here some more examples of filenames together with valid and + invalid hyperlinks:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FilenameValid hyperlinkInvalid hyperlink
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
+ +

Looking at the table above, you will notice that it is always + possible to use the name without any extensions in a hyperlink + (e.g., foo). The advantage is that you + can hide the actual type of a document rsp. file and can change + it later, e.g., from html to + shtml or cgi without changing any + hyperlink references.

+ +

If you want to continue to use a MIME-type in your + hyperlinks (e.g. foo.html) the language + extension (including an encoding extension if there is one) + must be on the right hand side of the MIME-type extension + (e.g., foo.html.en).

+
top
+
+

Note on Caching

+ +

When a cache stores a representation, it associates it with + the request URL. The next time that URL is requested, the cache + can use the stored representation. But, if the resource is + negotiable at the server, this might result in only the first + requested variant being cached and subsequent cache hits might + return the wrong response. To prevent this, Apache normally + marks all responses that are returned after content negotiation + as non-cacheable by HTTP/1.0 clients. Apache also supports the + HTTP/1.1 protocol features to allow caching of negotiated + responses.

+ +

For requests which come from a HTTP/1.0 compliant client + (either a browser or a cache), the directive CacheNegotiatedDocs can be + used to allow caching of responses which were subject to + negotiation. This directive can be given in the server config or + virtual host, and takes no arguments. It has no effect on requests + from HTTP/1.1 clients.

+
+
+

Available Languages:  en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/content-negotiation.html.fr b/rubbos/app/apache2/manual/content-negotiation.html.fr new file mode 100644 index 00000000..d800ca77 --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html.fr @@ -0,0 +1,715 @@ + + + +Ngociation de Contenus - Serveur Apache HTTP + + + + + +
<-
+

Ngociation de Contenus

+
+

Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

+
+
Cette traduction peut tre prime. Consultez la version + Anglaise pour les changements rcents.
+ + +

Apache suit les spcifications HTTP/1.1 en ce qui concerne + les ngociations de contenus. Il est ainsi possible d'utiliser + les informations fournies par le navigateur (prfrences de langues, + jeu de caractres, encodage et types de mdias). Apache essaye + aussi d'optimiser les cas des navigateurs envoyant des + informations incompltes.

+ +

C'est le module mod_negotiation qui fournit + la ngociation de contenus ; ce module est inclus dans Apache + par dfaut.

+
+ +
top
+
+

propos de la Ngociation de Contenus

+ +

Diffrentes reprsentations peuvent tre utilises pour + communiquer une ressource. Par exemple, plusieurs langues peuvent + tre disponibles, ou plusieurs types de mdias, voire parfois une + combinaison de ces possibilits. + Une mthode pour grer cela est de donner le choix au visiteur, + en lui proposant un index gnral, qui lui permet par exemple de + choisir sa langue. Cependant, il est souvent possible de faire ce + choix de manire automatique car les navigateurs peuvent prciser + avec leurs requtes, la reprsentation qu'ils prfrent recevoir. Par + exemple, un navigateur pourrait spcifier qu'il prfre recevoir les + informations en franais si elles sont disponibles, ou en anglais + dans le cas contraire. Ce type d'information est communiqu par les + navigateurs, dans les en-ttes de chaque requte. Un navigateur ne + demandant que des documents en franais enverrait

+ +

Accept-Language: fr

+ +

Notez que cette prfrence ne sera gre par le serveur que + s'il existe un choix de langues du ct du serveur.

+ +

Voici un exemple plus complet, o le navigateur est configur pour + accepter le franais et l'anglais, mais avec une prfrence pour le + franais, et pour accepter divers types de mdias, en prfrant le + HTML au texte brut, et en prfrant le GIF ou le JPEG aux autres types + de mdias (sans pour autant refuser ces derniers, le cas chant) :

+ +

+ 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 les ngociations de contenus 'grs par + le serveur', telles que spcifies dans HTTP/1.1. Les en-ttes + Accept, Accept-Language, + Accept-Charset et Accept-Encoding + sont grs. Apache supporte galement les ngociations de + contenus 'transparentes', telles que dfinies dans les RFC + 2295 et 2296. En revanche les fonctions de 'feature + negotiation' dfinies dans ces RFCs ne sont pas supportes.

+ +

On appelle ressource une entit conceptuelle + identifie par un URI (RFC 2396). Le travail d'un serveur HTTP, + tel Apache, est de donner un accs des + reprsentations des ressources sa disposition, + chaque reprsentation tant envoye sous la forme d'une squence + d'octets dfinie selon un type de mdia, un jeu de caractres, + un encodage, etc. tout moment, chaque ressource est associe + zro, une ou plusieurs reprsentations. Si plusieurs reprsentations + sont disponibles pour une ressource, on dit que cette dernire est + ngociable et chacune de ses reprsentations + possibles est appele une variante. + Les diffrentes possibilits de choisir les variantes d'une ressource + ngociable sont appeles dimensions de la + ngociation.

+
top
+
+

Ngociations avec Apache

+ +

Pour qu'Apache puisse procder la ngociation d'une ressource, + il faut qu'il dispose d'informations propos de chacune des variantes. + Deux mthodes sont possibles :

+ +
    +
  • Raliser une "Table de Types" (c'est--dire, + un fichier *.var) qui prcise explicitement les fichiers + dfinissant les variantes, ou
  • + +
  • Utiliser une recherche 'MultiViews', mthode par laquelle + le serveur ralise une recherche par motifs implicites, + et choisit parmi les rsultats.
  • +
+ +

Utilisation d'une Table de Types (Type Map)

+ +

Une table de types est un document qui est associ avec le + gestionnaire type-map (ou, dans les plus anciennes + versions d'Apache, le type mime application/x-type-map). + Notez que pour implmenter cette mthode, un 'handler' doit tre + dfini dans la configuration pour associer une extension de fichier + type-map ; ce qui est gnralement obtenu au moyen de

+ +

AddHandler type-map .var

+ +

dans le fichier de configuration du serveur.

+ +

Les fichiers de table de types portent gnralement le nom de la + ressource qu'ils dcrivent, et contiennent une entre correspondant + chaque variante possible ; ces entres sont constitues de lignes + au format d'en-ttes HTTP. Les entres de deux variantes distinctes + sont sparer par des lignes vides. Il n'est pas permis d'utiliser + des lignes vides au sein d'une entre. Il est courant de placer en + dbut de fichier une entre pour l'entit combine + dans son ensemble (bien que cela ne soit pas ncessaire, et ignor + par Apache). Un exemple de fichier de table est donn en exemple + ci-aprs. Le nom de ce fichier serait foo.var, puisque + le fichier dcrit une ressource appele 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 que les fichiers de table de types sont toujours + utiliss en priorit par Apache par rapport l'extension du + nom du fichier, et ce mme si l'option Multiviews est active. + Des variantes prsentant des qualits ingales peuvent tre indiques + au moyen du paramtre de type de mdia : "qs", comme dans le cas de + cette image (disponible en 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 acceptables sont comprises entre 0.000 + et 1.000. Notez qu'une variante avec un qs de 0.000 ne sera + jamais choisie. La valeur de qs par dfaut est de 1.0. Le + paramtre qs sert indiquer la qualit de la variante, par + rapport aux autres variantes disponibles, et ce indpendamment + des possibilits du navigateur. Par exemple, un fichier JPEG + est gnralement de meilleure qualit qu'un fichier ASCII, si + les 2 documents sont destins reprsenter une photographie. + Bien sr, si la ressource originale est elle-mme un fichier + ASCII, la reprsentation ASCII sera considr comme de meilleure + qualit que la reprsentation JPEG. La valeur de qs dpend donc + de la nature de la ressource que l'on souhaite reprsenter.

+ +

La liste complte des en-ttes utilisables est disponible + dans la documentation de + mod_negotation.

+ + +

Multiviews

+ +

L'option MultiViews est spcifier par rpertoire, + ce qui signifie qu'elle peut tre utilise au moyen d'une directive + Options dans une section + <Directory>, + <Location> ou + <Files> + du fichier httpd.conf, ou dans les fichiers + .htaccess ( condition que l'option AllowOverride soit paramtre pour cela). + Notez que Options All n'active pas l'option + MultiViews ; cette dernire doit tre positionne + explicitement.

+ +

Voici comment fonctionne MultiViews : supposons qu'un + serveur reoive une requte pour /some/dir/foo, que l'option + MultiViews soit active pour /some/dir, + et que le fichier /some/dir/foo n'existe + pas ; alors le serveur cherche les fichiers nomms foo.* + dans le rpertoire /some/dir, et construit une table de types + partir de ces noms de fichiers. Dans la table, chaque fichier se + voit assigner les types de mdias et les encodages de contenu + tels qu'ils seraient envoys si le client les demandait par leur + nom propre. Apache choisit alors la meilleure reprsentation + envoyer au client, en fonction de ses prfrences.

+ +

L'option MultiViews sert aussi lors du choix d'un + index, lorsque la directive DirectoryIndex est prcise. + Par exemple, si la configuration contient

+

DirectoryIndex index

+

le serveur devra choisir entre les fichiers index.html et + index.html3, dans le cas o ces deux fichiers existent. Si + aucun de ces fichiers n'existe, mais qu'un fichier index.cgi + est prsent, ce dernier sera excut par le serveur.

+ +

Si la lecture du rpertoire, un fichier est trouv + dont l'extension n'est pas reconnue par mod_mime + comme prcisant son jeu de caractres, sa langue, son type de + contenu (Content-Type) ou son encodage, alors tout dpendra de la + directive MultiViewsMatch. + Cette directive prcise en effet quels gestionnaires, filtres, et + autres types d'extensions peuvent contribuer la ngociation + MultiViews.

+ +
top
+
+

Mthodes de Ngociations

+ +

Aprs qu'Apache ait dfini la liste de variantes possibles + pour une ressource, que ce soit via un fichier de tables de + types ou partir des noms de fichiers contenus dans le rpertoire, + deux mthodes peuvent tre invoques pour choisir la 'meilleure' + variante qui sera envoye, pour autant qu'il en existe au moins + une. Il n'est pas ncessaire de connatre ce fonctionnement pour + utiliser les ngociations de contenu avec Apache ; cependant pour + le lecteur intress la suite de ce document s'attache dcrire + ce fonctionnement.

+ +

Il existe deux mthodes de ngociations :

+ +
    +
  1. La ngociation mene par le serveur, selon + l'algorithme d'Apache, est utilise dans la plupart + des cas. L'algorithme d'Apache est dtaill dans la suite de + ce document. Dans les cas o cet algorithme est utilis, il + arrive qu'Apache 'triche' sur le facteur qualit (qs) d'une + dimension donne pour parvenir un meilleur rsultat. Les cas + o cela se produit sont prsents dans la suite de ce document.
  2. + +
  3. La ngociation transparente de contenu + est utilise sur demande spcifique du navigateur, selon la + mthode dfinie dans la RFC 2295. Cette mthode de ngociation + donne au navigateur les pleins pouvoirs pour choisir la + 'meilleure' variante, les rsultats dpendent donc des algorithmes + de choix propres chaque navigateur. Cette mthode permet + galement au navigateur de demander Apache d'utiliser + l'algorithme de 'slection de variante distance', tel que dfini + par la RFC 2296.
  4. +
+ +

Dimensions d'une Ngociation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DimensionNotes
Type de MdiaLe navigateur prsente ses prfrences au moyen du + champ Accept de l'en-tte. chaque lment peut tre + associ un facteur de qualit. De la mme manire, la description + de la variante peut prsenter un facteur de qualit (le + paramtre "qs").
LanguesLe navigateur prsente ses prfrences au moyen du champ + Accept-Language de l'en-tte. chaque lment + peut tre associ un facteur de qualit. Les diffrentes + variantes peuvent galement tre associes ou non une + ou plusieurs langues.
EncodageLe navigateur prsente ses prfrences au moyen du champ + Accept-Encoding de l'en-tte. chaque lment + peut tre associ un facteur de qualit.
Jeu de caractresLe navigateur prsente ses prfrences au moyen du champ + Accept-Charset de l'en-tte. chaque lment + peut tre associ un facteur de qualit. Les diffrentes + variantes peuvent se voir associer un jeu de caractres + comme type de mdia.
+ + +

Algorithme de Ngociation d'Apache

+ +

Apache peut utiliser l'algorithme prsent ci-aprs pour choisir la + 'meilleure' variante, si elle existe, renvoyer au navigateur. Cet + algorithme n'est pas configurable. Il fonctionne de cette manire :

+ +
    +
  1. En premier lieu, pour chaque dimension de la ngociation, + vrifier le champ d'en-tte Accept* appropri et + attribuer un facteur de qualit chacune des variantes. Si + l'en-tte Accept* d'une dimension indique que cette + variante n'est pas acceptable, liminer cette variante. S'il + ne reste aucune variante, aller l'tape 4.
  2. + +
  3. + Choisir la 'meilleure' des variantes par limination. + Chacun des tests suivants est appliqu dans cet ordre. + Toutes les variantes ne passant pas un test sont + systmatiquement limines. Aprs chacun des tests, s'il + ne reste qu'une variante, la choisir comme la meilleure + et aller l'tape 3. S'il reste plus d'une variante, aller + l'tape suivante. + +
      +
    1. Multiplier le facteur de qualit de l'en-tte + Accept par le facteur qualit de la source du + type de mdia de cette variante, et choisir les variantes + avec le plus grand rsultat.
    2. + +
    3. Choisir les variantes qui prsentent le plus grand + facteur de qualit de langue.
    4. + +
    5. Choisir les variantes dont la langue correspond le + mieux, soit l'ordre de prfrence des langues dans + l'en-tte Accept-Language (s'il existe), + soit l'ordre des langues de la directive + LanguagePriority (si elle existe).
    6. + +
    7. Choisir les variantes prsentant le paramtre de niveau + ('level') de mdia le plus grand (c'est ce qui est utilis + pour connatre la version des types de mdias text/html).
    8. + +
    9. Choisir les variantes dont le jeu de caractres est le + meilleur, par rapport l'en-tte Accept-Charset. + Le jeu de caractres ISO-8859-1 est toujours acceptable, + moins qu'il n'ait t explicitement refus. Les variantes + avec un type de mdia test/* et qui ne sont + pas explicitement associes un jeu de caractre donn + sont supposes encodes en ISO-8859-1.
    10. + +
    11. Choisir les variantes qui ont un jeu de caractres + dfini et qui n'est pas ISO-8859-1. + S'il n'existe pas de telles variantes, alors les + choisir toutes.
    12. + +
    13. Choisir les variantes prsentant le meilleur encodage. + S'il existe des variantes avec un encodage acceptable par + le 'user-agent' du navigateur, choisir ces variantes seules. + Dans le cas contraire, s'il existe la fois des variantes + encodes et non encodes, ne choisir que les variantes + non encodes. Dans les autres cas, choisir toutes les + variantes.
    14. + +
    15. Choisir les variantes prsentant la plus petite taille.
    16. + +
    17. Choisir la premire variante de celles qui restent. Ce + sera donc soit la premire variante liste dans le fichier + des tables de types, soit, si les variantes sont lues d'un + rpertoire, celle dont le nom apparat en premier dans un + classement par code ASCII.
    18. +
    +
  4. + +
  5. Cet algorithme a permis de choisir la 'meilleure' des + variantes, qui est renvoye en rponse la requte du + navigateur. L'en-tte Vary de la rponse HTTP + est utilis pour indiquer les dimensions de la ngociation + (les navigateurs et les serveurs mandataires sont capables de + prendre en compte cette information quand il gardent une + ressource en cache). Fin des oprations.
  6. + +
  7. Arriver ce point signifie qu'aucune variante n'a pu tre + choisie, car aucune n'est acceptable aux yeux du navigateur. + Renvoyer une erreur 406 ("No acceptable representation" - NdT : + "Aucune reprsentation acceptable") dans un document HTML + prsentant les diverses variantes possibles. L'en-tte HTTP + Vary est galement renseign pour prsenter les + dimensions de la ngociation.
  8. +
+ +
top
+
+

Tricher sur les Facteurs de Qualit

+ +

Il arrive qu'Apache modifie les facteurs de qualit par rapport + la valeur qu'ils devraient avoir en suivant strictement + l'algorithme dcrit plus haut. Ceci permet d'obtenir de meilleurs + rsultats pour grer les navigateurs qui n'envoient pas toutes + les informations ou envoient des informations errones. Ainsi, + certains navigateurs, parmi les plus rpandus du march, envoient + des en-ttes Accept qui entraneraient l'envoi de la + mauvaise variante dans de nombreux cas. Si le navigateur envoie + des informations correctes, Apache ne trichera pas sur les facteurs + de qualit.

+ +

Types de Mdias et Jokers

+ +

L'en-tte de requte Accept: indique les prfrences + des types de mdias. Elle peut comporter des 'jokers' tels que + "image/*" ou "*/*", o * signifie "n'importe quoi". Ainsi, une + requte prsentant :

+ +

Accept: image/*, */*

+ +

signifierait que tout type commenant par "image/" est + acceptable, comme serait acceptable tout autre type. Certains + navigateurs envoient sans arrt des jokers en plus des types + qu'ils peuvent effectivement grer. Par exemple :

+ +

+ Accept: text/html, text/plain, image/gif, image/jpeg, */* +

+

Le but de ces informations est d'indiquer que les types + explicitement cits sont les prfrs mais que le + navigateur accepte galement d'autres reprsentations. + En utilisant les facteurs de qualit, voici ce que devrait + envoyer le navigateur :

+

+ Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

+

Les types explicitement cits ne prsentent pas de facteur + de qualit, ils reoivent donc la valeur par dfaut de 1.0 + (la plus haute valeur possible). Les jokers sont affects + d'une prfrence trs basse de 0.01, si bien que les autres + types ne seront utiliss que si aucune des variantes ne + correspond un des types explicitement prfrs.

+ +

Si le champ d'en-tte Accept: ne + contient aucun facteur de qualit, Apache modifie + le facteur de qualit de "*/*" (s'il est prsent) en 0.01 + afin d'muler le comportement souhait. Apache positionne + galement le facteur de qualit des jokers qui se prsentent + sous la forme "type/*" en 0.02 (afin que ces derniers soient + prfrs "*/*"). Si un seul ou plusieurs types de mdia de + l'en-tte Accept: prsente un facteur de qualit, + ces modifications ne sont pas effectues, + afin que les requtes des navigateurs qui envoient des + informations correctes fonctionnent comme prvu.

+ + +

Exceptions aux Ngociations sur la Langue

+ +

partir d'Apache 2.0, certaines exceptions ont t ajoutes + l'algorithme de ngociation afin de retomber lgamment sur + nos pattes dans les cas o la ngociation sur la langue + n'aboutit pas.

+ +

Si un client demande une page du serveur, sans que ce dernier + ne puisse dterminer une page correspondant au champ + Accept-language envoy par le navigateur, le serveur + doit renvoyer une rponse parmi "Pas de Variante Acceptable" + et "Choix Multiples" au client. Afin d'viter ces messages + d'erreur, il est possible de configurer Apache pour qu'il ignore + le champ Accept-language dans ces cas et qu'il + fournisse au client un document qui ne correspond pas + explicitement sa requte. La directive + ForceLanguagePriority + peut tre utilise pour passer outre ces deux messages d'erreur + et modifier la rponse du serveur au moyen de la directive + LanguagePriority.

+ +

Le serveur va galement essayer de modifier la sous-classe + de langue si aucune correspondance n'est trouve. Par exemple, + dans le cas o un client demande des documents avec le langage + en-GB pour "British English", le protocole HTTP/1.1 + n'autorise pas le serveur rpondre par un document qui serait + marqu par en. (Notez que prsenter + en-GB dans l'en-tte Accept-language + est loin d'tre pertinent, il semble trs peu probable que le + lecteur comprenne l'anglais "British" et ne comprenne pas + l'anglais "tout court". Il se trouve malheureusement que + beaucoup de navigateurs prsentent ce comportement.) Bref, + si aucune autre langue ne correspond et que le serveur + s'apprterait normalement envoyer une rponse d'erreur + "No Acceptable Variants", ou utiliser la mthode + LanguagePriority + prsente ci-avant, le serveur va ignorer la sous-classe de + langue GB et considrer que la requte + en-GB correspond bien au document en. + Implicitement, Apache ajoute la langue parente (en) + la liste des langues considres comme acceptables par le + navigateur, avec un facteur de qualit trs faible. Notez + cependant que si le client demande "en-GB; qs=0.9, fr; qs=0.8", + et que le serveur dispose de documents marqus comme "en" et + "fr", alors le document en franais sera renvoy par le serveur. + Ce comportement est ncessaire, afin de garder la compatibilit + avec HTTP/1.1 et fonctionner avec les navigateurs correctement + configurs.

+ +

Pour supporter les techniques avances de dtection de + prfrence de langues de l'utilisateur (telles que les + Cookies, ou les chemins d'URL spciaux), Apache reconnat + depuis la version 2.0.47 la variable + d'environnement prefer-language. Si cette + variable existe, et qu'elle prcise une langue valide, + mod_negociation cherchera une variante qui + y corresponde. S'il n'en trouve pas, le processus de + ngociation normal se droulera.

+ +

Exemple

+ SetEnvIf Cookie "language=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +

+ +
top
+
+

Extensions vers la Ngociation de Contenu +Transparente

+ +

Apache complte le protocole de ngociation de contenu (RFC 2295) +comme dcrit ici. Un nouvel lment {encoding ..} est +utilis dans la liste des variantes pour nommer celles qui ne sont +disponibles que sous un encodage spcifique. L'implmentation de +l'algorithme RVSA/1.0 (RFC 2296) est tendue afin d'intgrer les +variantes encodes dans la liste, et de les proposer comme +candidates quand leur encodage est acceptable au vu de l'en-tte +Accept-Encoding. L'implmentation RVSA/1.0 ne tronque +pas les facteurs de qualit 5 dcimales avant de choisir la +meilleure des variantes.

+
top
+
+

propos des liens hypertextes et des conventions de nommage

+ +

Dans le cas o la ngociation de langues est utilise, il est + possible de choisir diverses conventions de nommage, car les + fichiers peuvent prsenter plus d'une extension, et l'ordre des + extensions n'est normalement pas significatif (voir la + documentation mod_mime + pour plus de dtails).

+ +

Habituellement, un fichier a une extension pour son type MIME + (par exemple, html), parfois une extension pour son + encodage (par exemple, gz), et bien sr une extension + de langue (par exemple, en) pour distinguer les + diverses variantes.

+ +

Exemples :

+ +
    +
  • foo.en.html
  • + +
  • foo.html.en
  • + +
  • foo.en.html.gz
  • +
+ +

Voici d'autres exemples de noms de fichiers ainsi que des liens + hypertextes valides et invalides :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nom de 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
+ +

Le tableau ci-dessus montre qu'il est toujours possible de + spcifier le lien sans aucune extension dans un lien hypertexte. + (par exemple, foo). L'avantage en est qu'il est + ainsi possible de ne pas montrer le type d'un document, et de + le modifier ultrieurement, par exemple le passer de html + shtml ou cgi sans avoir besoin de + modifier aucun lien.

+ +

Pour continuer utiliser les types MIME dans les liens + (par exemple, foo.html), l'extension correspondant + la langue (ainsi que l'extension d'encodage, si elle existe) + doit tre du cot droit de l'extension du type MIME (par exemple, + foo.html.en).

+
top
+
+

propos des Caches

+ +

Quand un cache garde en mmoire une reprsentation, il l'associe + l'URL de la requte. Quand la mme URL vient tre redemande, + le cache peut utiliser la reprsentation garde en mmoire, plutt + que de refaire une requte au serveur. Cependant, si la ressource + est ngociable cot serveur, le rsultat pourrait en tre que la + rponse la premire requte mise en cache serait renvoye de + faon errone. Pour prvenir ce problme, Apache marque toutes + les rponses issues d'une ngociation comme "non-cachables" par + les clients HTTP/1.0. Apache supporte les spcifications du + protocole HTTP/1.1 en ce qui concerne la mise en cache des + rponses ngocies.

+ +

Les requtes venant d'un client conforme au protocole HTTP/1.0 + (qu'il s'agisse d'un navigateur ou d'un serveur cache) peuvent + tre rendues "cachables" si la directive CacheNegotiatedDocs est + utilise. Cette directive peut tre spcifie aussi bien dans + la configuration principale du serveur que dans un serveur + virtuel, et ne ncessite pas d'argument. Elle n'a aucun impact + sur les requtes des clients fonctionnant en HTTP/1.1.

+
top
+
+

Plus d'Information

+ +

Pour plus d'informations au sujet de la ngociation de contenu, voir + Language + Negotiation Notes de Alan J. Flavell. Notez que ce + document ne sera peut-tre pas mis jour en fonction des + changements intervenus dans Apache 2.0.

+
+
+

Langues Disponibles:  en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/content-negotiation.html.ja.utf8 b/rubbos/app/apache2/manual/content-negotiation.html.ja.utf8 new file mode 100644 index 00000000..47a3b8c2 --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html.ja.utf8 @@ -0,0 +1,725 @@ + + + +コンテントネゴシエーション - Apache HTTP サーバ + + + + + +
<-
+

コンテントネゴシエーション

+
+

Available Languages:  en  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + +

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-GBen + にマッチします。 + 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=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +

+ +
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 クライアントからのリクエストには効力を持ちません。

+
top
+
+

追加情報

+ +

コンテントネゴシエーションに関する追加情報は、 + Alan J. Flavell さんのLanguage + Negotiation Notes をご覧下さい。ですが、 + Apache 2.0 での変更点を含むためには更新されていないかもしれない + ということに注意してください。

+
+
+

Available Languages:  en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/content-negotiation.html.ko.euc-kr b/rubbos/app/apache2/manual/content-negotiation.html.ko.euc-kr new file mode 100644 index 00000000..bfbb216c --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html.ko.euc-kr @@ -0,0 +1,608 @@ + + + + (Content Negotiation) - Apache HTTP Server + + + + + +
<-
+

(Content Negotiation)

+
+

:  en  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ġ HTTP/1.1 Ծ࿡ (content + negotiation) Ѵ. media type, , , + ڵ  ȣ ڿ + ǥ Ѵ. ҿ + û óϴ ɵ ִ.

+ +

⺻ ϵǴ mod_negotiation + Ѵ.

+
+ +
top
+
+

+ +

ڿ ٸ ǥ ִ. , ٸ +  ٸ media type Ȥ ΰ ٸ ǥ + ִ. ǥ ϴ Ѱ ڿ + ְ ϰ ϴ ̴. ׷ + ڵ ϴ ͵ ϴ. ̴ û + Ϻη ׵ ȣϴ ǥ ⶧ + ϴ. , Ҿ, ׷ + ٸ ʹٰ ˷ ִ. + û ׵ ȣ Ÿ. Ҿε ǥ + ûѴٸ .

+ +

Accept-Language: fr

+ +

̷ ȣ ǥ  ٸ 쿡 ȴ.

+ +

û Ҿ  + , Ҿ ȣϰ, media type + , Ϲ ؽƮ ٴ HTML, ٸ media type ٴ + 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 +

+ +

ġ HTTP/1.1 Ծ࿡ ǵ ' ֵ(server driven)' + Ѵ. ġ Accept, + Accept-Language, Accept-Charset, + Accept-Encoding û Ѵ. + , ġ RFC 2295 RFC 2296 ǵ + 'ڿ(transparent)' û Ѵ. ׷ + RFC ǵ ' (feature negotiation)' + ʴ´.

+ +

ڿ(resource) (RFC 2396) URI ϴ + . ġ ڿ + ǥ(representations) Ѵ. ǥ + media type, , ڵ Ʈ + ִ. ڿ ǥ (δ ִ) ȴ. + ڿ ǥ ִٸ ڿ + 󰡴ϴٰ(negotiable) θ, ̶ + ǥ (variant)̶ Ѵ. + 󰡴 ڿ + (dimension) Ѵ.

+
top
+
+

ġ

+ +

ڿ ϱ ʿϴ. + ΰ ϳ ´:

+ +
    +
  • ϵ type map ( + , *.var ) ϰų,
  • + +
  • ʾƵ ϸ Ģ ãƼ + ϴ 'MultiViews' Ѵ.
  • +
+ +

type-map ϱ

+ +

type map type-map̶ ڵ鷯 + (Ȥ ġ ȣȯ MIME type + application/x-type-map) . + Ϸ type-map ڵ鷯 + Ȯڸ ؾ Ѵ. Ͽ + ϴ .

+ +

AddHandler type-map .var

+ +

Type map شϴ ڿ ̸ ƾ ϰ, + ׸ ־ Ѵ. ׸ HTTP + ٷ ȴ. ׸ ٷ + Ѵ. ׸ȿ . (̷ + ʿ䰡 , ־ ) ׸ + ִ map ϴ ̴. + map . ̸ foo.var, + 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
+

+

typemap ϸ Ȯ , Multiviews + Ͽ, 켱 ϶. ٸ ǰ + ٸ, (JPEG, GIF, ASCII-art شϴ) + media type "qs" Ķͷ ǰ(source quality) ǥ + ִ:

+ +

+ 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 + õ ϶. 'qs' 1.0 + ޵ȴ. qs Ŭ̾Ʈ ɷ° ٸ + Ͽ 'ǰ' Ÿ. , + Ÿ JPEG ASCII Ϻٴ ׻ + ǰ . ׷ ڿ ASCII artٸ + ASCII ǥ JPEG ǥ ǰ ִ. + ׷Ƿ  qs ǥϷ ڿ + ٸ.

+ +

ϴ mod_negotation + typemap ϶.

+ + +

Multiviews

+ +

MultiViews 丮 ɼ̹Ƿ, + httpd.conf + <Directory>, + <Location>, + <Files> + Ȥ (AllowOverride + Ǿٸ) .htaccess + Options þ + ִ. Options All MultiViews + ϶. Ѵ.

+ +

MultiViews ϸ Ͼ: + /some/dir/foo û ް + /some/dir/foo MultiViews ϸ + /some/dir/foo , + 丮 ̸ foo.* ϵ ϴ + type map . Ŭ̾Ʈ û media type + content-encoding ߿ Ѵ.

+ +

MultiViews 丮 Ҷ + ã DirectoryIndex þ + ȴ. ٸ,

+

DirectoryIndex index

+

index.html index.html3 + ִٸ ̵ ߿ ϳ Ѵ. + index.cgi ִٸ, װ Ѵ.

+ +

丮 ϳ Charset, Content-Type, + Language, Encoding Ǵϴ mod_mime 𸣴 + Ȯڸ ٸ, MultiViewsMatch þ + ޷Ǵ. þ ڵ鷯, , ٸ Ȯ MultiViews + θ Ѵ.

+ +
top
+
+

+ +

ġ type-map ̳ 丮 ִ ϸ + ־ ڿ ԵǸ '' + ϱ ϳ Ѵ. ġ + ϱ Ȯ  Ͼ ڼ + ʿ . ׷ ñ Ѵ.

+ +

ΰ ִ:

+ +
    +
  1. ġ ˰ Ͽ ֵϴ + Ϲ 쿡 Ѵ. ġ ˰ + Ʒ ڼ Ѵ. ˰ ϸ ġ + Ư + ǰ(quality factor) 'Ѵ'. ġ ǰ + ϴ Ʒ ڼ Ѵ.
  2. + +
  3. ڿ(Transparent) + RFC 2295 ǵ û 쿡 + Ѵ. '' + οѴ. ׷ ˰ + ޷ȴ. ڿ ߿ ġ + RFC 2296 ǵ ' ˰(remote variant + selection algorithm)' û ִ.
  4. +
+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Media Type Accept ȣ Ÿ. + ׸ ǰ ִ. ǰ + ("qs" Ķ) ִ.
Language Accept-Language ȣ + Ÿ. ׸ ǰ ִ. +  (Ȥ ƹ  ) ִ.
Encoding Accept-Encoding ȣ + Ÿ. ׸ ǰ ִ.
Charset Accept-Charset ȣ + Ÿ. ׸ ǰ ִ. + media type Ķͷ Ÿ ִ.
+ + +

ġ ˰

+ +

ġ '' (ִٸ) + ϱ Ʒ ˰ Ѵ. ˰ + . Ѵ:

+ +
    +
  1. , شϴ Accept* + ˻ϰ, ǰ ű.  + Accept* ޾Ƶ ʴ ĺ + Ѵ.  4 ܰ .
  2. + +
  3. + ĺ ϳ Ͽ '' ã´. + ˻ Ͼ. ˻翡 õ + ܵȴ. ˻ ̸ + ϰ 3 ܰ . + ˻縦 Ѵ. + +
      +
    1. Accept ǰ + media type ǰ Ͽ + Ѵ.
    2. + +
    3. (language) ǰ + Ѵ.
    4. + +
    5. Accept-Language (ִٸ) + Ȥ LanguagePriority + þ (ִٸ) +  Ѵ.
    6. + +
    7. (text/html media type Ÿ) + 'level' media Ķ͸ Ѵ.
    8. + +
    9. Accept-Charset + charset media Ķ͸ ã´. + ٸ ISO-8859-1 ȣѴ. + text/* media type + Ư հ ISO-8859-1 + Ѵ.
    10. + +
    11. ISO-8859-1 ƴ charset media Ķ͸ + Ѵ. ׷ ٸ, + Ѵ.
    12. + +
    13. ڵ Ѵ. + user-agent ڵ ִٸ + Ѵ. ׷ʰ ڵ ڵȵ + ִٸ ڵȵ Ѵ. + ڵǾų ڵȵ + Ѵ.
    14. + +
    15. content length Ѵ.
    16. + +
    17. ù Ѵ. ̴ type-map + տ ԰ų, 丮 + ϸ ASCII ڵ Ͽ տ ̴.
    18. +
    +
  4. + +
  5. ˰ '' ߴ. ̰ + . HTTP Vary + Ÿ ȴ. ( ij ڿ ijҶ + ִ.) .
  6. + +
  7. ܰ迡 ߴٸ ( ϱ ) +  ȵ . ("No acceptable + representation" ϴ) 406 밡 + HTML . , HTML + Vary Ÿ.
  8. +
+ +
top
+
+

ǰ ϱ

+ +

ġ ġ ˰ Űʰ + ǰ Ѵ. ϰ Ȯ ʴ + (˰) ؼ. + θ ̴ Ϻδ ߸ ϵ + Accept . ϰ ùٸ + ٸ, ʴ´.

+ +

Media Type ϵī

+ +

Accept: û media type ȣ + Ÿ. , *  ڿ̶ ϱ⶧ "image/*" + "*/*" 'ϵī' media type ִ. ׷ + û:

+ +

Accept: image/*, */*

+ +

"image/" ϴ  type ٸ  type + ǹѴ.  + ڽ ٷ ִ type ߰ ϵī带 . + :

+ +

+ Accept: text/html, text/plain, image/gif, image/jpeg, */* +

+

type ȣ ٸ ǥ ִٸ + װ͵ Ÿ ؼ. + ǰ ̴.

+

+ Accept: text/html, text/plain, image/gif, image/jpeg, */*; q=0.01 +

+

type ǰ  ⺻ ( ) + 1.0 . ϵī */* ȣ 0.01 Ƿ + type ´ 쿡 ٸ type + ȴ.

+ +

Accept: q + "*/*" ִٸ, ġ ٶ ൿ q 0.01 + Ѵ. , "type/*" ϵī忡 ("*/*"ٴ + ȣϵ) 0.02 Ѵ. Accept: + q media type ִٸ ̷ Ư ߰ + ʴ´. ׷ + û ûѵ óѴ.

+ + +

(language)

+ +

ġ 2.0 ε巴 ϱ + ˰ ܸ  ߰ߴ.

+ +

Ŭ̾Ʈ û + Accept-language ´ Ѱ + ã , ׷ Ŭ̾Ʈ + "No Acceptable Variant" "Multiple Choices" . + ̷ ϱ Accept-language + ϰ Ŭ̾Ʈ û Ȯ + ġ ִ. ForceLanguagePriority + þ ̷ ϳ Ȥ Ѵٸ ϰ + LanguagePriority + þ Ǵϵ Ѵ.

+ +

, ´  ã θ ã + ִ. Ŭ̾Ʈ  ϴ + en-GB û , HTTP/1.1 ǥؿ + enθ ǥõ Ϲ + Ѵ. (׷  ϴ ڰ Ϲ +  Ƿ Accept-Language + en-GB ϰ en + Ȯ ߸ ϶. + Ŭ̾Ʈ ̷ ⺻ִ.) ٸ  + ã Ͽ "No Acceptable Variants" ų + LanguagePriority + ư Ѵٸ, Ծ ϰ + en-GB en Ѵ. + Ϲ ġ θ ſ ǰ + Ŭ̾Ʈ Ͽ ߰Ѵ. ׷ Ŭ̾Ʈ + "en-GB; q=0.9, fr; q=0.8" ûϰ "en" "fr" + ִٸ, "fr" õ ϶. ̴ HTTP/1.1 + ǥ Ű, ùٷ Ŭ̾Ʈ ȿ + ϱ̴.

+ +

ڰ ȣϴ  ˾Ƴ (Ű Ư + URL- ) ϱ ġ 2.0.47 + mod_negotiation prefer-language + ȯ溯 νѴ. ȯ溯 + ϰ ±׸ Ѵٸ, + mod_negotiation شϴ Ϸ + õѴ. ׷ ٸ Ϲ Ѵ.

+ +

+ SetEnvIf Cookie "language=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +

+ +
top
+
+

ڿ(transparent) Ȯ

+ +

ġ ڿ Ȯ (RFC 2295) +ȮѴ. ο {encoding ..} Ư +content-encoding ĪѴ. RVSA/1.0 ˰ +(RFC 2296) Ͽ ڵ ν ְ, ڵ +Accept-Encoding û ´ ڵ +鵵 ĺ ϵ ȮǾ. RVSA/1.0 + ã ǰ Ҽ 5ڸ ݿø +ʴ´.

+
top
+
+

۸ũ ̸Ģ Ͽ

+ +

(language) Ѵٸ Ȯڸ + Ȯ Ƿ ϸ ٸ + ̸Ģ ִ. (ڼ mod_mime + ϶.)

+ +

MIME-type Ȯ ( , + html), 쿡 encoding Ȯ ( + , gz), Ͽ ִ + Ȯڸ ( , 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-type ( , + foo.html) ϰ ʹٸ (encoding Ȯڰ + ִٸ ̰͵ Ͽ) Ȯڸ MIME-type Ȯں + ʿ ( , foo.html.en) + ξѴ.

+
top
+
+

ij Ͽ

+ +

ij ǥ ϸ ǥ û URL Ų. + URL ûϸ ij ǥ Ѵ. + ׷ ڿ ù° û + ijǾ û ij ߸ ִ. + ̸ ġ ȯǴ û + HTTP/1.0 Ŭ̾Ʈ ij ϵ ǥø Ѵ. , ġ + ij ϴ HTTP/1.1 + Ѵ.

+ +

CacheNegotiatedDocs + þ HTTP/1.0 ȣȯ Ŭ̾Ʈ( Ȥ ij) + û ij ְ Ѵ. þ + ȣƮ ϸ, ƱԸƮ ʴ´. + þ HTTP/1.1 Ŭ̾Ʈ û 谡 .

+
top
+
+

ٸ

+ +

ٸ Alan J. Flavell Language + Negotiation Notes ϶. ׷ + ġ 2.0 ȭ ݿ ִ.

+
+
+

:  en  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/content-negotiation.html.tr.utf8 b/rubbos/app/apache2/manual/content-negotiation.html.tr.utf8 new file mode 100644 index 00000000..424b4f5b --- /dev/null +++ b/rubbos/app/apache2/manual/content-negotiation.html.tr.utf8 @@ -0,0 +1,640 @@ + + + +İçerik Uzlaşımı - Apache HTTP Sunucusu + + + + + +
<-
+

İç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, 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 bir 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, bir türeşlem dosyasının MultiViews etkin olsa bile + dosya ismi uzantısı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_negotation 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=en" prefer-language=en
+ SetEnvIf Cookie "language=fr" prefer-language=fr +

+ +
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.

+ +
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html b/rubbos/app/apache2/manual/custom-error.html new file mode 100644 index 00000000..6ef11163 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: custom-error.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: custom-error.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: custom-error.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: custom-error.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/custom-error.html.en b/rubbos/app/apache2/manual/custom-error.html.en new file mode 100644 index 00000000..e0f688e0 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.en @@ -0,0 +1,208 @@ + + + +Custom Error Responses - Apache HTTP Server + + + + + +
<-
+

Custom Error Responses

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Additional functionality allows webmasters to configure the response + of Apache to some error or problem.

+ +

Customizable responses can be defined to be activated in the event of + a server detected error or problem.

+ +

If a script crashes and produces a "500 Server Error" response, + then this response can be replaced with either some friendlier text or by + a redirection to another URL (local or external).

+
+ +
top
+
+

Behavior

+ + +

Old Behavior

+ + +

NCSA httpd 1.3 would return some boring old error/problem message + which would often be meaningless to the user, and would provide no + means of logging the symptoms which caused it.

+ + +

New Behavior

+ + +

The server can be asked to:

+ +
    +
  1. Display some other text, instead of the NCSA hard coded + messages, or
  2. + +
  3. redirect to a local URL, or
  4. + +
  5. redirect to an external URL.
  6. +
+ +

Redirecting to another URL can be useful, but only if some + information can be passed which can then be used to explain and/or log + the error/problem more clearly.

+ +

To achieve this, Apache will define new CGI-like environment + variables:

+ +

+ 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 +

+ +

Note the REDIRECT_ prefix.

+ +

At least REDIRECT_URL and + REDIRECT_QUERY_STRING will be passed to the + new URL (assuming it's a cgi-script or a cgi-include). The + other variables will exist only if they existed prior to + the error/problem. None of these will be + set if your ErrorDocument is an + external redirect (anything starting with a + scheme name like http:, even if it refers to the same host + as the server).

+ +
top
+
+

Configuration

+ + +

Use of ErrorDocument is enabled + for .htaccess files when the + AllowOverride is set accordingly.

+ +

Here are some examples...

+ +

+ 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 +

+ +

The syntax is,

+ +

+ ErrorDocument <3-digit-code> <action> +

+ +

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. An external URL to redirect to.
  4. + +
  5. A local URL to redirect to.
  6. +
+
top
+
+

Custom Error Responses and Redirects

+ + +

Apache's behavior to redirected URLs has been modified so + that additional environment variables are available to a + script/server-include.

+ +

Old behavior

+ + +

Standard CGI vars were made available to a script which + has been redirected to. No indication of where the + redirection came from was provided.

+ + +

New behavior

+ + +

A new batch of environment variables will be initialized + for use by a script which has been redirected to. Each new + variable will have the prefix REDIRECT_. + REDIRECT_ environment variables are created from + the CGI environment variables which existed prior to the + redirect, they are renamed with a REDIRECT_ + prefix, i.e., HTTP_USER_AGENT becomes + REDIRECT_HTTP_USER_AGENT. In addition to these + new variables, Apache will define REDIRECT_URL + and REDIRECT_STATUS to help the script trace its + origin. Both the original URL and the URL being redirected to + can be logged in the access log.

+ +

If the ErrorDocument specifies a local redirect to a CGI + script, the script should include a "Status:" + header field in its output in order to ensure the propagation + all the way back to the client of the error condition that + caused it to be invoked. For instance, a Perl ErrorDocument + script might include the following:

+ +

+ ...
+ print "Content-type: text/html\n";
+ printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
+ ... +

+ +

If the script is dedicated to handling a particular error + condition, such as 404 Not Found, it can + use the specific code and error text instead.

+ +

Note that the script must emit an appropriate + Status: header (such as 302 Found), if the + response contains a Location: header (in order to issue a + client side redirect). Otherwise the Location: header may + have no effect.

+ +
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html.es b/rubbos/app/apache2/manual/custom-error.html.es new file mode 100644 index 00000000..506957c4 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.es @@ -0,0 +1,223 @@ + + + +Respuestas de error personalizadas - Servidor HTTP Apache + + + + + +
<-
+

Respuestas de error personalizadas

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Apache ofrece la posibilidad de que los webmasters puedan + configurar las respuestas que muestra el servidor Apache cuando se + producen algunos errores o problemas.

+ +

Las respuestas personalizadas pueden definirse para activarse + en caso de que el servidor detecte un error o problema.

+ +

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 eleccin o por una redireccin a otra URL + (local o externa).

+
+ +
top
+
+

Comportamiento

+ + +

Comportamiento anterior

+ + +

NCSA httpd 1.3 devolva mensajes antiguos del error o + problema encontrado que con frecuencia no tenan + significado alguno para el usuario, y que no incluan en + los logs informacin que diera pistas sobre las causas de + lo sucedido.

+ + +

Comportamiento actual

+ + +

Se puede hacer que el servidor siga uno de los siguientes + comportamientos:

+ +
    +
  1. Desplegar un texto diferente, en lugar de los mensajes de + la NCSA, o
  2. + +
  3. redireccionar la peticin a una URL local, o
  4. + +
  5. redireccionar la peticin a una URL externa.
  6. +
+ +

Redireccionar a otra URL puede resultar de utilidad, pero + solo si con ello se puede tambin pasar alguna + informacin que pueda explicar el error o problema y/o + registrarlo en el log correspondiente ms claramente.

+ +

Para conseguir esto, Apache define ahora variables de entorno + similares a las de los 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 +

+ +

Tenga en cuenta el prefijo REDIRECT_.

+ +

Al menos REDIRECT_URL y + REDIRECT_QUERY_STRING se pasarn a la nueva + URL (asumiendo que es un cgi-script o un cgi-include). Las otras + variables existirn solo si existan antes de aparecer + el error o problema. Ninguna de estas variables + se crear si en la directiva ErrorDocument ha especificado una + redireccin externa (cualquier cosa que empiece + por un nombre de esquema del tipo http:, incluso si + se refiere al mismo servidor).

+ +
top
+
+

Configuracin

+ + +

El uso de ErrorDocument + est activado para los ficheros .htaccess cuando AllowOverride tiene el valor + adecuado.

+ +

Aqu hay algunos ejemplos ms...

+ +

+ 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 +

+ +

La sintaxis es,

+ +

+ ErrorDocument <3-digit-code> <action> +

+ +

donde action puede ser,

+ +
    +
  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 + muestran.
  2. + +
  3. Una URL local a la que se redireccionar la + peticin.
  4. + +
  5. Una URL externa a la que se redireccionar la + peticin.
  6. +
+
top
+
+

Mesajes de error personalizados y redirecciones

+ + +

El comportamiento de Apache en cuanto a las redirecciones ha + cambiado para que puedan usarse ms variables de entorno con + los script/server-include.

+ +

Antiguo comportamiento

+ + +

Las variables CGI estndar estaban disponibles para el + script al que se haca la redireccin. No se inclua + ninguna indicacin sobre la precedencia de la + redireccin.

+ + +

Nuevo comportamiento

+ + +

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_. + Las variables de entorno REDIRECT_ se crean a + partir de de las variables de entorno CGI que existen antes de + la redireccin, se les cambia el nombre + aadindoles el prefijo REDIRECT_, por + ejemplo, HTTP_USER_AGENT pasa a ser + REDIRECT_HTTP_USER_AGENT. Adems, 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 peticin pueden almacenarse en los logs de acceso.

+ +

Si ErrorDocument especifica una redireccin 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 condicin + de error que lo provoc. Por ejemplo, un script en Perl + para usar con ErrorDocument podra incluir lo + siguiente:

+ +

+ ...
+ print "Content-type: text/html\n";
+ printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
+ ... +

+ +

Si el script tiene como fin tratar una determinada + condicin de error, por ejemplo + 404 Not Found, se pueden usar los + cdigos de error y textos especficos 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 + redireccin que se interprete en el cliente). De otra + manera, la cabecera + Location: puede que no tenga efecto.

+ +
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html.fr b/rubbos/app/apache2/manual/custom-error.html.fr new file mode 100644 index 00000000..4bc86c26 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.fr @@ -0,0 +1,215 @@ + + + +Personnalisation des Messages d'Erreurs - Serveur Apache HTTP + + + + + +
<-
+

Personnalisation des Messages d'Erreurs

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Il est possible un administrateur Apache de configurer les rponses + d'Apache dans les cas o des erreurs ou problmes se prsentent.

+ +

Des rponses paramtrables peuvent tre dfinies pour tre actives au + cas o le serveur dtecterait une erreur ou un problme.

+ +

Quand un script plante et gnre une rponse "500 Server Error", sa + rponse peut tre remplace par un message plus convivial, ou par une + redirection vers une autre URL (locale, ou sur un autre serveur).

+
+ +
top
+
+

Fonctionnement

+ + +

Fonctionnement antrieur

+ + +

NCSA httpd 1.3 renvoyait un message d'erreur insipide qui ne + prsentait le plus souvent aucun sens ni l'utilisateur, ni + dans les journaux d'enregistrement sur des symptmes causant + le plantage.

+ + +

Fonctionnement des versions plus rcentes

+ + +

Le serveur peut tre paramtr pour :

+ +
    +
  1. Afficher un autre message que celui cod dans NCSA, ou bien
  2. + +
  3. procder une redirection sur une URL locale, ou bien
  4. + +
  5. procder une redirection vers un autre serveur.
  6. +
+ +

La redirection vers une autre URL peut tre utile, mais seulement + si des informations peuvent tre envoyes pour expliquer/enregistrer + l'erreur ou le problme plus clairement.

+ +

Pour y parvenir, Apache dfinit de nouvelles variables + d'environnement 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 +

+ +

Notez que le prfixe REDIRECT_ est prsent pour toutes + ces variables d'environnement.

+ +

Au minimum, REDIRECT_URL et + REDIRECT_QUERY_STRING seront passes la nouvelle + URL (en supposant qu'il s'agisse d'un script CGI ou d'un + include CGI). Les autres variables ne sont dfinies que si + elles existaient avant l'apparition du problme ou de l'erreur. + Aucune de ces variables ne sera + dfinie si votre directive ErrorDocument + entrane une redirection vers un serveur externe ; + tout ce qui commence par http: est considr comme + une redirection externe, y compris si cela pointe vers le + serveur local.

+ +
top
+
+

Configuration

+ + +

Il est possible d'utiliser la directive + ErrorDocument dans les fichiers + .htaccess si AllowOverride est + paramtre pour le permettre.

+ +

Voici quelques exemples :

+ +

+ 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 +

+ +

La syntaxe utiliser est :

+ +

+ ErrorDocument <code--3-chiffres> <action> +

+ +

o l'action peut dsigner :

+ +
    +
  1. Un message afficher. Le message doit tre prcd par + des guillemets ("). Tout ce qui suit ces guillemets est affich. + Notez que le prfixe (") n'est pas affich.
  2. + +
  3. Une URL vers un serveur externe, vers lequel la redirection + sera effectue.
  4. + +
  5. Une URL locale vers laquelle la redirection sera effectue.
  6. +
+
top
+
+

Messages d'Erreurs Personnaliss et Redirections

+ + +

Le fonctionnement d'Apache vis--vis des redirections a t + modifi afin que les nouvelles variables d'environnement soient + disponibles pour un script ou un server-include.

+ +

Fonctionnement antrieur

+ + +

Les variables CGI standard taient passes au script sur + lequel pointe la redirection. Aucune indication sur la + provenance de la redirection n'tait fournie.

+ + +

Fonctionnement pour les nouvelles versions

+ + +

Une srie de nouvelles variables d'environnement est + initialise pour tre passe au script sur lequel pointe + la redirection. Chacune de ces variables est munie du prfixe + REDIRECT_. Les variables d'environnement + REDIRECT_ sont cres partir des variables + d'environnement "normales", telles qu'existant avant la + redirection, mais simplement renommes au moyen du prfixe + REDIRECT_ ; ainsi par exemple HTTP_USER_AGENT + devient REDIRECT_HTTP_USER_AGENT. En plus de ces + nouvelles variables, Apache dfinit REDIRECT_URL + et REDIRECT_status pour aider le script + comprendre d'o il a t appel. L'URL d'origine et l'URL + redirige sont toutes deux ajoutes dans le journal "access".

+ +

Si ErrorDocument prcise une redirection + locale vers un script CGI, ce script devrait inclure un + champ "Status:" dans son en-tte de transmission + afin d'assurer que le client reoive bien le code d'erreur et + puisse comprendre ce qui l'a caus. Par exemple, un script + Perl ErrorDocument pourrait inclure quelque chose comme :

+ +

+ ...
+ print "Content-type: text/html\n";
+ printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
+ ... +

+ +

Un script ddi la gestion d'une erreur donne, + telle que 404 Not Found, peut bien sr + utiliser le code spcifique d'erreur et le texte associ.

+ +

Notez que le script doit envoyer l'en-tte + Status: approprie (comme par exemple + 302 Found), si la rponse contient un en-tte + Location: (pour gnrer la redirection cot client). + Sans cet en-tte Status:, Location: n'aura + pas d'effet.

+ +
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html.ja.utf8 b/rubbos/app/apache2/manual/custom-error.html.ja.utf8 new file mode 100644 index 00000000..8062e472 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.ja.utf8 @@ -0,0 +1,201 @@ + + + +カスタムエラーレスポンス - Apache HTTP サーバ + + + + + +
<-
+

カスタムエラーレスポンス

+
+

Available Languages:  en  | + es  | + fr  | + 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_URLREDIRECT_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 のような + 特定のエラーコンディションを扱うためだけに使われる場合は、 + 代わりに特定のコードとエラーテキストを使用することができます。

+ +
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html.ko.euc-kr b/rubbos/app/apache2/manual/custom-error.html.ko.euc-kr new file mode 100644 index 00000000..7d20a0a9 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.ko.euc-kr @@ -0,0 +1,202 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

ʹ ߻ ġ + ִ.

+ +

߰ + ִ.

+ +

ũƮ "500 Server Error" ڿ + ģ ϰų ٸ ( Ʈ ܺ Ʈ) + URL ̷ ִ.

+
+
+
top
+
+

ൿ

+ + +

ൿ

+ + +

NCSA httpd 1.3 ڿ ǹϰ + ´. ߻ α׿ .

+ + +

ο ൿ

+ + +

ִ:

+ +
    +
  1. NCSA ٸ ְų
  2. + +
  3. Ʈ URL ̷ϰų
  4. + +
  5. ܺ Ʈ URL ̷Ѵ.
  6. +
+ +

ٸ Ʈ URL ̷ϴ , + ϰų αϴµ ʿ Ϻθ + ޵ȴ.

+ +

ϱ ġ 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 (cgi-script + cgi-include) URL Ѱ. ٸ + ߻ϱ (; ̸ REDIRECT_ + ȯ溯) 쿡 ִ. + ErrorDocument + ܺη ( http: + Ŵ(scheme) Ѵٸ) ̷Ѵٸ +  ͵ ʴ´.

+ +
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
+
+

̷

+ + +

URL ̷ϴ ġ ൿ + ũƮ/server-include ȯ溯 Ѱֵ Ǿ.

+ +

ൿ

+ + +

̷ǵǴ ũƮ ǥ CGI Ѿ. + 𿡼 ̷ Ͼ .

+ + +

ο ൿ

+ + +

̷ǵ ũƮ ο ȯ溯 + ִ. տ REDIRECT_ پִ. + REDIRECT_ ȯ溯 CGI ȯ溯 + տ REDIRECT_ ٿ . + , HTTP_USER_AGENT + REDIRECT_HTTP_USER_AGENT Ǿ. ̷ + ߰ ũƮ URL ˵ ġ + REDIRECT_URL REDIRECT_STATUS + Ѵ. URL ̷ǵ URL α׿ + ִ.

+ +

ErrorDocument ִ CGI ũƮ + ̷Ѵٸ, ũƮ Ŭ̾Ʈ Ȳ + Ȯ ϱ ¿ "Status:" + ʵ带 ؾ Ѵ. , Perl ۼ ErrorDocument + ũƮ :

+ +

+ ...
+ print "Content-type: text/html\n";
+ printf "Status: %s Condition Intercepted\n", $ENV{"REDIRECT_STATUS"};
+ ... +

+ +

404 Not Found Ư + Ȳ ũƮ, (; ) + Ư ڵ ִ.

+ +

(Ŭ̾Ʈ ̷ ûϱ) 信 + Location: Ѵٸ, ũƮ + ݵ (302 Found ) + Status: ؾ ϶. ׷ + Location: ƹ ҿ ִ.

+ +
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/custom-error.html.tr.utf8 b/rubbos/app/apache2/manual/custom-error.html.tr.utf8 new file mode 100644 index 00000000..eeb4a236 --- /dev/null +++ b/rubbos/app/apache2/manual/custom-error.html.tr.utf8 @@ -0,0 +1,205 @@ + + + +Hata Yanıtlarının Kişiselleştirilmesi - Apache HTTP Sunucusu + + + + + +
<-
+

Hata Yanıtlarının Kişiselleştirilmesi

+
+

Mevcut Diller:  en  | + es  | + fr  | + 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. Metnin başına bir tırnak imi (") konmalıdır. (Bu tırnak öneki çıktıda gösterilmez.)
  • + +
  • 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  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/API.html b/rubbos/app/apache2/manual/developer/API.html new file mode 100644 index 00000000..b8ea3a1c --- /dev/null +++ b/rubbos/app/apache2/manual/developer/API.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/API.html.en b/rubbos/app/apache2/manual/developer/API.html.en new file mode 100644 index 00000000..db62a134 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/API.html.en @@ -0,0 +1,1223 @@ + + + +Apache 1.3 API notes - Apache HTTP Server + + + + + +
<-
+

Apache 1.3 API notes

+
+

Available Languages:  en 

+
+ +

Warning

+

This document has not been updated to take into account changes made + in the 2.0 version of the Apache HTTP Server. Some of the information may + still be relevant, but please use it with care.

+
+ +

These are some notes on the Apache API and the data structures you have + to deal with, etc. They are not yet nearly complete, but hopefully, + they will help you get your bearings. Keep in mind that the API is still + subject to change as we gain experience with it. (See the TODO file for + what might be coming). However, it will be easy to adapt modules + to any changes that are made. (We have more modules to adapt than you + do).

+ +

A few notes on general pedagogical style here. In the interest of + conciseness, all structure declarations here are incomplete -- the real + ones have more slots that I'm not telling you about. For the most part, + these are reserved to one component of the server core or another, and + should be altered by modules with caution. However, in some cases, they + really are things I just haven't gotten around to yet. Welcome to the + bleeding edge.

+ +

Finally, here's an outline, to give you some bare idea of what's coming + up, and in what order:

+ + +
+ +
top
+
+

Basic concepts

+

We begin with an overview of the basic concepts behind the API, and how + they are manifested in the code.

+ +

Handlers, Modules, and Requests

+

Apache breaks down request handling into a series of steps, more or + less the same way the Netscape server API does (although this API has a + few more stages than NetSite does, as hooks for stuff I thought might be + useful in the future). These are:

+ +
    +
  • URI -> Filename translation
  • +
  • Auth ID checking [is the user who they say they are?]
  • +
  • Auth access checking [is the user authorized here?]
  • +
  • Access checking other than auth
  • +
  • Determining MIME type of the object requested
  • +
  • `Fixups' -- there aren't any of these yet, but the phase is intended + as a hook for possible extensions like SetEnv, which don't really fit well elsewhere.
  • +
  • Actually sending a response back to the client.
  • +
  • Logging the request
  • +
+ +

These phases are handled by looking at each of a succession of + modules, looking to see if each of them has a handler for the + phase, and attempting invoking it if so. The handler can typically do one + of three things:

+ +
    +
  • Handle the request, and indicate that it has done so by + returning the magic constant OK.
  • + +
  • Decline to handle the request, by returning the magic integer + constant DECLINED. In this case, the server behaves in all + respects as if the handler simply hadn't been there.
  • + +
  • Signal an error, by returning one of the HTTP error codes. This + terminates normal handling of the request, although an ErrorDocument may + be invoked to try to mop up, and it will be logged in any case.
  • +
+ +

Most phases are terminated by the first module that handles them; + however, for logging, `fixups', and non-access authentication checking, + all handlers always run (barring an error). Also, the response phase is + unique in that modules may declare multiple handlers for it, via a + dispatch table keyed on the MIME type of the requested object. Modules may + declare a response-phase handler which can handle any request, + by giving it the key */* (i.e., a wildcard MIME type + specification). However, wildcard handlers are only invoked if the server + has already tried and failed to find a more specific response handler for + the MIME type of the requested object (either none existed, or they all + declined).

+ +

The handlers themselves are functions of one argument (a + request_rec structure. vide infra), which returns an integer, + as above.

+ + +

A brief tour of a module

+

At this point, we need to explain the structure of a module. Our + candidate will be one of the messier ones, the CGI module -- this handles + both CGI scripts and the ScriptAlias config file command. It's actually a great deal + more complicated than most modules, but if we're going to have only one + example, it might as well be the one with its fingers in every place.

+ +

Let's begin with handlers. In order to handle the CGI scripts, the + module declares a response handler for them. Because of ScriptAlias, it also has handlers for the + name translation phase (to recognize ScriptAliased URIs), the type-checking phase (any + ScriptAliased request is typed + as a CGI script).

+ +

The module needs to maintain some per (virtual) server information, + namely, the ScriptAliases in + effect; the module structure therefore contains pointers to a functions + which builds these structures, and to another which combines two of them + (in case the main server and a virtual server both have ScriptAliases declared).

+ +

Finally, this module contains code to handle the ScriptAlias command itself. This particular + module only declares one command, but there could be more, so modules have + command tables which declare their commands, and describe where + they are permitted, and how they are to be invoked.

+ +

A final note on the declared types of the arguments of some of these + commands: a pool is a pointer to a resource pool + structure; these are used by the server to keep track of the memory which + has been allocated, files opened, etc., either to service a + particular request, or to handle the process of configuring itself. That + way, when the request is over (or, for the configuration pool, when the + server is restarting), the memory can be freed, and the files closed, + en masse, without anyone having to write explicit code to track + them all down and dispose of them. Also, a cmd_parms + structure contains various information about the config file being read, + and other status information, which is sometimes of use to the function + which processes a config-file command (such as ScriptAlias). With no further ado, the + module itself:

+ +

+ /* Declarations of handlers. */
+
+ int translate_scriptalias (request_rec *);
+ int type_scriptalias (request_rec *);
+ int cgi_handler (request_rec *);
+
+ /* Subsidiary dispatch table for response-phase
+  * handlers, by MIME type */
+
+ handler_rec cgi_handlers[] = {
+ + { "application/x-httpd-cgi", cgi_handler },
+ { NULL }
+
+ };
+
+ /* Declarations of routines to manipulate the
+  * module's configuration info. Note that these are
+  * returned, and passed in, as void *'s; the server
+  * core keeps track of them, but it doesn't, and can't,
+  * know their internal structure.
+  */
+
+ void *make_cgi_server_config (pool *);
+ void *merge_cgi_server_config (pool *, void *, void *);
+
+ /* Declarations of routines to handle config-file commands */
+
+ extern char *script_alias(cmd_parms *, void *per_dir_config, char *fake, + char *real);
+
+ command_rec cgi_cmds[] = {
+ + { "ScriptAlias", script_alias, NULL, RSRC_CONF, TAKE2,
+ "a fakename and a realname"},
+ { NULL }
+
+ };
+
+ module cgi_module = { +

  STANDARD_MODULE_STUFF,
+  NULL,                     /* initializer */
+  NULL,                     /* dir config creator */
+  NULL,                     /* dir merger */
+  make_cgi_server_config,   /* server config */
+  merge_cgi_server_config,  /* merge server config */
+  cgi_cmds,                 /* command table */
+  cgi_handlers,             /* handlers */
+  translate_scriptalias,    /* filename translation */
+  NULL,                     /* check_user_id */
+  NULL,                     /* check auth */
+  NULL,                     /* check access */
+  type_scriptalias,         /* type_checker */
+  NULL,                     /* fixups */
+  NULL,                     /* logger */
+  NULL                      /* header parser */
+};
+ +
top
+
+

How handlers work

+

The sole argument to handlers is a request_rec structure. + This structure describes a particular request which has been made to the + server, on behalf of a client. In most cases, each connection to the + client generates only one request_rec structure.

+ +

A brief tour of the request_rec

+

The request_rec contains pointers to a resource pool + which will be cleared when the server is finished handling the request; + to structures containing per-server and per-connection information, and + most importantly, information on the request itself.

+ +

The most important such information is a small set of character strings + describing attributes of the object being requested, including its URI, + filename, content-type and content-encoding (these being filled in by the + translation and type-check handlers which handle the request, + respectively).

+ +

Other commonly used data items are tables giving the MIME headers on + the client's original request, MIME headers to be sent back with the + response (which modules can add to at will), and environment variables for + any subprocesses which are spawned off in the course of servicing the + request. These tables are manipulated using the ap_table_get + and ap_table_set routines.

+ +
+

Note that the Content-type header value cannot + be set by module content-handlers using the ap_table_*() + routines. Rather, it is set by pointing the content_type + field in the request_rec structure to an appropriate + string. e.g.,

+

+ r->content_type = "text/html"; +

+
+ +

Finally, there are pointers to two data structures which, in turn, + point to per-module configuration structures. Specifically, these hold + pointers to the data structures which the module has built to describe + the way it has been configured to operate in a given directory (via + .htaccess files or <Directory> sections), for private data it has built in the + course of servicing the request (so modules' handlers for one phase can + pass `notes' to their handlers for other phases). There is another such + configuration vector in the server_rec data structure pointed + to by the request_rec, which contains per (virtual) server + configuration data.

+ +

Here is an abridged declaration, giving the fields most commonly + used:

+ +

+ struct request_rec {
+
+ pool *pool;
+ conn_rec *connection;
+ server_rec *server;
+
+ /* What object is being requested */
+
+ char *uri;
+ char *filename;
+ char *path_info; +

char *args;           /* QUERY_ARGS, if any */
+struct stat finfo;    /* Set by server core;
+                       * st_mode set to zero if no such file */

+ char *content_type;
+ char *content_encoding;
+
+ /* MIME header environments, in and out. Also,
+  * an array containing environment variables to
+  * be passed to subprocesses, so people can write
+  * modules to add to that environment.
+  *
+  * The difference between headers_out and
+  * err_headers_out is that the latter are printed
+  * even on error, and persist across internal
+  * redirects (so the headers printed for
+  * ErrorDocument handlers will have + them).
+  */
+
+ table *headers_in;
+ table *headers_out;
+ table *err_headers_out;
+ table *subprocess_env;
+
+ /* Info about the request itself... */
+
+

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. */
+
+

+ /* Info for logging */
+
+ char *the_request;
+ int bytes_sent;
+
+ /* A flag which modules can set, to indicate that
+  * the data being returned is volatile, and clients
+  * should be told not to cache it.
+  */
+
+ int no_cache;
+
+ /* Various other config info which may change
+  * with .htaccess files
+  * These are config vectors, with one void*
+  * pointer for each module (the thing pointed
+  * to being the module's business).
+  */
+
+

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

+ }; +

+ + +

Where request_rec structures come from

+

Most request_rec structures are built by reading an HTTP + request from a client, and filling in the fields. However, there are a + few exceptions:

+ +
    +
  • If the request is to an imagemap, a type map (i.e., a + *.var file), or a CGI script which returned a local + `Location:', then the resource which the user requested is going to be + ultimately located by some URI other than what the client originally + supplied. In this case, the server does an internal redirect, + constructing a new request_rec for the new URI, and + processing it almost exactly as if the client had requested the new URI + directly.
  • + +
  • If some handler signaled an error, and an ErrorDocument + is in scope, the same internal redirect machinery comes into play.
  • + +
  • Finally, a handler occasionally needs to investigate `what would + happen if' some other request were run. For instance, the directory + indexing module needs to know what MIME type would be assigned to a + request for each directory entry, in order to figure out what icon to + use.

    + +

    Such handlers can construct a sub-request, using the + functions ap_sub_req_lookup_file, + ap_sub_req_lookup_uri, and ap_sub_req_method_uri; + these construct a new request_rec structure and processes it + as you would expect, up to but not including the point of actually sending + a response. (These functions skip over the access checks if the + sub-request is for a file in the same directory as the original + request).

    + +

    (Server-side includes work by building sub-requests and then actually + invoking the response handler for them, via the function + ap_run_sub_req).

    +
  • +
+ + +

Handling requests, declining, and returning + error codes

+

As discussed above, each handler, when invoked to handle a particular + request_rec, has to return an int to indicate + what happened. That can either be

+ +
    +
  • OK -- the request was handled successfully. This may or + may not terminate the phase.
  • + +
  • DECLINED -- no erroneous condition exists, but the module + declines to handle the phase; the server tries to find another.
  • + +
  • an HTTP error code, which aborts handling of the request.
  • +
+ +

Note that if the error code returned is REDIRECT, then + the module should put a Location in the request's + headers_out, to indicate where the client should be + redirected to.

+ + +

Special considerations for response + handlers

+

Handlers for most phases do their work by simply setting a few fields + in the request_rec structure (or, in the case of access + checkers, simply by returning the correct error code). However, response + handlers have to actually send a request back to the client.

+ +

They should begin by sending an HTTP response header, using the + function ap_send_http_header. (You don't have to do anything + special to skip sending the header for HTTP/0.9 requests; the function + figures out on its own that it shouldn't do anything). If the request is + marked header_only, that's all they should do; they should + return after that, without attempting any further output.

+ +

Otherwise, they should produce a request body which responds to the + client as appropriate. The primitives for this are ap_rputc + and ap_rprintf, for internally generated output, and + ap_send_fd, to copy the contents of some FILE * + straight to the client.

+ +

At this point, you should more or less understand the following piece + of code, which is the handler which handles GET requests + which have no more specific handler; it also shows how conditional + GETs can be handled, if it's desirable to do so in a + particular response handler -- ap_set_last_modified checks + against the If-modified-since value supplied by the client, + if any, and returns an appropriate code (which will, if nonzero, be + USE_LOCAL_COPY). No similar considerations apply for + ap_set_content_length, but it returns an error code for + symmetry.

+ +

+ int default_handler (request_rec *r)
+ {
+ + int errstatus;
+ FILE *f;
+
+ if (r->method_number != M_GET) return DECLINED;
+ if (r->finfo.st_mode == 0) return NOT_FOUND;
+
+ if ((errstatus = ap_set_content_length (r, r->finfo.st_size))
+     || + (errstatus = ap_set_last_modified (r, r->finfo.st_mtime)))
+ return errstatus;
+
+ f = fopen (r->filename, "r");
+
+ if (f == NULL) {
+ + log_reason("file permissions deny server access", r->filename, r);
+ return FORBIDDEN;
+
+ }
+
+ register_timeout ("send", r);
+ ap_send_http_header (r);
+
+ if (!r->header_only) send_fd (f, r);
+ ap_pfclose (r->pool, f);
+ return OK;
+
+ } +

+ +

Finally, if all of this is too much of a challenge, there are a few + ways out of it. First off, as shown above, a response handler which has + not yet produced any output can simply return an error code, in which + case the server will automatically produce an error response. Secondly, + it can punt to some other handler by invoking + ap_internal_redirect, which is how the internal redirection + machinery discussed above is invoked. A response handler which has + internally redirected should always return OK.

+ +

(Invoking ap_internal_redirect from handlers which are + not response handlers will lead to serious confusion).

+ + +

Special considerations for authentication + handlers

+

Stuff that should be discussed here in detail:

+ +
    +
  • Authentication-phase handlers not invoked unless auth is + configured for the directory.
  • + +
  • Common auth configuration stored in the core per-dir + configuration; it has accessors ap_auth_type, + ap_auth_name, and ap_requires.
  • + +
  • Common routines, to handle the protocol end of things, at + least for HTTP basic authentication + (ap_get_basic_auth_pw, which sets the + connection->user structure field + automatically, and ap_note_basic_auth_failure, + which arranges for the proper WWW-Authenticate: + header to be sent back).
  • +
+ + +

Special considerations for logging + handlers

+

When a request has internally redirected, there is the question of + what to log. Apache handles this by bundling the entire chain of redirects + into a list of request_rec structures which are threaded + through the r->prev and r->next pointers. + The request_rec which is passed to the logging handlers in + such cases is the one which was originally built for the initial request + from the client; note that the bytes_sent field will only be + correct in the last request in the chain (the one for which a response was + actually sent).

+ +
top
+
+

Resource allocation and resource pools

+

One of the problems of writing and designing a server-pool server is + that of preventing leakage, that is, allocating resources (memory, open + files, etc.), without subsequently releasing them. The resource + pool machinery is designed to make it easy to prevent this from happening, + by allowing resource to be allocated in such a way that they are + automatically released when the server is done with them.

+ +

The way this works is as follows: the memory which is allocated, file + opened, etc., to deal with a particular request are tied to a + resource pool which is allocated for the request. The pool is a + data structure which itself tracks the resources in question.

+ +

When the request has been processed, the pool is cleared. At + that point, all the memory associated with it is released for reuse, all + files associated with it are closed, and any other clean-up functions which + are associated with the pool are run. When this is over, we can be confident + that all the resource tied to the pool have been released, and that none of + them have leaked.

+ +

Server restarts, and allocation of memory and resources for per-server + configuration, are handled in a similar way. There is a configuration + pool, which keeps track of resources which were allocated while reading + the server configuration files, and handling the commands therein (for + instance, the memory that was allocated for per-server module configuration, + log files and other files that were opened, and so forth). When the server + restarts, and has to reread the configuration files, the configuration pool + is cleared, and so the memory and file descriptors which were taken up by + reading them the last time are made available for reuse.

+ +

It should be noted that use of the pool machinery isn't generally + obligatory, except for situations like logging handlers, where you really + need to register cleanups to make sure that the log file gets closed when + the server restarts (this is most easily done by using the function ap_pfopen, which also arranges for the + underlying file descriptor to be closed before any child processes, such as + for CGI scripts, are execed), or in case you are using the + timeout machinery (which isn't yet even documented here). However, there are + two benefits to using it: resources allocated to a pool never leak (even if + you allocate a scratch string, and just forget about it); also, for memory + allocation, ap_palloc is generally faster than + malloc.

+ +

We begin here by describing how memory is allocated to pools, and then + discuss how other resources are tracked by the resource pool machinery.

+ +

Allocation of memory in pools

+

Memory is allocated to pools by calling the function + ap_palloc, which takes two arguments, one being a pointer to + a resource pool structure, and the other being the amount of memory to + allocate (in chars). Within handlers for handling requests, + the most common way of getting a resource pool structure is by looking at + the pool slot of the relevant request_rec; hence + the repeated appearance of the following idiom in module code:

+ +

+ int my_handler(request_rec *r)
+ {
+ + struct my_structure *foo;
+ ...
+
+ foo = (foo *)ap_palloc (r->pool, sizeof(my_structure));
+
+ } +

+ +

Note that there is no ap_pfree -- + ap_palloced memory is freed only when the associated resource + pool is cleared. This means that ap_palloc does not have to + do as much accounting as malloc(); all it does in the typical + case is to round up the size, bump a pointer, and do a range check.

+ +

(It also raises the possibility that heavy use of + ap_palloc could cause a server process to grow excessively + large. There are two ways to deal with this, which are dealt with below; + briefly, you can use malloc, and try to be sure that all of + the memory gets explicitly freed, or you can allocate a + sub-pool of the main pool, allocate your memory in the sub-pool, and clear + it out periodically. The latter technique is discussed in the section + on sub-pools below, and is used in the directory-indexing code, in order + to avoid excessive storage allocation when listing directories with + thousands of files).

+ + +

Allocating initialized memory

+

There are functions which allocate initialized memory, and are + frequently useful. The function ap_pcalloc has the same + interface as ap_palloc, but clears out the memory it + allocates before it returns it. The function ap_pstrdup + takes a resource pool and a char * as arguments, and + allocates memory for a copy of the string the pointer points to, returning + a pointer to the copy. Finally ap_pstrcat is a varargs-style + function, which takes a pointer to a resource pool, and at least two + char * arguments, the last of which must be + NULL. It allocates enough memory to fit copies of each of + the strings, as a unit; for instance:

+ +

+ ap_pstrcat (r->pool, "foo", "/", "bar", NULL); +

+ +

returns a pointer to 8 bytes worth of memory, initialized to + "foo/bar".

+ + +

Commonly-used pools in the Apache Web + server

+

A pool is really defined by its lifetime more than anything else. + There are some static pools in http_main which are passed to various + non-http_main functions as arguments at opportune times. Here they + are:

+ +
+
permanent_pool
+
never passed to anything else, this is the ancestor of all pools
+ +
pconf
+
+
    +
  • subpool of permanent_pool
  • + +
  • created at the beginning of a config "cycle"; exists + until the server is terminated or restarts; passed to all + config-time routines, either via cmd->pool, or as the + "pool *p" argument on those which don't take pools
  • + +
  • passed to the module init() functions
  • +
+
+ +
ptemp
+
+
    +
  • sorry I lie, this pool isn't called this currently in + 1.3, I renamed it this in my pthreads development. I'm + referring to the use of ptrans in the parent... contrast + this with the later definition of ptrans in the + child.
  • + +
  • subpool of permanent_pool
  • + +
  • created at the beginning of a config "cycle"; exists + until the end of config parsing; passed to config-time + routines via cmd->temp_pool. Somewhat of a + "bastard child" because it isn't available everywhere. + Used for temporary scratch space which may be needed by + some config routines but which is deleted at the end of + config.
  • +
+
+ +
pchild
+
+
    +
  • subpool of permanent_pool
  • + +
  • created when a child is spawned (or a thread is + created); lives until that child (thread) is + destroyed
  • + +
  • passed to the module child_init functions
  • + +
  • destruction happens right after the child_exit + functions are called... (which may explain why I think + child_exit is redundant and unneeded)
  • +
+
+ +
ptrans
+
+
    +
  • should be a subpool of pchild, but currently is a + subpool of permanent_pool, see above
  • + +
  • cleared by the child before going into the accept() + loop to receive a connection
  • + +
  • used as connection->pool
  • +
+
+ +
r->pool
+
+
    +
  • for the main request this is a subpool of + connection->pool; for subrequests it is a subpool of + the parent request's pool.
  • + +
  • exists until the end of the request (i.e., + ap_destroy_sub_req, or in child_main after + process_request has finished)
  • + +
  • note that r itself is allocated from r->pool; + i.e., r->pool is first created and then r is + the first thing palloc()d from it
  • +
+
+
+ +

For almost everything folks do, r->pool is the pool to + use. But you can see how other lifetimes, such as pchild, are useful to + some modules... such as modules that need to open a database connection + once per child, and wish to clean it up when the child dies.

+ +

You can also see how some bugs have manifested themself, such as + setting connection->user to a value from + r->pool -- in this case connection exists for the + lifetime of ptrans, which is longer than + r->pool (especially if r->pool is a + subrequest!). So the correct thing to do is to allocate from + connection->pool.

+ +

And there was another interesting bug in mod_include + / mod_cgi. You'll see in those that they do this test + to decide if they should use r->pool or + r->main->pool. In this case the resource that they are + registering for cleanup is a child process. If it were registered in + r->pool, then the code would wait() for the + child when the subrequest finishes. With mod_include this + could be any old #include, and the delay can be up to 3 + seconds... and happened quite frequently. Instead the subprocess is + registered in r->main->pool which causes it to be + cleaned up when the entire request is done -- i.e., after the + output has been sent to the client and logging has happened.

+ + +

Tracking open files, etc.

+

As indicated above, resource pools are also used to track other sorts + of resources besides memory. The most common are open files. The routine + which is typically used for this is ap_pfopen, which takes a + resource pool and two strings as arguments; the strings are the same as + the typical arguments to fopen, e.g.,

+ +

+ ...
+ FILE *f = ap_pfopen (r->pool, r->filename, "r");
+
+ if (f == NULL) { ... } else { ... }
+

+ +

There is also a ap_popenf routine, which parallels the + lower-level open system call. Both of these routines arrange + for the file to be closed when the resource pool in question is + cleared.

+ +

Unlike the case for memory, there are functions to close files + allocated with ap_pfopen, and ap_popenf, namely + ap_pfclose and ap_pclosef. (This is because, on + many systems, the number of files which a single process can have open is + quite limited). It is important to use these functions to close files + allocated with ap_pfopen and ap_popenf, since to + do otherwise could cause fatal errors on systems such as Linux, which + react badly if the same FILE* is closed more than once.

+ +

(Using the close functions is not mandatory, since the + file will eventually be closed regardless, but you should consider it in + cases where your module is opening, or could open, a lot of files).

+ + +

Other sorts of resources -- cleanup functions

+

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: + clear_pool(a) recursively calls destroy_pool() + on all subpools of a; then calls all the cleanups for + a; then releases all the memory for a. + destroy_pool(a) calls clear_pool(a) and then + releases the pool structure itself. i.e., + clear_pool(a) doesn't delete a, it just frees + up all the resources and you can start using it again immediately.

+ + +

Fine control -- creating and dealing with sub-pools, with + a note on sub-requests

+

On rare occasions, too-free use of ap_palloc() and the + associated primitives may result in undesirably profligate resource + allocation. You can deal with such a case by creating a sub-pool, + allocating within the sub-pool rather than the main pool, and clearing or + destroying the sub-pool, which releases the resources which were + associated with it. (This really is a rare situation; the only + case in which it comes up in the standard module set is in case of listing + directories, and then only with very large directories. + Unnecessary use of the primitives discussed here can hair up your code + quite a bit, with very little gain).

+ +

The primitive for creating a sub-pool is ap_make_sub_pool, + which takes another pool (the parent pool) as an argument. When the main + pool is cleared, the sub-pool will be destroyed. The sub-pool may also be + cleared or destroyed at any time, by calling the functions + ap_clear_pool and ap_destroy_pool, respectively. + (The difference is that ap_clear_pool frees resources + associated with the pool, while ap_destroy_pool also + deallocates the pool itself. In the former case, you can allocate new + resources within the pool, and clear it again, and so forth; in the + latter case, it is simply gone).

+ +

One final note -- sub-requests have their own resource pools, which are + sub-pools of the resource pool for the main request. The polite way to + reclaim the resources associated with a sub request which you have + allocated (using the ap_sub_req_... functions) is + ap_destroy_sub_req, which frees the resource pool. Before + calling this function, be sure to copy anything that you care about which + might be allocated in the sub-request's resource pool into someplace a + little less volatile (for instance, the filename in its + request_rec structure).

+ +

(Again, under most circumstances, you shouldn't feel obliged to call + this function; only 2K of memory or so are allocated for a typical sub + request, and it will be freed anyway when the main request pool is + cleared. It is only when you are allocating many, many sub-requests for a + single main request that you should seriously consider the + ap_destroy_... functions).

+ +
top
+
+

Configuration, commands and the like

+

One of the design goals for this server was to maintain external + compatibility with the NCSA 1.3 server --- that is, to read the same + configuration files, to process all the directives therein correctly, and + in general to be a drop-in replacement for NCSA. On the other hand, another + design goal was to move as much of the server's functionality into modules + which have as little as possible to do with the monolithic server core. The + only way to reconcile these goals is to move the handling of most commands + from the central server into the modules.

+ +

However, just giving the modules command tables is not enough to divorce + them completely from the server core. The server has to remember the + commands in order to act on them later. That involves maintaining data which + is private to the modules, and which can be either per-server, or + per-directory. Most things are per-directory, including in particular access + control and authorization information, but also information on how to + determine file types from suffixes, which can be modified by + AddType and DefaultType directives, and so forth. In general, + the governing philosophy is that anything which can be made + configurable by directory should be; per-server information is generally + used in the standard set of modules for information like + Aliases and Redirects which come into play before the + request is tied to a particular place in the underlying file system.

+ +

Another requirement for emulating the NCSA server is being able to handle + the per-directory configuration files, generally called + .htaccess files, though even in the NCSA server they can + contain directives which have nothing at all to do with access control. + Accordingly, after URI -> filename translation, but before performing any + other phase, the server walks down the directory hierarchy of the underlying + filesystem, following the translated pathname, to read any + .htaccess files which might be present. The information which + is read in then has to be merged with the applicable information + from the server's own config files (either from the <Directory> sections in + access.conf, or from defaults in srm.conf, which + actually behaves for most purposes almost exactly like <Directory + />).

+ +

Finally, after having served a request which involved reading + .htaccess files, we need to discard the storage allocated for + handling them. That is solved the same way it is solved wherever else + similar problems come up, by tying those structures to the per-transaction + resource pool.

+ +

Per-directory configuration structures

+

Let's look out how all of this plays out in mod_mime.c, + which defines the file typing handler which emulates the NCSA server's + behavior of determining file types from suffixes. What we'll be looking + at, here, is the code which implements the AddType and AddEncoding commands. These commands can appear in + .htaccess files, so they must be handled in the module's + private per-directory data, which in fact, consists of two separate + tables for MIME types and encoding information, and is declared as + follows:

+ +
typedef struct {
+    table *forced_types;      /* Additional AddTyped stuff */
+    table *encoding_types;    /* Added with AddEncoding... */
+} mime_dir_config;
+ +

When the server is reading a configuration file, or <Directory> section, which includes + one of the MIME module's commands, it needs to create a + mime_dir_config structure, so those commands have something + to act on. It does this by invoking the function it finds in the module's + `create per-dir config slot', with two arguments: the name of the + directory to which this configuration information applies (or + NULL for srm.conf), and a pointer to a + resource pool in which the allocation should happen.

+ +

(If we are reading a .htaccess file, that resource pool + is the per-request resource pool for the request; otherwise it is a + resource pool which is used for configuration data, and cleared on + restarts. Either way, it is important for the structure being created to + vanish when the pool is cleared, by registering a cleanup on the pool if + necessary).

+ +

For the MIME module, the per-dir config creation function just + ap_pallocs the structure above, and a creates a couple of + tables to fill it. That looks like this:

+ +

+ void *create_mime_dir_config (pool *p, char *dummy)
+ {
+ + mime_dir_config *new =
+ + (mime_dir_config *) ap_palloc (p, sizeof(mime_dir_config));
+
+
+ new->forced_types = ap_make_table (p, 4);
+ new->encoding_types = ap_make_table (p, 4);
+
+ return new;
+
+ } +

+ +

Now, suppose we've just read in a .htaccess file. We + already have the per-directory configuration structure for the next + directory up in the hierarchy. If the .htaccess file we just + read in didn't have any AddType + or AddEncoding commands, its + per-directory config structure for the MIME module is still valid, and we + can just use it. Otherwise, we need to merge the two structures + somehow.

+ +

To do that, the server invokes the module's per-directory config merge + function, if one is present. That function takes three arguments: the two + structures being merged, and a resource pool in which to allocate the + result. For the MIME module, all that needs to be done is overlay the + tables from the new per-directory config structure with those from the + parent:

+ +

+ void *merge_mime_dir_configs (pool *p, void *parent_dirv, void *subdirv)
+ {
+ + mime_dir_config *parent_dir = (mime_dir_config *)parent_dirv;
+ mime_dir_config *subdir = (mime_dir_config *)subdirv;
+ mime_dir_config *new =
+ + (mime_dir_config *)ap_palloc (p, sizeof(mime_dir_config));
+
+
+ new->forced_types = ap_overlay_tables (p, subdir->forced_types,
+ + parent_dir->forced_types);
+
+ new->encoding_types = ap_overlay_tables (p, subdir->encoding_types,
+ + parent_dir->encoding_types);
+
+
+ return new;
+
+ } +

+ +

As a note -- if there is no per-directory merge function present, the + server will just use the subdirectory's configuration info, and ignore + the parent's. For some modules, that works just fine (e.g., for + the includes module, whose per-directory configuration information + consists solely of the state of the XBITHACK), and for those + modules, you can just not declare one, and leave the corresponding + structure slot in the module itself NULL.

+ + +

Command handling

+

Now that we have these structures, we need to be able to figure out how + to fill them. That involves processing the actual AddType and AddEncoding commands. To find commands, the server looks in + the module's command table. That table contains information on how many + arguments the commands take, and in what formats, where it is permitted, + and so forth. That information is sufficient to allow the server to invoke + most command-handling functions with pre-parsed arguments. Without further + ado, let's look at the AddType + command handler, which looks like this (the AddEncoding command looks basically the same, and won't be + shown here):

+ +

+ char *add_type(cmd_parms *cmd, mime_dir_config *m, char *ct, char *ext)
+ {
+ + if (*ext == '.') ++ext;
+ ap_table_set (m->forced_types, ext, ct);
+ return NULL;
+
+ } +

+ +

This command handler is unusually simple. As you can see, it takes + four arguments, two of which are pre-parsed arguments, the third being the + per-directory configuration structure for the module in question, and the + fourth being a pointer to a cmd_parms structure. That + structure contains a bunch of arguments which are frequently of use to + some, but not all, commands, including a resource pool (from which memory + can be allocated, and to which cleanups should be tied), and the (virtual) + server being configured, from which the module's per-server configuration + data can be obtained if required.

+ +

Another way in which this particular command handler is unusually + simple is that there are no error conditions which it can encounter. If + there were, it could return an error message instead of NULL; + this causes an error to be printed out on the server's + stderr, followed by a quick exit, if it is in the main config + files; for a .htaccess file, the syntax error is logged in + the server error log (along with an indication of where it came from), and + the request is bounced with a server error response (HTTP error status, + code 500).

+ +

The MIME module's command table has entries for these commands, which + look like this:

+ +

+ command_rec mime_cmds[] = {
+ + { "AddType", add_type, NULL, OR_FILEINFO, TAKE2,
+ "a mime type followed by a file extension" },
+ { "AddEncoding", add_encoding, NULL, OR_FILEINFO, TAKE2,
+ + "an encoding (e.g., gzip), followed by a file extension" },
+
+ { NULL }
+
+ }; +

+ +

The entries in these tables are:

+
    +
  • The name of the command
  • +
  • The function which handles it
  • +
  • a (void *) pointer, which is passed in the + cmd_parms structure to the command handler --- + this is useful in case many similar commands are handled by + the same function.
  • + +
  • A bit mask indicating where the command may appear. There + are mask bits corresponding to each + AllowOverride option, and an additional mask + bit, RSRC_CONF, indicating that the command may + appear in the server's own config files, but not in + any .htaccess file.
  • + +
  • A flag indicating how many arguments the command handler + wants pre-parsed, and how they should be passed in. + TAKE2 indicates two pre-parsed arguments. Other + options are TAKE1, which indicates one + pre-parsed argument, FLAG, which indicates that + the argument should be On or Off, + and is passed in as a boolean flag, RAW_ARGS, + which causes the server to give the command the raw, unparsed + arguments (everything but the command name itself). There is + also ITERATE, which means that the handler looks + the same as TAKE1, but that if multiple + arguments are present, it should be called multiple times, + and finally ITERATE2, which indicates that the + command handler looks like a TAKE2, but if more + arguments are present, then it should be called multiple + times, holding the first argument constant.
  • + +
  • Finally, we have a string which describes the arguments + that should be present. If the arguments in the actual config + file are not as required, this string will be used to help + give a more specific error message. (You can safely leave + this NULL).
  • +
+ +

Finally, having set this all up, we have to use it. This is ultimately + done in the module's handlers, specifically for its file-typing handler, + which looks more or less like this; note that the per-directory + configuration structure is extracted from the request_rec's + per-directory configuration vector by using the + ap_get_module_config function.

+ +

+ int find_ct(request_rec *r)
+ {
+ + int i;
+ char *fn = ap_pstrdup (r->pool, r->filename);
+ mime_dir_config *conf = (mime_dir_config *)
+ + ap_get_module_config(r->per_dir_config, &mime_module);
+
+ char *type;
+
+ if (S_ISDIR(r->finfo.st_mode)) {
+ + r->content_type = DIR_MAGIC_TYPE;
+ return OK;
+
+ }
+
+ if((i=ap_rind(fn,'.')) < 0) return DECLINED;
+ ++i;
+
+ if ((type = ap_table_get (conf->encoding_types, &fn[i])))
+ {
+ + r->content_encoding = type;
+
+ /* go back to previous extension to try to use it as a type */
+ fn[i-1] = '\0';
+ if((i=ap_rind(fn,'.')) < 0) return OK;
+ ++i;
+
+ }
+
+ if ((type = ap_table_get (conf->forced_types, &fn[i])))
+ {
+ + r->content_type = type;
+
+ }
+
+ return OK; +
+ } +

+ + +

Side notes -- per-server configuration, + virtual servers, etc.

+

The basic ideas behind per-server module configuration are basically + the same as those for per-directory configuration; there is a creation + function and a merge function, the latter being invoked where a virtual + server has partially overridden the base server configuration, and a + combined structure must be computed. (As with per-directory configuration, + the default if no merge function is specified, and a module is configured + in some virtual server, is that the base configuration is simply + ignored).

+ +

The only substantial difference is that when a command needs to + configure the per-server private module data, it needs to go to the + cmd_parms data to get at it. Here's an example, from the + alias module, which also indicates how a syntax error can be returned + (note that the per-directory configuration argument to the command + handler is declared as a dummy, since the module doesn't actually have + per-directory config data):

+ +

+ char *add_redirect(cmd_parms *cmd, void *dummy, char *f, char *url)
+ {
+ + server_rec *s = cmd->server;
+ alias_server_conf *conf = (alias_server_conf *)
+ + ap_get_module_config(s->module_config,&alias_module);
+
+ alias_entry *new = ap_push_array (conf->redirects);
+
+ if (!ap_is_url (url)) return "Redirect to non-URL";
+
+ new->fake = f; new->real = url;
+ return NULL;
+
+ } +

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/debugging.html b/rubbos/app/apache2/manual/developer/debugging.html new file mode 100644 index 00000000..6d94fa27 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/debugging.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/debugging.html.en b/rubbos/app/apache2/manual/developer/debugging.html.en new file mode 100644 index 00000000..3febd64c --- /dev/null +++ b/rubbos/app/apache2/manual/developer/debugging.html.en @@ -0,0 +1,196 @@ + + + +Debugging Memory Allocation in APR - Apache HTTP Server + + + + + +
<-
+

Debugging Memory Allocation in APR

+
+

Available Languages:  en 

+
+ +

The allocation mechanism's within APR have a number of debugging modes + that can be used to assist in finding memory problems. This document + describes the modes available and gives instructions on activating + them.

+
+ +
top
+
+

Available debugging options

+

Allocation Debugging - ALLOC_DEBUG

+ + +
Debugging support: Define this to enable code which + helps detect re-use of free()d memory and other such + nonsense.
+ +

The theory is simple. The FILL_BYTE (0xa5) + is written over all malloc'd memory as we receive it, and + is written over everything that we free up during a + clear_pool. We check that blocks on the free list always + have the FILL_BYTE in them, and we check during + palloc() that the bytes still have FILL_BYTE + in them. If you ever see garbage URLs or whatnot containing lots + of 0xa5s then you know something used data that's been + freed or uninitialized.

+ + +

Malloc Support - ALLOC_USE_MALLOC

+ + +
If defined all allocations will be done with + malloc() and free()d appropriately at the + end.
+ +

This is intended to be used with something like Electric + Fence or Purify to help detect memory problems. Note that if + you're using efence then you should also add in ALLOC_DEBUG. + But don't add in ALLOC_DEBUG if you're using Purify because + ALLOC_DEBUG would hide all the uninitialized read errors + that Purify can diagnose.

+ + +

Pool Debugging - POOL_DEBUG

+
This is intended to detect cases where the wrong pool is + used when assigning data to an object in another pool.
+ +

In particular, it causes the table_{set,add,merge}n + routines to check that their arguments are safe for the + apr_table_t they're being placed in. It currently only works + with the unix multiprocess model, but could be extended to others.

+ + +

Table Debugging - MAKE_TABLE_PROFILE

+ + +
Provide diagnostic information about make_table() calls + which are possibly too small.
+ +

This requires a recent gcc which supports + __builtin_return_address(). The error_log output will be a + message such as:

+

+ table_push: apr_table_t created by 0x804d874 hit limit of 10 +

+ +

Use l *0x804d874 to find the + source that corresponds to. It indicates that a apr_table_t + allocated by a call at that address has possibly too small an + initial apr_table_t size guess.

+ + +

Allocation Statistics - ALLOC_STATS

+ + +
Provide some statistics on the cost of allocations.
+ +

This requires a bit of an understanding of how alloc.c works.

+ +
top
+
+

Allowable Combinations

+ +

Not all the options outlined above can be activated at the + same time. the following table gives more information.

+ + + + + + + + + + + + + + + + +
+ ALLOC DEBUGALLOC USE MALLOCPOOL DEBUGMAKE TABLE PROFILEALLOC STATS
ALLOC DEBUG-NoYesYesYes
ALLOC USE MALLOCNo-NoNoNo
POOL DEBUGYesNo-YesYes
MAKE TABLE PROFILEYesNoYes-Yes
ALLOC STATSYesNoYesYes-
+ +

Additionally the debugging options are not suitable for + multi-threaded versions of the server. When trying to debug + with these options the server should be started in single + process mode.

+
top
+
+

Activating Debugging Options

+ +

The various options for debugging memory are now enabled in + the apr_general.h header file in APR. The various options are + enabled by uncommenting the define for the option you wish to + use. The section of the code currently looks like this + (contained in srclib/apr/include/apr_pools.h)

+ +

+ /*
+ #define ALLOC_DEBUG
+ #define POOL_DEBUG
+ #define ALLOC_USE_MALLOC
+ #define MAKE_TABLE_PROFILE
+ #define ALLOC_STATS
+ */
+
+ typedef struct ap_pool_t {
+ + union block_hdr *first;
+ union block_hdr *last;
+ struct cleanup *cleanups;
+ struct process_chain *subprocesses;
+ struct ap_pool_t *sub_pools;
+ struct ap_pool_t *sub_next;
+ struct ap_pool_t *sub_prev;
+ struct ap_pool_t *parent;
+ char *free_first_avail;
+
+ #ifdef ALLOC_USE_MALLOC
+ + void *allocation_list;
+
+ #endif
+ #ifdef POOL_DEBUG
+ + struct ap_pool_t *joined;
+
+ #endif
+ + int (*apr_abort)(int retcode);
+ struct datastruct *prog_data;
+
+ } ap_pool_t; +

+ +

To enable allocation debugging simply move the #define + ALLOC_DEBUG above the start of the comments block and rebuild + the server.

+ +

Note

+

In order to use the various options the server must + be rebuilt after editing the header file.

+
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/documenting.html b/rubbos/app/apache2/manual/developer/documenting.html new file mode 100644 index 00000000..db57cef3 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/documenting.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: documenting.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/developer/documenting.html.en b/rubbos/app/apache2/manual/developer/documenting.html.en new file mode 100644 index 00000000..204801d4 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/documenting.html.en @@ -0,0 +1,84 @@ + + + +Documenting Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

Documenting Apache 2.0

+
+

Available Languages:  en 

+
+ +

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

+
+
top
+
+

Brief Description

+

To start a documentation block, use /**
+ To end a documentation block, use */

+ +

In the middle of the block, there are multiple tags we can + use:

+ +

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

+ +

The deffunc is not always necessary. DoxyGen does not + have a full parser in it, so any prototype that use a macro in the + return type declaration is too complex for scandoc. Those functions + require a deffunc. An example (using &gt; rather + than >):

+ +

+ /**
+  * 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)
+  */ +

+ +

At the top of the header file, always include:

+

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

+ +

Doxygen uses a new HTML file for each package. The HTML files are named + {Name_of_library_header}.html, so try to be concise with your names.

+ +

For a further discussion of the possibilities please refer to + the Doxygen site.

+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/filters.html b/rubbos/app/apache2/manual/developer/filters.html new file mode 100644 index 00000000..6caade35 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/filters.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/filters.html.en b/rubbos/app/apache2/manual/developer/filters.html.en new file mode 100644 index 00000000..5f6fc54a --- /dev/null +++ b/rubbos/app/apache2/manual/developer/filters.html.en @@ -0,0 +1,210 @@ + + + +How filters work in Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

How filters work in Apache 2.0

+
+

Available Languages:  en 

+
+ +

Warning

+

This is a cut 'n paste job from an email + (<022501c1c529$f63a9550$7f00000a@KOJ>) and only reformatted for + better readability. It's not up to date but may be a good start for + further research.

+
+
+ +
top
+
+

Filter Types

+

There are three basic filter types (each of these is actually broken + down into two categories, but that comes later).

+ +
+
CONNECTION
+
Filters of this type are valid for the lifetime of this connection. + (AP_FTYPE_CONNECTION, AP_FTYPE_NETWORK)
+ +
PROTOCOL
+
Filters of this type are valid for the lifetime of this request from + the point of view of the client, this means that the request is valid + from the time that the request is sent until the time that the response + is received. (AP_FTYPE_PROTOCOL, + AP_FTYPE_TRANSCODE)
+ +
RESOURCE
+
Filters of this type are valid for the time that this content is used + to satisfy a request. For simple requests, this is identical to + PROTOCOL, but internal redirects and sub-requests can change + the content without ending the request. (AP_FTYPE_RESOURCE, + AP_FTYPE_CONTENT_SET)
+
+ +

It is important to make the distinction between a protocol and a + resource filter. A resource filter is tied to a specific resource, it + may also be tied to header information, but the main binding is to a + resource. If you are writing a filter and you want to know if it is + resource or protocol, the correct question to ask is: "Can this filter + be removed if the request is redirected to a different resource?" If + the answer is yes, then it is a resource filter. If it is no, then it + is most likely a protocol or connection filter. I won't go into + connection filters, because they seem to be well understood. With this + definition, a few examples might help:

+ +
+
Byterange
+
We have coded it to be inserted for all requests, and it is removed + if not used. Because this filter is active at the beginning of all + requests, it can not be removed if it is redirected, so this is a + protocol filter.
+ +
http_header
+
This filter actually writes the headers to the network. This is + obviously a required filter (except in the asis case which is special + and will be dealt with below) and so it is a protocol filter.
+ +
Deflate
+
The administrator configures this filter based on which file has been + requested. If we do an internal redirect from an autoindex page to an + index.html page, the deflate filter may be added or removed based on + config, so this is a resource filter.
+
+ +

The further breakdown of each category into two more filter types is + strictly for ordering. We could remove it, and only allow for one + filter type, but the order would tend to be wrong, and we would need to + hack things to make it work. Currently, the RESOURCE filters + only have one filter type, but that should change.

+
top
+
+

How are filters inserted?

+

This is actually rather simple in theory, but the code is + complex. First of all, it is important that everybody realize that + there are three filter lists for each request, but they are all + concatenated together. So, the first list is + r->output_filters, then r->proto_output_filters, + and finally r->connection->output_filters. These correspond + to the RESOURCE, PROTOCOL, and + CONNECTION filters respectively. The problem previously, was + that we used a singly linked list to create the filter stack, and we + started from the "correct" location. This means that if I had a + RESOURCE filter on the stack, and I added a + CONNECTION filter, the CONNECTION filter would + be ignored. This should make sense, because we would insert the connection + filter at the top of the c->output_filters list, but the end + of r->output_filters pointed to the filter that used to be + at the front of c->output_filters. This is obviously wrong. + The new insertion code uses a doubly linked list. This has the advantage + that we never lose a filter that has been inserted. Unfortunately, it comes + with a separate set of headaches.

+ +

The problem is that we have two different cases were we use subrequests. + The first is to insert more data into a response. The second is to + replace the existing response with an internal redirect. These are two + different cases and need to be treated as such.

+ +

In the first case, we are creating the subrequest from within a handler + or filter. This means that the next filter should be passed to + make_sub_request function, and the last resource filter in the + sub-request will point to the next filter in the main request. This + makes sense, because the sub-request's data needs to flow through the + same set of filters as the main request. A graphical representation + might help:

+ +
+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 --> 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 + the sub request in between the Default_handler and the + sub_request_core filter.

+ +

The second case for sub-requests is when one sub-request is going to + become the real request. This happens whenever a sub-request is created + outside of a handler or filter, and NULL is passed as the next filter to + the make_sub_request function.

+ +

In this case, the resource filters no longer make sense for the new + request, because the resource has changed. So, instead of starting from + scratch, we simply point the front of the resource filters for the + sub-request to the front of the protocol filters for the old request. + This means that we won't lose any of the protocol filters, neither will + we try to send this data through a filter that shouldn't see it.

+ +

The problem is that we are using a doubly-linked list for our filter + stacks now. But, you should notice that it is possible for two lists to + intersect in this model. So, you do you handle the previous pointer? + This is a very difficult question to answer, because there is no "right" + answer, either method is equally valid. I looked at why we use the + previous pointer. The only reason for it is to allow for easier + addition of new servers. With that being said, the solution I chose was + to make the previous pointer always stay on the original request.

+ +

This causes some more complex logic, but it works for all cases. My + concern in having it move to the sub-request, is that for the more + common case (where a sub-request is used to add data to a response), the + main filter chain would be wrong. That didn't seem like a good idea to + me.

+
top
+
+

Asis

+

The final topic. :-) Mod_Asis is a bit of a hack, but the + handler needs to remove all filters except for connection filters, and + send the data. If you are using mod_asis, all other + bets are off.

+
top
+
+

Explanations

+

The absolutely last point is that the reason this code was so hard to + get right, was because we had hacked so much to force it to work. I + wrote most of the hacks originally, so I am very much to blame. + However, now that the code is right, I have started to remove some + hacks. Most people should have seen that the reset_filters + and add_required_filters functions are gone. Those inserted + protocol level filters for error conditions, in fact, both functions did + the same thing, one after the other, it was really strange. Because we + don't lose protocol filters for error cases any more, those hacks went away. + The HTTP_HEADER, Content-length, and + Byterange filters are all added in the + insert_filters phase, because if they were added earlier, we + had some interesting interactions. Now, those could all be moved to be + inserted with the HTTP_IN, CORE, and + CORE_IN filters. That would make the code easier to + follow.

+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/hooks.html b/rubbos/app/apache2/manual/developer/hooks.html new file mode 100644 index 00000000..a4077c72 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/hooks.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/hooks.html.en b/rubbos/app/apache2/manual/developer/hooks.html.en new file mode 100644 index 00000000..b89e9906 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/hooks.html.en @@ -0,0 +1,239 @@ + + + +Apache 2.0 Hook Functions - Apache HTTP Server + + + + + +
<-
+

Apache 2.0 Hook Functions

+
+

Available Languages:  en 

+
+ +

Warning

+

This document is still in development and may be partially out of + date.

+
+ +

In general, a hook function is one that Apache will call at + some point during the processing of a request. Modules can + provide functions that are called, and specify when they get + called in comparison to other modules.

+
+ +
top
+
+

Creating a hook function

+

In order to create a new hook, four things need to be + done:

+ +

Declare the hook function

+

Use the AP_DECLARE_HOOK macro, which needs to be given + the return type of the hook function, the name of the hook, and the + arguments. For example, if the hook returns an int and + takes a request_rec * and an int and is + called do_something, then declare it like this:

+

+ AP_DECLARE_HOOK(int, do_something, (request_rec *r, int n)) +

+ +

This should go in a header which modules will include if + they want to use the hook.

+ + +

Create the hook structure

+

Each source file that exports a hook has a private structure + which is used to record the module functions that use the hook. + This is declared as follows:

+ +

+ APR_HOOK_STRUCT(
+ + APR_HOOK_LINK(do_something)
+ ...
+
+ ) +

+ + +

Implement the hook caller

+

The source file that exports the hook has to implement a + function that will call the hook. There are currently three + possible ways to do this. In all cases, the calling function is + called ap_run_hookname().

+ +

Void hooks

+

If the return value of a hook is void, then all the + hooks are called, and the caller is implemented like this:

+ +

+ AP_IMPLEMENT_HOOK_VOID(do_something, (request_rec *r, int n), (r, n)) +

+ +

The second and third arguments are the dummy argument + declaration and the dummy arguments as they will be used when + calling the hook. In other words, this macro expands to + something like this:

+ +

+ void ap_run_do_something(request_rec *r, int n)
+ {
+ + ...
+ do_something(r, n);
+
+ } +

+ + +

Hooks that return a value

+

If the hook returns a value, then it can either be run until + the first hook that does something interesting, like so:

+ +

+ AP_IMPLEMENT_HOOK_RUN_FIRST(int, do_something, (request_rec *r, int n), (r, n), DECLINED) +

+ +

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 + whatever suits you.

+ +

Alternatively, all hooks can be run until an error occurs. + This boils down to permitting two return values, one of + which means "I did something, and it was OK" and the other + meaning "I did nothing". The first function that returns a + value other than one of those two stops the loop, and its + return is the return value. Declare these like so:

+ +

+ AP_IMPLEMENT_HOOK_RUN_ALL(int, do_something, (request_rec *r, int n), (r, n), OK, DECLINED) +

+ +

Again, OK and DECLINED are the traditional + values. You can use what you want.

+ + + +

Call the hook callers

+

At appropriate moments in the code, call the hook caller, + like so:

+ +

+ int n, ret;
+ request_rec *r;
+
+ ret=ap_run_do_something(r, n); +

+ +
top
+
+

Hooking the hook

+

A module that wants a hook to be called needs to do two + things.

+ +

Implement the hook function

+

Include the appropriate header, and define a static function + of the correct type:

+ +

+ static int my_something_doer(request_rec *r, int n)
+ {
+ + ...
+ return OK;
+
+ } +

+ + +

Add a hook registering function

+

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

+ +

+ static void my_register_hooks()
+ {
+ + ap_hook_do_something(my_something_doer, NULL, NULL, HOOK_MIDDLE);
+
+ }
+
+ mode MODULE_VAR_EXPORT my_module =
+ {
+ + ...
+ my_register_hooks /* register hooks */
+
+ }; +

+ + +

Controlling hook calling order

+

In the example above, we didn't use the three arguments in + the hook registration function that control calling order. + There are two mechanisms for doing this. The first, rather + crude, method, allows us to specify roughly where the hook is + run relative to other modules. The final argument control this. + There are three possible values: HOOK_FIRST, + HOOK_MIDDLE and HOOK_LAST.

+ +

All modules using any particular value may be run in any + order relative to each other, but, of course, all modules using + HOOK_FIRST will be run before HOOK_MIDDLE + which are before HOOK_LAST. Modules that don't care + when they are run should use HOOK_MIDDLE. (I spaced + these out so people could do stuff like HOOK_FIRST-2 + to get in slightly earlier, but is this wise? - Ben)

+ +

Note that there are two more values, + HOOK_REALLY_FIRST and HOOK_REALLY_LAST. These + should only be used by the hook exporter.

+ +

The other method allows finer control. When a module knows + that it must be run before (or after) some other modules, it + can specify them by name. The second (third) argument is a + NULL-terminated array of strings consisting of the names of + modules that must be run before (after) the current module. For + example, suppose we want "mod_xyz.c" and "mod_abc.c" to run + before we do, then we'd hook as follows:

+ +

+ static void register_hooks()
+ {
+ + static const char * const aszPre[] = { "mod_xyz.c", "mod_abc.c", NULL };
+
+ ap_hook_do_something(my_something_doer, aszPre, NULL, HOOK_MIDDLE);
+
+ } +

+ +

Note that the sort used to achieve this is stable, so + ordering set by HOOK_ORDER is preserved, as far + as is possible.

+ +

Ben Laurie, 15th August 1999

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/index.html b/rubbos/app/apache2/manual/developer/index.html new file mode 100644 index 00000000..e4d079c3 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/index.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/developer/index.html.en b/rubbos/app/apache2/manual/developer/index.html.en new file mode 100644 index 00000000..7006579b --- /dev/null +++ b/rubbos/app/apache2/manual/developer/index.html.en @@ -0,0 +1,73 @@ + + + +Developer Documentation for Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

Developer Documentation for Apache 2.0

+
+

Available Languages:  en 

+
+ +

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 + errors on the developer/ pages directly to the + dev@httpd.apache.org mailing list.

+
+ +
top
+
top
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/modules.html b/rubbos/app/apache2/manual/developer/modules.html new file mode 100644 index 00000000..33cfd0f4 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/modules.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/developer/modules.html.en b/rubbos/app/apache2/manual/developer/modules.html.en new file mode 100644 index 00000000..176a94dd --- /dev/null +++ b/rubbos/app/apache2/manual/developer/modules.html.en @@ -0,0 +1,273 @@ + + + +Converting Modules from Apache 1.3 to Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

Converting Modules from Apache 1.3 to Apache 2.0

+
+

Available Languages:  en  | + ja 

+
+ +

This is a first attempt at writing the lessons I learned + when trying to convert the mod_mmap_static module to Apache + 2.0. It's by no means definitive and probably won't even be + correct in some ways, but it's a start.

+
+ +
top
+
+

The easier changes ...

+ +

Cleanup Routines

+

These now need to be of type apr_status_t and return a + value of that type. Normally the return value will be + APR_SUCCESS unless there is some need to signal an error in + the cleanup. Be aware that even though you signal an error not all code + yet checks and acts upon the error.

+ + +

Initialisation Routines

+

These should now be renamed to better signify where they sit + in the overall process. So the name gets a small change from + mmap_init to mmap_post_config. The arguments + passed have undergone a radical change and now look like

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

Data Types

+

A lot of the data types have been moved into the APR. This means that some have had + a name change, such as the one shown above. The following is a brief + list of some of the changes that you are likely to have to make.

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

The messier changes...

+ +

Register Hooks

+

The new architecture uses a series of hooks to provide for + calling your functions. These you'll need to add to your module + by way of a new function, static void register_hooks(void). + The function is really reasonably straightforward once you + understand what needs to be done. Each function that needs + calling at some stage in the processing of a request needs to + be registered, handlers do not. There are a number of phases + where functions can be added, and for each you can specify with + a high degree of control the relative order that the function + will be called in.

+ +

This is the code that was added to 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);
+};
+ +

This registers 2 functions that need to be called, one in + the post_config stage (virtually every module will need this + one) and one for the translate_name phase. note that while + there are different function names the format of each is + identical. So what is the format?

+ +

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

+ +

There are 3 hook positions defined...

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

To define the position you use the position and then modify + it with the predecessors and successors. Each of the modifiers + can be a list of functions that should be called, either before + the function is run (predecessors) or after the function has + run (successors).

+ +

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 + translation, hence the use of the aszPre to define a modifier to the + position HOOK_LAST.

+ + +

Module Definition

+

There are now a lot fewer stages to worry about when + creating your module definition. The old defintion looked + like

+ +
+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 */
+};
+ +

The new structure is a great deal simpler...

+
+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 */
+};
+ +

Some of these read directly across, some don't. I'll try to + summarise what should be done below.

+ +

The stages that read directly across :

+ +
+
/* dir config creater */
+
/* create per-directory config structures */
+ +
/* server config */
+
/* create per-server config structures */
+ +
/* dir merger */
+
/* merge per-directory config structures */
+ +
/* merge server config */
+
/* merge per-server config structures */
+ +
/* command table */
+
/* command apr_table_t */
+ +
/* handlers */
+
/* handlers */
+
+ +

The remainder of the old functions should be registered as + hooks. There are the following hook stages defined so + far...

+ +
+
ap_hook_post_config
+
this is where the old _init routines get + registered
+ +
ap_hook_http_method
+
retrieve the http method from a request. (legacy)
+ +
ap_hook_open_logs
+
open any specified logs
+ +
ap_hook_auth_checker
+
check if the resource requires authorization
+ +
ap_hook_access_checker
+
check for module-specific restrictions
+ +
ap_hook_check_user_id
+
check the user-id and password
+ +
ap_hook_default_port
+
retrieve the default port for the server
+ +
ap_hook_pre_connection
+
do any setup required just before processing, but after + accepting
+ +
ap_hook_process_connection
+
run the correct protocol
+ +
ap_hook_child_init
+
call as soon as the child is started
+ +
ap_hook_create_request
+
??
+ +
ap_hook_fixups
+
last chance to modify things before generating content
+ +
ap_hook_handler
+
generate the content
+ +
ap_hook_header_parser
+
lets modules look at the headers, not used by most modules, because + they use post_read_request for this
+ +
ap_hook_insert_filter
+
to insert filters into the filter chain
+ +
ap_hook_log_transaction
+
log information about the request
+ +
ap_hook_optional_fn_retrieve
+
retrieve any functions registered as optional
+ +
ap_hook_post_read_request
+
called after reading the request, before any other phase
+ +
ap_hook_quick_handler
+
called before any request processing, used by cache modules.
+ +
ap_hook_translate_name
+
translate the URI into a filename
+ +
ap_hook_type_checker
+
determine and/or set the doc type
+
+ +
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/modules.html.ja.utf8 b/rubbos/app/apache2/manual/developer/modules.html.ja.utf8 new file mode 100644 index 00000000..8297d28d --- /dev/null +++ b/rubbos/app/apache2/manual/developer/modules.html.ja.utf8 @@ -0,0 +1,274 @@ + + + +モジュールの 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/rubbos/app/apache2/manual/developer/request.html b/rubbos/app/apache2/manual/developer/request.html new file mode 100644 index 00000000..ed3694f6 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/request.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/request.html.en b/rubbos/app/apache2/manual/developer/request.html.en new file mode 100644 index 00000000..1ac89d24 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/request.html.en @@ -0,0 +1,260 @@ + + + +Request Processing in Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

Request Processing in Apache 2.0

+
+

Available Languages:  en 

+
+ +

Warning

+

Warning - this is a first (fast) draft that needs further + revision!

+
+ +

Several changes in Apache 2.0 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 + 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 + the code from falling out of sync again.

+ +

This means that much of the existing code was 'unoptimized'. + It is the Apache HTTP Project's first goal to create a robust + 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 + insecure code.

+
+ +
top
+
+

The Request Processing Cycle

+

All requests pass through ap_process_request_internal() + in request.c, including subrequests and redirects. If a module + doesn't pass generated requests through this code, the author is cautioned + that the module may be broken by future changes to request + processing.

+ +

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 + terms of CPU.)

+
top
+
+

The Request Parsing Phase

+

Unescapes the URL

+

The request's parsed_uri path is unescaped, once and only + once, at the beginning of internal request processing.

+ +

This step is bypassed if the proxyreq flag is set, or the + 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.

+ + +

Strips Parent and This Elements from the + URI

+

All /../ and /./ elements are + removed by ap_getparents(). This helps to ensure + the path is (nearly) absolute before the request processing + continues.

+ +

This step cannot be bypassed.

+ + +

Initial URI Location Walk

+

Every request is subject to an + ap_location_walk() call. This ensures that + <Location> sections + are consistently enforced for all requests. If the request is an internal + redirect or a sub-request, it may borrow some or all of the processing + from the previous or parent request's ap_location_walk, so this step + is generally very efficient after processing the main request.

+ + +

translate_name

+

Modules can determine the file name, or alter the given URI + in this step. For example, mod_vhost_alias will + translate the URI's path into the configured virtual host, + mod_alias will translate the path to an alias path, + and if the request falls back on the core, the DocumentRoot is prepended to the request resource.

+ +

If all modules DECLINE this phase, an error 500 is + returned to the browser, and a "couldn't translate name" error is logged + automatically.

+ + +

Hook: map_to_storage

+

After the file or correct URI was determined, the + appropriate per-dir configurations are merged together. For + example, mod_proxy compares and merges the appropriate + <Proxy> sections. + If the URI is nothing more than a local (non-proxy) TRACE + request, the core handles the request and returns DONE. + If no module answers this hook with OK or DONE, + the core will run the request filename against the <Directory> and <Files> sections. If the request + 'filename' isn't an absolute, legal filename, a note is set for + later termination.

+ + +

URI Location Walk

+

Every request is hardened by a second + ap_location_walk() call. This reassures that a + translated request is still subjected to the configured + <Location> sections. + The request again borrows some or all of the processing from its previous + location_walk above, so this step is almost always very + efficient unless the translated URI mapped to a substantially different + path or Virtual Host.

+ + +

Hook: header_parser

+

The main request then parses the client's headers. This + prepares the remaining request processing steps to better serve + the client's request.

+ +
top
+
+

The Security Phase

+

Needs Documentation. Code is:

+ +
+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 (ap_some_auth_required(r)) {
+        if (((access_status = ap_run_check_user_id(r)) != 0)
+            || !ap_auth_type(r)) {
+            return decl_die(access_status, ap_auth_type(r)
+                          ? "check user.  No user file?"
+                          : "perform authentication. AuthType not set!",
+                          r);
+        }
+
+        if (((access_status = ap_run_auth_checker(r)) != 0)
+            || !ap_auth_type(r)) {
+            return decl_die(access_status, ap_auth_type(r)
+                          ? "check access.  No groups file?"
+                          : "perform authentication. AuthType not set!",
+                          r);
+        }
+    }
+    break;
+
+case SATISFY_ANY:
+    if (((access_status = ap_run_access_checker(r)) != 0)) {
+        if (!ap_some_auth_required(r)) {
+            return decl_die(access_status, "check access", r);
+        }
+
+        if (((access_status = ap_run_check_user_id(r)) != 0)
+            || !ap_auth_type(r)) {
+            return decl_die(access_status, ap_auth_type(r)
+                          ? "check user.  No user file?"
+                          : "perform authentication. AuthType not set!",
+                          r);
+        }
+
+        if (((access_status = ap_run_auth_checker(r)) != 0)
+            || !ap_auth_type(r)) {
+            return decl_die(access_status, ap_auth_type(r)
+                          ? "check access.  No groups file?"
+                          : "perform authentication. AuthType not set!",
+                          r);
+        }
+    }
+    break;
+}
+
top
+
+

The Preparation Phase

+

Hook: type_checker

+

The modules have an opportunity to test the URI or filename + against the target resource, and set mime information for the + request. Both mod_mime and + mod_mime_magic use this phase to compare the file + name or contents against the administrator's configuration and set the + content type, language, character set and request handler. Some modules + may set up their filters or other request handling parameters at this + time.

+ +

If all modules DECLINE this phase, an error 500 is + returned to the browser, and a "couldn't find types" error is logged + automatically.

+ + +

Hook: fixups

+

Many modules are 'trounced' by some phase above. The fixups + phase is used by modules to 'reassert' their ownership or force + the request's fields to their appropriate values. It isn't + always the cleanest mechanism, but occasionally it's the only + option.

+ +
top
+
+

The Handler Phase

+

This phase is not part of the processing in + ap_process_request_internal(). Many + modules prepare one or more subrequests prior to creating any + content at all. After the core, or a module calls + ap_process_request_internal() it then calls + ap_invoke_handler() to generate the request.

+ +

Hook: insert_filter

+

Modules that transform the content in some way can insert + their values and override existing filters, such that if the + user configured a more advanced filter out-of-order, then the + module can move its order as need be. There is no result code, + so actions in this hook better be trusted to always succeed.

+ + +

Hook: handler

+

The module finally has a chance to serve the request in its + handler hook. Note that not every prepared request is sent to + the handler hook. Many modules, such as mod_autoindex, + will create subrequests for a given URI, and then never serve the + subrequest, but simply lists it for the user. Remember not to + put required teardown from the hooks above into this module, + but register pool cleanups against the request pool to free + resources as required.

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/developer/thread_safety.html b/rubbos/app/apache2/manual/developer/thread_safety.html new file mode 100644 index 00000000..50f07bf3 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/thread_safety.html @@ -0,0 +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/rubbos/app/apache2/manual/developer/thread_safety.html.en b/rubbos/app/apache2/manual/developer/thread_safety.html.en new file mode 100644 index 00000000..82b4e5a7 --- /dev/null +++ b/rubbos/app/apache2/manual/developer/thread_safety.html.en @@ -0,0 +1,285 @@ + + + +Apache 2.0 Thread Safety Issues - Apache HTTP Server + + + + + +
<-
+

Apache 2.0 Thread Safety Issues

+
+

Available Languages:  en 

+
+ +

When using any of the threaded mpms in Apache 2.0 it is important + that every function called from Apache be thread safe. When linking in 3rd + party extensions it can be difficult to determine whether the resulting + server will be thread safe. Casual testing generally won't tell you this + either as thread safety problems can lead to subtle race conditons that + may only show up in certain conditions under heavy load.

+
+ +
top
+
+

Global and static variables

+

When writing your module or when trying to determine if a module or + 3rd party library is thread safe there are some common things to keep in + mind.

+ +

First, you need to recognize that in a threaded model each individual + thread has its own program counter, stack and registers. Local variables + live on the stack, so those are fine. You need to watch out for any + static or global variables. This doesn't mean that you are absolutely not + allowed to use static or global variables. There are times when you + actually want something to affect all threads, but generally you need to + avoid using them if you want your code to be thread safe.

+ +

In the case where you have a global variable that needs to be global and + accessed by all threads, be very careful when you update it. If, for + example, it is an incrementing counter, you need to atomically increment + it to avoid race conditions with other threads. You do this using a mutex + (mutual exclusion). Lock the mutex, read the current value, increment it + and write it back and then unlock the mutex. Any other thread that wants + to modify the value has to first check the mutex and block until it is + cleared.

+ +

If you are using APR, have a look + at the apr_atomic_* functions and the + apr_thread_mutex_* functions.

+ +
top
+
+

errno

+

This is a common global variable that holds the error number of the + last error that occurred. If one thread calls a low-level function that + sets errno and then another thread checks it, we are bleeding error + numbers from one thread into another. To solve this, make sure your + module or library defines _REENTRANT or is compiled with + -D_REENTRANT. This will make errno a per-thread variable + and should hopefully be transparent to the code. It does this by doing + something like this:

+ +

+ #define errno (*(__errno_location())) +

+ +

which means that accessing errno will call + __errno_location() which is provided by the libc. Setting + _REENTRANT also forces redefinition of some other functions + to their *_r equivalents and sometimes changes + the common getc/putc macros into safer function + calls. Check your libc documentation for specifics. Instead of, or in + addition to _REENTRANT the symbols that may affect this are + _POSIX_C_SOURCE, _THREAD_SAFE, + _SVID_SOURCE, and _BSD_SOURCE.

+
top
+
+

Common standard troublesome functions

+

Not only do things have to be thread safe, but they also have to be + reentrant. strtok() is an obvious one. You call it the first + time with your delimiter which it then remembers and on each subsequent + call it returns the next token. Obviously if multiple threads are + calling it you will have a problem. Most systems have a reentrant version + of of the function called strtok_r() where you pass in an + extra argument which contains an allocated char * which the + function will use instead of its own static storage for maintaining + the tokenizing state. If you are using APR you can use apr_strtok().

+ +

crypt() is another function that tends to not be reentrant, + so if you run across calls to that function in a library, watch out. On + some systems it is reentrant though, so it is not always a problem. If + your system has crypt_r() chances are you should be using + that, or if possible simply avoid the whole mess by using md5 instead.

+ +
top
+
+

Common 3rd Party Libraries

+

The following is a list of common libraries that are used by 3rd party + Apache modules. You can check to see if your module is using a potentially + unsafe library by using tools such as ldd(1) and + nm(1). For PHP, for example, + try this:

+ +

+ % ldd libphp4.so
+ libsablot.so.0 => /usr/local/lib/libsablot.so.0 (0x401f6000)
+ libexpat.so.0 => /usr/lib/libexpat.so.0 (0x402da000)
+ libsnmp.so.0 => /usr/lib/libsnmp.so.0 (0x402f9000)
+ libpdf.so.1 => /usr/local/lib/libpdf.so.1 (0x40353000)
+ libz.so.1 => /usr/lib/libz.so.1 (0x403e2000)
+ libpng.so.2 => /usr/lib/libpng.so.2 (0x403f0000)
+ libmysqlclient.so.11 => /usr/lib/libmysqlclient.so.11 (0x40411000)
+ libming.so => /usr/lib/libming.so (0x40449000)
+ libm.so.6 => /lib/libm.so.6 (0x40487000)
+ libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x404a8000)
+ libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x404e7000)
+ libcrypt.so.1 => /lib/libcrypt.so.1 (0x40505000)
+ libssl.so.2 => /lib/libssl.so.2 (0x40532000)
+ libcrypto.so.2 => /lib/libcrypto.so.2 (0x40560000)
+ libresolv.so.2 => /lib/libresolv.so.2 (0x40624000)
+ libdl.so.2 => /lib/libdl.so.2 (0x40634000)
+ libnsl.so.1 => /lib/libnsl.so.1 (0x40637000)
+ libc.so.6 => /lib/libc.so.6 (0x4064b000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000) +

+ +

In addition to these libraries you will need to have a look at any + libraries linked statically into the module. You can use nm(1) + to look for individual symbols in the module.

+
top
+
+

Library List

+

Please drop a note to dev@httpd.apache.org + if you have additions or corrections to this list.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LibraryVersionThread Safe?Notes
ASpell/PSpell ?
Berkeley DB3.x, 4.xYesBe careful about sharing a connection across threads.
bzip2 YesBoth low-level and high-level APIs are thread-safe. However, + high-level API requires thread-safe access to errno.
cdb ?
C-Client Perhapsc-client uses strtok() and + gethostbyname() which are not thread-safe on most C + library implementations. c-client's static data is meant to be shared + across threads. If strtok() and + gethostbyname() are thread-safe on your OS, c-client + may be thread-safe.
cpdflib ?
libcrypt ?
Expat YesNeed a separate parser instance per thread
FreeTDS ?
FreeType ?
GD 1.8.x ?
GD 2.0.x ?
gdbm NoErrors returned via a static gdbm_error + variable
ImageMagick5.2.2YesImageMagick docs claim it is thread safe since version 5.2.2 (see Change log). +
Imlib2 ?
libjpegv6b?
libmysqlclient YesUse mysqlclient_r library variant to ensure thread-safety. For + more information, please read http://www.mysql.com/doc/en/Threaded_clients.html.
Ming0.2a?
Net-SNMP5.0.x?
OpenLDAP2.1.xYesUse ldap_r library variant to ensure + thread-safety.
OpenSSL0.9.6gYesRequires proper usage of CRYPTO_num_locks, + CRYPTO_set_locking_callback, + CRYPTO_set_id_callback
liboci8 (Oracle 8+)8.x,9.x?
pdflib5.0.xYesPDFLib 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.
libpng1.0.x?
libpng1.2.x?
libpq (PostgreSQL)7.xYesDon't share connections across threads and watch out for + crypt() calls
Sablotron0.95?
zlib1.1.4YesRelies upon thread-safe zalloc and zfree functions Default is to + use libc's calloc/free which are thread-safe.
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html b/rubbos/app/apache2/manual/dns-caveats.html new file mode 100644 index 00000000..b52ce878 --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html @@ -0,0 +1,25 @@ +# 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.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: dns-caveats.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: dns-caveats.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/dns-caveats.html.en b/rubbos/app/apache2/manual/dns-caveats.html.en new file mode 100644 index 00000000..12e87973 --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.en @@ -0,0 +1,245 @@ + + + +Issues Regarding DNS and Apache - Apache HTTP Server + + + + + +
<-
+

Issues Regarding DNS and Apache

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

This page could be summarized with the statement: don't + configure Apache in such a way that it relies on DNS resolution + for parsing of the configuration files. If Apache requires DNS + resolution to parse the configuration files then your server + may be subject to reliability problems (ie. it might not boot), + or denial and theft of service attacks (including users able + to steal hits from other users).

+
+ +
top
+
+

A Simple Example

+ + +

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

+ +

In order for Apache to function properly, it absolutely needs + to have two pieces of information about each virtual host: the + ServerName and at least one + IP address that the server will bind and respond to. The above + example does not include the IP address, so Apache must use DNS + to find the address of www.abc.dom. If for some + reason DNS is not available at the time your server is parsing + its config file, then this virtual host will not be + configured. It won't be able to respond to any hits + 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. + Then consider this configuration snippet:

+ +

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

+ +

This time Apache needs to use reverse DNS to find the + ServerName for this virtualhost. If that reverse + lookup fails then it will partially disable the virtualhost + (prior to Apache version 1.2 the server would not even boot). + If the virtual host is name-based then it will effectively be + totally disabled, but if it is IP-based then it will mostly + work. However, if Apache should ever have to generate a full + URL for the server which includes the server name, then it will + fail to generate a valid URL.

+ +

Here is a snippet that avoids both of these problems:

+ +

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

+
top
+
+

Denial of Service

+ + +

There are (at least) two forms that denial of service + can come in. If you are running a version of Apache prior to + version 1.2 then your server will not even boot if one of the + two DNS lookups mentioned above fails for any of your virtual + hosts. In some cases this DNS lookup may not even be under your + control; for example, if abc.dom is one of your + customers and they control their own DNS, they can force your + (pre-1.2) server to fail while booting simply by deleting the + www.abc.dom record.

+ +

Another form is far more insidious. Consider this + configuration snippet:

+ +

+ <VirtualHost www.abc.dom>
+   ServerAdmin webgirl@abc.dom
+   DocumentRoot /www/abc
+ </VirtualHost>
+
+ <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 + 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 + wish.

+ +

Requests coming in to 10.0.0.1 (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 + 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.

+
top
+
+

The "main server" Address

+ + +

The addition of name-based + virtual host support in Apache 1.1 requires Apache to know + the IP address(es) of the host that httpd is running + on. To get this address it uses either the global + ServerName + (if present) or calls the C function gethostname + (which should return the same as typing "hostname" at the + command prompt). Then it performs a DNS lookup on this address. + At present there is no way to avoid this lookup.

+ +

If you fear that this lookup might fail because your DNS + server is down then you can insert the hostname in + /etc/hosts (where you probably already have it so + that the machine can boot properly). Then ensure that your + machine is configured to use /etc/hosts in the + event that DNS fails. Depending on what OS you are using this + might be accomplished by editing /etc/resolv.conf, + or maybe /etc/nsswitch.conf.

+ +

If your server doesn't have to perform DNS for any other + reason then you might be able to get away with running Apache + with the HOSTRESORDER environment variable set to + "local". This all depends on what OS and resolver libraries you + are using. It also affects CGIs unless you use + mod_env to control the environment. It's best + to consult the man pages or FAQs for your OS.

+
top
+
+

Tips to Avoid These Problems

+ + +
    +
  • + use IP addresses in + VirtualHost +
  • + +
  • + use IP addresses in + Listen +
  • + +
  • + ensure all virtual hosts have an explicit + ServerName +
  • + +
  • create a <VirtualHost _default_:*> + server that has no pages to serve
  • +
+
top
+
+

Appendix: Future Directions

+ + +

The situation regarding DNS is highly undesirable. For + Apache 1.2 we've attempted to make the server at least continue + booting in the event of failed DNS, but it might not be the + best we can do. In any event, requiring the use of explicit IP + addresses in configuration files is highly undesirable in + today's Internet where renumbering is a necessity.

+ +

A possible work around to the theft of service attack + described above would be to perform a reverse DNS lookup on the + IP address returned by the forward lookup and compare the two + names -- in the event of a mismatch, the virtualhost would be + disabled. This would require reverse DNS to be configured + properly (which is something that most admins are familiar with + because of the common use of "double-reverse" DNS lookups by + FTP servers and TCP wrappers).

+ +

In any event, it doesn't seem possible to reliably boot a + virtual-hosted web server when DNS has failed unless IP + addresses are used. Partial solutions such as disabling + portions of the configuration might be worse than not booting + at all depending on what the webserver is supposed to + accomplish.

+ +

As HTTP/1.1 is deployed and browsers and proxies start + issuing the Host header it will become possible to + avoid the use of IP-based virtual hosts entirely. In this case, + a webserver has no requirement to do DNS lookups during + configuration. But as of March 1997 these features have not + been deployed widely enough to be put into use on critical + webservers.

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html.es b/rubbos/app/apache2/manual/dns-caveats.html.es new file mode 100644 index 00000000..e276eef1 --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.es @@ -0,0 +1,268 @@ + + + +Asuntos relacionados con Apache y las DNS - Servidor HTTP Apache + + + + + +
<-
+

Asuntos relacionados con Apache y las DNS

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

Este documento puede resumirse en la siguiente frase: no + configure Apache de manera que el anlisis sintctico de + los ficheros de configuracin tenga que confiar en + resoluciones DNS. Si Apache necesita de resoluciones DNS para + analizar los ficheros de configuracin, entonces su servidor + puede no funcionar correctamente (por ejemplo, podra no + iniciarse), o sufrir ataques de denegacin o robo de servicio + (incluyendo que otas web puedan "robar" peticiones de otras + web).

+
+ +
top
+
+

Un ejemplo sencillo

+ + +

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

+ +

Para que Apache funcione correctamente, es imprescindible + conocer dos aspectos sobre cada host virtual: el valor de la + directiva ServerName y al + menos una direccin IP en la que servidor escuchar y + responder a las peticiones que se produzcan. El ejemplo + mostrado arriba no incluye la direccion IP, de manera que Apache + tiene que usar una resolucin DNS para encontrar la + direccin IP correspondiente a www.abc.dom. Si + por alguna razn la resolucin DNS no est + disponible en el momento en que su servidor est analizando + sintnticamente su fichero de configuracin, entonces + este host virtual no se configurar y no + ser capaz de responder a ninguna de las peticiones que se + hagan a ese host virtual (en las versiones de Apache anteriores a + la 1.2 el servidor ni siquiera se iniciaba).

+ +

Suponga que www.abc.dom tiene como direccin + IP la 10.0.0.1. Considere la siguiente configuracin:

+ +

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

+ +

Ahora Apache necesita hacer una bsqueda DNS inversa para + encontrar el ServerName de este host virtual. Si esta + bsqueda inversa falla entonces el host virtual se + desactivar parcialmente (en las versiones de Apache + anteriores a la 1.2 el servidor ni siquiera se iniciaba). Si el + host virtual est basado en el nombre, entonces se + desactivar completamente, pero si est basado en la + direccin IP, entonces funcionar para la mayor parte de + las cosas. Sin embargo, si Apache tiene que generar en algn + momento una URL completa que incluya el nombre del servidor, no + ser capaz de generar una URL vlida.

+ +

Aqu tiene una forma de evitar ambos problemas:

+ +

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

+
top
+
+

Denegacin de servicio

+ + +

Hay (al menos) dos formas de que ocurra una denegacin de + servicio. Si est ejecutando una versin de Apache + anterior a la 1.2, entonces su servidor no se iniciar si una + de las dos bsquedas de DNS mencionadas arriba falla para + cualquiera de sus hosts virtuales. En algunos casos estas + bsquedas DNS puede que no estn bajo su control; por + ejemplo, si abc.dom es uno de sus clientes y ellos + controlan su propia DNS, pueden forzar a su servidor (pre-1.2) a + fallar al iniciarse simplemente borrando el registro + www.abc.dom.

+ +

Otra formas pueden ser bastante ms complicadas. Fjese + en esta configuracin:

+ +

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

+ +

Suponga que ha asignado la direccin 10.0.0.1 a + www.abc.dom y 10.0.0.2 a + www.def.com. Todava ms, suponga que + def.com tiene el control de sus propias DNS. Con esta + configuracin ha puesto def.com en una + posicin en la que puede robar todo el trafico destinado a + abc.dom. Para conseguirlo, todo lo que tiene que + hacer es asignarle a www.def.com la direccin + 10.0.0.1. Como ellos controlan sus propias DNS no puede evitar que + apunten el registro www.def.com a donde quieran.

+ +

Las peticiones dirigidas a la direccin 10.0.0.1 + (includas aquellas en las los usuarios escriben URLs de tipo + http://www.abc.dom/whatever) sern todas + servidas por el host virtual def.com. Comprender por + qu ocurre esto requiere una discusin ms profunda + acerca de como Apache asigna las peticiones que recibe a los hosts + virtuales que las servirn. Puede consultar aqu un documento que trata el + tema.

+
top
+
+

La direccin del "servidor principal"

+ + +

El que Apache soporte hosting + virtual basado en nombres desde la version 1.1 hace que sea + necesario que el servidor conozca la direccin (o + direcciones) IP del host que httpd est + ejecutando. Para tener acceso a esta direccin puede usar la + directiva global ServerName + (si est presente) o llamar a la funcin de C + gethostname (la cul debe devolver el mismo + resultado que devuelve ejecutar por lnea de comandos + "hostname"). Entonces se produce una bsqueda DNS de esa + direccin. Actualmente, no hay forma de evitar que se + produzca esta bsqueda.

+ +

Si teme que esta bsqueda pueda fallar porque su servidor + DNS est desactivado entonces puede insertar el nombre de + host en /etc/hosts (donde probablemente ya lo tiene + para que la mquina pueda arrancar + correctamente). Asegrese de que su mquina est + configurada para usar /etc/hosts en caso de que esa + bsqueda DNS falle. En funcin del sistema operativo que + use, puede conseguir esto editando /etc/resolv.conf, + o puede que /etc/nsswitch.conf.

+ +

Si su servidor no tiene que ejecutar bsquedas DNS por + ninguna otra razn entonces considere ejecutar Apache + especificando el valor "local" en la variable de entorno + HOSTRESORDER. Todo esto depende del sistema operativo + y de las libreras de resolucin que use. Esto + tambin afecta a los CGIs a menos que use + mod_env para controlar el entorno. Por favor, + consulte las pginas de ayuda o la seccin de Preguntas + Ms Frecuentes de su sistema operativo.

+
top
+
+

Consejos para evitar problemas

+ + +
    +
  • + use direcciones IP en + VirtualHost +
  • + +
  • + use direcciones IP en + Listen +
  • + +
  • + asegrese de que todos los host virtuales tienen + explcitamente especificados una directiva ServerName +
  • + +
  • cree un servidor <VirtualHost _default_:*> + que no tenga pginas que servir.
  • +
+
top
+
+

Apndice: Lneas de evolucin de Apache

+ + +

La situacin actual respecto a las bsquedas DNS + est lejos de ser la deseable. En Apache 1.2 se intent + hacer que el servidor al menos se iniciara a pesar de que fallara + la bsqueda DNS, pero puede que esa no sea la mejor + solucin. En cualquier caso, requerir el uso de direcciones + IP explcitas en los ficheros de configuracin no es ni + mucho menos una solucin deseable con la situacin + actual de Internet, donde la renumeracin es una + necesidad.

+ +

Una posible solucin a los ataques de robo de servicio + descritos ms arriba, sera hacer una bsqueda DNS + inversa de la direccin IP devuelta por la bsqueda + previa y comparar los dos nombres -- en caso de que sean + diferentes, el host virtual se desactivara. Esto + requerira configurar correctamente DNS inverso (una tarea + con la que suelen estar familiarizados la mayora de los + administradores de sistemas).

+ +

En cualquier caso, no parece posible iniciar en las condiciones + apropiadas un servidor web alojado virtualmente cuando DNS ha + fallado a no ser que se usen direcciones IP. Soluciones parciales + tales como desactivar partes de la configuracin podran + ser incluso peores que no iniciar el servidor en absoluto, + dependiendo de las funciones que se espera que realice el servidor + web.

+ +

Como HTTP/1.1 est ampliamente extendido y los navegadores + y los servidores proxy empiezan a usar la cabecera + Host, en el futuro ser posible evitar el uso de + hosting virtual basado en direcciones IP completamente. En ese + caso, un servidor web no tiene ninguna necesidad de hacer + bsquedas de DNS durante la configuracin. Sin embargo, + en Marzo de 1997 esas funcionalidades no estaban lo + suficientemente implantadas como para ponerlas en uso en + servidores web que realizaban tareas de importancia + crtica.

+
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html.fr b/rubbos/app/apache2/manual/dns-caveats.html.fr new file mode 100644 index 00000000..0f953f67 --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.fr @@ -0,0 +1,255 @@ + + + +Problmes DNS avec Apache - Serveur Apache HTTP + + + + + +
<-
+

Problmes DNS avec Apache

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

L'ensemble de cette page pourrait se rsumer la phrase : ne + jamais configurer Apache de telle sorte qu'il s'appuie sur des + rsolutions DNS pour parcourir ses fichiers de configuration. + Une telle configuration risque d'engendrer des problmes de + fiabilit (le serveur peut ne pas dmarrer), des attaques de type + dni et de vol de service (comme par exemple des utilisateurs volant + les hits d'autres utilisateurs).

+
+ +
top
+
+

Un exemple simple

+ + +

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

+ +

Pour qu'Apache fonctionne correctement, il a absolument besoin + de deux informations pour chacun de ses serveurs virtuels : + ServerName ainsi qu'au moins une + adresse IP laquelle le serveur s'attachera pour rpondre. + L'exemple ci-dessus ne prcise pas l'adresse IP, si bien qu'Apache doit + utiliser le DNS pour trouver l'adresse de www.abc.dom. + Si, pour une raison ou une autre, le DNS ne fonctionne pas au moment + o Apache lit ses fichiers de configuration, le serveur virtuel + ne sera pas configur. Il sera incapable de rpondre + aux requtes. Jusqu' la version 1.2, Apache refusait mme de + dmarrer dans ce cas de figure.

+ +

Prenons le cas o l'adresse de www.abc.dom est 10.0.0.1 + et considrons cet extrait de configuration :

+ +

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

+ +

Cette fois, Apache a besoin d'utiliser la rsolution DNS + inverse pour dterminer le nom ServerName de ce + serveur virtuel. Si cette rsolution n'aboutit pas, le serveur + virtuel sera partiellement mis hors service (jusqu' la version + 1.2, Apache refusait mme de dmarrer dans ce cas de figure). Si + le serveur virtuel est un serveur bas sur un nom (name-based), + il sera totalement hors service, mais s'il s'agit d'un serveur + par IP (IP-based), il fonctionnera correctement. Cependant, dans + le cas o Apache doit gnrer une adresse complte URL en + s'appuyant sur le nom du serveur, il chouera fournir une + adresse valide.

+ +

Voici un extrait de configuration qui rsout ces deux problmes :

+ +

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

+
top
+
+

Dni de Service

+ + +

Il existe (au moins) deux problmes possibles de dni de service. + Les versions d'Apache antrieures 1.2 ne dmarreront pas si + l'une des deux requtes DNS cites ci-dessus n'aboutissent pas pour + un de vos serveurs virtuels. Dans certains cas, les entres DNS + sont hors de contrle de l'administrateur Web ; par exemple si + abc.dom appartient un de vos clients qui a la + matrise de son propre DNS, celui-ci peut empcher votre serveur + Web (avant la version 1.2) de dmarrer, simplement en effaant + l'enregistrement www.abc.dom du DNS.

+ +

L'autre problme possible est bien plus pernicieux. Dans la + configuration suivante :

+ +

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

+ +

Supposons que www.abc.dom ait l'adresse 10.0.0.1, + et que www.def.dom ait l'adresse 10.0.0.2. Supposons + galement que def.com ait la main sur son DNS. + Cette configuration peut permettre def.dom de + dtourner vers son serveur tout le trafic destin + abc.dom. Pour ce faire, il doit simplement + positionner le champ DNS de www.def.dom sur 10.0.0.1, + et rien ne peut l'empcher de faire, puisqu'il a la main sur + son DNS.

+ +

Les requtes destination de 10.0.0.1 (incluant celles dont + l'URL contient http://www.abc.com/tout_et_n_importe_quoi) + seront envoyes au serveur virtuel de def.dom. Une + bonne comprhension des mcanismes internes d'Apache concernant + la gestion des serveur virtuels est requise. + Ce document explique ce + fonctionnement.

+
top
+
+

L'Adresse du "serveur principal"

+ + +

L'implmentation du support des serveur virtuels par nom depuis Apache 1.1 suppose + qu'Apache connaisse la ou les adresse(s) IP sur lesquelles le serveur + coute. Pour dterminer cette adresse, Apache utilise soit la + directive globale ServerName + (si elle est prsente), soit un appel la fonction C + gethostname (cet appel renvoie le mme rsultat + que la commande "hostname" entre sur une ligne de commande). + Une rsolution DNS est alors effectue sur l'adresse obtenue. + Pour l'instant, il n'existe aucun moyen de contourner cette + requte DNS.

+ +

Pour se prmunir du cas o cette rsolution DNS chouerait + cause de la dfaillance du serveur DNS, le nom d'hte peut tre + ajout dans /etc/hosts (il y est probablement dj). + Assurez vous que votre machine est configure pour lire ce fichier + /etc/hosts en cas de dfaillance du serveur DNS. + Pour cela, selon votre systme d'exploitation, il vous faudra configurer + /etc/resolv.conf ou /etc/nsswitch.conf.

+ +

Au cas o votre serveur n'a pas besoin de raliser des requtes + DNS pour d'autres raisons que de dmarrer Apache, il est possible + que vous puissiez vous en sortir en positionnant la variable + d'environnement HOSTRESORDER sur "local". Ceci dpend + cependant de votre systme d'exploitation et des librairies de + rsolution DNS que vous utilisez. Ceci affecte galement le + comportement des scripts CGIs, moins que vous n'utilisiez + mod_env pour contrler leur environnement. La + meilleure solution est de consulter les pages "man" ou les FAQs + spcifiques votre systme d'exploitation.

+
top
+
+

Comment viter ces problmes

+ + +
    +
  • + spcifier les adresses IP dans les + VirtualHost +
  • + +
  • + spcifier les adresses IP au moyen de + Listen +
  • + +
  • + s'assurer que tous les serveurs virtuels spcifient explicitement + leur ServerName +
  • + +
  • crer un serveur virtuel <VirtualHost _default_:*> + qui ne sert aucune page
  • +
+
top
+
+

Appendice: Perspectives futures

+ + +

Les problmes lis au DNS sont trs indsirables. partir + d'Apache 1.2, nous avons travaill ce qu'Apache dmarre mme + dans le cas o les requtes DNS chouent, mais ce n'est pas + forcment la meilleure des solutions. En tous cas, obliger + l'administrateur spcifier explicitement des adresses IP est + galement trs indsirable sur le rseau Internet tel qu'il + existe actuellement, o le nombre d'adresses IP commence manquer.

+ +

Une rponse possible au problme de vol de trafic dcrit ci-avant + pourrait tre de raliser une rsolution inverse DNS sur l'adresse IP + renvoye par la premire requte, et de comparer les deux noms + obtenus -- lorsqu'ils sont diffrents, le serveur virtuel serait + dsactiv. Ceci suppose que la configuration pour la rsolution + inverse DNS soit faite correctement (c'est une chose laquelle + les administrateurs DNS commencent s'habituer, en raison de + l'utilisation de plus en plus rpandue des requtes DNS + "double-reverse" par les serveurs FTP et les filtrages + "TCP wrappers").

+ +

Dans tous les cas de figures, il ne semble pas possible de + dmarrer de faon fiable un serveur virtuel quand la requte + DNS a chou, moins de recourir l'utilisation d'adresses + IP fixes. Des solutions partielles, telles que dsactiver des + portions de la configuration selon les tches attribues au + serveur Web, risquent d'tre pires que ne pas dmarrer du tout.

+ +

Au fur et mesure que HTTP/1.1 se rpand, et que les navigateurs + et les serveurs mandataires envoient l'en-tte Host, + il devient possible d'viter compltement l'utilisation de serveurs + virtuels par IP. Dans ce cas, les serveurs Web n'ont plus aucun + besoin de raliser des requtes DNS lors de leur dmarrage. Au 1er + mars 1997, ces fonctionnalits ne sont pas suffisamment dployes pour + que des serveurs Web sensibles les mettent en oeuvre (NdT : cette + remarque est aujourd'hui compltement dpasse, HTTP/1.1 est + dsormais support par l'immense majorit des navigateurs et + des serveurs mandataires).

+
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html.ja.utf8 b/rubbos/app/apache2/manual/dns-caveats.html.ja.utf8 new file mode 100644 index 00000000..8db56f4b --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.ja.utf8 @@ -0,0 +1,249 @@ + + + +DNS と Apache にまつわる注意事項 - Apache HTTP サーバ + + + + + +
<-
+

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

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

本文書の内容は次の一言に尽きます。「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 バーチャルホストで応答されます。 + このようなことが何故起こるかもっと良く知るためには、 + 応答の必要なバーチャルホストへのリクエストに対して、 + 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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html.ko.euc-kr b/rubbos/app/apache2/manual/dns-caveats.html.ko.euc-kr new file mode 100644 index 00000000..392609a7 --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.ko.euc-kr @@ -0,0 +1,229 @@ + + + +DNS ġ õ - Apache HTTP Server + + + + + +
<-
+

DNS ġ õ

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ִ. ġ + DNS ʵ ϶. ġ дµ + DNS ʿϴٸ ŷڼ ( ȵ ִ) + Ȥ 񽺰ź ݰ (ڰ ٸ ڿ + ä Ͽ) 񽺵(theft of service) ݿ + ô޸ ִ.

+
+ +
top
+
+

+ + +

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

+ +

ġ ϱؼ ȣƮ + ΰ ʿϴ. + ServerName + ٸ ּ Ѱ IP ̴ּ. IP ּҰ + ⶧, ġ DNS Ͽ www.abc.dom + ּҸ ãƾ Ѵ.  + DNS ٸ ȣƮ . + ȣƮ û . (ġ 1.2 + õ Ѵ.)

+ +

www.abc.dom ּҰ 10.0.0.1̶ . + ׸ :

+ +

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

+ +

ġ ȣƮ ServerName + ã DNS ؾ Ѵ. ãⰡ ϸ ġ + ȣƮ κ . (ġ 1.2 + õ Ѵ.) , ̸ + ȣƮ ȣƮ ʰ, ip̶ + κ Ѵ. ׷ ġ Ͽ + ü URL Ѵٸ URL Ѵ.

+ +

Ʒ ΰ .

+ +

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

+
top
+
+

񽺰ź (Denial of Service)

+ + +

(ּ) ΰ 񽺰źΰ ߻ ִ. + ġ 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> +

+ +

www.abc.dom 10.0.0.1, + www.def.dom 10.0.0.2 Ҵߴٰ . + , def.dom ü DNS Ѵٰ . + Բ def.dom abc.dom + ç ִ ҿ ξ. ׷ٸ ׵ + www.def.dom 10.0.0.1 ϱ⸸ ϸ ȴ. + ׵ ü DNS ϱ⶧ ׵ ϴµ + www.def.dom ڵ带 ϴ + .

+ +

http://www.abc.dom/whatever + URL Էϴ 츦 Ͽ) 10.0.0.1 û + def.dom ȣƮ ϰ ȴ. ̷ + Ͼ Ϸ ġ  ȣƮ + û óϴ ʿϴ. + 밭 ִ.

+
top
+
+

"ּ" ּ

+ + +

ġ 1.1 ̸ + ȣƮ ԵǾ⶧ ġ + ϴ ȣƮ IP ּ() ʿ䰡 . ּҴ + (ִٸ) ServerName + Ȥ C Լ gethostname (Ʈ + "hostname" Է ) ´. ׷ ּҷ + DNS ˻ Ѵ. ˻ .

+ +

DNS ׾ ˻ ٸ + /etc/hosts ȣƮ ִ. + (ǻͰ õǾٸ Ƹ ̹ ̴.) + ׸ DNS ϸ /etc/hosts + ϴ Ȯ϶. ϴ ü + /etc/resolv.conf Ȥ /etc/nsswitch.conf + ϸ ̴.

+ +

 DNS ˻ϸ ȵȴٸ + HOSTRESORDER ȯ溯 "local" ϰ + ġ ִ. mod_env + Ͽ ȯ ʴ´ٸ ȯ溯 + CGI ش. ü manpage FAQ ϴ + .

+
top
+
+

ϱ

+ + + +
top
+
+

η: δ

+ + +

DNS õ Ȳ ſ ٶ ϴ. ġ 1.2 + 츮 DNS 쿡 ּ + . · Ͽ IP ּҸ 䱸ϴ + ȣ ٽ ؾ ͳݿ ſ ٶ + ϴ.

+ +

񽺵 Ѱ ˻ + IP ּҿ ٽ DNS ˻ Ͽ ̸ ϴ ̴. + ٸ ȣƮ ִ. + DNS ùٷ Ǿ Ѵ. (FTP TCP wrapper + "ߺ-" DNS ˻ ϱ⶧ κ ڿ + ͼ ̴.)

+ +

· IP ּҸ DNS ȣƮ + ְ . Ϻθ ϴ + Ͱ κ ذå ü ʴ ͺ + ִ.

+ +

HTTP/1.1 ԰ Ͻð Host + Ƿ IP ȣƮ + ʴ ̴. ׷ ߿ + DNS ˻ ʿ䰡 . ׷ 1997 3 ߿ + ̸ ȣƮ θ + ʾҴ.

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dns-caveats.html.tr.utf8 b/rubbos/app/apache2/manual/dns-caveats.html.tr.utf8 new file mode 100644 index 00000000..539383da --- /dev/null +++ b/rubbos/app/apache2/manual/dns-caveats.html.tr.utf8 @@ -0,0 +1,239 @@ + + + +Apache ve DNS ile ilgili Konular - Apache HTTP Sunucusu + + + + + +
<-
+

Apache ve DNS ile ilgili Konular

+
+

Mevcut Diller:  en  | + es  | + fr  | + 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, + mesela.dom’un DNS kaydının sizin denetiminizde olmadığını + varsayalım. Bu yapılandırmayla, mesela.dom’u + fesmekan.dom’a giden tüm trafiği çalabilecek duruma + getirirsiniz. Bunu gerçekleştirmek için DNS kaydında + misal.mesela.dom’a 192.168.2.1 adresinin atanması + yeterlidir. Kendi DNS’lerine sahip olduklarından dolayı + misal.mesela.dom’a istedikleri IP adresini atamaktan + onları alıkoyamazsınız.

+ +

192.168.2.1’e gelen isteklerin hepsine + (http://falan.fesmekan.dom/biryer şeklinde yazılan + adresler dahil) mesela.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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html b/rubbos/app/apache2/manual/dso.html new file mode 100644 index 00000000..dd32ded0 --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: dso.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: dso.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: dso.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: dso.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/dso.html.en b/rubbos/app/apache2/manual/dso.html.en new file mode 100644 index 00000000..f37d73a0 --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.en @@ -0,0 +1,318 @@ + + + +Dynamic Shared Object (DSO) Support - Apache HTTP Server + + + + + +
<-
+

Dynamic Shared Object (DSO) Support

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

The Apache HTTP Server is a modular program where the + administrator can choose the functionality to include in the + server by selecting a set of modules. The modules can be + statically compiled into the httpd binary when the + server is built. Alternatively, modules can be compiled as + Dynamic Shared Objects (DSOs) that exist separately from the + main httpd binary file. DSO modules may be + compiled at the time the server is built, or they may be + compiled and added at a later time using the Apache Extension + Tool (apxs).

+ +

This document describes how to use DSO modules as well as + the theory behind their use.

+
+ +
top
+
+

Implementation

+ + + +

The DSO support for loading individual Apache modules is based + on a module named mod_so which must be statically + compiled into the Apache core. It is the only module besides + core which cannot be put into a DSO + itself. Practically all other distributed Apache modules can then + be placed into a DSO by individually enabling the DSO build for + them via configure's + --enable-module=shared option as discussed + in the install documentation. After a + module is compiled into a DSO named mod_foo.so you + can use mod_so's LoadModule command in your + httpd.conf file to load this module at server startup + or restart.

+ +

To simplify this creation of DSO files for Apache modules + (especially for third-party modules) a new support program + named apxs (APache + eXtenSion) is available. It can be used to build DSO based + modules outside of the Apache source tree. The idea is + simple: When installing Apache the configure's + make install procedure installs the Apache C + header files and puts the platform-dependent compiler and + linker flags for building DSO files into the apxs + program. This way the user can use apxs to compile + his Apache module sources without the Apache distribution + source tree and without having to fiddle with the + platform-dependent compiler and linker flags for DSO + support.

+
top
+
+

Usage Summary

+ +

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

+ +
    +
  1. + Build and install a distributed Apache module, say + mod_foo.c, into its own DSO + mod_foo.so: + +

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

    +
  2. + +
  3. + Build and install a third-party Apache module, say + mod_foo.c, into its own DSO + mod_foo.so: + +

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

    +
  4. + +
  5. + Configure Apache for later installation of shared + modules: + +

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

    +
  6. + +
  7. + Build and install a third-party Apache module, say + mod_foo.c, into its own DSO + mod_foo.so outside of the Apache + source tree using apxs: + +

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

    +
  8. +
+ +

In all cases, once the shared module is compiled, you must + use a LoadModule + directive in httpd.conf to tell Apache to activate + the module.

+
top
+
+

Background

+ +

On modern Unix derivatives there exists a nifty mechanism + usually called dynamic linking/loading of Dynamic Shared + Objects (DSO) which provides a way to build a piece of + program code in a special format for loading it at run-time + into the address space of an executable program.

+ +

This loading can usually be done in two ways: Automatically + by a system program called ld.so when an + executable program is started or manually from within the + executing program via a programmatic system interface to the + Unix loader through the system calls + dlopen()/dlsym().

+ +

In the first way the DSO's are usually called shared + libraries or DSO libraries and named + libfoo.so or libfoo.so.1.2. They + reside in a system directory (usually /usr/lib) + and the link to the executable program is established at + build-time by specifying -lfoo to the linker + command. This hard-codes library references into the executable + program file so that at start-time the Unix loader is able to + locate libfoo.so in /usr/lib, in + paths hard-coded via linker-options like -R or in + paths configured via the environment variable + LD_LIBRARY_PATH. It then resolves any (yet + unresolved) symbols in the executable program which are + available in the DSO.

+ +

Symbols in the executable program are usually not referenced + by the DSO (because it's a reusable library of general code) + and hence no further resolving has to be done. The executable + program has no need to do anything on its own to use the + symbols from the DSO because the complete resolving is done by + the Unix loader. (In fact, the code to invoke + ld.so is part of the run-time startup code which + is linked into every executable program which has been bound + non-static). The advantage of dynamic loading of common library + code is obvious: the library code needs to be stored only once, + in a system library like libc.so, saving disk + space for every program.

+ +

In the second way the DSO's are usually called shared + objects or DSO files and can be named with an + arbitrary extension (although the canonical name is + foo.so). These files usually stay inside a + program-specific directory and there is no automatically + established link to the executable program where they are used. + Instead the executable program manually loads the DSO at + run-time into its address space via dlopen(). At + this time no resolving of symbols from the DSO for the + executable program is done. But instead the Unix loader + automatically resolves any (yet unresolved) symbols in the DSO + from the set of symbols exported by the executable program and + its already loaded DSO libraries (especially all symbols from + the ubiquitous libc.so). This way the DSO gets + knowledge of the executable program's symbol set as if it had + been statically linked with it in the first place.

+ +

Finally, to take advantage of the DSO's API the executable + program has to resolve particular symbols from the DSO via + dlsym() for later use inside dispatch tables + etc. In other words: The executable program has to + manually resolve every symbol it needs to be able to use it. + The advantage of such a mechanism is that optional program + parts need not be loaded (and thus do not spend memory) until + they are needed by the program in question. When required, + these program parts can be loaded dynamically to extend the + base program's functionality.

+ +

Although this DSO mechanism sounds straightforward there is + at least one difficult step here: The resolving of symbols from + the executable program for the DSO when using a DSO to extend a + program (the second way). Why? Because "reverse resolving" DSO + symbols from the executable program's symbol set is against the + library design (where the library has no knowledge about the + programs it is used by) and is neither available under all + platforms nor standardized. In practice the executable + program's global symbols are often not re-exported and thus not + available for use in a DSO. Finding a way to force the linker + to export all global symbols is the main problem one has to + solve when using DSO for extending a program at run-time.

+ +

The shared library approach is the typical one, because it + is what the DSO mechanism was designed for, hence it is used + for nearly all types of libraries the operating system + provides. On the other hand using shared objects for extending + a program is not used by a lot of programs.

+ +

As of 1998 there are only a few software packages available + which use the DSO mechanism to actually extend their + functionality at run-time: Perl 5 (via its XS mechanism and the + DynaLoader module), Netscape Server, etc. Starting + with version 1.3, Apache joined the crew, because Apache + already uses a module concept to extend its functionality and + internally uses a dispatch-list-based approach to link external + modules into the Apache core functionality. So, Apache is + really predestined for using DSO to load its modules at + run-time.

+
top
+
+

Advantages and Disadvantages

+ +

The above DSO based features have the following + advantages:

+ +
    +
  • The server package is more flexible at run-time because + the actual server process can be assembled at run-time via + LoadModule + httpd.conf configuration commands instead of + configure options at build-time. For instance + this way one is able to run different server instances + (standard & SSL version, minimalistic & powered up + version [mod_perl, PHP3], etc.) with only one Apache + installation.
  • + +
  • The server package can be easily extended with + third-party modules even after installation. This is at least + a great benefit for vendor package maintainers who can create + a Apache core package and additional packages containing + extensions like PHP3, mod_perl, mod_fastcgi, + etc.
  • + +
  • Easier Apache module prototyping because with the + DSO/apxs pair you can both work outside the + Apache source tree and only need an apxs -i + command followed by an apachectl restart to + bring a new version of your currently developed module into + the running Apache server.
  • +
+ +

DSO has the following disadvantages:

+ +
    +
  • The DSO mechanism cannot be used on every platform + because not all operating systems support dynamic loading of + code into the address space of a program.
  • + +
  • The server is approximately 20% slower at startup time + because of the symbol resolving overhead the Unix loader now + has to do.
  • + +
  • The server is approximately 5% slower at execution time + under some platforms because position independent code (PIC) + sometimes needs complicated assembler tricks for relative + addressing which are not necessarily as fast as absolute + addressing.
  • + +
  • Because DSO modules cannot be linked against other + DSO-based libraries (ld -lfoo) on all platforms + (for instance a.out-based platforms usually don't provide + this functionality while ELF-based platforms do) you cannot + use the DSO mechanism for all types of modules. Or in other + words, modules compiled as DSO files are restricted to only + use symbols from the Apache core, from the C library + (libc) and all other dynamic or static libraries + used by the Apache core, or from static library archives + (libfoo.a) containing position independent code. + The only chances to use other code is to either make sure the + Apache core itself already contains a reference to it or + loading the code yourself via dlopen().
  • +
+ +
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html.es b/rubbos/app/apache2/manual/dso.html.es new file mode 100644 index 00000000..c162e8e9 --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.es @@ -0,0 +1,375 @@ + + + +Soporte de Objetos Dinamicos Compartidos (DSO) - Servidor HTTP Apache + + + + + +
<-
+

Soporte de Objetos Dinamicos Compartidos (DSO)

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

El servidor HTTP Apache es un programa modular en el que el + administrador puede elegir qu funcionalidades se incluyen + mediante la seleccin de un conjunto de mdulos. En + primer lugar, los mdulos pueden compilarse de manera + esttica en el binario httpd. De forma + alternativa, los mdulos tambin pueden compilarse como + Objetos Dinamicos Compartidos (DSOs) que existen de forma + independiente del archivo binario httpd. Los + mdulos que se deseen usar como objetos dinmicos + compartidos pueden compilarse al mismo tiempo que el servidor, o + pueden compilarse en otro momento y ser aadidos despus + usando la Herramienta de Extensin de Apache + (apxs).

+ +

Este documento describe cmo usar los mdulos en + forma de objeto dinmico compartido (DSO) as como los + fundamentos tericos que hay detrs para explicar su + funcionamiento.

+
+ +
top
+
+

Implementacin

+ + + +

Cargar mdulos de Apache individualmente como objetos + dinmicos compartidos (DSO) es posible gracias a un + mdulo llamado mod_so que debe compilarse + estticamente en el ncleo (kernel) de Apache. Es el + nico mdulo junto con el mdulo + core que no se puede usar como objeto + dinmico compartido. Prcticamente todos los dems + mdulos distribuidos con Apache se pueden usar como objetos + dinmicos compartidos individualmente siempre y cuando se + haya activado la posibilidad de usarlos con la opcin de + configure + --enable-module=shared tal y como se + explic en la documentacin de + instalacin. Una vez que haya compilado un mdulo + como objeto dinmico compartido y le haya puesto un nombre + del tipo mod_foo.so, puede cargarlo al iniciar o + reiniciar el servidor usando el comando LoadModule de mod_so + en el fichero httpd.conf.

+ +

Para simplificar la creacin de objetos dinmicos + compartidos para Apache (especialmente mdulos de terceras + partes) est disponible un nuevo programa de soporte llamado + apxs (APache eXtenSion). Puede usar + este programa para crear mdulos como objetos dinmicos + compartidos sin tener que crearlos al mismo tiempo que + compila su servidor Apache. La idea es simple: cuando se instala + Apache el procedimiento make install de + configure @@@ installs the Apache C header + files and puts the platform-dependent compiler and linker flags + for building DSO files into the apxs program / instala los + ficheros de cabecera de C de Apache y especifica las opciones de + compilacin y enlace dependientes de la plataforma para + generar objetos dinmicos compartidos con + apxs. De esta manera el usuario puede usar + apxs para compilar el cdigo fuente de + mdulos de Apache de manera independiente y sin tener que + preocuparse por las opciones de compilacin y enlace + dependientes de la plataforma que soportan objetos dinmicos + compartidos.

+ +
top
+
+

Resumen de uso

+ +

Para que se haga una idea de lo que permite el soporte de + objetos dinmicos compartidos en Apache 2.0, aqu tiene + un resumen breve pero conciso:

+ +
    +
  1. + Construir e instalar un mdulo incluido en la + distribucin de Apache, digamos + mod_foo.c, como un objeto dinmico + compartido de nombre mod_foo.so: + +

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

    +
  2. + +
  3. + Construir e instalar un mdulo de Apache de una + tercera parte, digamos mod_foo.c, como + un objeto dinmico compartido de nombre + mod_foo.so: + +

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

    +
  4. + +
  5. + Configurar Apache para poder instalar despus + objetos dinmicos compartidos: + +

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

    +
  6. + +
  7. + Construir e instalar un mdulo de Apache de una + tercera parte, digamos mod_foo.c, como + un objeto dinmico compartido de nombre + mod_foo.so fuera de la estructura de + directorios de Apache usando apxs: + +

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

    +
  8. +
+ +

En todos los casos, una vez que se compila el objeto + dinmico compartido, debe usar una directiva LoadModule en + httpd.conf para activar dicho mdulo.

+
top
+
+

Fundamentos teorricos +detrs de los objetos dinmicos compartidos

+ +

En las versiones modernas de Unix, existe un mecanismo + especialmente til normalmente llamado enlazado/carga de + Objetos Dinmicos Compartidos (DSO). Este mecanismo + ofrece una forma de construir trozos de cdigo de programa en + un formato especial para cargarlo en tiempo de ejecucin en + el espacio de direcciones de memoria de un programa + ejecutable.

+ +

Esta carga puede hacerse de dos maneras: automticamente + con un programa de sistema llamado ld.so al inicio de + un programa ejecutable o manualmente desde dentro del programa en + ejecucin con una interfaz programtica del sistema al + cargador de Unix mediante llamadas al sistema + dlopen()/dlsym().

+ +

Si se usa el primer mtodo, los objetos dinmicos + compartidos se llaman normalmente libreras + compartidas libreras DSO y se + nombran como libfoo.so o + libfoo.so.1.2. Residen en un directorio de + sistema (normalmente /usr/lib) y el enlace con el + programa ejecutable se establece al construir la librera + especificando la opcin-lfoo al comando de + enlace. Esto incluye las referencias literales a las + libreras en el programa ejecutable de manera que cuando + se inicie, el cargador de Unix ser capaz de localizar + libfoo.so en /usr/lib, en rutas + referenciadas literalmente mediante opciones del linker como + -R o en rutas configuradas mediante la variable + de entorno LD_LIBRARY_PATH. Entonces se resuelven + los smbolos (todava no resueltos) en el programa + ejecutable que estn presentes en el objeto dinmico + compartido.

+ +

Los smbolos en el programa ejecutable no estn + referenciados normalmente en el objeto dinmico compartido + (porque son libreras reusables de propsito general) y + por tanto, no se producen ms resoluciones. El programa + ejecutable no tiene que hacer nada por s mismo para usar los + smbolos del objeto dinmico compartido porque todo el + trabajo de resolucin lo hace @@@ Unix loader / el cargador + de Unix @@@. (De hecho, el cdigo para invocar + ld.so es parte del cdigo que se ejecuta al + iniciar, y que hay en cualquier programa ejecutable que haya sido + construido de forma no esttica). La ventaja de cargar + dinmicamente el cdigo de las libreras comunes es + obvia: el cdigo de las libreras necesita ser almacenado + solamente una vez, en una librera de sistema como + libc.so, ahorrando as espacio en disco.

+ +

Por otro lado, los objetos dinmicos compartidos + tambin suelen llamarse objetos compatidos o + ficheros DSO y se les puede nombrar con cualquier + extensin (aunque su nombre cannico es + foo.so). Estos archivos normalmente permanecen + dentro de un directorio especfico del programa y no se + establecen enlaces automticamente con los programas + ejecutables con los que se usan. En lugar de esto, el + programa ejecutable carga manualmente el objeto dinmico + compartido en tiempo de ejecucin en su espacio de + direcciones de memoria con dlopen(). En ese + momento no se resuelven los smbolos del objeto + dinmico compartido para el programa ejecutable. En lugar + de esto, el cargador de Unix resuelve automticamente los + smbolos (an no resueltos en el objeto + dinmico compartido del conjunto de smbolos + exportados por el programa ejecutable y de las libreras + DSO que tenga ya cargadas (especialmente todos los + smbolos de la omnipresente libc.so). De + esta manera el objeto dinmico compartido puede conocer + el conjunto de smbolos del programa ejecutable como si + hubiera sido enlazado estticamente en un primer + momento.

+ +

Finalmente, para beneficiarse de la API de las DSOs, el + programa ejecutable tiene que resolver los smbolos + particulares de la DSO con dlsym() para ser usado + ms tarde dentro de tablas de direccionamiento (dispatch + tables) etc. En otras palabras: El programa ejecutable + tiene que resolver manualmente cada uno de los smbolos que + necesita para poder usarlo despus. La ventaja de ese + mecanismo es que las partes opcionales del programa no necesitan + ser cargadas (y por tanto no consumen memoria) hasta que se + necesitan por el programa en cuestin. Cuando es necesario, + estas partes del programa pueden cargarse dinmicamente para + expandir las funcionalidades bsicas del programa.

+ +

Aunque este mecanismo DSO parece muy claro, hay al menos un + paso de cierta dificultad: la resolucin de los smbolos + que usa el programa ejecutable por la DSO cuando se usa una DSO + para extender la funcionalidad de una programa (segundo caso). Por + qu? Porque la resolucin inversa de smbolos de + DSOs del conjunto de smbolos del programa ejecutable se hace + en contra del diseo de la librera (donde la + librera no tiene conocimiento sobre los programas que la + usan) y tampoco est disponible en todas las plataformas no + estandarizadas. En la prctica los smbolos globales del + programa ejecutable estn disponibles para su uso en una + DSO. El mayor problema que hay que resolver cuando se usan DSOs + para extender un programa en tiempo de ejecucin es encontrar + un modo de forzar al enlazador a exportar todos los smbolos + globales.

+ +

El enfoque de las libreras compartidas es bastante + tpico, porque es para lo que se diseo el mecanismo + DSO, por tanto se usa para casi todos los tipos de libreras + que incluye el sistema operativo. Por otro lado, no muchos + programas usan objetos compartidos para expandir sus + funcionalidades.

+ +

En 1998, haba solamente unos pocos programas disponibles + que usaban el mecanismo DSO para extender su funcionalidad en + tiempo de ejecucion: Perl 5 (por medio de su mecanismo XS y el + mdulo DynaLoader), Netscape Server, etc. A partir + de la version 1.3, Apache se uni a este grupo, Apache usa + desde entonces una concepcin modular para extender su + funcionalidad e internamente usa un enfoque de tablas de + direccionamiento (dispatch-list-based) para enlazar mdulos + externos con las funcionalidades propias del servidor. De esta + manera, Apache puede usar el mecanismo DSO para cargar sus + mdulos en tiempo de ejecucin.

+
top
+
+

Ventajas e Inconvenientes

+ +

Las caractersticas de las libreras dinmicas + compartidas arriba explicadas tienen las siguientes ventajas:

+ +
    +
  • El servidor es mucho ms flexible en tiempo de + ejecucin porque pueden aadirse mdulos mediante + comandos de configuracin LoadModule en + httpd.conf en lugar de tener que hacerlo con las + opciones de configure al compilar. Por + ejemplo, de esta manera uno puede ejecutar diferentes instancias + del servidor (estndar & SSL, mnima & super + potente [mod_perl, PHP3], etc.) con una nica + instalacin de Apache.
  • + +
  • El servidor puede ser extendido fcilmente con + mdulos de terceras partes despus de la + instalacin. Esto es un gran beneficio al menos para los + mantenedores de paquetes de distribuciones, que pueden crear un + paquete bsico de Apache y paquetes adicionales que + contengan extensiones tales como PHP3, mod_perl, mod_fastcgi, + etc.
  • + +
  • Facilita la labor de hacer prototipos de mdulos de + Apache porque con el do DSO/apxs se + puede trabajar fuera de la estructura de directorios de Apache y + nicamente es necesario el comando apxs -i + seguido del comando apachectl restart para probar + la nueva versin del mdulo que se est + desarrollando.
  • +
+ +

DSO presenta los siguientes inconvenientes:

+ +
    +
  • El mecanismo DSO no puede ser usado en todas las plataformas + porque no todos los sistemas operativos soportan la carga + dinmica de cdigo en el espacio de direcciones de + memoria de un programa.
  • + +
  • El servidor es aproximadamente un 20% ms lento + inicindose por la sobrecarga que implica la + resolucin de smbolos por parte del cargador de Unix.
  • + +
  • El servidor es aproximadamente un 5% ms lento + ejecutndose en algunas plataformas porque el cdigo + posicionado independientemente (PIC) necesita algunas veces + procesos bastante complicados para calcular direcciones + relativas que no son en principio tan rpidos como los que + se usan para calcular direcciones absolutas.
  • + +
  • Como los mdulos DSO no pueden enlazarse a otras + libreras basadas en DSO (ld -lfoo) en todas + las plataformas (por ejemplo en las plataformas basadas en a.out + normalmente no puede ser usada esta funcionalidad, mientras que + s puede ser usada en las plataformas basadas en ELF) no se + puede usar el mecanismo DSO para todos los tipos de + mdulos. En otras palabras, los mdulos compilados + como ficheros DSO solamente pueden usar smbolos del + ncleo (kernel) de Apache, los de las libreras de C + (libc) y de todas las demas libreras + dinmicas o estticas usadas por el ncleo de + Apache, o de archivos de libreras estticas + (libfoo.a) que contengan cdigo independiente + de su posicin. Las nicas posibilidades para usar + otro cdigo es asegurarse de que el ncleo de Apache + contiene una referencia a l o cargar el cdigo por + medio de dlopen().
  • +
+ +
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html.fr b/rubbos/app/apache2/manual/dso.html.fr new file mode 100644 index 00000000..1da1434b --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.fr @@ -0,0 +1,322 @@ + + + +Support des objets partags dynamiques (DSO) - Serveur Apache HTTP + + + + + +
<-
+

Support des objets partags dynamiques (DSO)

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
Cette traduction peut tre prime. Consultez la version + Anglaise pour les changements rcents.
+ +

Le serveur HTTP Apache est un programme modulaire permettant + l'administrateur de choisir les fonctionnalits qu'il souhaite + activer, au moyen de modules. Les modules peuvent tre intgrs + dans le programme binaire httpd au moment de la + compilation. Il est galement possible de compiler part des + modules en tant qu'objets dynamiques partags (Dynamic Shared + Objects : DSOs) existant sparment du fichier binaire principal + httpd. Les modules DSO peuvent tre compils en mme + temps que le serveur, ou aprs, au moyen de l'outil Apache pour + les extensions (apxs).

+ +

Ce document dcrit les principes de fonctionnement des modules DSO, et + montre comment les utiliser.

+
+ +
top
+
+

Implmentation

+ + + +

Le support DSO servant charger des modules Apache, est lui-mme + cod dans un module, nomm mod_so, qui doit tre + compil dans le noyau d'Apache. Ce module, ainsi que le module + core, sont les deux seuls modules qui ne peuvent + tre compils sparment d'Apache. En pratique, tous les autres + modules d'Apache peuvent tre compils en tant que modules DSO, + en passant au script configure l'option + --enable-module=shared, comme prcis dans + la documentation d'installation. Aprs + qu'un module ait t compil en DSO (nomm + mod_monmodule.so), il est possible d'utiliser la + directive de mod_so : LoadModule dans le fichier httpd.conf, + afin qu'Apache charge ledit module au dmarrage ou redmarrage du + serveur.

+ +

Afin de simplifier la cration de fichiers DSO pour les + modules Apache (et en particulier les modules tiers), un nouveau + programme de support a t ajout : apxs (APache eXtenSion). Ce programme peut tre + utilis pour crer des modules DSO en se passant de + l'arborescence source d'Apache. L'ide en est simple : lors de + l'installation d'Apache, la commande make install + positionne les fichiers d'en-ttes C d'Apache, ainsi que les + options du compilateur et les options propres la plate-forme + dans le programme apxs. Ceci permet l'utilisateur + de compiler ses modules Apache, au moyen de apxs, + sans disposer de l'arborescence source d'Apache et sans devoir + manipuler les options de compilation ou les options propres + sa plate-forme.

+
top
+
+

Rsum sur l'utilisation des DSO

+ +

Voici un rsum bref des fonctionnalits DSO d'Apache 2.0 :

+ +
    +
  1. + Pour compiler et installer un module Apache distribu + avec Apache, par exemple mod_foo.c, en tant + que DSO, sous le nom mod_foo.so : + +

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

    +
  2. + +
  3. + Pour compiler et installer un module Apache fourni par un + tiers, par exemple mod_foo.c, en tant que DSO, + sous le nom mod_foo.so : + +

    +$ ./configure --add-module=module_type:/chemin/vers/le/tiers/mod_foo.c --enable-foo=shared
    +$ make install +

    +
  4. + +
  5. + Pour configurer Apache afin qu'il puisse accepter les modules DSO : + +

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

    +
  6. + +
  7. + Pour compiler et installer un module Apache fourni par un + tiers, par exemple mod_foo.c, en tant que + DSO, et sans disposer de l'arborescence source d'Apache + (utilisation d'apxs) : + +

    +$ cd /chemin/vers/le/tiers
    +$ apxs -c mod_foo.c
    +$ apxs -i -a -n foo mod_foo.la +

    +
  8. +
+ +

Dans tous les cas, une fois qu'un module a t compil en tant + que DSO, vous devrez utiliser la directive + LoadModule dans le + fichier httpd.conf afin qu'Apache active le module.

+
top
+
+

Contexte

+ +

Sur les systmes rcents, drivs d'Unix, il existe un procd + lgant, habituellement appel chargement dynamique d'objets + partags DSO, permettant de compiler un morceau de code sous un + format spcial, et de pouvoir le charger en temps rel dans + l'espace d'adressage d'un programme excutable.

+ +

Ce chargement peut tre ralis de deux manires : + automatiquement, grce un programme systme nomm ld.so + lors du dmarrage d'un excutable, ou manuellement depuis un programme + en excution via une interface programme au moyen des appels + systmes dlopen()/dlsym() du "chargeur" Unix

+ +

Dans le premier cas, il est courant d'appeler les DSO des + bibliothques partages ou des bibliothques DSO ; + on les nomme libfoo.so ou libfoo.so.1.2. + Elles sont toutes places dans un rpertoire systme (souvent + /usr/lib) et sont lies par les programmes excutables + lors de la compilation de ces derniers, en prcisant au moment de + la compilation l'option -lfoo la commande de link + (linker command). Cette manire de procder insre les rfrences + des bibliothques dans le coeur des programmes, afin qu'au moment + du dmarrage du programme, le "chargeur" Unix puisse trouver + libfoo.so dans /usr/lib, ou bien dans + les chemins cods en dur au moyen de l'option de link -R, + ou dans un chemin configur au moyen de la variable d'environnement + LD_LIBRARY_PATH. Tous les symboles non rsolus prsents + dans le programme sont alors rsolus au moyen de DSO.

+ +

Les symboles propres au programme excutable ne sont gnralement + pas rfrencs par le DSO (puisque c'est une bibliothque de code + gnrique), et donc aucune rsolution ne doit tre suivie au del + de ce point. Le programme excutable n'a pas de travail particulier + faire pour rsoudre les symboles des DSO, puisque c'est le + "chargeur" Unix qui s'occupe de cette tche. (En ralit, le code + utilis pour invoquer ld.so fait partie du code de + dmarrage run-time, qui est li chaque programme excutable + non statique). L'avantage du chargement dynamique des bibliothques + de code gnrique est vident : le code n'est conserv qu' un seul + endroit du disque, dans une bibliothque systme comme + libc.so, ce qui permet de gagner de l'espace disque + pour chaque programme.

+ +

Dans le second cas, les DSO sont appels objets partags + ou fichiers DSO et on peut leur attribuer une extension au + choix (bien que leur nom soit habituellement foo.so). + Ces fichiers rsident normalement dans un rpertoire propre au + programme qui les utilise, et ils ne sont pas lis de manire + automatique au programme qui les appelle. Celui-ci les charge en + temps rel lors de son excution, au moyen de dlopen(). + cet instant, aucune rsolution des symboles du DSO n'est ralise. + C'est le "chargeur" Unix qui ralise la tche de rsoudre les + symboles non rsolus du DSO, partir du jeu de symboles exports + par le programme et ses bibliothques DSO (en particulier, tous + les symboles de l'omniprsente libc.so). Ainsi, le DSO + gagne la connaissance des symboles du programme excutable, comme + s'il lui avait t li statiquement au dpart.

+ +

Enfin, pour tirer parti de l'API DSO, l'excutable doit rsoudre + les symboles propres au DSO via dlsym(), pour les + utiliser plus tard dans les tables de rpartition (NdT : "dispatch + tables"), etc. En d'autres termes, le programme excutable + doit rsoudre lui-mme chaque symbole pour utiliser chacun d'entre + eux. L'avantage de ce mcanisme est que les parties optionnelles + d'un programme ne sont pas charges (et donc, n'encombrent pas la + mmoire) avant que le programme n'en ait effectivement besoin. + Quand elles deviennent ncessaires, ces parties du programme peuvent + tre charges dynamiquement pour tendre les fonctionnalits du + programme.

+ +

Bien que ce fonctionnement de DSO puisse paratre simple + comprendre, il existe au moins une difficult d'implmentation : + permettre au DSO de rsoudre les symboles du programme quand un DSO + est utilis pour tendre un programme. Pourquoi cela ? Parce que la + "rsolution l'envers" des symboles DSO partir des symboles du + programme excutable est contraire au principe de conception des + bibliothques (o, rappelons-le, la bibliothque ne sait rien du + programme qui l'utilise) ; cette "rsolution l'envers" n'est pas + standardise, et n'existe pas sur toutes les plates-formes. En + pratique, les symboles globaux d'un programme excutable ne sont + que rarement rexports vers un DSO, et donc ne sont pas accessibles. + Celui qui veut pouvoir tendre les fonctionnalits d'un programme + dynamiquement, lors de l'excution, doit trouver un moyen de forcer + le programme de liaison exporter tous les symboles globaux de ce + programme.

+ +

L'approche par bibliothques partages est de loin la plus courante + parce que c'est celle pour laquelle les mcanismes DSO ont t conus ; + elle est donc utilise par presque toutes les bibliothques du systme + d'exploitation. De l'autre cot, l'utilisation des objets partags reste + une approche marginale.

+ +

Depuis 1998, seules quelques solutions logiciels existantes + utilisent le mcanisme des DSO pour tendre leurs fonctionnalits + en cours excution : Perl 5 (via son "XS mechanism" et le module + DynaLoader), Netscape Server, etc. Depuis la version 1.3, + Apache a rejoint ce groupe, car Apache utilise une approche + modulaire pour tendre ses fonctionnalits, et utilise de manire + interne des mcanismes de rpartition par liste pour lier des + modules externes son noyau. Apache tait vraiment prdestin, + par concept, utiliser les DSO pour charger ses modules en temps + rel.

+
top
+
+

Avantages et Inconvnients

+ +

Les possibilits des DSO dcrites ci-avant prsentent les + avantages suivants :

+ +
    +
  • Le paquetage du serveur est plus flexible lors de son excution, + car les processus du serveur central peuvent tre tendus pendant + son excution, au moyen de la directive + LoadModule, dans + httpd.conf, plutt que forcer les utilisateurs + recompiler le serveur pour modifier ses fonctionnalits. Par + exemple, ce mode de fonctionnement permet de faire tourner + plusieurs instances du serveur (version standard & SSL + version, version minimaliste & tendue [mod_perl, PHP3], + etc.) au moyen d'une seule installation d'Apache.
  • + +
  • Il est trs facile d'tendre les fonctionnalits du serveur + de base, mme aprs son installation. Ceci est d'un grand secours + aux mainteneurs des paquets qui peuvent facilement crer des + paquets pour l'installation de base d'Apache et d'autres paquets + diffrents pour les extensions, comme PHP3, mod_perl, + mod_fastcgi, etc.
  • + +
  • Facilit de dveloppement des modules Apache ; grce aux outils + DSO/apxs, ce travail est faisable sans l'arborescence + source d'Apache, et ne ncessite qu'une commande apxs -i + suivi d'un apachectl restart pour ajouter au serveur + dj en marche les fonctionnalits du module dvelopp.
  • +
+ +

Les inconvnients lis l'utilisation des DSO :

+ +
    +
  • Les mcanismes de DSO ne sont pas portables sur toutes les + plates-formes, car tous les systmes d'exploitation ne supportent + pas le chargement dynamique de code dans l'espace d'adressage d'un + programme en marche.
  • + +
  • Le serveur est peu prs 20% plus lent au dmarrage, cause de la + charge prise par le "chargeur" Unix de la rsolution des symboles.
  • + +
  • Le serveur est peu prs 5% plus lent en fonctionnement sur + certaines plates-formes parce que le code indpendant de la + position ("position independent code" - PIC) requiert parfois des + tours de passe-passe en assembleur pour l'adressage relatif, ce qui + n'est pas toujours aussi rapide que l'adressage absolu.
  • + +
  • Les modules DSO ne pouvant pas tre lis d'autres bibliothques + DSO (ld -lfoo) sur toutes les plates-formes (par + exemple, les plates-formes bases sur a.out ne le permettent pas, + alors que celles bases sur ELF le permettent), il n'est pas possible + d'utiliser les mcanismes de DSO pour tous les modules. En d'autres + termes, les modules compils en tant que fichiers DSO sont limits + l'utilisation des symboles exports par le noyau d'Apache, par + la bibliothque C (libc) et toute autre bibliothque + dynamique ou statique utilise par le noyau d'Apache, ou par des + archives de bibliothques statiques (libfoo.a) qui + contiennent du code indpendant de la position. Les seuls moyens + d'utiliser du code l'extrieur d'un fichier DSO sont, soit de + s'assurer que le noyau d'Apache contienne une rfrence vers ce + code, soit de charger ce code au moyen de dlopen().
  • +
+ +
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html.ja.utf8 b/rubbos/app/apache2/manual/dso.html.ja.utf8 new file mode 100644 index 00000000..739c0fce --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.ja.utf8 @@ -0,0 +1,301 @@ + + + +動的共有オブジェクト (DSO) サポート - Apache HTTP サーバ + + + + + +
<-
+

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

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

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 のインストール時の + configuremake 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.solibfoo.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 () を使ってコードを自分自身でロードするかの + どちらかしかありません。
  • +
+ +
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html.ko.euc-kr b/rubbos/app/apache2/manual/dso.html.ko.euc-kr new file mode 100644 index 00000000..fcf463e6 --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.ko.euc-kr @@ -0,0 +1,282 @@ + + + +ü (DSO) - Apache HTTP Server + + + + + +
<-
+

ü (DSO)

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ ڰ Ͽ + ִ ȭ α׷̴. Ҷ + httpd Ͽ + ִ. ƴϸ httpd ϰ + иϿ ü(Dynamic Shared Objects, DSO) + ִ. DSO Ҷ ϰų, Apache + Extension Tool (apxs) + Ͽ ߿ Ͽ ߰ ִ.

+ +

DSO ̷ Ѵ.

+
+
  • +
  • +
  • +
  • +
+
top
+
+

+ + + +

ġ ٽɿ ؾ + mod_so.c ġ + о̱ DSO Ѵ. + core ϰ DSO + ̴. ٸ ġ + ġ + configure --enable-module=shared + ɼ Ͽ DSO ִ. + mod_foo.so DSO httpd.conf + Ͽ mod_so + LoadModule ɾ + Ͽ ۽ Ȥ ۽ о + ִ.

+ +

ġ (Ư ڰ ) DSO + apxs (APache + eXtenSion) ο α׷ ִ. α׷ + ġ ҽ Ʈ ۿ DSO + Ҷ Ѵ. . ġ ġҶ + configure make install + ġ C ġϰ, DSO ϱ + ÷ Ư Ϸ ɼǰ Ŀ ɼ apxs + α׷ Ѵ. ׷ apxs ϴ ڴ + ġ ҽ Ʈ, DSO ÷ Ư + Ϸ ɼǿ Ŀ ɼǿ Ű ʰ ڽ ġ + ҽ ִ.

+
top
+
+

+ +

Apache 2.0 DSO ɿ ª ̴:

+ +
    +
  1. + ִ ġ ϰ ġϴ + . mod_foo.c DSO + mod_foo.so: + +

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

    +
  2. + +
  3. + ڰ ġ ϰ ġϴ + . 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. + ߿ ϱ ġ ϴ + : + +

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

    +
  6. + +
  7. + ڰ ġ ϰ ġϴ + . apxs Ͽ + ġ ҽ Ʈ ۿ mod_foo.c + DSO mod_foo.so: + +

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

    +
  8. +
+ +

ϴ ϵǸ, httpd.conf + LoadModule þ + Ͽ ġ о̰ .

+
top
+
+

+ +

н ü (DSO) + ŷ/ε(dynamic linking/loading)̶ Ͽ, Ư + ڵ α׷ + ּҰ о̴ ִ.

+ +

ΰ о ִ. ϳ α׷ + Ҷ ld.so ý α׷ ڵ + о̴ , ٸ ϳ α׷ + dlopen()/dlsym() ýȣ н δ(loader) + ý ̽ Ͽ о̴ .

+ +

ù° DSO ̺귯(shared libraries) + Ȥ DSO ̺귯 θ, + libfoo.so libfoo.so.1.2 + ̸ . ̵ ý 丮( /usr/lib) + ְ, Ͻ Ŀ ɾ -lfoo ־ + ϰ Ѵ. ̷ ̺귯 Ͽ + ǿ, α׷ Ҷ Ŀ ɼ -R + , ȯ溯 LD_LIBRARY_PATH + Ȥ /usr/lib н δ + libfoo.so ã ִ. ׷ α׷ + ( ã(unresolved)) ɺ(symbol) DSO ãԵȴ.

+ +

DSO α׷ ɺ ãʱ (DSO + 밡 Ϲ ڵ ̺귯̹Ƿ) ã ⼭ + . н δ ɺ ã⸦ ϹǷ α׷ + DSO ɺ ã ʿ䰡 . ( ld.so + θ ڵ ƴ α׷ ũǴ + ڵ Ϻδ.) ̺귯 ڵ带 о̴ + Ȯϴ. ̺귯 ڵ尡 α׷ ߺؼ + Ǵ libc.so ý ̺귯 + ѹ DZ ũ ȴ.

+ +

ι° DSO ü(shared objects) + Ȥ DSO ̶ θ, (Ģ ̸ + foo.so) Ȯڴ Ӵ. + ϵ α׷ ü 丮 ġϰ α׷ + ڵ ʴ´. α׷ + dlopen() Ͽ DSO ּҰ + о鿩 Ѵ. ̶ α׷ DSO ɺ + ã ʴ´. տ н δ ڵ ϰ + ̹ о DSO ̺귯(Ư ׻ ϴ + libc.so ɺ) DSO ( ã) + ɺ ã´. ׷ DSO ġ ó α׷ + ũȰͰ ɺ ˰Եȴ.

+ +

DSO API ̿ϱؼ α׷ + dlsym() DSO Ư ɺ ãƼ, + ϱ ġ(dispatch) ǥ Ѵ. + ٸ α׷ Ǻ ãƾѴ. + ̷ α׷ Ϻθ α׷ + ʿҶ о ʾƵ (׷ ޸𸮸 + ʰ) ȴٴ ̴. ⺻ α׷ Ȯϱ + ʿ κ о ִ.

+ +

̷ DSO ڿ , ּ + Ѱִ. α׷ Ȯϱ DSO Ҷ DSO + α׷ ɺ ã ̴. ? DSO α׷ + ɺ " ã " (̺귯 ڽ ϴ α׷ + 𸥴ٴ) ̺귯 迡 ϸ, ÷ + ʰ ǥȭ ʾұ ̴. + ɺ(global symbol) ͽƮ(export) ʱ⶧ + DSO . DSO Ͽ α׷ ȮϷ + Ŀ ɺ ͽƮϵ ϴ ֵ + ذå̴.

+ +

̺귯 DSO Ģ ̱⶧ + ü ϴ ̺귯 Ѵ. + ݴ α׷ α׷ Ȯϱ ü + ʴ´.

+ +

1998 Ȯϱ DSO + Ʈ Ű (XS DynaLoader ) + Perl 5, Netscape Server 幰. ġ + ̹ Ȯϱ ߰ ܺ + ġ ٽɱɿ ϱ ġ + ̿ ٹ ߱⶧ 1.3 뿭 շߴ. + ׷ ġ о̴µ DSO ϵ + .

+
top
+
+

+ +

տ DSO ϸ ִ:

+ +
    +
  • μ Ͻ configure + ɼǴ httpd.conf LoadModule Ͽ ߿ + յǹǷ Ű ϴ. ѹ + ġ ġ ٸ (ǥ SSL , ּȭ + ߰ [mod_perl, PHP3] ) + ִ.
  • + +
  • ġĿ ڰ Ͽ + Ȯ ִ. ּ Ű ڴ ġ ٽ + Ű PHP3, mod_perl, mod_fastcgi + ߰ Ű ־ ū ̵̴.
  • + +
  • DSO apxs ġ ҽ Ʈ ۿ + ۾ϰ apxs -i apachectl restart + ɾ ġ + ݿ ־ ġ + ִ.
  • +
+ +

DSO ִ:

+ +
    +
  • α׷ ּҰ ڵ带 о̴ + ʴ ü ֱ ÷ DSO + .
  • + +
  • н δ ɺ ãƾϱ + 20% ʾ.
  • + +
  • ġڵ(position independent code, PIC) + ּ(absolute addressing) + ּ(relative addressing) + ʿϹǷ  ÷ 5% ʴ.
  • + +
  • DSO ٸ DSO ̺귯(ld -lfoo) + ũ ÷ ֱ⶧ ( ELF + ÷ a.out ÷ + ʴ´) ⿡ DSO . + ٸ DSO Ϸ ϴ ġ ٽɰ ġ + ٽ ϴ C ̺귯(libc) ٸ + / ̺귯, ġڵ带 ִ ̺귯 + ī̺(libfoo.a) ɺ ִ. + ٸ ڵ带 Ϸ ġ ٽ װ ϴ, + dlopen() ڵ带 о鿩 Ѵ.
  • +
+ +
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/dso.html.tr.utf8 b/rubbos/app/apache2/manual/dso.html.tr.utf8 new file mode 100644 index 00000000..6503d871 --- /dev/null +++ b/rubbos/app/apache2/manual/dso.html.tr.utf8 @@ -0,0 +1,312 @@ + + + +Devingen Paylaşımlı Nesne Desteği - Apache HTTP Sunucusu + + + + + +
<-
+

Devingen Paylaşımlı Nesne Desteği

+
+

Mevcut Diller:  en  | + es  | + fr  | + 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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html b/rubbos/app/apache2/manual/env.html new file mode 100644 index 00000000..8d49411e --- /dev/null +++ b/rubbos/app/apache2/manual/env.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: env.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: env.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: env.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: env.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/env.html.en b/rubbos/app/apache2/manual/env.html.en new file mode 100644 index 00000000..b1713321 --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.en @@ -0,0 +1,417 @@ + + + +Environment Variables in Apache - Apache HTTP Server + + + + + +
<-
+

Environment Variables in Apache

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ +

The Apache HTTP Server provides a mechanism for storing + information in named variables that are called environment + variables. This information can be used to control various + operations such as logging or access control. The variables are + also used as a mechanism to communicate with external programs + such as CGI scripts. This document discusses different ways to + manipulate and use these variables.

+ +

Although these variables are referred to as environment + variables, they are not the same as the environment + variables controlled by the underlying operating system. + Instead, these variables are stored and manipulated in an + internal Apache structure. They only become actual operating + system environment variables when they are provided to CGI + scripts and Server Side Include scripts. If you wish to + manipulate the operating system environment under which the + server itself runs, you must use the standard environment + manipulation mechanisms provided by your operating system + shell.

+
+ +
top
+
+

Setting Environment Variables

+ + + +

Basic Environment Manipulation

+ + +

The most basic way to set an environment variable in Apache + is using the unconditional SetEnv directive. Variables may also be passed from + the environment of the shell which started the server using the + PassEnv directive.

+ + +

Conditional Per-Request Settings

+ + +

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 + 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 + [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 + guaranteed to be unique across "all" requests under very + specific conditions.

+ + +

Standard CGI Variables

+ + +

In addition to all environment variables set within the + 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 + specification.

+ + +

Some Caveats

+ + +
    +
  • It is not possible to override or change the standard CGI + variables using the environment manipulation directives.
  • + +
  • When suexec is used to launch + CGI scripts, the environment will be cleaned down to a set of + safe variables before CGI scripts are launched. The + list of safe variables is defined at compile-time in + suexec.c.
  • + +
  • For portability reasons, the names of environment + variables may contain only letters, numbers, and the + underscore character. In addition, the first character may + 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
+
+

Using Environment Variables

+ + + + +

CGI Scripts

+ + +

One of the primary uses of environment variables is to + communicate information to CGI scripts. As discussed above, the + environment passed to CGI scripts includes standard + meta-information about the request in addition to any variables + set within the Apache configuration. For more details, see the + CGI tutorial.

+ + +

SSI Pages

+ + +

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 + conditional on characteristics of a request. Apache also + provides SSI pages with the standard CGI environment variables + as discussed above. For more details, see the SSI tutorial.

+ + +

Access Control

+ + +

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 + directives to deny access to a particular browser (User-Agent). +

+ + +

Conditional Logging

+ + +

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 + CustomLog + 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.

+ + +

Conditional Response Headers

+ + +

The Header + directive can use the presence or + absence of an environment variable to determine whether or not + a certain HTTP header will be placed in the response to the + client. This allows, for example, a certain response header to + be sent only if a corresponding header is received in the + request from the client.

+ + + +

External Filter Activation

+ + +

External filters configured by mod_ext_filter + using the ExtFilterDefine directive can + by activated conditional on an environment variable using the + disableenv= and enableenv= options.

+ + +

URL Rewriting

+ + +

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
+
+

Special Purpose Environment Variables

+ + +

Interoperability problems have led to the introduction of + mechanisms to modify the way Apache behaves when talking to + particular clients. To make these mechanisms as flexible as + possible, they are invoked by defining environment variables, + typically with BrowserMatch, + though SetEnv and + PassEnv could also be used, + for example.

+ +

downgrade-1.0

+ + +

This forces the request to be treated as a HTTP/1.0 request + even if it was in a later dialect.

+ + +

force-no-vary

+ + +

This causes any Vary fields to be removed from + the response header before it is sent back to the client. Some + clients don't interpret this field correctly (see the known client + problems page); setting this variable can work around this + problem. Setting this variable also implies + force-response-1.0.

+ + +

force-response-1.0

+ + +

This forces an HTTP/1.0 response to clients making an HTTP/1.0 + request. It was originally + implemented as a result of a problem with AOL's proxies. Some + HTTP/1.0 clients may not behave correctly when given an HTTP/1.1 + response, and this can be used to interoperate with them.

+ + + +

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.

+ + +

no-gzip

+ +

When set, the DEFLATE filter of + mod_deflate will be turned off.

+ + + +

nokeepalive

+ + +

This disables KeepAlive + when set.

+ + + +

prefer-language

+ +

This influences mod_negotiation's behaviour. If + it contains a language tag (such as en, ja + or x-klingon), mod_negotiation tries + to deliver a variant with that language. If there's no such variant, + the normal negotiation process + applies.

+ + + +

redirect-carefully

+ + +

This forces the server to be more careful when sending a redirect + 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 + methods.

+ + + +

suppress-error-charset

+ + +

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.

+ + + +
top
+
+

Examples

+ + +

Changing protocol behavior with misbehaving clients

+ + +

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

+
+#
+# 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
+ + +

Do not log requests for images in the access log

+ + +

This example keeps requests for images from appearing in the + 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 +

+ + +

Prevent "Image Theft"

+ + +

This example shows how to keep people not on your server + from using images on your server as inline-images on their + 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> +

+ +

For more information about this technique, see the + "Keeping Your Images from Adorning Other Sites" tutorial on + ServerWatch.

+ +
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html.es b/rubbos/app/apache2/manual/env.html.es new file mode 100644 index 00000000..d83da9e6 --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.es @@ -0,0 +1,440 @@ + + + +Variables de entorno de Apache - Servidor HTTP Apache + + + + + +
<-
+

Variables de entorno de Apache

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

El servidor HTTP Apache HTTP ofrece un mecanismo para almacenar + informacin en variables especiales que se llaman + variables de entorno. Esta informacin puede ser + usada para controlar diversas operaciones como por ejemplo, + almacenar datos en ficheros de registro (log files) o controlar el + acceso al servidor. Las variables de entorno se usan tambin + como un mecanismo de comunicacin con programas externos como + por ejemplo, scripts CGI. Este documento explica las diferentes + maneras de usar y manipular esas variables.

+ +

Aunque estas variables se llaman variables de entorno, + no son iguales que las variables de entorno que controla el + sistema operativo de la mquina en que se est + ejecutando Apache. Las variables de entorno de Apache se almacenan + y manipulan la en estructura interna de Apache. Solamente se + convierten en autnticas variables de entorno del sistema + operativo cuando se pasan a scripts CGI o a scripts Server Side + Include. Si quiere manipular el entorno del sistema operativo + sobre el que Apache se est ejecutando, debe usar los + mecanismos estndar de manipulacin que tenga su sistema + operativo.

+
+ +
top
+
+

Especificacin de variables de entorno

+ + + +

Manipulacin bsica del entorno

+ + +

El modo ms bsico de especificar el valor de una + variable de entorno en Apache es usando la directiva + incondicional SetEnv. Las variables pueden + tambin pasarse desde el shell en el que se inicio Apache + usando la directiva PassEnv.

+ + +

Especificacin condicional por peticin

+ + +

Si necesita ms flexibilidad, las directivas incluidas + con mod_setenvif permiten especificar valores para las + variables de entorno de manera condicional en funcin de + las caracteristicas particulares de la peticin que se + est procesando. Por ejemplo, se puede especificar un + valor para una variable solamente cuando la peticin se + haga con un navegador especfico, o solamente cuando la + peticin contenga una determinada informacin en su + cabecera. Si necesita an ms flexibilidad, puede + conseguirla con la directiva RewriteRule del mdulo + mod_rewrite que tiene la opcin [E=...] para + especificar valores en las variables de entorno.

+ + +

Identificadores nicos

+ + +

Finalmente, mod_unique_id determina el valor de la variable + de entorno UNIQUE_ID para cada + peticin. Este valor est garantizado que sea + nico entre todas las peticiones bajo condiciones muy + especficas.

+ + +

Variables CGI estndar

+ + +

Adems de todas las variables de entorno especificadas + en la configuracin de Apache y las que se pasan desde el + shell, los scripts CGI y las pginas SSI tienen un + conjunto de variables de entorno que contienen + meta-informacin sobre la peticin tal y como + establece la especificacin + CGI.

+ + +

Algunas limitaciones

+ + +
    +
  • No es posible reeemplazar los valores o cambiar las + variables estndar CGI usando las directivas de + manipulacin del entorno.
  • + +
  • Cuando se usa suexec para + lanzar scripts CGI, el entorno se limpia y se queda reducido + a un conjunto de variables seguras antes de que se + lancen los scripts. La lista de variables seguras + se define en el momento de compilar en + suexec.c.
  • + +
  • Por razones de portabilidad, los nombres de las + variables de entorno solo pueden contener letras, + nmeros y guiones bajos. Adems, el primer + caracter no puede ser un nmero. Los caracteres que no + cumplan con esta restriccin, se reemplazan + automticamente por un guin bajo cuando se pasan + a scripts CGI y a pginas SSI.
  • +
+ +
top
+
+

Cmo usar las variables de entorno

+ + + + +

Scripts CGI

+ + +

Uno de los principales usos de las variables de entorno es + pasar informacin a scripts CGI. Tal y como se explicaba + ms arriba, el entorno que se pasa a los scripts CGI + incluye meta-informacin estndar acerca de la + peticin adems de cualquier variable especificada + en la configuracin de Apache. Para obtener ms + informacin sobre este tema consulte el tutorial sobre CGIs.

+ + +

Pginas SSI

+ + +

Los documentos procesados por el servidor con el filtro + INCLUDES perteneciente a mod_include pueden + imprimir las variables de entorno usando el elemento + echo, y pueden usar las variables de entorno en + elementos de control de flujo para dividir en partes una + pgina condicional segn las caractersticas de + la peticin. Apache tambin sirve pginas SSI + con las variables CGI estndar tal y como se explica + ms arriba en este documento. Para obetener ms + informacin, consulte el tutorial sobre SSI.

+ + +

Control de acceso

+ + +

El acceso al servidor puede ser controlado en funcin + del valor de las variables de entorno usando las directivas + allow from env= y deny from env=. En + combinacin con la directiva SetEnvIf, se puede tener un + control ms flexible del acceso al servidor en + funcin de las caractersticas del cliente. Por + ejemplo, puede usar estas directivas para denegar el acceso si + el cliente usa un determinado navegador.

+ + +

Registro condicional

+ + +

Los valores de las variables de entorno pueden registrarse + en el log de acceso usando la directiva LogFormat con la + opcin %e. Adems, la decisin + sobre qu peticiones se registran puede ser tomada en + funcin del valor de las variables de entorno usando la + forma condicional de la directiva CustomLog. En + combinacin con SetEnvIf, esto permite controlar de forma + flexible de qu peticiones se guarda registro. Por + ejemplo, puede elegir no registrar las peticiones que se hagan + a ficheros cuyo nombre termine en gif, o puede + elegir registrar nicamente las peticiones que provengan + de clientes que estn fuera de su propia red.

+ + +

Cabeceras de respuesta condicionales

+ + +

La directiva Header puede utilizar la + presencia o ausencia de una variable de entorno para + determinar si una determinada cabecera HTTP se incluye en la + respuesta al cliente. Esto permite, por ejemplo, que una + determinada cabecera de respuesta sea enviada nicamente + si tambin estaba presente en la peticin del + cliente.

+ + + +

Activacin de filtros externos

+ + +

External filters configured by mod_ext_filter + using the ExtFilterDefine directive can + by activated conditional on an environment variable using the + disableenv= and enableenv= options.

+ + +

Reescritura de URLs

+ + +

La expresion %{ENV:...} de TestString + en una directiva RewriteCond permite que el + motor de reescritura de mod_rewrite pueda tomar decisiones en + funcin del valor de variables de entorno. Tenga en + cuenta que las variables accesibles en mod_rewrite sin el + prefijo ENV: no son realmente variables de + entorno. En realidad, son variables especiales de mod_rewrite + que no pueden ser accedidas desde otros mdulos.

+ +
top
+
+

Variables de entorno con funciones especiales

+ + +

Los problemas de interoperatividad han conducido a la + introduccin de mecanismos para modificar el + comportamiento de Apache cuando se comunica con determinados + clientes. Para hacer que esos mecanismos sean tan flexibles + como sea posible, se invocan definiendo variables de entorno, + normalmente con la directiva BrowserMatch, aunque + tambin se puede usar por ejemplo con las directivas + SetEnv y PassEnv.

+ +

downgrade-1.0

+ + +

Fuerza que la peticin sea tratada como una peticin + HTTP/1.0 incluso si viene en una especificacin posterior.

+ + +

force-no-vary

+ + +

Hace que cualquier campo Vary se elimine de la + cabecera de la respuesta antes de ser enviada al + cliente. Algunos clientes no interpretan este campo + correctamente (consulte la seccin sobre problemas conocidos con + clientes); usar esta variable puede evitar esos + problemas. Usar esta variable implica tambin el uso de + force-response-1.0.

+ + +

force-response-1.0

+ + +

Fuerza que la respuesta a una peticin HTTP/1.0 se haga + tambin segn la especificacin HTTP/1.0. Esto se + implement originalmente como resultado de un problema con + los proxies de AOL. Algunos clientes HTTP/1.0 no se comportan + correctamente cuando se les enva una respuesta HTTP/1.1, y + este mecanismo hace que se pueda interactuar con ellos.

+ + + +

gzip-only-text/html

+ + +

Cuando tiene valor "1", esta variable desactiva el filtro + de salida DEFLATE de mod_deflate para + contenidos de tipo diferentes de text/html.

+ + +

no-gzip

+ +

Cuando se especifica, se desactiva el filtro + DEFLATE de mod_deflate.

+ + + +

nokeepalive

+ + +

Desactiva KeepAlive.

+ + + +

prefer-language

+ +

Influye en el comportamiento de + mod_negotiation. Si contiene una etiqueta de + idioma (del tipo en, ja o + x-klingon), mod_negotiation + intenta que se use ese mismo idioma en la respuesta. Si no + est disponible ese idioma, se aplica el proceso de negociacin + normal.

+ + + +

redirect-carefully

+ + +

Fuerza que el servidor sea especialmente cuidadoso al + enviar una redireccin al cliente. Se usa normalmente + cuando un cliente tiene un problema conocido tratando las + redirecciones. Fue implementado originalmente por el problema + que presentaba el software de WebFolders de Microsoft, que + tena problemas interpretando redirecciones originadas + cuando se acceda a recursos servidos usando DAV.

+ + + +

suppress-error-charset

+ + +

Disponible en las versiones de Apache 2.0.40 y posteriores

+ +

Cuando Apache efecta una redireccin en respuesta a la + peticin de un cliente, la respuesta incluye algn texto para que + se muestre en caso de que el cliente no pueda seguir (o no siga) + automticamente la redireccin. Apache normalmente etiqueta este + texto siguiendo la codificacin ISO-8859-1.

+ +

Sin embargo, si la redireccin es a una pgina que + usa una codificacin diferente, algunas versiones de + navegadores que no funcionan correctamente intentarn usar la + codificacin del texto de redireccin en lugar de la de + pagina a la que ha sido redireccionado. La consecuencia de esto + puede ser, por ejemplo, que una pgina en griego no se + muestre correctamente.

+ +

Especificar un valor en esta variable de entorno hace que + Apache omita la codificacin en el texto que incluye con las + redirecciones, y que esos navegadores que no funcionan + correctamente muestren correctamente la pgina de destino.

+ + + +
top
+
+

Ejemplos

+ + +

Cmo cambiar el comportamiento de clientes que se + comportan de manera inapropiada

+ + +

Recomendamos que incluya las siguentes lneas en el + fichero httpd.conf para evitar problemas conocidos

+
+
+#
+# Las siguientes directivas modifican el comportamiento normal de las respuestas HTTP.
+# La primera directiva desactiva keepalive para Netscape 2.x y para navegadores 
+# que la simulan. Hay problemas conocidos con esos navegadores.
+# La segunda directiva es para Microsoft Internet Explorer 4.0b2
+# que tiene un fallo en la implemantacin de HTTP/1.1 y no soporta
+# keepalive adecuadamente cuando se usan respuestas 301  302 (redirecciones).
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+# La siguiente directiva desactiva las respuestas HTTP/1.1 para navegadores que
+# violan la especificacin HTTP/1.0 @@@ 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
+ + +

No almacenar entradas en registro de acceso para las + imgenes

+ + +

Este ejemplo evita que las peticiones de imgenes + aparezcan en el registro de acceso. Puede ser modificada + fcilmente para evitar que se registren entradas de + peticiones de directorios, o provenientes de determinados + clientes.

+ +
 
+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
+ + +

Evitar el "robo de imagenes"

+ + +

Este ejemplo muestra como evitar que otras webs usen las + imgenes de su servidor para sus pginas. Esta + configuracin no se recomienda, pero puede funcionar en + determinadas circunstancias. Asumimos que que todas sus + imgenes estn en un directorio llamado + /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>
+ +

Para obtener ms informacin sobre esta + tcnica, consulte el tutorial de ApacheToday " + Keeping Your Images from Adorning Other Sites".

+
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html.fr b/rubbos/app/apache2/manual/env.html.fr new file mode 100644 index 00000000..5836ebbb --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.fr @@ -0,0 +1,425 @@ + + + +Apache et les variables d'environnement - Serveur Apache HTTP + + + + + +
<-
+

Apache et les variables d'environnement

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
Cette traduction peut tre prime. Consultez la version + Anglaise pour les changements rcents.
+ +

Le serveur HTTP Apache permet de conserver et d'utiliser + certaines informations dans des variables appeles variables + d'environnement. Ces informations peuvent servir contrler + divers paramtres tels que la journalisation ou le contrle d'accs. + Ces variables sont galement utilises pour communiquer avec d'autres + programmes, comme les scripts CGI. Ce document traite des manires + de manipuler et de tirer parti de ces variables.

+ +

Bien qu'elles soient appeles variables d'environnement, + il ne s'agit pas de variables d'environnement contrles par le + systme d'exploitation. Ces variables sont conserves, et manipules + suivant des mcanismes internes Apache. Elles sont transformes + en vritables variables d'environnement (au sens systme) seulement + quand elles doivent tre passes des scripts CGI ou des scripts + 'Server Side Includes'. Pour manipuler l'environnement du systme + d'exploitation sur lequel tourne un serveur Apache, il suffit + d'utiliser les mthodes standard fournies par l'interprteur de + commandes du systme d'exploitation.

+
+ +
top
+
+

Dfinir les variables d'environnement

+ + + +

Manipulations simples de l'environnement

+ + +

La mthode la plus simple pour dfinir une variable + d'environnement dans Apache est d'utiliser la directive + SetEnv. Les variables + peuvent galement tre charges depuis l'interprteur de + commandes partir duquel le serveur a t dmarr, au moyen + de la directive PassEnv.

+ + +

Paramtrage selon les requtes

+ + +

Dans un but de souplesse, les directives que mod_setenvif + permet d'utiliser sont ajustables en fonction de certaines + caractristiques des requtes parvenant au serveur. Par exemple, + il est possible de dfinir une variable seulement si la requte + provient d'un certain type de navigateur (User-Agent), ou bien + si un champ Referer bien prcis est trouv. Une souplesse encore + plus grande est offerte par la directive + RewriteRule du + module mod_rewrite qui accepte le paramtre [E=...] + pour dfinir des variables d'environnement.

+ + +

Identifiants uniques

+ + +

Enfin, la variable d'environnement UNIQUE_ID + est cre par mod_unique_id pour chaque requte, de manire + tre unique et donc reprsentative de chaque requte.

+ + +

Variables CGI standard

+ + +

En plus de toutes les variables d'environnement dfinies dans + la configuration d'Apache et celles du systme d'exploitation, + les spcifications + CGI demandent que certaines variables d'environnement + contenant des informations propres la requte soient toujours + passes aux scripts CGI et aux pages SSI.

+ + +

Problmes possibles

+ + +
    +
  • Il n'est pas possible de remplacer la valeur des variables + CGI standard au moyen des directives qui manipulent les + variables d'environnement.
  • + +
  • Dans les cas o les scripts CGI sont lancs au moyen de + suexec, l'environnement est nettoy et + les variables sont initialises avec des valeurs sres, + dfinies lors de la compilation de suexec.c.
  • + +
  • Pour des raisons d'interoprabilit, les noms des variables + d'environnement ne peuvent tre constitus que de lettres, de + chiffres et du caractre de soulignement '_'. De plus, le + premier caractre du nom ne peut pas tre un chiffre. Les + caractres en contradiction avec ces rgles sont remplacs par + des caractres de soulignement avant que les variables ne + soient transmises aux scripts CGI ou aux pages SSI.
  • +
+ +
top
+
+

Utilisation des variables d'environnement

+ + + + +

Scripts CGI

+ + +

Une des principales utilisations des variables d'environnement + est l'envoi d'informations aux scripts CGI. Comme prcis ci- + avant, l'environnement pass aux scripts CGI contient des + informations standard au sujet de la requte en plus de toutes + les variables initialises au travers de la configuration + d'Apache. Pour plus de dtails, consultez le + tutorial CGI.

+ + +

Pages SSI

+ + +

Les documents analyss par le serveur (documents SSI), grs + par le filtre INCLUDES de mod_include, peuvent + demander l'affichage de variables d'environnement au moyen de + l'lment echo, et peuvent les utiliser pour + personnaliser des pages en fonctions de certaines caractristiques + de la requte. Apache permet aussi l'utilisation de pages SSI avec + les variables d'environnement standard CGI comme discut ci-avant. + Consultez le tutorial SSI + pour plus d'informations.

+ + +

Contrle d'accs

+ + +

Les droits d'accs au serveur peuvent tre contrls au moyen + de variables d'environnement en utilisant les directives + allow from env= et deny from env=. + Celles ci, utilises avec SetEnvIf, permettent un contrle d'accs au serveur + trs souple en fonction de caractristiques propres au client. Par + exemple, il est possible d'utiliser ces directives pour refuser + l'accs au serveur certains navigateurs (User-Agent).

+ + +

Journalisation sous certaines conditions

+ + +

Les variables d'environnement peuvent tre enregistres dans + le journal des accs ('access log') au moyen de l'option + %e de LogFormat. De plus, la dcision d'enregistrer ou + non certaines requtes peut tre prise en fonction des variables + d'environnement au moyen de la directive + CustomLog. Cette + mthode, utilise avec la directive SetEnvIf, permet un contrle trs souple de + l'enregistrement des requtes. Par exemple, il est possible de + ne pas garder de trace des requtes demandant des noms de fichiers + se terminant par gif, ou de n'enregistrer que les + requtes des clients situs hors du sous-rseau auquel appartient + le serveur.

+ + +

Personnaliser les en-ttes des rponses HTTP

+ + +

La directive Header + peut tirer parti de l'existence ou non d'une variable + d'environnement afin de choisir d'inclure certains en-ttes + HTTP dans la rponse retourne au client. Ceci permet, par + exemple, d'envoyer un certain en-tte de rponse seulement si un + en-tte similaire a t positionn dans la requte manant du + client.

+ + + +

Activation des filtres externes

+ + +

Il est possible d'utiliser une variable d'environnement pour + activer les filtres externes (grs par + mod_ext_filter au moyen de la directive + ExtFilterDefine) + grce aux options disableenv= et + enableenv=.

+ + +

Rcriture d'URL

+ + +

La forme %{ENV:...} de TestString, dans + la directive RewriteCond, permet au moteur de rcriture de + mod_rewrite d'utiliser les variables d'environnement pour + contrler les rcritures. Notez que toutes les variables + internes mod_rewrite, accessibles sans le prfixe + ENV:, ne sont pas des variables d'environnement + d'Apache. Elles sont uniquement propres mod_rewrite et ne + peuvent pas tre utilises par d'autres modules.

+ +
top
+
+

Variables d'environnement spciales

+ + +

Certains problmes lis l'interoprabilit ont conduit la + mise en place de mcanismes spciaux, qui modifient le + fonctionnement d'Apache selon le type des clients auxquels il + rpond. Afin de garantir la plus grande souplesse possible, ces + mcanismes sont contrls par des variables d'environnement + spciales, telles que BrowserMatch, bien qu'on puisse galement utiliser + SetEnv et + PassEnv par exemple.

+ +

downgrade-1.0

+ + +

Ceci oblige Apache traiter la requte comme du HTTP/1.0 mme + si elle a t construite sur une norme plus rcente.

+ + +

force-no-vary

+ + +

Ceci provoque l'effacement de tous les champs Vary + de l'en-tte de rponse avant qu'il ne soit envoy au client. + Certains clients interprtent mal ce champ (voir + les problmes avec + certains clients), et initialiser cette variable peut + permettre de rsoudre ce problme. Cette variable requiert + galement l'utilisation de force-response-1.0.

+ + +

force-response-1.0

+ + +

Ceci oblige Apache n'envoyer que des rponses en HTTP/1.0 aux + clients ralisant une requte en HTTP/1.0. Cette fonction a t + implmente au dpart pour rsoudre un problme avec les serveurs + mandataires d'AOL. Certains clients HTTP/1.0 ragissent mal quand + ils reoivent une rponse en HTTP/1.1, ce qui peut poser des + problmes d'interoprabilit avec eux.

+ + + +

gzip-only-text/html

+ + +

Si cette variable est positionne avec une valeur de "1", le + filtre de sortie DEFLATE du module mod_deflate + se retrouve dsactiv pour les documents dont le type mime n'est + pas text/html.

+ + + +

no-gzip

+ +

Si cette variable est initialise, le filtre DEFLATE + du module mod_deflate est totalement dsactiv.

+ + + +

nokeepalive

+ + +

Si cette variable est initialise, les fonctions + KeepAlive sont dsactives.

+ + + +

prefer-language

+ +

Cette variable modifie le fonctionnement de + mod_negotiation. Si la variable contient un + marqueur de langue (comme en, ja ou + x-klingon), le module mod_negotiation + va tenter de fournir une rponse dans cette langue parmi les + variantes possibles. Si aucune de ces variantes n'existe, une + ngociation normale aura + lieu.

+ + + +

redirect-carefully

+ + +

Cette variable rend le serveur plus attentif quand il doit + envoyer une redirection au client. Cette variable est + habituellement utilise quand un client a un problme connu + pour grer les redirections. Cette variable a t implmente + pour pallier un problme du logiciel WebFolders de Microsoft + qui ne sait pas grer correctement les redirections vers les + rpertoires via les mthodes DAV.

+ + + +

suppress-error-charset

+ + +

Existe depuis la version 2.0.40

+ +

Quand Apache envoie une redirection en rponse une requte, la + rponse contient un message afficher par le client, au cas o il + ne peut suivre automatiquement la redirection. Le fonctionnement + par dfaut d'Apache est d'crire ce texte avec le jeu de caractre + qu'il utilise, c'est dire ISO-8859-1.

+

Cependant, si la redirection pointe vers une page prsentant un jeu + de caractres diffrent, certains navigateurs buggs utilisent le jeu + de caractres du texte de la redirection, au lieu de celui de la page + qu'ils affichaient. De ce fait, un texte en grec serait mal affich.

+

Si cette variable d'environnement est utilise, Apache n'indiquera + pas le jeu de caractre dans le texte de la redirection, ce qui permet + ces navigateurs d'afficher correctement la page de destination.

+ + + +
top
+
+

Exemples

+ + +

Modifier le fonctionnement d'un protocole pour les clients + qui le grent mal

+ + +

Il est conseill de placer les lignes suivantes dans httpd.conf + afin de grer des problmes connus de certains clients.

+
+#
+# Les directives ci-aprs modifient le fonctionnement standard de HTTP.
+# La premire directive dsactive les fonctions keepalive pour les 
+# navigateurs disant s'appeler 'Netscape 2.x'
+# Il existe des problmes connus avec ces navigateurs.
+# La deuxime directive gre Internet Explorer 4.0b2 de Microsoft qui
+# n'implmente pas correctement HTTP/1.1 et qui ne supporte pas les 
+# fonctions keepalive quand la rponse du serveur contient des codes 301 
+# ou 302 (redirections)
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+# Les directives ci-dessous dsactivent HTTP/1.1 pour les navigateurs qui 
+# violent les spcifications HTTP/1.0, en ne sachant pas analyser des 
+# rponses basiques en HTTP/1.1.
+#
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0
+ + +

Ne pas enregistrer les requtes pour des images dans le + journal des accs

+ + +

Cet exemple montre comment ne pas enregistrer les requtes + destination d'images dans le journal des accs. Il est facile + de le modifier, pour limiter l'enregistrement certains + rpertoires, ou pour des requtes venant de machines prcises.

+
+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
+ + +

Empcher le  vol d'images 

+ + +

Cet exemple montre comment empcher le chargement d'images de + votre serveur depuis des pages qui ne sont pas hberges sur + celui-ci. Cette configuration n'est pas conseille, mais elle + peut tre utile dans certaines circonstances. Il est suppos ici + que toutes les images sont stockes dans le rpertoire + /web/images.

+
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Autorise les navigateurs qui n'envoient pas de champ Referer
+SetEnvIf Referer "^$" local_referal
+<Directory /web/images>
+   Order Deny,Allow
+   Deny from all
+   Allow from env=local_referal
+</Directory>
+ +

Pour plus d'informations sur cette technique, consultez le + tutorial ApacheToday  Keeping Your Images from Adorning Other Sites .

+ +
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html.ja.utf8 b/rubbos/app/apache2/manual/env.html.ja.utf8 new file mode 100644 index 00000000..c4c56139 --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.ja.utf8 @@ -0,0 +1,391 @@ + + + +Apache の環境変数 - Apache HTTP サーバ + + + + + +
<-
+

Apache の環境変数

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

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-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 出力フィルタを無効にします。

+ + +

no-gzip

+

セットされると、mod_deflate の + DEFLATE フィルタがオフになります。

+ + +

nokeepalive

+ + +

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

+ +

prefer-language

+ +

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

+ + + + +

redirect-carefully

+ + +

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

+ + + +

suppress-error-charset

+ + +

Apache 2.0.40 以降で利用可能

+ +

クライアントのリクエストに対する応答としてリダイレクトを送信する際、 + レスポンスにはリダイレクトが自動的に行なえない (行なわれない) + 場合に表示するテキストが含まれます。 + 通常、このテキストに合致したキャラクタセット、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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html.ko.euc-kr b/rubbos/app/apache2/manual/env.html.ko.euc-kr new file mode 100644 index 00000000..827a94bd --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.ko.euc-kr @@ -0,0 +1,370 @@ + + + +ġ ȯ溯 - Apache HTTP Server + + + + + +
<-
+

ġ ȯ溯

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ ȯ溯(environment variable) + ִ. Ͽ α׳ + ۾ Ѵ. , ȯ溯 CGI ũƮ + ܺ α׷ ϴ ȴ. ȯ溯 + ٷ ϴ پ Ѵ.

+ +

ȯ溯 θ, ü + ϴ ȯ溯 ٸ. ġ ο ǰ + ȴ. ȯ溯 CGI ũƮ Server Side Include + ũƮ Ѱ ü ȯ溯 ȴ. + ϴ ü ȯ ϰ ʹٸ ü + ȯ ؾ Ѵ.

+
+ +
top
+
+

ȯ溯 ϱ

+ + + +

⺻ ȯ漳

+ + +

ġ ȯ溯 ϴ ⺻ + SetEnv þ ϴ ̴. PassEnv þ Ͽ + ȯ溯 ִ.

+ + +

û Ǻ

+ + +

ϰ, mod_setenvif ϴ þ û + û Ư¡ ȯ溯 Ѵ. , Ư + (User-Agent) ûϰų Ư Referer ( + Ʋ ʾҴ) ִ 쿡 + ִ. mod_rewrite ִ RewriteRule + [E=...] ɼ Ͽ ϰ ȯ溯 + ִ.

+ + +

ĺ

+ + +

mod_unique_id û  쿡 + "" û߿ Ȯ (ġ) + UNIQUE_ID ȯ溯 Ѵ.

+ + +

ǥ CGI

+ + +

CGI ũƮ SSI ġ Ͽų + ȯ溯 ܿ ߰ CGI Ծ + û ˷ִ ȯ溯 ޴´.

+ + +

+ + +
    +
  • ȯ漳 þ Ͽ ǥ CGI ϰų + .
  • + +
  • suexec CGI ũƮ + ϴ , ϱ CGI ũƮ ȯ + 鸸 ûҵȴ. + Ͻ + suexec.c ǵȴ.
  • + +
  • ȯ溯 ̸ , , + ٹڸ ϴ . , ù° ڷ + ڸ ʴ . CGI ũƮ SSI + Ѿ ̿ ڴ ٷ üȴ.
  • +
+ +
top
+
+

ȯ溯 ϱ

+ + + + +

CGI ũƮ

+ + +

ȯ溯 ֵ 뵵 ϳ CGI ũƮ + ȯϴ ̴. տ ߵ ġ + ܿ û ǥ CGI ũƮ + Ѿ. ڼ CGI + 丮 ϶.

+ + +

SSI

+ + +

mod_include INCLUDES Ͱ óϴ + Ľ (SSI) echo Ҹ Ͽ + ȯ溯 ְ, ȯ溯 Ͽ û + Ư¡ 帧 ҷ Ϻθ + ִ. ġ SSI ǥ CGI + ȯ溯 Ѵ. ڼ SSI 丮 ϶.

+ + +

+ + +

allow from env= deny from env= + þ Ͽ ȯ溯 + ִ. SetEnvIf ϸ + Ŭ̾Ʈ Ư¡ Ӱ + ִ. , Ư (User-Agent) + ź ִ.

+ + +

Ǻ α

+ + +

LogFormat + %e ɼ Ͽ ȯ溯 α׿ + ִ. , CustomLog þ + Ǻ ϸ ȯ溯 Ȳ û + α θ ִ. SetEnvIf Ͽ +  û α Ӱ ִ. , + ϸ gif û α ʰų, + ܺ Ʈ ִ Ŭ̾Ʈ û α ִ.

+ + +

Ǻ

+ + +

Header + þ Ŭ̾Ʈ ȯ溯 +  HTTP ִ. + , Ŭ̾Ʈ û Ư ִ 쿡 +  ִ.

+ + + +

ܺ ϱ

+ + +

mod_ext_filter ExtFilterDefine + þ ܺ ͸ disableenv= + enableenv= ɼ Ͽ ȯ溯 + ִ.

+ + +

URL ۼ(Rewriting)

+ + +

RewriteCond + TestString %{ENV:...} + ϸ mod_rewrite ۼ ȯ溯 + ٸ ൿѴ. mod_rewrite տ ENV: + ʰ ϴ ȯ溯 ƴ ϶. + ׵ ٸ ⿡ mod_rewrite + .

+ +
top
+
+

Ư ȯ溯

+ + +

Ŭ̾Ʈ Ȱ ϱ ġ Ư + Ŭ̾Ʈ ڽ ൿ Ѵ. BrowserMatch + ȯ溯 Ͽ ̷ ذѴ. ׷ SetEnv PassEnvε ϴ.

+ +

downgrade-1.0

+ + +

û ϴ HTTP/1.0 û + óѴ.

+ + +

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 ƴ content-type + mod_deflate DEFLATE ͸ + ʴ´.

+ + +

no-gzip

+ +

ɼ ϸ mod_deflate + DEFLATE ͸ ʴ´.

+ + + +

nokeepalive

+ + +

KeepAlive + Ѵ.

+ + + +

prefer-language

+ +

mod_negotiation ൿ + ģ. (en, ja, + x-klingon ) ±׸ ִٸ, + mod_negotiation + õѴ. ׷ ٸ Ϲ Ѵ.

+ + + +

redirect-carefully

+ + +

Ŭ̾Ʈ ̷ . + ̷ óϴµ ִ Ŭ̾Ʈ + Ѵ. Microsoft WebFolders Ʈ + DAV ޽带 丮 ڿ ̷ óϴµ + ־ .

+ + + +

suppress-error-charset

+ + +

2.0.40 ִ

+ +

ġ Ŭ̾Ʈ û ̷ + Ŭ̾Ʈ ڵ ̷ ϴ(Ȥ + ʴ) 쿡 Ͽ 信 ڿ Ѵ. + ġ ġ ϴ ISO-8859-1 + ǥѴ.

+

׷ ̷ǵ ٸ +  ̻ ƴ϶ ̷ + Ϸ Ѵ. , ׸ + ̻ϰ ִ.

+

ȯ溯 ġ ̷ + ʵ Ͽ, ̷ + ùٷ ϰ .

+ + + +
top
+
+

+ + +

߸ ϴ Ŭ̾Ʈ ൿ + ϱ

+ + +

Ŭ̾Ʈ ̹ ˷ ذϱ + httpd.conf ϱ ٶ.

+
+#
+#  þ Ϲ HTTP  Ѵ.
+# ù° þ Netscape 2.x ̸  
+# keepalive  ʴ´. ̵    ִ.
+# ι° þ HTTP/1.1  ߸Ǿ 301̳ 302
+# (̷) 信  keepalive  
+# ϴ Microsoft Internet Explorer 4.0b2  ̴.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+#  þ ⺻ HTTP/1.1   Ͽ
+# HTTP/1.0 Ծ   HTTP/1.1   ʴ´.
+#
+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
+ + +

"̹ "

+ + +

ڰ ִ + ̹ ϵ ϴ Ѵ. + , ѵ 쿡 Ѵ. + 츮 ̹ /web/images 丮 ȿ ִٰ + Ѵ.

+
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Referer   ʴ  Ѵ
+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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/env.html.tr.utf8 b/rubbos/app/apache2/manual/env.html.tr.utf8 new file mode 100644 index 00000000..eae439b1 --- /dev/null +++ b/rubbos/app/apache2/manual/env.html.tr.utf8 @@ -0,0 +1,413 @@ + + + +Apache’de Ortam Değişkenleri - Apache HTTP Sunucusu + + + + + +
<-
+

Apache’de Ortam Değişkenleri

+
+

Mevcut Diller:  en  | + es  | + fr  | + 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-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 (bilinen + istemci sorunları sayfasına bakınız), 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.

+ + +

no-gzip

+ +

Bu değişken atandığında, mod_deflate modülünün + DEFLATE süzgeci kapatılır.

+ + + +

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.

+ + +
top
+
+

Örnekler

+ + +

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

+ + +

Bilinen istemci davranışlarına karşı önlem olarak + aşağıdaki satırların httpd.conf içinde bulunması + önerilir.

+ +
+#
+# 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://filan.fesmekan.dom/" 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  | + es  | + fr  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/all_in_one.html b/rubbos/app/apache2/manual/faq/all_in_one.html new file mode 100644 index 00000000..26b549f1 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/all_in_one.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: all_in_one.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: all_in_one.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: all_in_one.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/faq/all_in_one.html.en b/rubbos/app/apache2/manual/faq/all_in_one.html.en new file mode 100644 index 00000000..24ba124d --- /dev/null +++ b/rubbos/app/apache2/manual/faq/all_in_one.html.en @@ -0,0 +1,206 @@ + + + +Frequently Asked Questions - Apache HTTP Server + + + + + +
<-
+

Frequently Asked Questions

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

The latest version of this FAQ is always available from the main Apache + web site, at <http://httpd.apache.org/docs/2.0/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

+
Support
What do I do when I have problems?
+
Error Messages
What does this error message mean?
+
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 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 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

+ +

#httpd on + Freenode IRC is available for + user support issues.

+ +

USENET newsgroups:

+ +
    +
  • comp.infosystems.www.servers.unix + [news] + [google] +
  • + +
  • comp.infosystems.www.servers.ms-windows + [news] + [google] +
  • + +
  • comp.infosystems.www.authoring.cgi + [news] + [google] +
  • +
+ +
If all else fails, report the problem in the bug database
+

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). As an example,

+ +

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

+ +

(Substitute the appropriate locations for your ServerRoot + and your httpd and core files. You may have to use + gdb instead of dbx.)

+
+
+ + +

Whom do I contact for support?

+

With several million users and fewer than forty 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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/all_in_one.html.ko.euc-kr b/rubbos/app/apache2/manual/faq/all_in_one.html.ko.euc-kr new file mode 100644 index 00000000..46fbf1e2 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/all_in_one.html.ko.euc-kr @@ -0,0 +1,207 @@ + + + +  (FAQ) - Apache HTTP Server + + + + + +
<-
+

 (FAQ)

+
+

:  en  | + ko  | + tr 

+
+ +

FAQ ֽ ġ Ʈ <http://httpd.apache.org/docs/2.0/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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/all_in_one.html.tr.utf8 b/rubbos/app/apache2/manual/faq/all_in_one.html.tr.utf8 new file mode 100644 index 00000000..353b2614 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/all_in_one.html.tr.utf8 @@ -0,0 +1,209 @@ + + + +Sıkça Sorulan Sorular - Apache HTTP Sunucusu + + + + + +
<-
+

Sıkça Sorulan Sorular

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ +

Bu SSS’nin en son sürümünü daima <http://httpd.apache.org/docs/2.0/faq/> adresindeki + ana Apache sitesinde bulabilirsiniz.

+ +

Apache 2.0 yeni olduğundan Sıkça Sorulan Soruların neler + olacağını henüz bilmiyoruz. Bu bölüm dolana kadar sorularınızın + yanıtlarını aramak için Apache 1.3 SSS’sini + incelemenizi öneriyoruz.

+
+ +
top
+
+

Konular

+
Destek
Sorunlarım olduğunda ne yapayım?
+
Hata İletileri
Bu hata iletileri ne anlama geliyor?
+
top
+
+

Destek

+ + +

“Neden ... yapamıyorum? Niçin ... çalışmıyor?” gibi + sorular için

+ + +

Apache sunucu yazılımınızla ilgili sorunlar yaşıyorsanız şu + adımları izleyin:

+ +
+
Günlük kayıt dosyalarına bakın!
+
Apache sorunları saptamaya ve size yardımcı olmaya çalışır. Çoğu + durumda, günlük dosyalarına bir kaç ileti yazarak sunucu hataları için + size bazı ayrıntıları sağlayacaktır. Bu genellikle sorunun sizin + tarafınızdan teşhis edilmesi (dosya izinleri ve benzeri) ve düzeltilmesi + için yeterli olur. Hata kayıtlarının tutulduğu günlük dosyalarının + öntanımlı yeri /usr/local/apache2/logs/error_log olup + sizin sunucunuzdaki yeri için yapılandırma dosyalarınızdaki ErrorLog yönergesine bakabilirsiniz.
+ +
SSS’ye + bakın!
+
Apache Sıkça Sorulan Sorular listesinin en son sürümünü daima + ana Apache sitesinde bulabilirsiniz.
+ +
Apache hata ayıklama veritabanına bakın
+
Apache Grubuna bildirilen çoğu sorun hata ayıklama + veritabanına kaydedilir. Açık ya da kapalı, mevcut hata raporlarını + incelemeden ve sorununuz hakkında kullanıcı destek listelerine (aşağıya + bakınız) danışmadan lütfen yeni bir hata bildirimi + yapmayın. Zaten raporlanmış bir sorunsa bir “ben de” + veya “+1” raporu eklemeyin. Eğer özgün rapor henüz + kapatılmamışsa ara sıra son durumuna bakmanızı öneririz. Ayrıca, + raporu gönderenle de iletişime geçmeniz iyi olabilir, çünkü konu + hakkında henüz veritabanına geçmemiş bir eposta alışverişi olabilir.
+ +
Bir kullanıcı destek listesine + sorun
+

Apache, bilgilerini gönüllü olarak paylaşan etkin bir kullanıcı + topluluğuna sahiptir. Bu topluluğa katılarak sorularınıza ve + sorunlarınıza genellikle en iyi ve en hızlı yanıtı alırsınız.

+ +

Apache kullanıcıları + eposta listesi

+ +

Kullanıcılara destek için Freenode IRC'nin + #httpd kanalı

+ +

USENET haber öbekleri:

+ +
    +
  • comp.infosystems.www.servers.unix + [news] + [google] +
  • + +
  • comp.infosystems.www.servers.ms-windows + [news] + [google] +
  • + +
  • comp.infosystems.www.authoring.cgi + [news] + [google] +
  • +
+ +
Bunlar da çözüm olmadıysa sorunu hata ayıklama veritabanına + bildirin
+

Eğer yukarıdaki adımlardan size uygun olanları izlemiş ve + bir çare bulamamışsanız lütfen bir hata ayıklama + bildiriminde bulunarak httpd geliştiricilerini sorun hakkında + bilgilendirin.

+ +

Eğer sorununuz sunucunun çökmesine ve bir ‘core’ üretilmesine sebep + oluyorsa hatayı bildirirken lütfen (mümkünse) bir geriye doğru hata + izleme raporu ekleyin. Bir örnek:

+ +

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

+ +

(ServerRoot yerine kendi sunucu kök dizininizi ve + httpd ve core dosyalarının yerine de kendi + dosyalarınızı yazınız. Ayrıca, dbx yerine + gdb de kullanabilirsiniz.)

+
+
+ + +

Destek için kime başvurayım?

+

Milyonlarca kullanıcı ve altmıştan az gönüllü geliştirici ile + Apache için kişisel destek sağlayamıyoruz. Ücretsiz destek için + yardımlaşma listelerine + katılmanızı öneriyoruz.

+ +

Profesyonel ve ticari Apache desteği almak için bu tür destekleri + sunan şirketlere + başvurunuz.

+ +
top
+
+

Hata İletileri

+ + +

Invalid argument: + core_output_filter: writing data to the network

+ +

Yanıtların gönderiminin hızlandırılmasının mümkün olduğu platformlarda + Apache sendfile sistem çağrısını kullanır. Ne yazık ki, + Apache’nin derleme sırasında varlığını tespit ettiği + sendfile bazı sistemlerde düzgün çalışmaz. Bu en çok ağ ve + diğer standartdışı dosya sistemleri kullanılırken ortaya çıkar.

+ +

Hata kayıt dosyalarında yukarıdaki iletinin bulunması, sıfır boyutlu + olmayan dosyalar için sıfır boyutlu yanıtlar dönmesi bu sorunun + belirtileri arasında sayılabilir. Devingen içerik için normalde + sendfile kullanılmadığından sorun genellikle sadece durağan + dosyalarda ortaya çıkar.

+ +

Sorunu ortadan kaldırmak için EnableSendfile yönergesini kullanarak sunucunun + bütün bölümlerinde sendfile kullanımını iptal etmek yeterli + olur. Ayrıca, benzer sorunlarda yardımı olabilen EnableMMAP yönergesine de bakınız.

+ + + +

AcceptEx Failed

+ +

Eğer win32’de AcceptEx sistem çağrısı ile ilgili hata + iletileri alıyorsanız Win32DisableAcceptEx yönergesine + bakınız.

+ + + +

Premature end of script + headers

+ +

CGI betiklerindeki çoğu sorun tarayıcıya bir Internal Server + Error (Dahili Sunucu Hatası) bildirimiyle ve hata kayıt dosyasına + bu iletinin yazılmasıyla sonuçlanır. Bu tür sorunlarda hata ayıklamaya + yardımcı olmak için bir CGI + öğretici mevcuttur.

+ + +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/error.html b/rubbos/app/apache2/manual/faq/error.html new file mode 100644 index 00000000..10b45850 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/error.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: error.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: error.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: error.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/faq/error.html.en b/rubbos/app/apache2/manual/faq/error.html.en new file mode 100644 index 00000000..e2086ca9 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/error.html.en @@ -0,0 +1,85 @@ + + + +Error Messages - Frequently Asked Questions - Apache HTTP Server + + + + + +
<-
+

Error Messages - Frequently Asked Questions

+
+

Available Languages:  en  | + ko  | + tr 

+
+
+
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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/error.html.ko.euc-kr b/rubbos/app/apache2/manual/faq/error.html.ko.euc-kr new file mode 100644 index 00000000..b4c390db --- /dev/null +++ b/rubbos/app/apache2/manual/faq/error.html.ko.euc-kr @@ -0,0 +1,84 @@ + + + + -  (FAQ) - Apache HTTP Server + + + + + +
<-
+

-  (FAQ)

+
+

:  en  | + ko  | + tr 

+
+
+
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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/error.html.tr.utf8 b/rubbos/app/apache2/manual/faq/error.html.tr.utf8 new file mode 100644 index 00000000..b34d0418 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/error.html.tr.utf8 @@ -0,0 +1,84 @@ + + + +Hata İletileri - Sıkça Sorulan Sorular - Apache HTTP Sunucusu + + + + + +
<-
+

Hata İletileri - Sıkça Sorulan Sorular

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+
+
top
+
+

Hata İletileri

+ + +

Invalid argument: + core_output_filter: writing data to the network

+ +

Yanıtların gönderiminin hızlandırılmasının mümkün olduğu platformlarda + Apache sendfile sistem çağrısını kullanır. Ne yazık ki, + Apache’nin derleme sırasında varlığını tespit ettiği + sendfile bazı sistemlerde düzgün çalışmaz. Bu en çok ağ ve + diğer standartdışı dosya sistemleri kullanılırken ortaya çıkar.

+ +

Hata kayıt dosyalarında yukarıdaki iletinin bulunması, sıfır boyutlu + olmayan dosyalar için sıfır boyutlu yanıtlar dönmesi bu sorunun + belirtileri arasında sayılabilir. Devingen içerik için normalde + sendfile kullanılmadığından sorun genellikle sadece durağan + dosyalarda ortaya çıkar.

+ +

Sorunu ortadan kaldırmak için EnableSendfile yönergesini kullanarak sunucunun + bütün bölümlerinde sendfile kullanımını iptal etmek yeterli + olur. Ayrıca, benzer sorunlarda yardımı olabilen EnableMMAP yönergesine de bakınız.

+ + + +

AcceptEx Failed

+ +

Eğer win32’de AcceptEx sistem çağrısı ile ilgili hata + iletileri alıyorsanız Win32DisableAcceptEx yönergesine + bakınız.

+ + + +

Premature end of script + headers

+ +

CGI betiklerindeki çoğu sorun tarayıcıya bir Internal Server + Error (Dahili Sunucu Hatası) bildirimiyle ve hata kayıt dosyasına + bu iletinin yazılmasıyla sonuçlanır. Bu tür sorunlarda hata ayıklamaya + yardımcı olmak için bir CGI + öğretici mevcuttur.

+ + +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/index.html b/rubbos/app/apache2/manual/faq/index.html new file mode 100644 index 00000000..0f2f79ca --- /dev/null +++ b/rubbos/app/apache2/manual/faq/index.html @@ -0,0 +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.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/faq/index.html.en b/rubbos/app/apache2/manual/faq/index.html.en new file mode 100644 index 00000000..e0335eaa --- /dev/null +++ b/rubbos/app/apache2/manual/faq/index.html.en @@ -0,0 +1,49 @@ + + + +Frequently Asked Questions - Apache HTTP Server + + + + + +
<-
+

Frequently Asked Questions

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

The latest version of this FAQ is always available from the + main Apache web site, at <http://httpd.apache.org/docs/2.0/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.

+
+
top
+
+

Topics

+
Support
What do I do when I have problems?
+
Error Messages
What does this error message mean?
+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/index.html.ko.euc-kr b/rubbos/app/apache2/manual/faq/index.html.ko.euc-kr new file mode 100644 index 00000000..7d0c8a55 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/index.html.ko.euc-kr @@ -0,0 +1,47 @@ + + + +  (FAQ) - Apache HTTP Server + + + + + +
<-
+

 (FAQ)

+
+

:  en  | + ko  | + tr 

+
+ +

FAQ ֽ ġ Ʈ <http://httpd.apache.org/docs/2.0/faq/> + ִ. , ˻ϰ ϱ ϰ FAQ ִ.

+ +

ġ 2.0 ȵǼ 츮 +  (FAQ) 𸥴. ä + ⿡ ش ٸ ġ + 1.3 FAQ ϶.

+
+
top
+
+

+
 ذϳ?
+
ΰ?
+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/index.html.tr.utf8 b/rubbos/app/apache2/manual/faq/index.html.tr.utf8 new file mode 100644 index 00000000..c8f1ae80 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/index.html.tr.utf8 @@ -0,0 +1,49 @@ + + + +Sıkça Sorulan Sorular - Apache HTTP Sunucusu + + + + + +
<-
+

Sıkça Sorulan Sorular

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ +

Bu SSS’nin en son sürümünü daima <http://httpd.apache.org/docs/2.0/faq/> adresindeki + ana Apache sitesinde bulabilirsiniz. Ayrıca, bu SSS’yi kolayca araştırmak + ve yazdırmak için hepsi bir arada sayfasına + bakabilirsiniz.

+ +

Apache 2.0 yeni olduğundan Sıkça Sorulan Soruların neler + olacağını henüz bilmiyoruz. Bu bölüm dolana kadar sorularınızın yanıtlarını + aramak için Apache 1.3 SSS’sini + incelemenizi öneriyoruz.

+
+
top
+
+

Konular

+
Destek
Sorunlarım olduğunda ne yapayım?
+
Hata İletileri
Bu hata iletileri ne anlama geliyor?
+
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/support.html b/rubbos/app/apache2/manual/faq/support.html new file mode 100644 index 00000000..11873803 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/support.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: support.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: support.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: support.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/faq/support.html.en b/rubbos/app/apache2/manual/faq/support.html.en new file mode 100644 index 00000000..861781fe --- /dev/null +++ b/rubbos/app/apache2/manual/faq/support.html.en @@ -0,0 +1,138 @@ + + + +Support - Frequently Asked Questions - Apache HTTP Server + + + + + +
<-
+

Support - Frequently Asked Questions

+
+

Available Languages:  en  | + ko  | + tr 

+
+
+
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 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 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

+ +

#httpd on + Freenode IRC is available for + user support issues.

+ +

USENET newsgroups:

+ +
    +
  • comp.infosystems.www.servers.unix + [news] + [google] +
  • + +
  • comp.infosystems.www.servers.ms-windows + [news] + [google] +
  • + +
  • comp.infosystems.www.authoring.cgi + [news] + [google] +
  • +
+ +
If all else fails, report the problem in the bug database
+

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). As an example,

+ +

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

+ +

(Substitute the appropriate locations for your ServerRoot + and your httpd and core files. You may have to use + gdb instead of dbx.)

+
+
+ + +

Whom do I contact for support?

+

With several million users and fewer than forty 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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/support.html.ko.euc-kr b/rubbos/app/apache2/manual/faq/support.html.ko.euc-kr new file mode 100644 index 00000000..09c58f8c --- /dev/null +++ b/rubbos/app/apache2/manual/faq/support.html.ko.euc-kr @@ -0,0 +1,142 @@ + + + + -  (FAQ) - Apache HTTP Server + + + + + +
<-
+

-  (FAQ)

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+
+
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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/faq/support.html.tr.utf8 b/rubbos/app/apache2/manual/faq/support.html.tr.utf8 new file mode 100644 index 00000000..fb4e7f52 --- /dev/null +++ b/rubbos/app/apache2/manual/faq/support.html.tr.utf8 @@ -0,0 +1,142 @@ + + + +Destek - Sıkça Sorulan Sorular - Apache HTTP Sunucusu + + + + + +
<-
+

Destek - Sıkça Sorulan Sorular

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+
+
top
+
+

Destek

+ + +

“Neden ... yapamıyorum? Niçin ... çalışmıyor?” gibi + sorular için

+ + +

Apache sunucu yazılımınızla ilgili sorunlar yaşıyorsanız şu + adımları izleyin:

+ +
+
Günlük kayıt dosyalarına bakın!
+
Apache sorunları saptamaya ve size yardımcı olmaya çalışır. Çoğu + durumda, günlük dosyalarına bir kaç ileti yazarak sunucu hataları için + size bazı ayrıntıları sağlayacaktır. Bu genellikle sorunun sizin + tarafınızdan teşhis edilmesi (dosya izinleri ve benzeri) ve düzeltilmesi + için yeterli olur. Hata kayıtlarının tutulduğu günlük dosyalarının + öntanımlı yeri /usr/local/apache2/logs/error_log olup + sizin sunucunuzdaki yeri için yapılandırma dosyalarınızdaki ErrorLog yönergesine bakabilirsiniz.
+ +
SSS’ye + bakın!
+
Apache Sıkça Sorulan Sorular listesinin en son sürümünü daima + ana Apache sitesinde bulabilirsiniz.
+ +
Apache hata ayıklama veritabanına bakın
+
Apache Grubuna bildirilen çoğu sorun hata ayıklama + veritabanına kaydedilir. Açık ya da kapalı, mevcut hata raporlarını + incelemeden ve sorununuz hakkında kullanıcı destek listelerine (aşağıya + bakınız) danışmadan lütfen yeni bir hata bildirimi + yapmayın. Zaten raporlanmış bir sorunsa bir “ben de” + veya “+1” raporu eklemeyin. Eğer özgün rapor henüz + kapatılmamışsa ara sıra son durumuna bakmanızı öneririz. Ayrıca, + raporu gönderenle de iletişime geçmeniz iyi olabilir, çünkü konu + hakkında henüz veritabanına geçmemiş bir eposta alışverişi olabilir.
+ +
Bir kullanıcı destek listesine + sorun
+

Apache, bilgilerini gönüllü olarak paylaşan etkin bir kullanıcı + topluluğuna sahiptir. Bu topluluğa katılarak sorularınıza ve + sorunlarınıza genellikle en iyi ve en hızlı yanıtı alırsınız.

+ +

Apache kullanıcıları + eposta listesi

+ +

Kullanıcılara destek için Freenode IRC'nin + #httpd kanalı

+ +

USENET haber öbekleri:

+ +
    +
  • comp.infosystems.www.servers.unix + [news] + [google] +
  • + +
  • comp.infosystems.www.servers.ms-windows + [news] + [google] +
  • + +
  • comp.infosystems.www.authoring.cgi + [news] + [google] +
  • +
+ +
Bunlar da çözüm olmadıysa sorunu hata ayıklama veritabanına + bildirin
+

Eğer yukarıdaki adımlardan size uygun olanları izlemiş ve + bir çare bulamamışsanız lütfen bir hata ayıklama + bildiriminde bulunarak httpd geliştiricilerini sorun hakkında + bilgilendirin.

+ +

Eğer sorununuz sunucunun çökmesine ve bir ‘core’ üretilmesine sebep + oluyorsa hatayı bildirirken lütfen (mümkünse) bir geriye doğru hata + izleme raporu ekleyin. Bir örnek:

+ +

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

+ +

(ServerRoot yerine kendi sunucu kök dizininizi ve + httpd ve core dosyalarının yerine de kendi + dosyalarınızı yazınız. Ayrıca, dbx yerine + gdb de kullanabilirsiniz.)

+
+
+ + +

Destek için kime başvurayım?

+

Milyonlarca kullanıcı ve altmıştan az gönüllü geliştirici ile + Apache için kişisel destek sağlayamıyoruz. Ücretsiz destek için + yardımlaşma listelerine + katılmanızı öneriyoruz.

+ +

Profesyonel ve ticari Apache desteği almak için bu tür destekleri + sunan şirketlere + başvurunuz.

+ +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html b/rubbos/app/apache2/manual/filter.html new file mode 100644 index 00000000..9dcc13f2 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: filter.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: filter.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: filter.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: filter.html.ja.utf8 +Content-Language: ja +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.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: filter.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/filter.html.en b/rubbos/app/apache2/manual/filter.html.en new file mode 100644 index 00000000..2cc7f2cc --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.en @@ -0,0 +1,84 @@ + + + +Filters - Apache HTTP Server + + + + + +
<-
+

Filters

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

This document describes the use of filters in Apache.

+
+
top
+
+

Filters

+ + + +

A filter is a process that is applied to data that + is sent or received by the server. Data sent by clients to the + server is processed by input filters while data sent + by the server to the client is processed by output + filters. Multiple filters can be applied to the data, and + the order of the filters can be explicitly specified.

+ +

Filters are used internally by Apache to perform functions such + as chunking and byte-range request handling. In addition, modules + can provide filters that are selectable using run-time + configuration directives. The set of filters that apply to data + can be manipulated with the + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter, and + RemoveOutputFilter + directives.

+ +

The following user-selectable filters are currently provided + with the Apache HTTP Server distribution.

+ +
+
INCLUDES
+
Server-Side Includes processing by mod_include
+
DEFLATE
+
Compress output before sending it to the client using + mod_deflate +
+
+ +

In addition, the module mod_ext_filter allows + for external programs to be defined as filters.

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.es b/rubbos/app/apache2/manual/filter.html.es new file mode 100644 index 00000000..948e12c1 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.es @@ -0,0 +1,81 @@ + + + +Filtros - Servidor HTTP Apache + + + + + +
<-
+

Filtros

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Este documento describe cmo usar filtros en Apache.

+
+
top
+
+

Filtros

+ + + +

Un filtro es un proceso que se aplica a los datos que + se reciben o se envan por el servidor. Los datos enviados + por los clientes al servidor son procesados por filtros de + entrada mientras que los datos enviados por el servidor se + procesan por los filtros de salida. A los datos se les + pueden aplicar varios filtros, y el orden en que se aplica cada + filtro puede especificarse explcitamente.

+ +

Los filtros se usan internamente por Apache para llevar a cabo + funciones tales como chunking y servir peticiones de + byte-range. Adems, los mdulos contienen filtros que se + pueden seleccionar usando directivas de configuracin al + iniciar el servidor. El conjunto de filtros que se aplica a los + datos puede manipularse con las directivas SetInputFilter, SetOutputFilter, AddInputFilter, AddOutputFilter, RemoveInputFilter, y RemoveOutputFilter.

+ +

Actualmente, vienen con la distribucin de Apache los + siguientes filtros seleccionables por el usuario.

+ +
+
INCLUDES
+
Server-Side Includes procesado por + mod_include
+
DEFLATE
+
Comprime los datos de salida antes de enviarlos al cliente + usando el mdulo + mod_deflate +
+
+ +

Adems, el mdulo mod_ext_filter + permite definir programas externos como filtros.

+
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.fr b/rubbos/app/apache2/manual/filter.html.fr new file mode 100644 index 00000000..e9e94fa1 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.fr @@ -0,0 +1,89 @@ + + + +Filtres - Serveur Apache HTTP + + + + + +
<-
+

Filtres

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Ce document explique le fonctionnement des filtres avec Apache.

+
+
top
+
+

Filtres

+ + + +

On appelle filtre un processus qui s'applique aux + donnes reues ou envoyes par le serveur. Les filtres en + entre (input filters) servent filtrer les donnes envoyes + par les clients vers le serveur, tandis que les filtres en sortie + (output filters) traitent les donnes envoyes par le + serveur vers un client. Il est possible d'appliquer plusieurs + filtres sur un flux de donnes, et l'ordre de ces filtres est + configurable.

+ +

Apache utilise des filtres en interne pour grer les  grosses  + requtes ou les requtes partielles (NdT sur "byte-range" : + requtes portant seulement sur une partie d'un fichier, partie + spcifie par un pointeur de dpart, et un pointeur de fin). + Certains modules permettent en plus d'utiliser des filtres en + utilisant des directives de configuration. Les filtres sont utilisables + au moyen des directives + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter, et + RemoveOutputFilter + .

+ +

Les filtres lists ci-aprs sont fournis dans le paquetage Apache et + sont utilisables par tout administrateur.

+ +
+
INCLUDES
+
Gestion des "Server-Side Includes" grce au module + mod_include
+
DEFLATE
+
Compression des donnes avant leur envoi au client (filtre en + sortie) au moyen de mod_deflate +
+
+ +

Le module mod_ext_filter permet galement + d'utiliser des programmes externes Apache en tant que filtres.

+
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.ja.utf8 b/rubbos/app/apache2/manual/filter.html.ja.utf8 new file mode 100644 index 00000000..db92c310 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.ja.utf8 @@ -0,0 +1,84 @@ + + + +フィルタ - Apache HTTP サーバ + + + + + +
<-
+

フィルタ

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Apache でのフィルタの使い方について記述しています。

+
+
top
+
+

フィルタ

+ + + +

フィルタ とは、サーバが送受信したデータに + 適用される処理プロセスのことをいいます。クライアントからサーバに + 送られたデータは 入力フィルタ によって、サーバから + クライアントに送られるデータは出力フィルタによって + 処理されます。複数のフィルタを適用することができ、 + その順番を厳密に指定することもできます。

+ +

Apache 内部では、チャンク (データのぶつ切り) を行ったり、 + バイト範囲の指定されたリクエストを扱ったりといった機能を + 行う際に、フィルタが使われています。それに加えて、 + 実行時の設定ディレクティブで選択が可能なフィルタを + モジュールが提供できます。 + データに適応されるフィルタのセットは、 + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter, + RemoveOutputFilter + ディレクティブで制御できます。

+ +

現行の Apache HTTP サーバの配布では、 + 次のユーザ選択可能なフィルタが提供されています。

+ +
+
INCLUDES
+
mod_include で Server-Side Include をします。
+
DEFLATE
+
mod_deflate + を使って、クライアントに送信する前に出力を圧縮します。
+
+ +

また、mod_ext_filter モジュールで + 外部プログラムをフィルタとして指定することができます。

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.ko.euc-kr b/rubbos/app/apache2/manual/filter.html.ko.euc-kr new file mode 100644 index 00000000..4360a3a4 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.ko.euc-kr @@ -0,0 +1,82 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

ġ ͸ ϴ Ѵ.

+
+
top
+
+

+ + + +

(filter) ų ޴ ڷῡ + Ǵ ۾̴. Ŭ̾Ʈ ڷ + Է(input filter) óϰ, + Ŭ̾Ʈ ڷ (output filter) + óѴ. ڷῡ ͸ ְ, + ִ.

+ +

ġ ̾ޱ(byte-range) û óϱ + ͸ Ѵ. , þ + Ͽ ð ͸ ϴ ⵵ ִ. + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter, + RemoveOutputFilter + þ ڷḦ óϴ ͸ Ѵ.

+ +

ġ ڰ ִ + ͸ Ѵ.

+ +
+
INCLUDES
+
mod_include óϴ Server-Side Includes
+
DEFLATE
+
mod_deflate Ͽ + Ŭ̾Ʈ +
+
+ +

, mod_ext_filter Ͽ + ܺ α׷ ͷ ִ.

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.ru.koi8-r b/rubbos/app/apache2/manual/filter.html.ru.koi8-r new file mode 100644 index 00000000..4bc6765e --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.ru.koi8-r @@ -0,0 +1,85 @@ + + + + - HTTP Apache + + + + + +
<-
+

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Apache.

+
+
top
+
+

+ + + +

- , , + . , + , (input) , + , - + (output). + , ޣ + .

+ +

Apache + . + - + , + . + : + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter, + RemoveOutputFilter.

+ +

HTTP Apache + , :

+ +
+
INCLUDES
+
Server-Side Includes mod_include
+
DEFLATE
+
+ mod_deflate +
+
+ +

mod_ext_filter + .

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/filter.html.tr.utf8 b/rubbos/app/apache2/manual/filter.html.tr.utf8 new file mode 100644 index 00000000..efb453c6 --- /dev/null +++ b/rubbos/app/apache2/manual/filter.html.tr.utf8 @@ -0,0 +1,82 @@ + + + +Süzgeçler - Apache HTTP Sunucusu + + + + + +
<-
+

Süzgeçler

+
+

Mevcut Diller:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Bu belge, Apache’de süzgeç kullanımı hakkındadır.

+
+
top
+
+

Süzgeçler

+ + +

Bir süzgeç, sunucu tarafından alınan ve gönderilen verilere + uygulanan bir işlemdir. Sunucuya istemcilerin gönderdiği veriler + girdi süzgeçleri tarafından, sunucunun istemciye gönderdiği + veriler ise çıktı süzgeçleri tarafından işleme tabi tutulurlar. + Verilere çok sayıda süzgeç uygulanabilir ve süzgeçlerin uygulanma sırası + belirlenebilir.

+ +

Süzgeçler Apache tarafından dahili olarak bayt dizilerinin elde edilmesi + ve içeriğin bölünmesi gibi işlemler için kullanılabilir. Bundan başka, + modüller tarafından sağlanan süzgeçler de vardır ve bunlar çalışma anında + yapılandırma yönergeleri ile seçilebilir. Veriye uygulanacak süzgeçlerle + ilgili işlemler için kullanılabilecek yönergeler: + SetInputFilter, + SetOutputFilter, + AddInputFilter, + AddOutputFilter, + RemoveInputFilter ve + RemoveOutputFilter.

+ +

Aşağıdaki kullanıcı tarafından seçilebilen süzgeç uygulamaları Apache + HTTP Sunucusu dağıtımıyla gelmektedir:

+ +
+
mod_include
+
Sunucu taraflı içerik yerleştirmeyi gerçekler.
+
mod_deflate
+
Çıktıyı istemciye göndermeden önce sıkıştırır. +
+
+ +

Bunlardan başka mod_ext_filter modülü ile harici + uygulamaların süzgeç olarak kullanılması da mümkündür.

+ +
+
+

Mevcut Diller:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/glossary.html b/rubbos/app/apache2/manual/glossary.html new file mode 100644 index 00000000..64348762 --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: glossary.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: glossary.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: glossary.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: glossary.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: glossary.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/glossary.html.de b/rubbos/app/apache2/manual/glossary.html.de new file mode 100644 index 00000000..481d26df --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html.de @@ -0,0 +1,544 @@ + + + +Glossar - Apache HTTP Server + + + + + +
<-
+

Glossar

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen Sie die englische Version auf + die neuesten nderungen.
+ +

Dieses Glossar erlutert einige gebruchliche Fachbegriffe im + Zusammenhang mit dem Apache im Speziellen und Web-Diensten im + Allgemeinen. Weitere Informationen zum jeweiligen Begriff erreichen Sie + ber die Links.

+
+
top
+
+

Definitionen

+ +
+
Algorithmus
+
Eine eindeutige Formel oder ein Satz von Regeln zur Lsung eines + Problems in einer endlichen Anzahl von Schritten. Algorithmen zur + Verschlsselung werden blicherweise  Chiffre genannt. +
+ +
APache + eXtension Tool (apxs)
+
Ein Perl-Skript zur Kompilierung von Modul-Quelltexten zu Dynamic-Shared-Objects + ( DSOs) und zur Installation dieser zum + Apache-Webserver.
+ Siehe: apxs-Dokumentation +
+ +
Authentifizierung
+
Die positive Identifizierung einer Netzwerkeinheit, wie z.B. + eines Servers, eines Clients oder eines Benutzers.
+ Siehe: Authentisierung, Autorisierung und + Zugriffskontrolle +
+ +
Certification Authority + [səˈtifiˈkeiʃən + ɔːθɔriti] + (CA)
+
(Anm.d..: die Zertifizierungsstelle) Eine + vertrauenswrdige dritte Partei, deren Zweck es ist, + Zertifikate fr Netzwerkeinheiten zu signieren. Andere + Netzwerkeinheiten knnen die Signatur prfen, um + sicherzustellen, dass eine CA den Inhaber eines Zertifikats + authentifiziert hat.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Certificate Signing Request + [səˈtifikit sainiŋ + riˈkwest] (CSR)
+
(Anm.d..: Zertifikats-Signierungsanfrage) Ein unsigniertes +  Zertifikat zur Einreichung bei + einer  Zertifizierungsstelle, welche + es mit dem  privaten Schlssel + ihres CA-Zertifikats signiert. Durch die Signatur wird ein CSR + zum echten Zertifikat.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Chiffre
+
Die Chiffre ist ein Algorithmus oder System zur + Datenverschlsselung. Beispiele sind DES, IDEA, RC4 usw. Im + Englischen spricht man von + Cipher [ˈsaifə]
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Chiffretext
+
Das Ergebnis, nachdem ein  Klartext + eine  Chiffre durchlaufen hat.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Common + Gateway Interface [ˈkɔmən geitwei + ˈintəːfeis] + (CGI)
+
Eine einheitliche Definition einer Schnittstelle zwischen einem + Webserver und einem externen Programm, welcher dem externen Programm die + Behandlung von Anfragen ermglicht. Die Schnittstelle ist + ursprnglich von der NCSA + definiert worden. Es exisitert jedoch auch ein RFC-Projekt.
+ Siehe: Dynamische Inhalte mit CGI +
+ +
CONNECT + [kənekt]
+
Eine  HTTP-Methode zur Weiterleitung + von Rohdaten ber HTTP. Sie kann dazu verwendet werden, andere + Protokolle wie zum Beispiel das SSL-Protokoll zu kapseln. +
+ +
Digitale + Signatur
+
Ein chiffrierter Textblock, der die Gltigkeit eines Zertifikats + oder einer anderen Datei besttigt. Eine  Zertifizierungsstelle erstellt + eine digitale Signatur durch Generierung eines  Hashs aus dem in einem Zertifikat + enthaltenen ffentlichen Schlssel und + anschlieender Codierung des Hashs mit dem privaten + Schlssel des Zertifikats. Nur der ffentliche + Schlssel der CA kann die Signatur decodieren. So wird + sichergestellt, dass die CA die Netwerkeinheit, welche das + Zertifikat besitzt, authentifiziert hat.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Direktive
+
Eine Konfigurationsanweisung, die das Verhalten des Apache in einem + oder mehreren Punkten steuert. Direktiven werden in den  Konfigurationsdateien gesetzt.
+ Siehe: Verzeichnis der Direktiven +
+ +
Dynamic + Shared Object + [daiˈnmik ʃɛəd + ˈɔbdʒikt] (DSO)
+
Separat von der Apache-Binrdatei httpd + kompilierte  Module, die bei Bedarf + geladen werden knnen.
+ Siehe: Untersttzung fr + Dynamic-Shared-Objects +
+ +
exportbeschrnkt
+
Verminderte kryptografische Strke (und Sicherheit), um den + Exportbesimmungen der Vereinigten Staaten (Anm.d..: konkret: United + States' Export Administration Regulations (EAR)) zu + entsprechen. Exportbeschrnkte Verschlsselungssoftware ist + auf eine kurze Schlssellnge begrenzt, was zu + Chiffretexten fhrt, die gewhnlich mittels + Brute-Force dekodiert werden knnen.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Filter
+
Ein Verfahren, dass auf vom Server empfangene oder zu sendende Daten + angewendet wird. Eingabefilter verarbeiten vom Client an den Server + gesendetet Daten, whrend Ausgabefilter vom Server an den Client zu + sendende Daten verarbeiten. Der Ausgabefilter INCLUDES + beispielsweise untersucht Dokumente nach  Server-Side-Includes und fhrt sie aus.
+ Siehe: Filter +
+ +
Handler + [ˈhndlə]
+
Eine Apache-interne Darstellung der Aktion, die beim Aufruf einer + Datei auszufhren ist. Im Allgemeinen besitzen Dateien implizite, + auf dem Dateityp basierende Handler. Gewhnlich werden alle Dateien + vom Server bedient, einige Dateitypen werden jedoch separat "behandelt" + (Anm.d..: besitzen einen separaten Handler). Der + cgi-script-Handler beispielsweise kennzeichnet Dateien, die + als  CGI-Programme ausgefhrt werden + sollen.
+ Siehe: Verwendung von Apache-Handlern +
+ +
Hash + [hʃ]
+
Ein mathematischer, unumkehrbarer Einweg-Algorithmus zur Generierung + einer Zeichenfolge fester Lnge aus einer anderen Zeichenfolge + beliebiger Lnge. Unterschiedliche Zeichenfolgen bei der Eingabe + ergeben blischerweise unterschiedliche Hashes (abhngig von + der Hash-Funktion). +
+ +
Header + [hedə]
+
Der Teil der  HTTP-Anfrage und -Antwort, + der vor den eigentlichen Daten bermittelt wird und den Inhalt + beschreibende Meta-Informationen enthlt. +
+ +
.htaccess
+
Eine  Konfigurationsdatei, + die innerhalb des Web-Verzeichnisbaums abgelegt wird und zu dem + Verzeichnis, in dem sie abgelegt ist, sowie allen Unterverzeichnissen +  Konfigurationsdirektiven + enthlt. Trotz ihres Namens kann diese Datei nahezu alle Arten von + Direktiven enthalten, nicht nur Direktiven zur Zugriffskontrolle.
+ Siehe: Konfigurationsdateien +
+ +
httpd.conf
+
Die  Haupt-Konfigurationsdatei ist + /usr/local/apache2/conf/httpd.conf. Dies kann aber zur + Laufzeit oder zur Kompilierungszeit anders konfiguriert werden.
+ Siehe: Konfigurationsdateien +
+ +
HTTPS
+
Das HyperText-Transfer-Protokoll (Secure), der + Standard-Verschlsselungsmechanismus im World Wide Web. + Tatschlich handelt es sich hierbei um HTTP ber  SSL.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
HyperText-Transfer-Protokoll + (HTTP)
+
Das Standard-bertragungsprotokoll im World Wide Web. Der Apache + implementiert die Protokollversion 1.1, bezeichnet als HTTP/1.1 und + definiert in RFC 2616. +
+ +
Klartext
+
Der unverschlsselte Text.
+ +
Konfigurationsanweisung
+
Siehe:  Direktive
+ +
Konfigurationsdatei
+
Eine Textdatei mit  Direktiven, + welche die Konfiguration des Apache steuern.
+ Siehe: Konfigurationsdateien +
+ +
Kontext
+
Ein Bereich in den  Konfigurationsdateien, in dem + verschiedene Typen von  Direktiven + erlaubt sind.
+ Siehe: Erklrung der + Fachbegriffe zu Apache-Direktiven +
+ +
Message-Digest + [ˈmesidʒ]
+
Ein Hash einer Nachricht, mit dem sich sicherstellen lt, + dass der Inhalt der Nachricht whrend der bertragung nicht + verndert wurde. (Anm.d..: ein so genannter Extrakt der + Nachricht)
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Methode
+
Im  HTTP-Kontext eine in der + Anfrage(zeile) des Clients angegeben Aktion, die auf eine Ressource + angewendet wird. GET, POST und PUT + sind einige der verfgbaren HTTP-Methoden. +
+ +
MIME-Typ + [maim tyːp]
+
Eine Art und Weise, den Typ des bermittelten Dokuments zu + beschreiben. Sein Name leitet sich davon ab, dass sein Format den + Multipurpose Internet Mail Extensions entlehnt wurde. Er besteht aus + einem Haupttyp und einem Untertyp, getrennt durch einen + Schrgstrich. Einige Beispiele sind text/html, + image/gif und application/octet-stream. + Bei HTTP wird der MIME-Typ mit dem  Header Content-Type + bermittelt.
+ Siehe: mod_mime +
+ +
Modul
+
Ein selbststndiger Teil eines Programms. Ein Groteil der + Funktionalitt des Apache ist in Modulen enthalten, die Sie einbinden + oder entfernen knnen. In die Apache-Binrdatei httpd einkompilierte Module werden statische Module + genannt, whrend Module, die separat gespeichert sind und optional + zur Laufzeit geladen werden knnen, dynamische Module oder +  DSOs genannt werden. + Standardmig eingebundene Module werden Basismodule + genannt. Fr den Apache sind viele Module verfgbar, die nicht + als Bestandteil des  Apache-HTTP-Server-Tarballs ausgeliefert + werden. Diese werden als Drittmodule bezeichnet.
+ Siehe: Modulverzeichnis +
+ +
Module-Magic-Number + [ˈmɔjuːl mdʒik + ˈnʌmbə] + (MMN)
+
Die Module-Magic-Number ist eine Konstante, die im Apache-Quelltext + definiert ist und im Zusammenhang mit der Binrkompatibilitt + von Modulen steht. Sie wird gendert, wenn sich interne + Apache-Strukturen, -Funktionen oder andere signifikante Teile der API + derart ndern, dass eine Binrkompatibilitt nicht mehr + gewhrleistet werden kann. Bei einer MMN-nderung mssen + alle Module von Drittanbietern zumindest neu kompiliert und zuweilen auch + geringfgig angepat werden, um mit der neuen Apache-Version zu + funktionieren. +
+ +
ffentlicher + Schlssel
+
Der ffentlich verfgbare Schlssel in einem  Public-Key-Kryptographie-System, + mit dem fr seinen Eigentmer bestimmte Nachrichten + verschlsselt und Signaturen von seinem Eigentmer + entschlsselt werden.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
OpenSSL + [ˈəupənɛsɛsˈɛl] +
+
Das Open-Source-Toolkit fr SSL/TLS
+ Siehe: http://www.openssl.org/ +
+ +
Passphrase + [paːfreiz]
+
Das Wort oder die Phrase, welches private Schlssel-Dateien + schtzt. Sie verhindert die Entschlsselung durch nicht + authorisierte Benutzer. Normalerweise ist dies einfach der geheimen + (De-)Codierungsschlssel, der fr  Chiffren verwendet wird.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Privater Schlssel
+
Der geheime Schlssel in einem  Public-Key-Kryptographie-System, + mit dem hereinkommende Nachrichten decodiert und ausgehende signiert + werden.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Proxy
+
Ein zwischen dem Client und dem ursprnglichen Server + (Anm.d..: der Server, den der Client tatschlich erreichen + mchte) liegender Server. Er nimmt Anfragen von + Clients entgegen, bermittelt diese Anfragen dem + ursprnglichen Server und liefert die Antwort des + ursprnglichen Servers an den Client zurck. Wenn mehrere + Clients den gleichen Inhalt abfragen, dann kann der Proxy diesen Inhalt + aus seinem Zwischenspeicher ausliefern, anstatt ihn jedesmal vom + ursprnglichen Server anzufordern, und dadurch die Antwortzeit + verringern.
+ Siehe: mod_proxy +
+ +
Public-Key-Kryptographie + [ˈpʌblik kiː + ˈkyptograˈfiː]
+
Theorie und Anwendung asymmetrischer Verschlsselungssysteme, + die einen Schlssel zur Verschlsselung und einen anderen zur + Entschlsselung verwenden. Zwei derart zusammengehrende + Schlssel bilden Schsselpaar. Man spricht auch von + "Asymetrischer Kryptographie".
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Regulrer + Ausdruck (Regex)
+
Eine Form, ein Muster im Text zu beschreiben - zum Beispiel: "alle + Wrter, die mit dem Buchstaben A beginnen" oder "Jeder Satz mit + zwei Kommata und ohne groes Q". Beim Apache sind regulre + Ausdrcke hilfreich, da sie auf sehr flexible Art und Weise die + Anwendung bestimmter Eigenschaften auf eine Auswahl von Dateien oder + Ressourcen ermglichen. - Zum Beispiel knnen alle .gif- und + .jpg-Dateien eines Verzeichnis "images" mit + "/images/.*(jpg|gif)$" beschrieben werden. Der Apache + verwendet Perl-kompatible regulre Ausdrcke, wie sie die + PCRE-Bibliothek bereitstellt. +
+ +
Reverse Proxy + [riːvəːs + ˈprɔksi]
+
Ein  Proxy-Server, der dem Client + gegenber als ursprnglicher Server erscheint. Dies + ist ntzlich, um den tatschlichen Server aus + Sicherheitsgrnden oder zur Lastverteilung vor dem Client zu + verstecken. +
+ +
Secure Sockets + Layer [siˈkjuə ˈsɔkits + ˈleiə] (SSL)
+
Ein von der Firma Netscape Communications Corporation entwickeltes + Protokoll zur allgemeinen Authentisierung und Verschlsselung der + Kommunikation ber TCP/IP-Netzwerke. Die meistverbreitete Nutzung + ist HTTPS, d.h. HyperText Transfer Protocol (HTTP) ber + SSL.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Server Side + Includes [səːə said + inˈkluːds] (SSI)
+
Eine Technik zum Einbetten von weiterverarbeitenden Anweisungen in + HMTL-Dateien.
+ Siehe: Einfhrung in Server Side + Includes +
+ +
Session + [ˈseʃən]
+
Allgemein der Kontext einer Kommunikation.
+ +
SSLeay
+
Die Bibliothek der Original-SSL/TLS-Implementation von Eric A. + Young
+ +
Symmetrische Kryptographie
+
Die Theorie und Anwendung von Chiffren, die einen einzigen + geheimen Schlssel sowohl zur Verschlsswelung als auch zur + Entschlsselung benutzen.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Tarball + [taːbɔːl]
+
Ein Paket von Dateien, die mit dem Hilfsprogramm tar + zusammengefasst wurden. Apache-Distributionen werden in komprimierten + tar-Archiven oder unter Verwendung von pkzip gespeichert. +
+ +
Transport + Layer Security [trnsˈpɔːt + ˈeiə siˈkjuəriti] + (TLS)
+
Das SSL-Nachfolgeprotokoll, das von der Internet Engineering Task + Force (IETF) zur allgemeinen Authentisierung und Verschlsselung + einer Kommunikation ber TCP/IP-Netzwerke entwickelt worden ist. + TLS Version 1 ist nahezu identisch mit SSL Version 3.
+ Siehe: SSL/TLS-Verschlsseliung +
+ +
Umgebungsvariable (env-Variable)
+
Benannte, von der Betriebssystem-Shell verwaltete Variablen zur + Speicherung von Informationen und zur Kommunikation zwischen Programmen. + Der Apache beinhaltet auch interne Variablen, die ebenfalls + Umgebungsvariablen genannt werden, die aber statt in der + Shell-Umgebung in internen Apache-Strukturen gespeichert sind.
+ Siehe: Umgebungsvariablen im Apache +
+ +
Uniform + Resource Locator [ˈjuːnifɔːm + riˈsɔːs ləuˈkeitə] + (URL)
+
Der Name bzw. die Adresse einer Ressource im Internet. Dies ist der + allgemein gebruchliche Audruck fr die formale Bezeichnung +  Uniform Resource + Identifier. URLs bestehen blicherweise aus einem + Schema wie http oder https, einem Hostnamen + und einem Pfad. Die URL fr diese Seite ist + http://httpd.apache.org/docs/2.0/glossary.html. +
+ +
Uniform Resource Identifier + [ˈjuːnifɔːm + riˈsɔːs aiˈdentifaiə] + (URI)
+
Eine kompakte Zeichenfolge zur Identifizierung einer abstrakten oder + physischen Ressource. Er wird in dem RFC 2396 formell + definiert. Im World Wide Web verwendete URIs werden blicherweise + als  URLs bezeichnet. +
+ +
Virtual-Hosting + [vəˈtjuəl + həustiŋ]
+
Die Bedienung mehrere Websites mit einer einzigen Apache-Instanz. + IP-basierte virtuelle Hosts unterscheiden zwischen + verschiedenen Websites aufgrund ihrer IP-Adressen, whrend + namensbasierte virtuelle Hosts nur den Namen des Hosts + verwenden und daher mehrere Angebote unter der gleichen IP-Adresse + hosten knnen.
+ Siehe: Apache-Dokumentation zu virtuellen + Hosts +
+ +
Voll-qualifizierter Domainname + (FQDN)
+
Der eindeutige Name einer Netzwerkeinheit, bestehend aus einem + Hostnamen und dem Domainnamen, welcher zu einer IP-Adresse + aufgelst werden kann. Zum Beispiel ist www ein + Hostname, example.com ein Domainname und + www.example.com ein voll-qualifizierter Domainname. +
+ + +
Website + [websait]
+
Im Gegensatz zur Webseite, die einer konkreten URL entspricht, ist mit + Website ein komplettes Angebot unter einem bestimmten Hostnamen (und Port) + gemeint. Dieses kann aus vielen verschiedenen Webseiten bestehen. +
+ +
X.509
+
Ein von der International Telecommunication Union (ITU-T) empfohlenes + Schema fr Authentifizierungszertifikate. Es wird fr + SSL/TLS-Authentifizierungen verwendet.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Zertifikat
+
Ein Datensatz zur  Authentisierung einer + Nertzwerkeinheit wie Server oder Client. Ein Zertifikat + enthlt  X.509-Informationen + ber seinen Eigentmer (das sogenannte Betreff + (Anm.d..: engl.: subject)) und die + signierende  Certification + Authority (der sogenannte Aussteller (Anm.d..: engl.: + issuer)) sowie den  ffentlichen Schlssel des + Eigentmers und die Signatur der CA. Netzwerkeinheiten + berprfen diese Signatur mit Hilfe von CA-Zertifikaten.
+ Siehe: SSL/TLS-Verschlsselung +
+ +
Zugriffskontrolle
+
Die Beschrnkung des Zugriffs auf Netzwerkbereiche. Im + Apache-Kontext in der Regel die Zugriffsbeschrnkung auf bestimmte + URLs.
+ Siehe: Authentisierung, Autorisierung und + Zugriffskontrolle +
+
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/glossary.html.en b/rubbos/app/apache2/manual/glossary.html.en new file mode 100644 index 00000000..8044234d --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html.en @@ -0,0 +1,449 @@ + + + +Glossary - Apache HTTP Server + + + + + +
<-
+

Glossary

+
+

Available Languages:  de  | + en  | + es  | + ko  | + tr 

+
+ +

This glossary defines some of the common terminology related to Apache in + particular, and web serving in general. More information on each concept + is provided in the links.

+
+
top
+
+

Definitions

+ +
+
Access Control
+
The restriction of access to network realms. In an Apache context + usually the restriction of access to certain URLs.
See: Authentication, Authorization, and Access + Control +
+ +
Algorithm
+ +
An unambiguous formula or set of rules for solving a problem in a finite + number of steps. Algorithms for encryption are usually called + Ciphers. +
+ +
APache + eXtension Tool (apxs)
+
A perl script that aids in compiling  module sources into Dynamic Shared Objects + ( DSOs) and helps install them in the + Apache Web server.
+ See: Manual Page: apxs +
+ +
Authentication
+
The positive identification of a network entity such as a server, a + client, or a user.
+ See: Authentication, Authorization, and Access + Control +
+ +
Certificate
+
A data record used for authenticating network entities such + as a server or a client. A certificate contains X.509 information pieces + about its owner (called the subject) and the signing  Certification Authority (called + the issuer), plus the owner's  public + key and the + signature made by the CA. Network entities verify these signatures + using CA certificates.
+ See: SSL/TLS Encryption +
+ +
Certificate Signing Request + (CSR)
+
An unsigned  certificate for + submission to a  Certification + Authority, which signs it with the  Private Key of their CA + Certificate. Once the CSR is signed, it becomes a real + certificate.
+ See: SSL/TLS Encryption +
+ +
Certification Authority + (CA)
+
A trusted third party whose purpose is to sign certificates for network + entities it has authenticated using secure means. Other network entities + can check the signature to verify that a CA has authenticated the bearer + of a certificate.
+ See: SSL/TLS Encryption +
+ +
Cipher
+
An algorithm or system for data encryption. Examples are DES, IDEA, RC4, + etc.
+ See: SSL/TLS Encryption +
+ +
Ciphertext
+
The result after  Plaintext is + passed through a  Cipher.
See: SSL/TLS Encryption +
+ +
Common + Gateway Interface (CGI)
+
A standard definition for an interface between a web server and an + external program that allows the external program to service requests. + The interface was originally defined by NCSA but there + is also an RFC project.
+ See: Dynamic Content with CGI +
+ +
Configuration Directive
+
See:  Directive
+ +
Configuration + File
+
A text file containing  Directives + that control the configuration of Apache.
+ See: Configuration Files +
+ +
CONNECT
+
An HTTP  method for proxying raw data + channels over HTTP. It can be used to encapsulate other protocols, such as + the SSL protocol. +
+ +
Context
+
An area in the  configuration + files where certain types of  directives are allowed.
+ See: Terms Used to Describe + Apache Directives +
+ +
Digital + Signature
+
An encrypted text block that validates a certificate or other file. A +  Certification Authority + creates a signature by generating a hash of the Public Key + embedded in a Certificate, then encrypting the hash with its own + Private Key. Only the CA's public key can decrypt the signature, + verifying that the CA has authenticated the network entity that owns the + Certificate.
+ See: SSL/TLS Encryption +
+ +
Directive
+
A configuration command that controls one or more aspects of Apache's + behavior. Directives are placed in the  Configuration File
+ See: Directive Index +
+ +
Dynamic + Shared Object (DSO)
+
 Modules compiled separately from the + Apache httpd binary that can be loaded on-demand.
+ See: Dynamic Shared Object Support +
+ +
Environment + Variable (env-variable)
+
Named variables managed by the operating system shell and used to store + information and communicate between programs. Apache also contains + internal variables that are referred to as environment variables, but are + stored in internal Apache structures, rather than in the shell + environment.
+ See: Environment Variables in Apache +
+ +
Export-Crippled
+
Diminished in cryptographic strength (and security) in order to comply + with the United States' Export Administration Regulations (EAR). + Export-crippled cryptographic software is limited to a small key size, + resulting in Ciphertext which usually can be decrypted by brute + force.
+ See: SSL/TLS Encryption +
+ +
Filter
+
A process that is applied to data that is sent or received by the + server. Input filters process data sent by the client to the server, + while output filters process documents on the server before they are sent + to the client. For example, the INCLUDES output filter + processes documents for  Server Side + Includes.
+ See: Filters +
+ +
Fully-Qualified Domain-Name + (FQDN)
+
The unique name of a network entity, consisting of a hostname and a + domain name that can resolve to an IP address. For example, + www is a hostname, example.com is a domain name, + and www.example.com is a fully-qualified domain name. +
+ +
Handler
+
An internal Apache representation of the action to be performed when a + file is called. Generally, files have implicit handlers, based on the file + type. Normally, all files are simply served by the server, but certain + file types are "handled" separately. For example, the + cgi-script handler designates files to be processed as +  CGIs.
+ See: Apache's Handler Use +
+ +
Hash
+
A mathematical one-way, irreversable algorithm generating a string with + fixed-length from another string of any length. Different input strings + will usually produce different hashes (depending on the hash function). +
+ +
Header
+
The part of the  HTTP request and + response that is sent before the actual content, and that contains + meta-information describing the content. +
+ +
.htaccess
+
A  configuration file that + is placed inside the web tree and applies configuration  directives to the directory where it is + placed and all sub-directories. Despite its name, this file can hold + almost any type of directive, not just access-control directives.
+ See: Configuration Files +
+ +
httpd.conf
+
The main Apache  configuration + file. The default location is + /usr/local/apache2/conf/httpd.conf, but it may be moved using + run-time or compile-time configuration.
+ See: Configuration Files +
+ +
HyperText Transfer Protocol + (HTTP)
+
The standard transmission protocol used on the World Wide Web. Apache + implements version 1.1 of the protocol, referred to as HTTP/1.1 and + defined by RFC 2616. +
+ +
HTTPS
+
The HyperText Transfer Protocol (Secure), the standard encrypted + communication mechanism on the World Wide Web. This is actually just HTTP + over  SSL.
+ See: SSL/TLS Encryption +
+ +
Method
+
In the context of  HTTP, an action to + perform on a resource, specified on the request line by the client. Some + of the methods available in HTTP are GET, POST, + and PUT. +
+ +
Message Digest
+
A hash of a message, which can be used to verify that the contents of + the message have not been altered in transit.
+ See: SSL/TLS Encryption +
+ +
MIME-type
+
A way to describe the kind of document being transmitted. Its name + comes from that fact that its format is borrowed from the Multipurpose + Internet Mail Extensions. It consists of a major type and a minor type, + separated by a slash. Some examples are text/html, + image/gif, and application/octet-stream. In + HTTP, the MIME-type is transmitted in the Content-Type +  header.
+ See: mod_mime +
+ +
Module
+
An independent part of a program. Much of Apache's functionality is + contained in modules that you can choose to include or exclude. Modules + that are compiled into the Apache httpd binary are + called static modules, while modules that are stored + separately and can be optionally loaded at run-time are called + dynamic modules or  DSOs. + Modules that are included by default + are called base modules. Many modules are available for Apache + that are not distributed as part of the Apache HTTP Server  tarball. These are referred to as + third-party modules.
+ See: Module Index +
+ +
Module Magic + Number (MMN)
+
Module Magic Number is a constant defined in the Apache source code that + is associated with binary compatibility of modules. It is changed when + internal Apache structures, function calls and other significant parts of + API change in such a way that binary compatibility cannot be guaranteed + any more. On MMN change, all third party modules have to be at least + recompiled, sometimes even slightly changed in order to work with the new + version of Apache. +
+ +
OpenSSL
+
The Open Source toolkit for SSL/TLS
+ See http://www.openssl.org/# +
+ +
Pass Phrase
+
The word or phrase that protects private key files. It prevents + unauthorized users from encrypting them. Usually it's just the secret + encryption/decryption key used for  Ciphers.
+ See: SSL/TLS Encryption +
+ +
Plaintext
+
The unencrypted text.
+ +
Private Key
+
The secret key in a  Public Key + Cryptography system, used to decrypt incoming messages and + sign outgoing ones.
+ See: SSL/TLS Encryption +
+ +
Proxy
+
An intermediate server that sits between the client and the origin + server. It accepts requests from clients, transmits those requests + on to the origin server, and then returns the response from the origin + server to the client. If several clients request the same content, the + proxy can deliver that content from its cache, rather than requesting it + from the origin server each time, thereby reducing response time.
+ See: mod_proxy +
+ +
Public Key
+
The publicly available key in a  Public Key Cryptography system, + used to encrypt messages bound for its owner and to decrypt signatures + made by its owner.
+ See: SSL/TLS Encryption +
+ +
Public Key Cryptography
+
The study and application of asymmetric encryption systems, which use + one key for encryption and another for decryption. A corresponding pair of + such keys constitutes a key pair. Also called Asymmetric Cryptography. +
+ See: SSL/TLS Encryption +
+ +
Regular Expression + (Regex)
+
A way of describing a pattern in text - for example, "all the words that + begin with the letter A" or "every 10-digit phone number" or even "Every + sentence with two commas in it, and no capital letter Q". Regular + expressions are useful in Apache because they let you apply certain + attributes against collections of files or resources in very flexible ways + - for example, all .gif and .jpg files under any "images" directory could + be written as "/images/.*(jpg|gif)$". Apache uses Perl + Compatible Regular Expressions provided by the PCRE library. +
+ +
Reverse Proxy
+
A  proxy server that appears to the client + as if it is an origin server. This is useful to hide the real + origin server from the client for security reasons, or to load balance. +
+ +
Secure Sockets + Layer (SSL)
+
A protocol created by Netscape Communications Corporation for general + communication authentication and encryption over TCP/IP networks. The most + popular usage is HTTPS, i.e. the HyperText Transfer Protocol (HTTP) + over SSL.
+ See: SSL/TLS Encryption +
+ +
Server Side + Includes (SSI)
+
A technique for embedding processing directives inside HTML files.
+ See: Introduction to Server Side Includes +
+ +
Session
+
The context information of a communication in general.
+ +
SSLeay
+
The original SSL/TLS implementation library developed by Eric A. + Young +
+ +
Symmetric + Cryptography
+
The study and application of Ciphers that use a single secret key + for both encryption and decryption operations.
+ See: SSL/TLS Encryption +
+ +
Tarball
+
A package of files gathered together using the tar utility. + Apache distributions are stored in compressed tar archives or using + pkzip. +
+ +
Transport + Layer Security (TLS)
+
The successor protocol to SSL, created by the Internet Engineering Task + Force (IETF) for general communication authentication and encryption over + TCP/IP networks. TLS version 1 is nearly identical with SSL version 3.
+ See: SSL/TLS Encryption +
+ +
Uniform + Resource Locator (URL)
+
The name/address of a resource on the Internet. This is the common + informal term for what is formally called a  Uniform Resource Identifier. + URLs are usually made up of a scheme, like http or + https, a hostname, and a path. A URL for this page is + http://httpd.apache.org/docs/2.0/glossary.html. +
+ +
Uniform Resource Identifier + (URI)
+
A compact string of characters for identifying an abstract or physical + resource. It is formally defined by RFC 2396. URIs used on the + world-wide web are commonly referred to as  URLs. +
+ +
Virtual Hosting
+
Serving multiple websites using a single instance of Apache. IP + virtual hosting differentiates between websites based on their IP + address, while name-based virtual hosting uses only the name of the + host and can therefore host many sites on the same IP address.
+ See: Apache Virtual Host documentation +
+ +
X.509
+
An authentication certificate scheme recommended by the International + Telecommunication Union (ITU-T) which is used for SSL/TLS authentication.
See: SSL/TLS Encryption +
+
+
+
+

Available Languages:  de  | + en  | + es  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/glossary.html.es b/rubbos/app/apache2/manual/glossary.html.es new file mode 100644 index 00000000..2ead4629 --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html.es @@ -0,0 +1,397 @@ + + + +Glosario - Servidor HTTP Apache + + + + + +
<-
+

Glosario

+
+

Idiomas disponibles:  de  | + en  | + es  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

Este glosario define la terminologa ms comn +relacionada con Apache en particular y con los servidores web en +general. En los enlaces que hay asociados a cada trmino se puede +encontrar informacin ms detallada.

+
+
top
+
+

Definiciones

+ +
+
Autentificacin
La +identificacin positiva de una entidad de red tal como un +servidor, un cliente, o un usuario.
Consulte: Autentificacin, Autorizacin, y +Control de Acceso
+ +
Control de Acceso
La +restriccin en el acceso al entorno de una red. En el contexto de +Apache significa normalmente la restriccin en el acceso a +ciertas URLs.
Consulte: Autentificacin, Autorizacin, y +Control de Acceso
+ +
Algoritmo
Un proceso definido sin +ambiguedades o un conjunto de reglas para solucionar un problema en un +nmero finito de pasos. Los algoritmos para encriptar se llaman +normalmente algoritmos de cifrado.
+ +
Herramienta de extensin de +Apache (apxs)
Es un script escrito en +Perl que ayuda a compilar el cdigo fuente de algunos mdulos para convertirlos en Objetos Dinamicos +Compartidos (DSOs) y ayuda a instalarlos en el +servidor web Apache.
Consulte: Paginas de Ayuda: apxs
+ +
Certificado
+ +
Una informacin que se almacena para autentificar entidades + de red tales como un servidor o un cliente. Un certificado + contiene piezas de informacin X.509 sobre su poseedor + (llamado sujeto) y sobre la Autoridad Certificadora + (llamada el expendedor) que lo firma, ms la clave publica del propietario y la firma de + la AC. Las entidades de red verifican las firmas usando + certificados de las AC.
+ +Consulte: Encriptado SSL/TLS
+ +
Autoridad Certificadora (CA)
Una entidad externa de confianza cuyo fin +es firmar certificados para las entidades de red que ha autentificado +usando medios seguros. Otras entidades de red pueden verificar la +firma para comprobar que una Autoridad Certificadora ha autentificado +al poseedor del certificado.
Consulte: Encriptado +SSL/TLS
+ +
Peticin de firma de +Certificado (CSR)
Es la peticin a +una Autoridad Certificadora para +que firme un certificado an sin +firmar. La Autoridad Certificadora firma el Certificado con +la Clave Privada de su certificado de Autoridad Certificadora. Una +vez que el CSR est firmado, se convierte en un autntico +certificado.
Consulte: Encriptado +SSL/TLS
+ + +
Algoritmo de cifrado
Es un algoritmo +o sistema de encriptado de informacin. Ejemplos de estos +algoritmos son DES, IDEA, RC4, etc.
Consulte: Encriptado SSL/TLS
+ +
Texto cifrado
El resultado de +haber aplicado a un texto sin cifrar un algoritmo de cifrado.
Consultar: Encriptado SSL/TLS
+ +
Common Gateway Interface (CGI)
Una definicin estndar para +un interfaz entre un servidor web y un programa externo que permite +hacer peticiones de servicio a los programas externos. Este interfaz +fue definido originalmente por la NCSA pero +tambien hay un proyecto RFC.
Consulte: Contenido Dinmico con CGI
+ + +
Directivas de +configuracin
Consulte: Directivas
+ +
Fichero de Configuracin
+
Un fichero de texto que contiene Directivas que controlan la configuracin +de Apache.
Consulte: Ficheros de +Configuracin
+ +
CONNECT
Un mtodo de HTTP para hacer proxy a canales de +datos sin usar HTTP. Puede usarse para encapsular otros protocolos, +tales como el protocolo SSL.
+ +
Contexto
Un rea en los ficheros de configuracin donde +estn permitidos ciertos tipos de directivas.
Consulte: Terminos usados para describir +las directivas de Apache
+ +
Firma Digital
Un bloque de +texto encriptado que verifica la validez de un certificado o de otro +fichero. Una Autoridad +Certificadora crea una firma generando un hash a partir de la +Clave Pblica que lleva incorporada en un +Certificado, despus encriptando el hash con su propia +Clave Privada. Solo las claves pblicas de las CAs +pueden desencriptar la firma, verificando que la CA ha autentificado a +la entidad de red propietaria del Certificado.
+Consulte: Encriptado SSL/TLS
+ +
Directiva
Un comando de +configuracin que controla uno o ms aspectos del +comportamiento de Apache. Las directivas se ponen en el Fichero de Configuracin
+Consulte: ndice de +Directivas
+ +
Objetos Dinmicos +Compartidos (DSO)
Los Mdulos compilados de forma separada al +binario httpd de Apache se pueden cargar segn se necesiten.
Consulte: Soporte de Objetos Dinmicos +Compartidos
+ +
Variable de Entorno (env-variable)
Variables que +gestionan el shell del sistema operativo y que se usan para guardar +informacin y para la comunicacin entre programas. Apache +tambin contiene variables internas que son referidas como +variables de entorno, pero que son almacenadas en las estructuras +internas de Apache, en lugar de en el entorno del shell.
+Consulte: Variables de entorno de Apache
+ +
Export-Crippled
+
Disminucin de la fortaleza criptogrfica (y seguridad) +para cumplir con las Regulaciones sobre Exportacin de la +Administraccin de los Estados Unidos (EAR). El software +criptogrfico Export-crippled est limitado a una clave de +pequeo tamao, de tal manera que el texto cifrado +que se consigue con l, puede desencriptarse por fuerza bruta.
Consulte: Encriptado SSL/TLS
+ +
Filtro
Un proceso que se aplica a la +informacin que es enviada o recibida por el servidor. Los +ficheros de entrada procesan la informacin enviada por un +cliente al servidor, mientras que los filtros de salida procesan la +informacin en el servidor antes de envirsela al +cliente. Por ejemplo, el filtro de salida INCLUDES +procesa documentos para Server Side Includes.
+Consulte: Filtros
+ +
Nombre de dominio +completamente qualificado (FQDN)
El +nombre nico de una entidad de red, que consiste en un nombre de +host y un nombre de dominio que puede traducirse a una direccin +IP. Por ejemplo, www es un nombre de host, +example.com es un nombre de dominio, y +www.example.com es un nombre de dominio completamente +qualificado.
+ +
Handler
Es una representacin +interna de Apache de una accin a ser ejecutada cuando se llama a +un fichero. Generalmente, los ficheros tienen un handler +implcito, basado en el tipo de fichero. Normalmente, todos los +ficheros son simplemente servidos por el servidor, pero sobre algunos +tipos de ficheros se ejecutan acciones complementarias. Por ejemplo, +el handler cgi-script designa los ficheros a ser +procesados como CGIs.
Consulte: Uso de Handlers en Apache
+ +
Cabecera
La parte de la +peticin y la respuesta HTTP que se +enva antes del contenido propiamente dicho, y que contiene +meta-informacin describiendo el contenido.
+ +
.htaccess
Un fichero de configuracin que se +pone dentro de la estructura de directorios del sitio web y aplica directivas de configuracin al directorio +en el que est y a sus subdirectorios. A pesar de su nombre, este +fichero puede contener cualquier tipo de directivas, no solo +directivas de control de acceso.
Consulte: Ficheros de Configuracin
+ +
httpd.conf
Es el fichero de configuracin principal +de Apache. Su ubicacin por defecto es +/usr/local/apache2/conf/httpd.conf, pero puede moverse +usando opciones de configuracin al compilar o al iniciar +Apache.
Consulte: Ficheros de +Configuracin
+ +
Protocolo de Tranferencia de +Hipertexto (HTTP)
Es el protocolo de +transmisin estdar usado en la World Wide Web. Apache +implementa la versin 1.1 de este protocolo, al que se hace +referencia como HTTP/1.1 y definido por el RFC 2616.
+ +
HTTPS
Protocolo de transferencia de +Hipertext (Seguro), es el mecanismo de comunicacin encriptado +estndar en World Wide Web. En realidad es HTTP sobre SSL.
Consulte: Encriptado +SSL/TLS
+ +
Mtodo
En el contexto de HTTP, es una accin a ejecutar sobre un recurso, +especificado en la lneas de peticin por el cliente. +Algunos de los metodos diponibles en HTTP son GET, +POST, y PUT.
+ +
Message Digest
Un hash de un +mensaje, el cual pude ser usado para verificar que el contenido del +mensaje no ha sido alterado durante la transmisin.
+Consulte: Encriptado SSL/TLS
+ +
MIME-type
Una manera de describir +el tipo de documento a ser transmitido. Su nombre viene del hecho de +que su formato se toma de las Extensiones del Multipurpose Internet +Mail. Consiste en dos componentes, uno principal y otro secundario, +separados por una barra. Algunos ejemplos son text/html, +image/gif, y application/octet-stream. En +HTTP, el tipo MIME se transmite en la cabecera +del Tipo Contenido.
Consulte: mod_mime
+ +
Mdulo
Una parte independiente +de un programa. La mayor parte de la funcionalidad de Apache +est contenida en mdulos que pueden incluirse o excluirse. +Los mdulos que se compilan con el binario httpd de Apache se +llaman mdulos estticos, mientras que los que se +almacenan de forma separada y pueden ser cargados de forma opcional, +se llaman mdulos dinamicos o DSOs. +Los mdulos que estn incluidos por sefecto de llaman +mdulos base. Hay muchos mdulos disponibles para +Apache que no se distribuyen con la tarball del +Servidor HTTP Apache . Estos mdulos son llamados +mdulos de terceros.
Consulte: ndice de Mdulos
+ +
Nmero Mgico de +Mdulo (MMN)
El nmero +mgico de mdulo es una constante definida en el cdigo +fuente de Apache que est asociado con la compatibilidad binaria +de los mdulos. Ese nmero cambia cuando cambian las +estructuras internas de Apache, las llamadas a funciones y otras +partes significativas de la interfaz de programacin de manera +que la compatibilidad binaria no puede garantizarse sin cambiarlo. Si +cambia el nmero mgico de mdulo, todos los +mdulos de terceros tienen que ser al menos recompilados, y +algunas veces, incluso hay que introducir ligeras modificaciones para +que funcionen con la nueva versin de Apache
+ +
OpenSSL
+
El toolkit Open Source para SSL/TLS
+ see http://www.openssl.org/
+ +
Pass Phrase
La palabra o frase +que protege los archivos de clave privada. Evita que usuarios no +autorizados los encripten. Normalmente es solo la clave de +encriptado/desencriptado usada por los Algoritmos de +Cifrado.
Consulte: Encriptado +SSL/TLS
+ +
Plaintext
+
Un texto no encriptado.
+ +
Clave Privada
La clave secreta +de un sistema criptogrfico de +Clave Pblica, usada para desencriptar los mensajes entrantes +y firmar los salientes.
Consulte: Encriptado +SSL/TLS
+ +
Proxy
Un servidor intermedio que se +pone entre el cliente y el servidor de origen. Acepta las +peticiones de los clientes, las transmite al servidor de origen, y +despus devuelve la respuesta del servidor de origen al +cliente. Si varios clientes piden el mismo contenido, el proxy sirve +el contenido desde su cach, en lugar de pedirlo cada vez que lo +necesita al servidor de origen, reduciendo con esto el tiempo de +respuesta.
Consulte: mod_proxy
+ +
Clave Publica
La clave disponible +pblicamente en un sistema +criptogrfico de Clave Pblica, usado para encriptar +mensajes destinados a su propietario y para desencriptar firmas hechas +por su propietario.
Consulte: Encriptado +SSL/TLS
+ +
Criptogrfia de Clave +Pblica
El estudio y aplicacin de sistemas de +encriptado asimtricos, que usa una clave para encriptar y otra +para desencriptar. Una clave de cada uno de estos tipos constituye un +par de claves. Tambien se llama Criptografia Asimtrica.
+Consulte: Encriptado SSL/TLS
+ +
Expresiones Regulares (Regex)
Una forma de describir un modelo de +texto - por ejemplo, "todas las palabras que empiezan con la letra "A" +o "todos los nmeros de telfono que contienen 10 +dgitos" o incluso "Todas las frases entre comas, y que no +contengan ninguna letra Q". Las Expresiones Regulares son utiles en +Apache porque permiten aplicar ciertos atributos a colecciones de +ficheros o recursos de una forma flexible - por ejemplo, todos los +archivos .gif y .jpg que estn en un directorio "imgenes" +podran ser escritos como "/images/.*(jpg|gif)$". +Apache usa Expresiones Regulares compatibles con Perl gracias a la +librera PCRE.
+ +
Reverse Proxy
Es un servidor +proxy que se presenta al cliente como si fuera un +servidor de origen. Es til para esconder el +autntico servidor de origen a los clientes por cuestiones de +seguridad, o para equilibrar la carga.
+ +
Secure Sockets Layer (SSL)
Un protocolo creado por Netscape +Communications Corporation para la autentificacin en +comunicaciones en general y encriptado sobre redes TCP/IP. Su +aplicacin ms popular es HTTPS, el Protocolo de +Transferencia de Hipertexto (HTTP) sobre SSL.
Consulte: Encriptado SSL/TLS
+ +
Server Side Includes (SSI)
Una tecnica para incluir directivas de +proceso en archivos HTML.
Consulte: Introduccin al Server Side +Includes
+ +
Sesion
Informacin del +contexto de una comunicacin en general.
+ +
SSLeay
La implementacin +original de la librera SSL/TLS desarrollada por Eric +A. Young
+ +
Criptografa +Simtrica
El estudio y aplicacin de +Algoritmos de Cifrado que usan una solo clave secreta tanto +para encriptar como para desencriptar.
Consulte: Encriptado SSL/TLS
+ +
Tarball
Un grupo de ficheros +puestos en un solo paquete usando la utilidad tar. Las +distribuciones Apache se almacenan en ficheros comprimidos con tar o +con pkzip.
+ +
Transport Layer Security (TLS)
Es el sucesor del protocolo SSL, creado +por el Internet Engineering Task Force (IETF) para la +autentificacin en comunicaciones en general y encriptado sobre +redes TCP/IP. La versin 1 de TLS es casi idntica a la +versin 3 de SSL.
Consulte: Encriptado +SSL/TLS
+ +
Localizador de Recursos +Uniforme (URL)
El nombre de un recurso +en Internet. Es la manera informal de decir lo que formalmente se +llama un Identificador de +Recursos Uniforme. Las URLs estn compuestas normalmente por +un esquema, tal como http o https, un nombre +de host, y una ruta. Una URL para esta pgina es +http://httpd.apache.org/docs/2.0/glossary.html.
+ +
Identificador de Recursos +Uniforme (URI)
Una cadena de caracteres +compacta para identificar un recurso fsico o abstracto. Se +define formalmente en la RFC 2396. Los URIs que +se usan en world-wide web se refieren normalmente como URLs.
+ +
Hosting Virtual
Se trata de +servir diferentes sitios web con una sola entidad de Apache. El +hosting virtual de IPs diferencia los sitios web basandose en sus +direcciones IP, mientras que el hosting virtual basado en +nombres usa solo el nombre del host y de esta manera puede alojar +muchos sitios web con la misma direccin IP.
Consulte: Documentacin sobre Hosting Virtual en +Apache
+ +
X.509
Un esquema de certificado de +autentificacin recomendado por la International +Telecommunication Union (ITU-T) que se usa en la autentificacin +SSL/TLS.
Consulte: Encriptado SSL/TLS
+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/glossary.html.ko.euc-kr b/rubbos/app/apache2/manual/glossary.html.ko.euc-kr new file mode 100644 index 00000000..57daf4e4 --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html.ko.euc-kr @@ -0,0 +1,366 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  de  | + en  | + es  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

Ϲݿ , Ư ġ õ, +Ѵ. 信 ڼ ũ ϶. +(; ܾ ѱ ƴ϶, +Դϴ. ǥ +ϱ ٶϴ.)

+
+
top
+
+

+ +
+
(Access Control)
+
Ʈ . ġ Ư +URL ϱ Ѵ.
: , Ѻο,
+ +
˰ (Algorithm)
+
ܰ踦 Ǫ Ȯ Ȥ Ģ. +ȣȭ ˰ ȣ(Ciphers) +θ.
+ +
APache eXtension Tool +(apxs)
+(module) ҽ ü (DSO) +ϰ ġ ġϴ ۾ perl +ũƮ.
: Manpage: +apxs
+ +
(Authentication)
+
, Ŭ̾Ʈ, Ʈ ü +Ȯ.
: , Ѻο, +
+ +
(Certificate)
+
Ŭ̾Ʈ Ʈ ü ϴ ڷ. + (subject ), (Certificate + Authority) (issuer ), Ű, CA  + X.509 ִ. Ʈ ü CA Ͽ + ˻Ѵ.
+: SSL/TLS ȣȭ
+ +
û (Certificate +Signing Request, CSR)
(Certification +Authority) Ͽ CA (Certificate) +Ű (Private Key) + . CSR Ǹ + ȴ.
+: SSL/TLS ȣȭ
+ +
(Certification +Authority, CA)
+Ʈ ü ϴ ŷϴ . ٸ Ʈ +ü CA ڸ ߴ Ȯ +ִ.
+: SSL/TLS ȣȭ
+ +
ȣ (Cipher)
ڷḦ +ȣȭϴ ˰̳ ý. , DES, IDEA, RC4 ִ.
+: SSL/TLS ȣȭ
+ +
ȣ (Ciphertext)
(Plaintext) ȣ +(Cipher) ó .
: SSL/TLS +ȣȭ
+ +
Ʈ ̽ +(Common Gateway Interface, CGI)
+
ܺ α׷ û ֵ ܺ +α׷ ̽ ǥ. ̽ NCSA +, RFC +Ʈ̱⵵ ϴ.
+: CGI
+ + +
þ (Configuration +Directive)
+
: þ
+ +
(Configuration File)
+
ġ ϴ þ (directive) + ؽƮ.
+:
+ +
CONNECT
+
HTTP ڷ帧 Ͻϴ HTTP ޽ +(method). SSL ٸ α Ѵ.
+ +
(Context)
(configuration file)þ (directive) +ִ .
: ġ þ ϴµ +
+ +
ڼ (Digital Signature)
+
ٸ ˻ϴ ȣȭ ڵ. (Certification + Authority) (Certificate) Ե + Ű (Public Key) ؽ ڽ + Ű (Private Key) ȣȭϿ . + CA Ű Ǯ ֱ⶧, CA + (Certificate) Ʈ ü + ִ.
+: SSL/TLS ȣȭ
+ +
þ (Directive)
ġ + ϴ ɾ. þ (Configuration File) +Ѵ.
: þ
+ +
ü (Dynamic Shared +Object) (DSO)
ġ httpd +ϰ Ͽ ʿҶ о ִ (Module).
+: ü
+ +
ȯ溯 (Environment Variable) +(env-variable)
+
ϰ α׷ ü ϴ +. ġ ȯ溯 , ȯ +ƴ϶ ġ ο ȴ.
+: ġ ȯ溯
+ +
(Export-Crippled)
+
̱ (Export Administration Regulations, EAR) + ؼϱ ȣ( ) . ȣȭ + Ʈ Ű ũⰡ ۰ ѵǾ, ȣ + (Ciphertext) (brute force) Ǯ ִ.
+: SSL/TLS ȣȭ (SSL/TLS Encryption)
+ +
(Filter)
+
ų ޴ ڷḦ óϴ . Էʹ +Ŭ̾Ʈ ڷḦ óϰ, ʹ +Ŭ̾Ʈ óѴ. , +INCLUDES ʹ Server +Side Includes óѴ.
+:
+ +
θ +(Fully-Qualified Domain-Name) (FQDN)
+
IP ּҿ ϴ, ȣƮ θ Ʈ +ü ̸. , www ȣƮ̰ +example.com θ϶, +www.example.com θ̴.
+ +
ڵ鷯 (Handler)
+
ûҶ ϴ ۾ ġ ǥ. +Ϲ Ϲ ڵ鷯 . + ,  + "óȴ(handled)". , cgi-script +ڵ鷯 CGI ó Ѵ.
+: ġ ڵ鷯
+ +
(Header)
+
HTTP û 信 + κ ϴ ִ.
+ +
.htaccess
ȿ ִ + (configuration file), + þ (directive) ڽ ġ +丮 丮 Ѵ. ̸ ޸ +Ͽ ܼ þܿ þ + ִ.
+:
+ +
httpd.conf
+
ġ (configuration +file). ⺻ ġ +/usr/local/apache2/conf/httpd.conf, Ҷ +Ȥ ϶ ִ.
+:
+ +
HyperText Transfer +Protocol (HTTP)
+
̵ ϴ ǥ . ġ +RFC 2616 + HTTP/1.1̶ 1.1 Ѵ.
+ +
HTTPS
+
ȭ̵ ǥ ȣ , HyperText Transfer + Protocol (Secure). شܿ SSL + HTTP̴.
+: SSL/TLS ȣȭ
+ +
޽ (Method)
Ŭ̾Ʈ + HTTP û +ڿ ϵ ൿ. HTTP ޽忡 GET, +POST, PUT ִ.
+ +
޽ (Message Digest)
+
޽ ʾ ϱ + ޽ ؽ.
+: SSL/TLS ȣȭ
+ +
MIME-type
+ ϴ . Multipurpose Internet Mail Extensions + Ա⶧ ̷ ̸ . ̿ + major type minor type ̷. , +text/html, image/gif, +application/octet-stream ̴. MIME-type HTTP +Content-Type (header) +Ѵ.
: mod_mime
+ +
(Module)
α׷ +κ. ġ Կθ ִ ⿡ +ִ. ġ httpd ϰ +̶ ϸ, иǾ о + ִ Ȥ DSO +Ѵ. ⺻ ϴ base ̶ Ѵ. +ġ Ÿ (tarball) + ġ ִ. ̵ +ڰ (third-party) ̶ Ѵ.
+:
+ +
(Module Magic Number) +(MMN)
+
ġ ҽڵ尡 , +ȣȯ ִ. ȣȯ ̻ + ġ Լ ȣ, ٸ API Ϻΰ +쿡 ٲ. MMN ϸ ڰ ּ ٽ +ϵǾ Ѵ. ġ µ ؾ 쵵 +ִ. +
+ +
OpenSSL
+
SSL/TLS ¼ҽ
+ http://www.openssl.org/
+ +
Pass Phrase
+
Ű ȣϴ . ڰ Ű + Ͽ ȣȭ ϵ Ѵ. ȣ +(Ciphers) ϴ н ȣ/ص Ű̴.
: SSL/TLS ȣȭ
+ +
(Plaintext)
+
ȣȭ .
+ +
Ű (Private Key)
+ڷḦ صϰ ڷḦ ϱ Ű ȣȭ (Public Key +Cryptography) ý ȣŰ.
+: SSL/TLS ȣȭ
+ +
Ͻ (Proxy)
Ŭ̾Ʈ + ̿ ִ ߰ . Ŭ̾Ʈ û +޾ , Լ ٽ +Ŭ̾Ʈ . Ŭ̾Ʈ ûϸ +Ͻô Ź ûʰ ij Ͽ +ð ִ.
+: mod_proxy
+ +
Ű (Public Key)
Ű ȣȭ (Public Key +Cryptography) ýۿ Ű ڿ ȣȭϰų +ڰ Ǯ Ű.
+: SSL/TLS ȣȭ
+ +
Ű ȣȭ (Public Key +Cryptography)
+
ȣ ص ٸ Ű ϴ Ī(asymmetric) +ȣȭ ý Ȱ. ȣ ص ϴ ΰ Ű +Ű(key pair) ̷. Ī ȣȭ θ.
+: SSL/TLS ȣȭ
+ +
ǥ (Regular Expression) (Regex)
ϴ . + , " A ϴ ܾ", " 10ε ȭȣ", + "ǥ ΰְ 빮 Q " ǥ ִ. +ǥ ϸ ſ ϰ ̳ ڿ  + ִ. , "images" 丮 Ʒ ִ .gif +.jpg "/images/.*(jpg|gif)$" Ī +ִ. ġ PCRE ̺귯 +Ͽ Perlȣȯ ǥ Ѵ.
+ +
Ͻ (Reverse Proxy)
+
Ŭ̾Ʈ ó ̴ Ͻ (proxy) . Ȼ Ȥ ϸ +лϱ Ŭ̾Ʈ 涧 ϴ.
+ +
Secure Sockets Layer (SSL)
Netscape Communications簡 TCP/IP +Ʈ Ϲ ȣȭ . + Ϲ 뵵 HTTPS (HyperText Transfer Protocol +(HTTP) over SSL)̴.
+: SSL/TLS ȣȭ
+ +
Server Side Includes (SSI)
HTML ȿ óþ ϴ +.
: Server Side Includes Ұ
+ +
(Session)
+
Ϲ Ȳ(context) .
+ +
SSLeay
+
Eric A. Young SSL/TLS ̺귯
+ +
Ī ȣ (Symmetric +Cryptography)
+
ȣ ص ۾ ȣŰ ϴ ȣ + (Ciphers) Ȱ.
+: SSL/TLS Encryption
+ +
Ÿ (Tarball)
+
tar Ͽ ϵ . ġ +tar ϰų pkzip Ͽ ȴ.
+ +
Transport Layer Security (TLS)
+
ͳݱ ǥȭⱸ(Internet Engineering Task +Force, IETF) TCP/IP Ʈ Ϲ ȣȭ + SSL ļ . TLS 1 SSL 3 +ϴ.
+: SSL/TLS ȣȭ
+ +
Uniform Resource Locator +(URL)
+
ͳݿ ִ ڿ ̸/ּ. δ Uniform Resource +Identifier ϴ ϻ Ī̴. URL +http https Ŵ(scheme), ȣƮ, +η ȴ. URL +http://httpd.apache.org/docs/2.0/glossary.html̴.
+ +
Uniform Resource Identifier +(URI)
+
߻ ڿ̳ ڿ Īϱ ڿ. + RFC +2396 Ѵ. ̵ ϴ URI +URL̶ θ.
+ +
ȣƮ (Virtual Hosting)
+
ġ ϳ Ʈ ϱ. IP ȣƮ +Ʈ IP ּҰ ٸ. ̸(name-based) +ȣƮ ȣƮ ϹǷ IP ּҿ +Ʈ ִ.
+: ġ ȣƮ
+ +
X.509
+
ſ(International Telecommunication Union, +ITU-T) ϴ . SSL/TLS Ѵ.
+: SSL/TLS ȣȭ
+
+
+
+

:  de  | + en  | + es  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/glossary.html.tr.utf8 b/rubbos/app/apache2/manual/glossary.html.tr.utf8 new file mode 100644 index 00000000..765dca92 --- /dev/null +++ b/rubbos/app/apache2/manual/glossary.html.tr.utf8 @@ -0,0 +1,460 @@ + + + +Terim Sözlüğü - Apache HTTP Sunucusu + + + + + +
<-
+

Terim Sözlüğü

+
+

Mevcut Diller:  de  | + en  | + es  | + ko  | + tr 

+
+ +

Bu sözlük, genelinde HTML sayfa sunumuna, özelinde Apache HTTP Sunucusuna + özgü ortak terminolojinin bir kısmını içerir. Her kavram ile ilgili daha + ayrıntılı bilgi bağlarla sağlanmıştır.

+
+
top
+
+

Tanımlar

+ +
+
Algoritma
+ +
Bir sorunu sonlu sayıda adımda çözümlemek için uygulanan kurallar + kümesi veya anlam belirsizliği içermeyen bir formül. Şifreleme için + kullanılan algoritmalara şifre denir. +
+ +
Aktarım Katmanı Güvenliği
+
İngilizcesi: Transport Layer Security (TLS)
+
TCP/IP ağları üzerinden genel iletişimin kimlik doğrulamalı ve şifreli + yapılabilmesi için SSL’nin ardılı olarak Genel Ağ Mühendisliği Görev Gücü + (IETF) tarafından oluşturulmuş protokol. TLS’nin 1. sürümü ile SSL’in 3. + sürümü hemen hemen aynıdır.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Anahtar Parolası
+
Özel anahtar dosyalarını yetkisiz kişilerden koruyan sözcük veya + cümle. Genellikle sadece  şifreler + için kullanılan gizli şifreleme/şifre çözme anahtarını korur.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Apache Eklenti + Aracı (apxs)
+
İngilizcesi: APache eXtension Tool - apxs
+
 Modül kaynak kodlarının devinen + paylaşımlı nesneler ( DSO) halinde + derlenmesine ve Apache Sunucusu içinde kurulmasına yardım eden bir Perl + betiği.
Daha ayrıntılı bilgi için apxs kılavuz + sayfasına bakınız. +
+ +
Bağlam
+
 Yapılandırma dosyalarında + sadece belli türdeki  yönergelerin + bulunmasına izin verilen bir bölge.
+ Bakınız: Apache Yönergelerini + Açıklamak için Kullanılan Terimler +
+ +
Bakışımlı Şifreleme Tekniği
+
Şifreleme ve şifre çözme için tek bir anahtarın kullanıldığı + bir şifreleme tekniği.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Başlık
+
Bir  HTTP isteğinin parçası olarak, + gönderilen yanıtta asıl içerikten önce yer alan ve içerik hakkında + mecazlar içeren veri. +
+ +
CONNECT
+
Ham veri kanallarını HTTP üzerinden yönlendirmek için kullanılan bir HTTP  yöntemi. SSL protokolü gibi diğer protokolleri sarmalamakta kullanılabilir. +
+ +
Devingen + Paylaşımlı Nesne (DSO)
+
İngilizcesi: Dynamic Shared Object (DSO)
+
İstek halinde yüklenebilen, Apache httpd + çalıştırılabilir dosyasından ayrı olarak derlenmiş  modüllerin ortak adı.
+ Bakınız: Devingen Paylaşımlı Nesne Desteği +
+ +
Düz Metin
+
Şifrelenmemiş metin.
+ +
Düzenli İfade + (Regex)
+
Metin içinde bir şablon tanımlama yolu. Örneğin, “A harfi ile + başlayan bütün sözcükler” veya “10 rakamlı telefon numaraları” ya da + “Baş harfi Z olmayan ve iki virgül içeren cümleler” gibi. Düzenli + ifadeler, Apache’de belli özniteliklere uygun dosya veya özkaynakları + toplamak için esnek bir yol sağlamasından ötürü oldukça yararlıdır. + Örneğin, “resimler” dizini altındaki dosyalardan .gif ve .jpg uzantılı + olanları toplamak için “/resimler/.*(jpg|gif)$” düzenli + ifadesi yazılabilir. Apache, PCRE + kütüphanesi ile sağlanan Perl uyumlu düzenli ifadeleri kullanır. +
+ +
Erişim Denetimi
+ +
Ağ bölgelerine erişimin kısıtlanması. Apache bağlamında normal + olarak belli URL’lere erişimi kısıtlamak şeklinde + uygulanır.
Bakınız: Kimlik Doğrulama, + Yetkilendirme ve Erişim Denetimi +
+ +
Eylemci
+
Bir dosya istendiğinde uygulanacak eylemi Apache içinde gerçekleştiren + nesne. Genellikle dosyalar, dosya türüne bağlı dolaylı eylemcilere + sahiptir. Normalde tüm dosyalar sunucu tarafından sıradan birer dosya + olarak işleme sokulduğu halde bazı belli dosyalar diğerlerinden ayrı + ele alınır. Örneğin, cgi-script eylemcisi dosyaları +  CGI’ler tarafından işlenebilir hale + getirmek üzere işleme sokar.
+ Bakınız: Apache Eylemcilerinin Kullanımı +
+ +
Genel Anahtar
+
 Genel Anahtarlı + Şifreleme Tekniğinde, sahibinin yaptığı imzaları çözmeye ve + sahibine gönderilen iletileri şifrelemeye yarayan genel erişime açık + anahtar.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Genel Anahtarlı Şifreleme Tekniği
+
Şifreleme ve şifre çözme için iki ayrı anahtarın kullanıldığı + bakışımsız şifreleme sistemlerinin konusu veya uygulaması. Bu amaçla + kullanılan anahtarlar bir anahtar çiftinden oluşur. Genel Anahtarlı + Şifrelemeye Bakışımsız Şifreleme de denir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Gizli Anahtar
+
 Genel Anahtarlı + Şifreleme Tekniğinde, giden iletileri imzalamak ve gelen + iletilerin şifrelerini çözmek amacıyla kullanılan gizli anahtar.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Güvenli Hiper Metin Aktarım Protokolü + (HTTPS)
+
İngilizcesi: The HyperText Transfer Protocol (Secure), (HTTPS)
+
Güvenli Hiper Metin Aktarım Protokolü, Genel Ağ’da kullanılan standart + şifreli iletişim mekanizmasıdır. Aslında HTTP protokolünün  SSL üzerinden gerçekleştirilmesinden başka bir + şey değildir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Güvenli Soket Katmanı
+
İngilizcesi: Secure Sockets Layer (SSL)
+
TCP/IP ağları üzerinden genel iletişimin kimlik doğrulamalı ve şifreli + yapılabilmesi için Netscape Communications Corporation tarafından + oluşturulmuş bir protokol. Günümüzde en çok HTTPS, yani SSL + üzerinden Hiper Metin Aktarım Protokolü şeklinde kullanılmaktadır.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Hiper Metin Aktarım Protokolü + (HTTP)
+
İngilizcesi: HyperText Transfer Protocol (HTTP)
+
Genel Ağ’da kullanılan standart aktarım protokollerinden biri. + Apache, RFC 2616 ile + tanımlanmış protokolün HTTP/1.1 olarak bilinen 1.1 sürümünü gerçekler. +
+ +
.htaccess
+
Belge dosyaları ağacı içine yerleştirilen bir  yapılandırma dosyası olup yerleştiği + dizine ve o dizinin alt dizinlerine yapılandırma yönergeleri + uygulanmasını sağlar. İsmine rağmen böyle bir dosyanın içerebileceği + yönergeler erişim denetleme yönergeleri ile sınırlı değildir; hemen + her tür yönergeyi içerebilir.
+ Bakınız: Yapılandırma Dosyaları +
+ +
httpd.conf
+
Ana Apache  yapılandırma + dosyası. Dosya sistemindeki öntanımlı yeri + /usr/local/apache2/conf/httpd.conf olup derleme + sırasındaki yapılandırmayla veya çalışma anındaki yapılandırmayla + başka bir yer belirtilebilir.
+ Bakınız: Yapılandırma Dosyaları +
+ +
İhracat Engelli
+
İngilizcesi: Export-Crippled
+
Amerika Birleşik Devletlerinin İhracat Yönetim Düzenlemelerine (EAR) + uymak için şifreleme yoluyla sakatlanmış yazılım. İhracat engelli olması + için şifrelenmiş yazılımları birer şifreli metin haline getiren şifre + anahtarları küçük boyutlu olduğundan şifreleme zor + kullanılarak kırılabilir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
İleti Özeti
+
İngilizcesi: Message Digest
+
Aktarım sırasında içeriğinin değişme olasılığı bulunan bir iletinin + içeriğini doğrulamak için kullanılan bir  özet.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Karşı Vekil
+
İstemciye kendini asıl sunucu imiş gibi gösteren bir +  vekil sunucu. Güvenlik, yük dengelemesi + gibi sebeplerle asıl sunucuyu istemcilerden gizlemek için yararlıdır. +
+ +
Kimlik Doğrulama
+
Sunucu, istemci veya kullanıcı gibi bir ağ öğesinin kimliğinin + olumlanması.
Bakınız: Kimlik Doğrulama, + Yetkilendirme ve Erişim Denetimi +
+ +
MIME türü
+
Aktarılan belgenin çeşidini betimlemenin bir yolu. MIME, Türkçe’ye + ‘Çok Amaçlı Genel Ağ Posta Eklentileri’ olarak çevrilebilecek olan + "Multipurpose Internet Mail Extensions" sözcüklerinden türetilmiş bir + kısaltmadır. MIME türleri bir bölü çizgisi ile ayrılmış bir ana ve bir + alt belge türünün birleşiminden oluşur. text/html, + image/gif ve application/octet-stream örnek + olarak verilebilir. HTTP protokolünde MIME türleri + Content-Type  başlığında + aktarılır.
Bakınız: mod_mime +
+ +
Modül
+
Bir programın bağımsız parçalarından her biri. Apache işlevselliğinin + çoğu yapılandırmaya dahil edilip edilmeyeceğine kullanıcı tarafından + karar verilebilen modüllerden oluşur. Apache httpd + çalıştırılabiliri içinde derlenmiş modüllere durağan modüller + adı verilirken ayrı bir yerde saklanan ve çalışma anında isteğe bağlı + olarak yüklenebilen modüllere devingen modüller veya +  DSO’lar denir. Yapılandırmaya öntanımlı + olarak dahil edilen modüllere temel modüller denir. Apache + için kullanılabilecek modüllerin çoğu Apache HTTP Sunucusunun +  tar paketi içinde dağıtılmaz; bunlara + üçüncü parti modüller denir.
+ Bakınız: Modül Dizini +
+ +
OpenSSL
+
SSL/TLS için açık kaynak kodlu araç kiti.
Daha ayrıntılı bilgi + için http://www.openssl.org/ + adresine bakınız. +
+ +
Ortak Ağgeçidi Arayüzü (CGI)
+
İngilizcesi: Common Gateway Interface (CGI)
+
Bir HTTP sunucusunun bir harici programa hizmet istekleri yapmasını + mümkün kılan, sunucu ile bir harici program arasındaki bir arayüz + standardı. Özgün arayüz NCSA tarafından + tanımlanmış olmakla birlikte ayrıca bir CGI RFC’si de vardır.
+ Bakınız: CGI ile Devingen İçerik +
+ +
Ortam Değişkeni (ortam-değişkeni)
+
İşletim sistemi kabuğu tarafından yönetilen ve programlar arasında + bilgi alışverişi amacıyla kullanılan isimli değişkenler. Ayrıca, + Apache de ortam değişkenleri olarak tanımlanabilecek dahili değişkenler + içerir fakat bunlar kabuk ortamında değil dahili Apache yapıları içinde + saklanır.
+ Bakınız: Apache Ortam Değişkenleri +
+ +
Oturum
+
Bir iletişimin bağlamsal bilgileri.
+ +
Özet
+
Uzunluğu değişebilen bir dizgenin belli bir durumuna ilişkin sabit + uzunlukta bir dizge üretmek için kullanılan geri dönüşümsüz bir + algoritma. Algoritmaya girdi olan farklı uzunluktaki dizgeler (özet + işlevine bağlı olarak) aynı uzunlukta farklı özetler üretir. +
+ +
Sanal Konaklık
+
Tek bir Apache sunucusundan çok sayıda site sunulması. IP tabanlı + sanal konaklıkta siteler birbirlerinden IP adreslerine göre + ayrılırken, isim tabanlı sanal konaklıkta siteler aynı IP + adresinden kendi isimleriyle sunulabilirler.
+ Bakınız: Apache Sanal Konak Belgeleri +
+ +
Sayısal İmza
+
Bir sertifikayı veya bir dosyayı doğrulamakta kullanılan şifreli bir + metin. Bir imza  Sertifika + Makamı tarafından bir sertifikaya gömülü olan + genel anahtardan bir özet üretilerek oluşturulur. İmza şifresi + sadece sertifika sahibi ağ öğesinin kimliğini doğrulayacak + SM’nin genel anahtarı kullanılarak çözülebilir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Sertifika
+
Sunucu, istemci gibi ağ öğelerinin kimliğini kanıtlamakta kullanılan + bir veri kaydı. Bir sertifika, sertifika sahibi (buna sertifikanın + konusu da denir), sertifikayı imzalayan  Sertifika Makamı (SM) (buna + sertifika yayıncısı da denir), sertifika sahibinin  genel anahtarı ve SM tarafından üretilen imza + gibi parçalardan oluşan X.509 bilgisi içerir. Ağ öğeleri bu imzaları SM + sertifikalarını kullanarak doğrular.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Sertifika İmzalama İsteği (Sİİ)
+
İngilizcesi: Certificate Signing Request (CSR)
+
İmzasız bir sertifikayı  Sertifika Makamına kendi SM Sertifikasının +  özel anahtarı ile imzalaması + için yapılan istek. Sİİ imzalanınca bir gerçek sertifika haline + gelir.
Bakınız: SSL/TLS Şifrelemesi +
+ +
Sertifika Makamı (SM)
+
İngilizcesi: Certification Authority (CA)
+
Ağ öğelerinin güvenilir olarak kimliklerinin doğrulanması için + sertifikaları imzalayan güvenilir üçüncü şahıs. Diğer ağ öğeleri, + sertifikalı bir öğenin kimliğini kanıtlayan bir SM’yi doğrulamak + için imzayı sınayabilir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Sihirli Modül + Numarası (SMN)
+
Sihirli Modül Numarası, modüllerin ikil uyumluluğu ile ilgili olarak + Apache kaynak kodunda tanımlanmış bir sabittir. Apache dahili yapıları, + uygulama programlama arayüzünün önemli parçaları ve işlev çağrıları artık + ikil uyumluluğun garanti edilemeyeceği kadar değiştiği zaman SMN + değiştirilir. Bir SMN değişikliğinde ve bazen de sırf yeni bir Apache + sürümü ile çalışmak icabettiğinde tüm üçüncü parti modüllerin en azından + yeniden derlenmesi gerekir. +
+ +
SSLeay
+
Eric A. Young tarafından geliştirilmiş özgün SSL/TLS + gerçeklenim kütüphanesi. +
+ +
Sunucu Taraflı İçerik Yerleştirme
+
İngilizcesi: Server Side Includes (SSI)
+
İşlem yönergelerini HTML dosyalara gömme tekniği.
+ Bakınız: Sunucu Taraflı İçerik Yerleştirmeye + Giriş +
+ +
Süzgeç
+
Sunucu tarafından alınan ve gönderilen veriye uygulanan bir işlem. + Giriş süzgeçleri sunucuya istemci tarafından gönderilen veriyi işlerken + çıkış süzgeçleri sunucu tarafından istemciye gönderilen belgeleri işler. + Örneğin, INCLUDES çıkış süzgeci, belgeleri  sunucu taraflı içerik için işleme sokar.
+ Bakınız: Süzgeçler +
+ +
Şifre
+
Veri şifrelemek için kullanılan bir algoritma veya sistem. DES, IDEA + veya RC4 örnek verilebilir.
+ Bakınız: SSL/TLS Şifrelemesi +
+ +
Şifreli Metin
+
Bir  Düz Metin bir +  Şifreden geçirilince elde edilen + sonuç.
Bakınız: SSL/TLS Şifrelemesi +
+ +
Tam Alan Adı + (TAA)
+
İngilizcesi: Fully-Qualified Domain-Name (FQDN)
+
Bir IP adresiyle eşleşebilen, bir konak adıyla bir alan adının + birleşiminden oluşan eşsiz bir ağ öğesi ismi. Örneğin, + httpd.apache.org tam alan adında httpd bir konak + adıyken apache.org bir alan adıdır. +
+ +
Tar Paketi
+
tar uygulaması kullanılarak bir araya getirilmiş + dosyalardan oluşan bir paket. Apache dağıtımları sıkıştırılmış tar + arşivleri içinde veya pkzip kullanılarak saklanır. +
+ +
Tektip Özkaynak Betimleyici
+
İngilizcesi: Uniform Resource Identifier + (URI)
+
Soyut veya somut bir özkaynağı betimlemek için kullanılan bütünleşik + bir karakter dizisi. Aslen RFC 2396 tarafından tanımlanmıştır. Genel Ağ’da kullanılan URI’lerden + genellikle  URL’ler olarak bahsedilir. +
+ +
Tektip Özkaynak Konumlayıcı
+
İngilizcesi: Uniform Resource Locator (URL)
+
Genel Ağ üzerindeki bir özkaynağın ismi veya adresi. Aslen  Tektip Özkaynak Betimleyici + denilen terimin gayrı resmi karşılığıdır. URL’ler http veya + https gibi bir şemayı takip eden bir konak adı ve bir dosya + yolundan oluşurlar. Örneğin, bu sayfanın URL’si + http://httpd.apache.org/docs/2.0/glossary.html olurdu. +
+ +
Vekil
+
Asıl sunucu ile istemci arasında aracılık yapan sunucu. + İstemciden aldığı istekleri asıl sunucuya gönderip, ondan aldığı + yanıtları istemciye gönderir. Aynı içeriğe birden fazla istemci talip + olursa vekil sunucu bu istekleri her seferinde asıl sunucudan istemek + yerine kendi deposundan karşılar, böylece yanıt zamanı kısalır.
+ Bakınız: mod_proxy +
+ +
Yapılandırma Dosyası
+
Apache yapılandırmasını denetim altına alan  yönergeleri içeren bir metin dosyası.
+ Bakınız: Yapılandırma Dosyaları +
+ +
Yapılandırma Yönergesi
+
Bakınız:  Yönerge
+ +
Yönerge
+
Belli Apache davranışlarından bir veya daha fazlasını denetim altına + alan bir yapılandırma komutu. Yönergeler  yapılandırma dosyalarına yerleştirilir.
+ Bakınız: Yönerge Dizini +
+ +
Yöntem
+
 HTTP bağlamında, istemci tarafından + istek satırında belirtilen, bir özkaynağa uygulanacak bir eylem. HTTP + bağlamında belirtilebilecek yöntemlere örnek olarak GET, + POST ve PUT verilebilir. +
+ +
X.509
+
SSL/TLS kimlik doğrulamasında kullanılmak üzere Uluslararası Telekom + Birliği (ITU-T) tarafından önerilmiş bir kimlik doğrulama sertitifası + şeması
Bakınız: SSL/TLS Şifrelemesi +
+
+
+
+

Mevcut Diller:  de  | + en  | + es  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html b/rubbos/app/apache2/manual/handler.html new file mode 100644 index 00000000..3109a133 --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: handler.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: handler.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: handler.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: handler.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: handler.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: handler.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: handler.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/handler.html.en b/rubbos/app/apache2/manual/handler.html.en new file mode 100644 index 00000000..97abe943 --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.en @@ -0,0 +1,159 @@ + + + +Apache's Handler Use - Apache HTTP Server + + + + + +
<-
+

Apache's Handler Use

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

This document describes the use of Apache's Handlers.

+
+ +
top
+
+

What is a Handler

+ + + + +

A "handler" is an internal Apache representation of the + action to be performed when a file is called. Generally, files + have implicit handlers, based on the file type. Normally, all + files are simply served by the server, but certain file types + are "handled" separately.

+ +

Apache 1.1 adds the ability to use handlers explicitly. + Based on either filename extensions or on location, handlers + can be specified without relation to file type. This is + advantageous both because it is a more elegant solution, and + because it also allows for both a type and a + handler to be associated with a file. (See also Files with Multiple + Extensions.)

+ +

Handlers can either be built into the server or included in + a module, or they can be added with the Action directive. The + built-in handlers in the standard distribution are as + follows:

+ +
    +
  • default-handler: Send the file using the + default_handler(), which is the handler used by + default to handle static content. (core)
  • + +
  • send-as-is: Send file with HTTP headers + as is. (mod_asis)
  • + +
  • cgi-script: Treat the file as a CGI + script. (mod_cgi)
  • + +
  • imap-file: Parse as an imagemap rule + file. (mod_imap)
  • + +
  • server-info: Get the server's + configuration information. (mod_info)
  • + +
  • server-status: Get the server's status + report. (mod_status)
  • + +
  • type-map: Parse as a type map file for + content negotiation. (mod_negotiation)
  • +
+
top
+
+

Examples

+ + +

Modifying static content using a CGI script

+ + +

The following directives will cause requests for files with + the html extension to trigger the launch of the + footer.pl CGI script.

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

Then the CGI script is responsible for sending the + originally requested document (pointed to by the + PATH_TRANSLATED environment variable) and making + whatever modifications or additions are desired.

+ + +

Files with HTTP headers

+ + +

The following directives will enable the + send-as-is handler, which is used for files which + contain their own HTTP headers. All files in the + /web/htdocs/asis/ directory will be processed by + the send-as-is handler, regardless of their + filename extensions.

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

Programmer's Note

+ + +

In order to implement the handler features, an addition has + been made to the Apache API that + you may wish to make use of. Specifically, a new record has + been added to the request_rec structure:

+ +

+ char *handler +

+ +

If you wish to have your module engage a handler, you need + only to set r->handler to the name of the + handler at any time prior to the invoke_handler + stage of the request. Handlers are implemented as they were + before, albeit using the handler name instead of a content + type. While it is not necessary, the naming convention for + handlers is to use a dash-separated word, with no slashes, so + as to not invade the media type name-space.

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.es b/rubbos/app/apache2/manual/handler.html.es new file mode 100644 index 00000000..76bd2b4d --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.es @@ -0,0 +1,168 @@ + + + +Uso de los Handlers en Apache - Servidor HTTP Apache + + + + + +
<-
+

Uso de los Handlers en Apache

+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Este documento describe el uso de los Handlers en Apache.

+
+ +
top
+
+

Qu es un Handler?

+ + + + +

Un "handler" es una representacin interna de Apache de + una accin que se va a ejecutar cuando hay una llamada a un + fichero. Generalmente, los ficheros tienen handlers + implcitos, basados en el tipo de fichero de que se + trata. Normalmente, todos los ficheros son simplemente servidos + por el servidor, pero algunos tipos de ficheros se tratan de forma + diferente.

+ +

Apache 1.1 aade la posibilidad de usar handlers + explicitamente. Basndose en la extension del fichero o en + la ubicacin en la que este, se pueden especificar handlers + sin tener en cuenta el tipo de fichero de que se trate. Esto es + una ventaja por dos razones. Primero, es una solucin + ms elegante. Segundo, porque a un fichero se le pueden + asignar tanto un tipo como un handler. (Consulte + tambin la seccin Ficheros y extensiones + mltiples.)

+ +

Los Handlers pueden ser tanto ser compilados con el servidor + como incluidos en un mdulo, como aadidos con la + directiva Action. Los + handlers compilados con el servidor de la distribucin + estndar de Apache son:

+ +
    +
  • default-handler: Enva el fichero + usando el default_handler(), que es el handler + usado por defecto para tratar contenido + esttico. (core)
  • + +
  • send-as-is: Enva el fichero con + cabeceras HTTP tal y como es. (mod_asis)
  • + +
  • cgi-script: Trata el fichero como un sript + CGI. (mod_cgi)
  • + +
  • imap-file: Trata el fichero como un mapa de + imgenes. (mod_imap)
  • + +
  • server-info: Extrae la informacin de + configuracin del + servidor. (mod_info)
  • + +
  • server-status: Extrae el informe de estado + del servidor. (mod_status)
  • + +
  • type-map: Trata el fichero como una + correspondencia de tipos para la negociacin de contenidos. + (mod_negotiation)
top
+
+

Ejemplos

+ +

Modificar contenido esttico usando un script + CGI

+ + +

Las siguientes directivas hacen que cuando haya una + peticin de ficheros con la extensin + html se lance el script CGI + footer.pl.

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

En este caso, el script CGI es el responsable de enviar el + documento originalmente solicitado (contenido en la variable de + entorno PATH_TRANSLATED) y de hacer cualquier + modificacin o aadido deseado.

+ + +

Archivos con cabaceras HTTP

+ + +

Las siguientes directivas activan el handler + send-as-is, que se usa para ficheros que contienen + sus propias cabeceras HTTP. Todos los archivos en el directorio + /web/htdocs/asis/ sern procesados por el + handler send-as-is, sin tener en cuenta su + extension.

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

Nota para programadores

+ + +

Para implementar las funcionalidades de los handlers, se ha + hecho un aadido a la API de + Apache que puede que quiera usar. Para ser ms + especficos, se ha aadido un nuevo registro a la + estructura request_rec:

+ +

+ char *handler +

+ +

Si quiere que su mdulo llame a un handler , solo tiene + que aadir r->handler al nombre del handler + en cualquier momento antes de la fase invoke_handler + de la peticin. Los handlers se implementan siempre como se + haca antes, aunque usando el nombre del handler en vez de un + tipo de contenido. Aunque no es de obligado cumplimiento, la + convencin de nombres para los handlers es que se usen + palabras separadas por guiones, sin barras, de manera que no se + invada el media type name-space.

+
+
+

Idiomas disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.fr b/rubbos/app/apache2/manual/handler.html.fr new file mode 100644 index 00000000..a4d3d0a2 --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.fr @@ -0,0 +1,168 @@ + + + +Utilisation des gestionnaires apache - Serveur Apache HTTP + + + + + +
<-
+

Utilisation des gestionnaires apache

+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Ce document dcrit l'utilisation des gestionnaires (Handlers) Apache.

+
+ +
top
+
+

Qu'est ce qu'un Gestionnaire ?

+ + + + +

Un Gestionnaire "handler" est une reprsentation interne + Apache, qui dcrit quoi faire quand un fichier est appel. De + manire gnrale, les fichiers disposent d'un gestionnaire + implicite en fonction de leurs types. Le fonctionnement standard + est de simplement servir le fichier tel qu'il est demand, mais + certains types de fichiers peuvent tre grs diffremment.

+ +

Depuis Apache 1.1, il est possible de forcer l'utilisation + des gestionnaires. Ils peuvent tre spcifis pour des fichiers + prsentant une certaine extension ou prsents dans un certain + rpertoire, et peuvent tre utiliss indpendamment des types + des fichiers. Cette technique est avantageuse, d'abord parce + que plus lgante, mais aussi parce qu'on peut ainsi associer + un type de fichier et un gestionnaire un + fichier. (Voir aussi : Fichiers Extensions Multiples.)

+ +

Les gestionnaires peuvent tre intgrs au serveur, ou inclus + dans un module, ou encore tre configurs au moyen de la directive + Action. Les + gestionnaires fournis par dfaut dans la distribution d'Apache + se prsentent comme suit :

+ +
    +
  • default-handler : Envoie le fichier en + utilisant default_handler() qui est le + gestionnaire utilis par dfaut pour grer les contenus + statiques. (noyau d'Apache)
  • + +
  • send-as-is : Envoie le fichier avec les + en-ttes HTTP tels quels. (mod_asis)
  • + +
  • cgi-script : Traite le fichier comme un + script CGI. (mod_cgi)
  • + +
  • imap-file : Traite le fichier comme un + ensemble de rgles imagemap. NdT : ces fonctionnalits sont + dsutes, et sont ralises prsent cot client. + (mod_imap)
  • + +
  • server-info : Envoie les informations + de configuration du serveur. (mod_info)
  • + +
  • server-status : Envoie les informations sur + le fonctionnement et la charge du serveur. + (mod_status)
  • + +
  • type-map : Traite le fichier comme un + fichier de types pour la ngociation de contenu. + (mod_negotiation)
  • +
+
top
+
+

Exemples

+ + +

Modifier un contenu statique au moyen d'un script CGI

+ + +

Les directives ci-aprs provoquent l'excution du script + CGI footer.pl chaque requte de fichier + prsentant l'extension html.

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

Le travail du script CGI est alors d'envoyer le document + demand (dsign au moyen de la variable d'environnement + PATH_TRANSLATED) en lui faisant subir au pralable + les transformations dsires.

+ + +

Fichiers contenant des en-ttes HTTP

+ + +

Les directives ci-aprs activent le gestionnaire + send-as-is, utilis pour grer les fichiers + qui contiennent leurs propres en-ttes HTTP. Tous les fichiers + contenus dans le rpertoire /web/htdocs/asis/ + seront traits par le gestionnaire send-as-is, + sans tenir compte de leurs extensions.

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

Note aux programmeurs

+ + +

L'API d'Apache a t modifie + lors de l'implmentation des gestionnaires ; cette modification + peut se rvler intressante. Un nouvel enregistrement a t ajout + la structure request_rec :

+ +

+ char *handler +

+ +

Pour qu'un module utilise un gestionnaire, il suffit d'affecter + r->handler avec le nom du gestionnaire avant + l'tape invoke_handler de la requte. Les + gestionnaires fonctionnent comme auparavant, bien que leurs noms + soient ncessaires au lieu d'un type de contenu. Bien qu'elle ne + soit pas ncessaire, la convention de nommage des gestionnaires + demande l'utilisation de mots spars par des tirets, ne contenant + aucun slash, afin de ne pas interfrer avec l'espace de nommage + des types de mdias.

+
+
+

Langues Disponibles:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.ja.utf8 b/rubbos/app/apache2/manual/handler.html.ja.utf8 new file mode 100644 index 00000000..feefbf9e --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.ja.utf8 @@ -0,0 +1,163 @@ + + + +Apache のハンドラの使用 - Apache HTTP サーバ + + + + + +
<-
+

Apache のハンドラの使用

+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Apache のハンドラの使用に関して記述しています。

+
+ +
top
+
+

ハンドラとは

+ + + + +

「ハンドラ」とは、ファイルが呼ばれたときに実行される動作の + Apache における内部表現です。 + 通常、ファイルはファイル型に基づいた暗黙のハンドラがあります。 + 普通はすべてのファイルは単にサーバに扱われますが、 + ファイルタイプの中には別に「ハンドル」(訳注: 扱う) + されるものもあります。

+ +

Apache 1.1 では、ハンドラを明示的に使用する機能が追加されました。 + ファイルの拡張子や置いている場所に基づいて、 + ファイル型と関係なくハンドラを指定することができます。 + これはより優雅な解決法という点と、ファイルにタイプハンドラの両方を関連付けることができるという点で優れています。 + (複数の拡張子のあるファイルも参照してください)。

+ +

ハンドラはサーバに組み込んだり、モジュールとして含めたり、 + Action + ディレクティブとして追加したりすることができます。 + 以下は標準配布に組み込まれているハンドラです。 +

+ +
    +
  • default-handler:default_handelr() + を使ってファイルを送ります。 + 静的なコンテンツを扱うときにデフォルトで使用されるハンドラです。 + (core)
  • + +
  • send-as-is: + HTTP ヘッダのあるファイルをそのまま送ります。 + (mod_asis)
  • + +
  • cgi-script: ファイルを CGI + スクリプトとして扱います。 + (mod_cgi)
  • + +
  • imap-file: + イメージマップのルールファイルとして解析します。 + (mod_imap)
  • + +
  • server-info: サーバの設定情報を取得します。 + (mod_info)
  • + +
  • server-status: サーバの状態報告を取得します。 + (mod_status)
  • + +
  • type-map: + コンテントネゴシエーションのためのタイプマップとして解析します。 + (mod_negotiation)
  • +
+
top
+
+

+ + +

CGI スクリプトを用いて静的なコンテンツを変更する

+ + +

以下のディレクティブによって、拡張子が html + であるファイルは footer.pl + CGI スクリプトを起動するようになります。

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

CGI スクリプトは希望の修正や追加を行なって、元々要求された文書 + (環境変数 PATH_TRANSLATED + で指されています) を送る責任があります。 +

+ + +

HTTP ヘッダのあるファイル

+ + +

以下のディレクティブは send-as-is + ハンドラを使用するように指示します。このハンドラは自分自身の HTTP + ヘッダを持っているファイルに使用されます。ここでは、拡張子に関わらず、 + /web/htdocs/asis ディレクトリにある全てのファイルは + send-as-is ハンドラによって扱われます。

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

プログラマ向けのメモ

+ + +

ハンドラの機能を実装するために、利用すると便利かもしれないものが + Apache API + に追加されました。詳しく言うと、request_rec + 構造体に新しいレコードが追加されたということです。

+ +

+ char *handler +

+ +

もしモジュールがハンドラに関わりたい場合、 + やらなければならないことは、リクエストが invoke_handler + ステージに達する以前に r->handler + を設定することだけです。ハンドラはコンテントタイプの代わりに + ハンドラ名を使うようになっていること以外は、以前と同じように実装されています。 + 必ず要求されているわけではありませんが、メディアタイプ + の名前空間を侵さないように、ハンドラの名前にはスラッシュを含まない、 + ダッシュ (訳注: "-") で分離された名前を付ける習慣になっています。

+
+
+

Available Languages:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.ko.euc-kr b/rubbos/app/apache2/manual/handler.html.ko.euc-kr new file mode 100644 index 00000000..8cc951f4 --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.ko.euc-kr @@ -0,0 +1,153 @@ + + + +ġ ڵ鷯 - Apache HTTP Server + + + + + +
<-
+

ġ ڵ鷯

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

ġ ڵ鷯 ϴ Ѵ.

+
+ +
top
+
+

ڵ鷯 ΰ

+ + + + +

ûҶ ġ ۾ + "ڵ鷯(handler)" Ѵ. Ϲ + Ϲ ڵ鷯 ִ. + ,  "óȴ(handled)".

+ +

Apache 1.1 ڵ鷯 ְ Ǿ. + ڵ鷯 Ȯڳ ġ + ִ. ̴ Ǹ ̰ ڵ鷯 + ο ֱ⶧ . ( Ȯڸ + )

+ +

ڵ鷯 Ͽ, Action þ ߰ + ִ. ǥ ִ ⺻ ڵ鷯 :

+ +
    +
  • default-handler: + óϱ ⺻ ϴ ڵ鷯 + default_handler() Ͽ . + (core)
  • + +
  • send-as-is: HTTP ִ + ״ . (mod_asis)
  • + +
  • cgi-script: CGI óѴ. + (mod_cgi)
  • + +
  • imap-file: imagemap Ģ Ϸ + óѴ. (mod_imap)
  • + +
  • server-info: + ˷ش. (mod_info)
  • + +
  • server-status: ¸ Ѵ. + (mod_status)
  • + +
  • type-map: + type map óѴ. + (mod_negotiation)
  • +
+
top
+
+

+ + +

CGI ũƮ Ͽ ϱ

+ + +

þ Ȯڰ html + û footer.pl CGI ũƮ .

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

CGI ũƮ + (PATH_TRANSLATED ȯ溯 Īϴ) + û .

+ + +

HTTP ϴ

+ + +

þ HTTP ϴ Ͽ + send-as-is ڵ鷯 Ѵ. + /web/htdocs/asis/ 丮 ȿ ִ + Ȯڿ send-as-is ڵ鷯 + óѴ.

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

α׷Ӹ

+ + +

ڵ鷯 ϱ + Apache API ߰Ǿ. + Ư request_rec ü ο ʵ尡 + ߰Ǿ:

+ +

+ char *handler +

+ +

ڵ鷯 Ϸ, û + invoke_handler ܰ + r->handler ڵ鷯 ̸ ֱ⸸ + ϸ ȴ. ڵ鷯 content type ڵ鷯 ̸ + ϰ Ǿ. ų ʿ + ڵ鷯 ̸ ʰ, ܾ ̿ + ȣ ϴ Ϲ̴. ׷ ڵ鷯 ̸ + media type ġ ʴ´.

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.ru.koi8-r b/rubbos/app/apache2/manual/handler.html.ru.koi8-r new file mode 100644 index 00000000..0977117f --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.ru.koi8-r @@ -0,0 +1,168 @@ + + + + Apache - HTTP Apache + + + + + +
<-
+

Apache

+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

(handlers) Apache.

+
+
+
top
+
+

+ + + + +

+ Apache, + . , + , + . + , + (handled) .

+ +

Apache 1.1 + . ޣ + , + . + , - , , + -, + , . (. + « + »)

+ +

+ ( + ) , + Action. + + :

+ +
    +
  • default-handler: , + default_handler(), + - . ()
  • + +
  • send-as-is: , + HTTP , . (mod_asis)
  • + +
  • cgi-script: CGI-. + (mod_cgi)
  • + +
  • imap-file: + (imagemap). (mod_imap)
  • + +
  • server-info: + . (mod_info)
  • + +
  • server-status: + . (mod_status)
  • + +
  • type-map: + (type map). (mod_negotiation)
  • +
+
top
+
+

+ + +

CGI-

+ + +

, + html + CGI- footer.pl + .

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

CGI- , + ( + PATH_TRANSLATED), + Σ .

+ + +

HTTP

+ + +

+ send-as-is, , + HTTP-. + /web/htdocs/asis/ + send-as-is, .

+ +

+ <Directory /web/htdocs/asis>
+ SetHandler send-as-is
+ </Directory> +

+ + +
top
+
+

+ + +

, + Apache API + . , request_rec + :

+ +

+ char *handler +

+ +

ϣ , + ӣ, , r->handler + , ޣ + , invoke_handler. + , , + , + , (content type). + , + - + , ̣ - + ͣ - (media type).

+
+
+

:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/handler.html.tr.utf8 b/rubbos/app/apache2/manual/handler.html.tr.utf8 new file mode 100644 index 00000000..bf1e6886 --- /dev/null +++ b/rubbos/app/apache2/manual/handler.html.tr.utf8 @@ -0,0 +1,157 @@ + + + +Apache Eylemcilerinin Kullanımı - Apache HTTP Sunucusu + + + + + +
<-
+

Apache Eylemcilerinin Kullanımı

+
+

Mevcut Diller:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Bu belgede Apache Eylemcilerinin kullanımı açıklanmıştır.

+
+ +
top
+
+

Eylemci Nedir?

+ + + + +

Bir eylemci bir dosya çağrıldığında uygulanacak eylemin Apache + dahilindeki gösterimidir. Genellikle dosyaların kendi türüne bağlı + olarak örtük eylemcileri vardır. Normalde tüm dosyalar basitçe sunucu + tarafından sunulurlar, fakat bazı dosya türleri normalden farklı şekilde + ele alınırlar.

+ +

Apache 1.1 sürümünden itibaren eylemciler doğrudan kullanılabilmektedir. + Dosya türünden bağımsız olarak dosyanın bulunduğu yere veya dosya ismi + uzantısına göre de yapılandırılabilirler. Gerek, zarif bir çözüm + oluşuyla gerekse, hem dosya türünü hem de bir dosya ile ilişkili bir + eylemciyi mümkün kılması sebebiyle bunun getirisi daha yüksektir. + (Ayrıca, çok uzantılı + dosyalara da bakınız.)

+ +

Eylemciler sunucu içinde derlenebileceği gibi bir modül olarak ya da + Action yönergesi ile de + sunucuya dahil edilebilirler. Standart dağıtımda bulunan yerleşik + eylemciler şunlardır:

+ +
    +
  • default-handler: Dosyayı, öntanımlı olarak durağan + içeriği işlemekte kullanılan default_handler() işlevini + kullanarak gönderir. (core)
  • + +
  • send-as-is: Dosyayı HTTP başlıklarıyla olduğu gibi + gönderir. (mod_asis)
  • + +
  • cgi-script: Dosyayı bir CGI betiği olarak ele alır. + (mod_cgi)
  • + +
  • imap-file: Dosyayı bir resim eşleme kuralları + dosyası olarak çözümler. (mod_imap)
  • + +
  • server-info: Sunucunun yapılandırma bilgisini + döndürür. (mod_info)
  • + +
  • server-status: Sunucunun durum raporunu döndürür. + (mod_status)
  • + +
  • type-map: Dosyayı içerik uzlaşımı için bir tür + eşlem dosyası olarak çözümler. (mod_negotiation)
  • +
+
top
+
+

Örnekler

+ + +

Bir CGI betiği kullanarak durağan içeriğin değiştirilmesi

+ + +

Aşağıdaki yönergeler sayesinde, html uzantılı dosyalar + için yapılan istekler footer.pl CGI betiğininin + çalıştırılmasına sebep olacaktır.

+ +

+ Action add-footer /cgi-bin/footer.pl
+ AddHandler add-footer .html +

+ +

Bu yapılandırmayla, istenen belgenin özgün haliyle mi (yeri + PATH_TRANSLATED ortam değişkenindedir) yoksa istenen + değişiklikler veya eklemeler yapıldıktan sonra mı gönderileceğinden + CGI betiği sorumlu olacaktır.

+ + +

HTTP başlıklı dosyalar

+ + +

Aşağıdaki yönergeler kendi HTTP başlıklarını içeren dosyalar için + kullanılan send-as-is eylemcisini etkinleştirmek amacıyla + kullanılmıştır. /siteler/htdocs/asis/ dizinindeki tüm + dosyalar dosya ismi uzantılarına bakılmaksızın send-as-is + eylemcisi tarafından işleme sokulacaktır.

+ +

+ <Directory /siteler/htdocs/asis>
+ SetHandler send-as-is + </Directory> +

+ + +
top
+
+

Yazılım Geliştirenler İçin

+ + +

Eylemci özellikleri gerçeklenirken kullanılmak üzere Apache API’ye bir ekleme yapılmıştır. + Özellikle de, request_rec yapısına yeni bir kayıt + eklenmiştir:

+ +

+ char *handler +

+ +

Modülünüzün bir eylemciyi devreye sokmasını isterseniz, tek yapacağınız + isteğin invoke_handler aşamasının hemen öncesinde + r->handler alanına eylemcinin ismini atamak olacaktır. + Eylemciler daha önce de bahsedildiği gibi bir içerik türü yerine bir + eylemci ismi kullanılarak gerçeklenirler. Çok gerekli olmamakla + birlikte, eylemciler için kullanılan adlandırma uzlaşımları gereğince, + ismi oluşturan sözcükler, ortam türü isim alanını ihlal etmemek amacıyla + bölü imleri ile değil tire imleri ile ayrılırlar.

+
+
+

Mevcut Diller:  en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/auth.html b/rubbos/app/apache2/manual/howto/auth.html new file mode 100644 index 00000000..c485dfb9 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/auth.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: auth.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: auth.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: auth.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: auth.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/howto/auth.html.en b/rubbos/app/apache2/manual/howto/auth.html.en new file mode 100644 index 00000000..f410577f --- /dev/null +++ b/rubbos/app/apache2/manual/howto/auth.html.en @@ -0,0 +1,355 @@ + + + +Authentication, Authorization and Access Control - Apache HTTP Server + + + + + +
<-
+

Authentication, Authorization and Access Control

+
+

Available Languages:  en  | + es  | + ja  | + ko 

+
+ +

Authentication is any process by which you verify that + someone is who they claim they are. Authorization is any + process by which someone is allowed to be where they want to + go, or to have information that they want to have.

+
+ +
top
+
top
+
+

Introduction

+

If you have information on your web site that is sensitive + or intended for only a small group of people, the techniques in + this article will help you make sure that the people that see + those pages are the people that you wanted to see them.

+ +

This article covers the "standard" way of protecting parts + of your web site that most of you are going to use.

+
top
+
+

The Prerequisites

+

The directives discussed in this article will need to go + either in your main server configuration file (typically in a + <Directory> section), or + in per-directory configuration files (.htaccess files).

+ +

If you plan to use .htaccess files, you will + need to have a server configuration that permits putting + authentication directives in these files. This is done with the + AllowOverride directive, which + specifies which directives, if any, may be put in per-directory + configuration files.

+ +

Since we're talking here about authentication, you will need + an AllowOverride directive like the + following:

+ +

+ AllowOverride AuthConfig +

+ +

Or, if you are just going to put the directives directly in + your main server configuration file, you will of course need to + have write permission to that file.

+ +

And you'll need to know a little bit about the directory + structure of your server, in order to know where some files are + kept. This should not be terribly difficult, and I'll try to + make this clear when we come to that point.

+
top
+
+

Getting it working

+

Here's the basics of password protecting a directory on your + server.

+ +

You'll need to create a password file. This file should be + placed somewhere not accessible from the web. This is so that + folks cannot download the password file. For example, if your + documents are served out of /usr/local/apache/htdocs you + might want to put the password file(s) in + /usr/local/apache/passwd.

+ +

To create the file, use the htpasswd utility that + came with Apache. This will be located in the bin directory + of wherever you installed Apache. To create the file, type:

+ +

+ htpasswd -c /usr/local/apache/passwd/passwords rbowen +

+ +

htpasswd will ask you for the password, and + then ask you to type it again to confirm it:

+ +

+ # htpasswd -c /usr/local/apache/passwd/passwords rbowen
+ New password: mypassword
+ Re-type new password: mypassword
+ Adding password for user rbowen +

+ +

If htpasswd is not in your path, of course + you'll have to type the full path to the file to get it to run. + On my server, it's located at + /usr/local/apache/bin/htpasswd

+ +

Next, you'll need to configure the server to request a + password and tell the server which users are allowed access. + You can do this either by editing the httpd.conf + file or using an .htaccess file. For example, if + you wish to protect the directory + /usr/local/apache/htdocs/secret, you can use the + following directives, either placed in the file + /usr/local/apache/htdocs/secret/.htaccess, or + placed in httpd.conf inside a <Directory + /usr/local/apache/apache/htdocs/secret> section.

+ +

+ AuthType Basic
+ AuthName "Restricted Files"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ Require user rbowen +

+ +

Let's examine each of those directives individually. The AuthType directive selects + that method that is used to authenticate the user. The most + common method is Basic, and this is the method + implemented by mod_auth. It is important to be aware, + however, that Basic authentication sends the password from the client to + the browser unencrypted. This method should therefore not be used for + highly sensitive data. Apache supports one other authentication method: + AuthType Digest. This method is implemented by mod_auth_digest and is much more secure. Only the most recent + versions of clients are known to support Digest authentication.

+ +

The AuthName directive sets + the Realm to be used in the authentication. The realm serves + two major functions. First, the client often presents this information to + the user as part of the password dialog box. Second, it is used by the + client to determine what password to send for a given authenticated + area.

+ +

So, for example, once a client has authenticated in the + "Restricted Files" area, it will automatically + retry the same password for any area on the same server that is + marked with the "Restricted Files" Realm. + Therefore, you can prevent a user from being prompted more than + once for a password by letting multiple restricted areas share + the same realm. Of course, for security reasons, the client + will always need to ask again for the password whenever the + hostname of the server changes.

+ +

The AuthUserFile + directive sets the path to the password file that we just + created with htpasswd. If you have a large number + of users, it can be quite slow to search through a plain text + file to authenticate the user on each request. Apache also has + the ability to store user information in fast database files. + The mod_auth_dbm module provides the AuthDBMUserFile directive. These + files can be created and manipulated with the dbmmanage program. Many + other types of authentication options are available from third + party modules in the Apache Modules + Database.

+ +

Finally, the Require + directive provides the authorization part of the process by + setting the user that is allowed to access this region of the + server. In the next section, we discuss various ways to use the + Require directive.

+
top
+
+

Letting more than one +person in

+

The directives above only let one person (specifically + someone with a username of rbowen) into the + directory. In most cases, you'll want to let more than one + person in. This is where the AuthGroupFile comes in.

+ +

If you want to let more than one person in, you'll need to + create a group file that associates group names with a list of + users in that group. The format of this file is pretty simple, + and you can create it with your favorite editor. The contents + of the file will look like this:

+ +

+ GroupName: rbowen dpitts sungo rshersey +

+ +

That's just a list of the members of the group in a long + line separated by spaces.

+ +

To add a user to your already existing password file, + type:

+ +

+ htpasswd /usr/local/apache/passwd/passwords dpitts +

+ +

You'll get the same response as before, but it will be + appended to the existing file, rather than creating a new file. + (It's the -c that makes it create a new password + file).

+ +

Now, you need to modify your .htaccess file to + look like the following:

+ +

+ AuthType Basic
+ AuthName "By Invitation Only"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthGroupFile /usr/local/apache/passwd/groups
+ Require group GroupName +

+ +

Now, anyone that is listed in the group GroupName, + and has an entry in the password file, will be let in, if + they type the correct password.

+ +

There's another way to let multiple users in that is less + specific. Rather than creating a group file, you can just use + the following directive:

+ +

+ Require valid-user +

+ +

Using that rather than the Require user rbowen + line will allow anyone in that is listed in the password file, + and who correctly enters their password. You can even emulate + the group behavior here, by just keeping a separate password + file for each group. The advantage of this approach is that + Apache only has to check one file, rather than two. The + disadvantage is that you have to maintain a bunch of password + files, and remember to reference the right one in the + AuthUserFile directive.

+
top
+
+

Possible problems

+

Because of the way that Basic authentication is specified, + your username and password must be verified every time you + request a document from the server. This is even if you're + reloading the same page, and for every image on the page (if + they come from a protected directory). As you can imagine, this + slows things down a little. The amount that it slows things + down is proportional to the size of the password file, because + it has to open up that file, and go down the list of users + until it gets to your name. And it has to do this every time a + page is loaded.

+ +

A consequence of this is that there's a practical limit to + how many users you can put in one password file. This limit + will vary depending on the performance of your particular + server machine, but you can expect to see slowdowns once you + get above a few hundred entries, and may wish to consider a + different authentication method at that time.

+
top
+
+

What other neat stuff can I +do?

+

Authentication by username and password is only part of the + story. Frequently you want to let people in based on something + other than who they are. Something such as where they are + coming from.

+ +

The Allow and + Deny directives let + you allow and deny access based on the host name, or host + address, of the machine requesting a document. The + Order directive goes + hand-in-hand with these two, and tells Apache in which order to + apply the filters.

+ +

The usage of these directives is:

+ +

+ Allow from address +

+ +

where address is an IP address (or a partial IP + address) or a fully qualified domain name (or a partial domain + name); you may provide multiple addresses or domain names, if + desired.

+ +

For example, if you have someone spamming your message + board, and you want to keep them out, you could do the + following:

+ +

+ Deny from 10.252.46.165 +

+ +

Visitors coming from that address will not be able to see + the content covered by this directive. If, instead, you have a + machine name, rather than an IP address, you can use that.

+ +

+ Deny from host.example.com +

+ +

And, if you'd like to block access from an entire domain, + you can specify just part of an address or domain name:

+ +

+ Deny from 192.168.205
+ Deny from phishers.example.com moreidiots.example
+ Deny from ke +

+ +

Using Order will let you be + sure that you are actually restricting things to the group that you want + to let in, by combining a Deny + and an Allow directive:

+ +

+ Order deny,allow
+ Deny from all
+ Allow from dev.example.com +

+ +

Listing just the Allow + directive would not do what you want, because it will let folks from that + host in, in addition to letting everyone in. What you want is to let + only those folks in.

+
top
+
+

More information

+

You should also read the documentation for mod_auth + and mod_access which contain some more information + about how this all works.

+
+
+

Available Languages:  en  | + es  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/auth.html.es b/rubbos/app/apache2/manual/howto/auth.html.es new file mode 100644 index 00000000..f2839d77 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/auth.html.es @@ -0,0 +1,374 @@ + + + +Autentificacin, Autorizacin y Control de Acceso - Servidor HTTP Apache + + + + + +
<-
+

Autentificacin, Autorizacin y Control de Acceso

+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

La autentificacin es cualquier proceso mediante el cual se + verifica que alguien es quien dice ser. La autorizacin es + cualquier proceso por el cual a alguien se le permite estar donde + quiere ir, o tener la informacin que quiere tener.

+
+ +
top
+
top
+
+

Introduccin

+

Si en su sitio web tiene informacin sensible o dirigida + slo a un pequeo grupo de personas, las tcnicas + explicadas en ste artculo le ayudarn a + asegurarse de que las personas que ven esas pginas son las + personas que usted quiere que las vean.

+ +

Este artculo cubre la manera "estndar" de proteger + partes de su sitio web que la mayora de ustedes van a usar.

+
top
+
+

Los Prerrequisitos

+

Las directivas tratadas en ste artculo necesitarn + ir en el archivo de configuracin principal de su servidor + (tpicamente en una seccin del tipo + <Directory>), + o en archivos de configuracin por directorios (archivos + .htaccess).

+ +

Si planea usar archivos .htaccess, necesitar + tener una configuracin en el servidor que permita poner directivas + de autentificacin en estos archivos. Esto se logra con la + directiva AllowOverride, + la cual especifica cules directivas, en caso de existir, pueden + ser colocadas en los archivos de configuracin por directorios.

+ +

Ya que se est hablando de autentificacin, necesitar + una directiva AllowOverride como + la siguiente:

+ +

+ AllowOverride AuthConfig +

+ +

O, si slo va a colocar directivas directamente en el principal + archivo de configuracin del servidor, por supuesto necesitar + tener permiso de escritura a ese archivo.

+ +

Y necesitar saber un poco acerca de la estructura de + directorios de su servidor, con la finalidad de que sepa dnde + estn algunos archivos. Esto no debera ser muy + difcil, y tratar de hacerlo sencillo cuando lleguemos a + ese punto.

+
top
+
+

Puesta en funcionamiento

+

Aqu est lo esencial en cuanto a proteger con + contrasea un directorio de su servidor.

+ +

Necesitar crear un archivo de contraseas. ste + archivo debera colocarlo en algn sitio no accesible + mediante la Web. Por ejemplo, si sus documentos son servidos desde + /usr/local/apache/htdocs usted podra querer colocar + el(los) archivo(s) de contraseas en + /usr/local/apache/passwd.

+ +

Para crear un archivo de contraseas, use la utilidad + htpasswd que viene con Apache. + sta utilidad puede encontrarla en el directorio bin + de cualquier sitio en que haya instalado Apache. Para crear el + archivo, escriba:

+ +

+ htpasswd -c /usr/local/apache/passwd/passwords rbowen +

+ +

htpasswd le pedir la contrasea, y luego se + la volver a pedir para confirmarla:

+ +

+ # htpasswd -c /usr/local/apache/passwd/passwords rbowen
+ New password: mypassword
+ Re-type new password: mypassword
+ Adding password for user rbowen +

+ +

Si htpasswd no est en su ruta, por supuesto + tendr que escribir la ruta completa al archivo para ejecutarlo. + En mi servidor, ste archivo est en + /usr/local/apache/bin/htpasswd

+ +

El siguiente paso es configurar el servidor para que solicite una + contrasea y decirle al servidor a qu usuarios se les + permite el acceso. Puede hacer esto editando el archivo + httpd.conf o usando un archivo .htaccess. + Por ejemplo, si desea proteger el directorio + /usr/local/apache/htdocs/secret, puede usar las siguientes + directivas, ya sea colocndolas en el archivo + /usr/local/apache/htdocs/secret/.htaccess, + o en httpd.conf dentro de una seccin <Directory + /usr/local/apache/apache/htdocs/secret>.

+ +

+ AuthType Basic
+ AuthName "Restricted Files"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ Require user rbowen +

+ +

Vamos a examinar cada una de estas directivas por separado. La + directiva AuthType selecciona + el mtodo que se va a usar para autentificar al usuario. El + mtodo ms comn es Basic, y ste + mtodo est implementado en mod_auth. Es importante + ser consciente, sin embargo, de que la autentificacin Bsica + enva la contrasea desde el cliente hasta el navegador sin + encriptar. Por lo tanto, este mtodo no debera ser usado + para informacin altamente sensible. Apache soporta otro mtodo + de autentificacin: AuthType Digest. Este mtodo + est implementado en mod_auth_digest y es mucho ms + seguro. Slo las versiones ms recientes de clientes soportan + la autentificacin del tipo Digest.

+ +

La directiva AuthName establece + el Dominio (Realm) a usar en la + autentificacin. El dominio (realm) cumple + dos funciones importantes. Primero, el cliente frecuentemente presenta + esta informacin al usuario como parte del cuatro de dilogo + para la contrasea. Segundo, es usado por el cliente para determinar + qu contrasea enviar para un rea autentificada dada.

+ +

As, por ejemplo, una vez que el cliente se haya autentificado en + el rea "Restricted Files", + automticamente se volver a tratar de usar la misma + contrasea en cualquier rea del mismo servidor que est + marcado con el Dominio (Realm) "Restricted Files". Por lo tanto, + puede evitar que se le pida al usuario la contrasea + ms de una vez permitiendo compartir el mismo dominio (realm) + para mltiples reas restringidas. Por supuesto, por + razones de seguridad, el cliente siempre necesitar pedir de + nuevo la contrasea cuando cambie el nombre de la + mquina del servidor.

+ +

La directiva AuthUserFile + establece la ruta al archivo de contrasea que acabamos de crear + con htpasswd. Si tiene un gran nmero de usuarios, + sera bastante lento buscar por medio de un archivo en texto plano + para autentificar al usuario en cada solicitud. Apache tambin tiene + la capacidad de almacenar la informacin del usuario en + archivos rpidos de bases de datos. El mdulo mod_auth_dbm + proporciona la directiva AuthDBMUserFile. Estos archivos pueden + ser creados y manipulados con el programa + dbmmanage. Muchos otros tipos + de opciones de autentificacin estn disponibles en mdulos + de terceras partes en la Base de + datos de Mdulos de Apache.

+ +

Finalmente, la directiva Require + proporciona la parte de la autorizacin del proceso estableciendo + el usuario al que se le permite acceder a ese rea del servidor. + En la prxima seccin, discutimos varias formas de usar la + directiva Require.

+
top
+
+

Permitir el acceso a ms +de una persona

+

Las directivas anteriores slo permiten que una persona + (especficamente alguien con un nombre de usuario de + rbowen) acceda al directorio. En la mayora de los + casos, usted querr permitir el acceso a ms de una persona. + Aqu es donde entra la directiva AuthGroupFile.

+ +

Si desea permitir la entrada a ms de una persona, necesitar + crear un archivo de grupo que asocie nombres de grupo con una lista + de usuarios perteneciente a ese grupo. El formato de este archivo es muy sencillo, + y puede crearlo con su editor favorito. El contenido del archivo + ser parecido a este:

+ +

+ GroupName: rbowen dpitts sungo rshersey +

+ +

Esto es solo una lista de miembros del grupo escritos en una + lnea separados por espacios.

+ +

Para agregar un usuario a un archivo de contraseas ya existente, + escriba:

+ +

+ htpasswd /usr/local/apache/passwd/passwords dpitts +

+ +

Obtendr la misma respuesta que antes, pero el nuevo usuario ser agregado + al archivo existente, en lugar de crear un nuevo archivo. + (Es la opcin -c la que se cree un nuevo archivo + de contraseas).

+ +

Ahora, necesita modificar su archivo .htaccess para que + sea como el siguiente:

+ +

+ AuthType Basic
+ AuthName "By Invitation Only"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthGroupFile /usr/local/apache/passwd/groups
+ Require group GroupName +

+ +

Ahora, cualquiera que est listado en el grupo GroupName, + y figure en el archivo password, se le permitir + el acceso, si escribe la contrasea correcta.

+ +

Existe otra manera de permitir entrar a mltiples usuarios que + es menos especfica. En lugar de crear un archivo de grupo, puede + usar slo la siguiente directiva:

+ +

+ Require valid-user +

+ +

Usando eso en vez de la lnea Require user rbowen, + le permitir el acceso a cualquiera que est listado en el + archivo de contraseas y que haya introducido correctamente su + contrasea. Incluso puede emular el comportamiento del grupo + aqu, slo manteniendo un archivo de contrasea para + cada grupo. La ventaja de esta tcnica es que Apache slo + tiene que verificar un archivo, en vez de dos. La desventaja es que + usted tiene que mantener un grupo de archivos de contrasea, y + recordar referirse al correcto en la directiva AuthUserFile.

+
top
+
+

Posibles Problemas

+

Por la manera en la que la autentificacin bsica est + especificada, su nombre de usuario y contrasea debe ser verificado + cada vez que se solicita un documento del servidor. Incluso si est + recargando la misma pgina, y por cada imagen de la pgina + (si vienen de un directorio protegido). Como se puede imaginar, esto + retrasa un poco las cosas. El retraso es proporcional al + tamao del archivo de contrasea, porque se tiene que abrir ese + archivo, y recorrer la lista de usuarios hasta que encuentre su nombre. + Y eso se tiene que hacer cada vez que se cargue la pgina.

+ +

Una consecuencia de esto es que hay un lmite prctico + de cuntos usuarios puede colocar en un archivo de contraseas. + Este lmite variar dependiendo del rendimiento de su equipo + servidor en particular, pero puede esperar observar una disminucin + una vez que inserte unos cientos de entradas, y puede que entonces considere + un mtodo distinto de autentificacin.

+
top
+
+

Qu otra cosa +sencilla y efectiva puedo hacer?

+

La autentificacin por nombre de usuario y contrasea es + slo parte del cuento. Frecuentemente se desea permitir el acceso + a los usuarios basandose en algo ms que quines son. Algo como de + dnde vienen.

+ +

Las directivas Allow y + Deny posibilitan permitir + y rechazar el acceso dependiendo del nombre o la direccin de la + mquina que solicita un documento. La directiva Order va de la mano con estas dos, y le + dice a Apache en qu orden aplicar los filtros.

+ +

El uso de estas directivas es:

+ +

+ Allow from address +

+ +

donde address es una direccin IP (o una + direccin IP parcial) o un nombre de dominio completamente + cualificado (o un nombre de dominio parcial); puede proporcionar + mltiples direcciones o nombres de dominio, si lo desea.

+ +

Por ejemplo, si usted tiene a alguien que manda mensajes no deseados + a su foro, y quiere que no vuelva a acceder, podra hacer lo + siguiente:

+ +

+ Deny from 205.252.46.165 +

+ +

Los visitantes que vengan de esa direccin no podrn + ver el contenido afectado por esta directiva. Si, por el + contrario, usted tiene un nombre de mquina pero no una + direccin IP, tambin puede usarlo.

+ +

+ Deny from host.example.com +

+ +

Y, si le gustara bloquear el acceso de un dominio entero, + puede especificar slo parte de una direccin o nombre de + dominio:

+ +

+ Deny from 192.101.205
+ Deny from cyberthugs.com moreidiots.com
+ Deny from ke +

+ +

Usar Order le permitir + estar seguro de que efectivamente est restringiendo el acceso + al grupo al que quiere permitir el acceso, combinando una directiva + Deny y una Allow:

+ +

+ Order deny,allow
+ Deny from all
+ Allow from dev.example.com +

+ +

Usando slo la directiva Allow no hara lo que desea, porque + le permitira entrar a la gente proveniente de esa mquina, y + adicionalmente a cualquier persona. Lo que usted quiere es dejar entrar + slo aquellos.

+
top
+
+

Ms informacin

+

Tambin debera leer la documentacin de + mod_auth y mod_access que + contiene ms informacin acerca de cmo funciona todo esto.

+
+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/auth.html.ja.utf8 b/rubbos/app/apache2/manual/howto/auth.html.ja.utf8 new file mode 100644 index 00000000..bcbfd650 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/auth.html.ja.utf8 @@ -0,0 +1,388 @@ + + + +認証、承認、アクセス制御 - Apache HTTP サーバ + + + + + +
<-
+

認証、承認、アクセス制御

+
+

Available Languages:  en  | + es  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

「認証」とは、誰かが自分は誰であるかを主張した場合に、 + それを確認するための全過程を指します。「承認」とは、 + 誰かが行きたい場所に行けるように、あるいは欲しい情報を + 得ることができるようにするための全過程を指します。

+
+ +
top
+
top
+
+

はじめに

+

もし機密の情報や、ごくごく少数グループの人向けの情報を + ウェブサイトに置くのであれば、この文書に書かれている + テクニックを使うことで、そのページを見ている人たちが + 望みの人たちであることを確実にできるでしょう。

+ +

この文書では、多くの人が採用するであろう、 + ウェブサイトの一部分を保護する「一般的な」 + 方法についてカバーしています。

+
top
+
+

準備

+

この文書で取り扱われるディレクティブは、 + メインサーバ設定ファイル (普通は + <Directory> + セクション中) か、あるいはディレクトリ毎の設定ファイル + (.htaccess ファイル) かで用います。

+ +

.htaccess ファイルを用いるのであれば、 + これらのファイルに認証用のディレクティブを置けるように + サーバの設定をしないといけないでしょう。これは + AllowOverride + ディレクティブで可能になります。 + AllowOverride + ディレクティブでは、ディレクトリ毎の設定ファイル中に置くことのできる + ディレクティブを、もしあれば、指定します。

+ +

認証について話を進めているので、次のような + AllowOverride + ディレクティブが必要になるでしょう。

+ +

+ AllowOverride AuthConfig +

+ +

そうでなく、メインサーバ設定ファイルの中に + 直接置くのであれば、当然ながらそのファイルへの書き込み + 権限を持っていなければならないでしょう。

+ +

また、どのファイルがどこに保存されているか知るために、 + サーバのディレクトリ構造について少し知っておく + 必要があるでしょう。 + これはそんなに難しくないので、この文書中で + ディレクトリ構造について知っておく必要がある場面では、 + 明らかになるようにします。

+
top
+
+

動作させる

+

では、サーバ上のあるディレクトリをパスワードで保護する + 基本手順を示します。

+ +

パスワードファイルを作る必要があります。 + このファイルは、ウェブからアクセスできる場所に + 置くべきではありません。他の人がパスワードファイルを + ダウンロードできないようにするためです。例えば、 + /usr/local/apache/htdocs でドキュメントを + 提供しているのであれば、パスワードファイルは + /usr/local/apache/passwd + などに置いた方が良いでしょう。

+ +

ファイルを作るためには、Apache 付属の htpasswd + を使います。このコマンドは Apache をどこにインストールしようとも、 + インストールディレクトリの bin + ディレクトリ以下に置かれます。ファイルを作るには、次のように + タイプしてください。

+ +

+ htpasswd -c /usr/local/apache/passwd/passwords rbowen +

+ +

htpasswd は、パスワードを要求し、その後 + 確認のためにもう一度入力するように要求してきます。

+ +

+ # htpasswd -c /usr/local/apache/passwd/passwords rbowen
+ New password: mypassword
+ Re-type new password: mypassword
+ Adding password for user rbowen +

+ +

もし htpasswd がパスの中に入っていない場合は、 + もちろん、実行するためにプログラムまでのフルパスを + タイプする必要があります。私のサーバであれば、 + /usr/local/apache/bin/htpasswd + にプログラムが置かれています。

+ +

次に、サーバがパスワードを要求するように設定して、 + どのユーザがアクセスを許されているかをサーバに知らせなければ + なりません。 httpd.conf を編集するか + .htaccess ファイルを使用するかで + 設定します。例えば、ディレクトリ + /usr/local/apache/htdocs/secret + を保護したい場合は、 + /usr/local/apache/htdocs/secret/.htaccess + か httpd.conf 中の <Directory + /usr/local/apache/apache/htdocs/secret> セクションに + 配置して、次のディレクティブを使うことができます。

+ +

+ AuthType Basic
+ AuthName "Restricted Files"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ Require user rbowen +

+ +

個々のディレクティブについて見てみましょう。 + AuthType + ディレクティブはどういう認証方法でユーザの認証を行うかを + 選択します。最も一般的な方法は Basic + で、これは mod_auth + で実装されています。しかしながら、 + これは気を付けるべき重要なポイントなのですが、 + Basic 認証はクライアントからブラウザへ、 + パスワードを暗号化せずに送ります。ですから、 + この方法は特に機密性の高いデータに対しては用いるべきでは + ありません。 Apache ではもう一つ別の認証方法: + AuthType Digest をサポートしています。 + この方法は mod_auth_digest + で実装されていて、もっと安全です。 + ごくごく最近のクライアントしか Digest + 認証をサポートしていないようです。

+ +

AuthName + ディレクティブでは、認証に使う Realm (訳注: 領域) + を設定します。Realm は大きく分けて二つの機能を提供します。 + 一つ目は、クライアントがパスワードダイアログボックスの + 一部としてユーザにこの情報をよく提示する、というものです。 + 二つ目には、クライアントが与えられた認証領域に対してどのパスワードを + 送信すれば良いのかを決定するために使われる、という機能です。

+ +

例えば、"Restricted Files" 領域中で + 一度認証されれば、同一サーバ上で "Restricted Files" + Realm としてマークされたどんな領域でも、クライアントは + 自動的に同じパスワードを使おうと試みます。 + このおかげで、複数の制限領域に同じ realm を共有させて、 + ユーザがパスワードを何度も要求される事態を + 防ぐことができます。もちろん、セキュリティ上の理由から、 + サーバのホスト名が変わればいつでも必ず、 + クライアントは再びパスワードを尋ねる必要があります。

+ +

AuthUserFile + ディレクティブは htpasswd で作った + パスワードファイルへのパスを設定します。 + ユーザ数が多い場合は、リクエスト毎のユーザの認証のための + プレーンテキストの探索が非常に遅くなることがあります。 + Apache ではユーザ情報を高速なデータベースファイルに + 保管することもできます。 + mod_auth_dbm モジュールが + AuthDBMUserFile + ディレクティブを提供します。これらのファイルは dbmmanage + プログラムで作成したり操作したりできます。 + Apache + モジュールデータベース中にあるサードパーティー製の + モジュールで、その他多くのタイプの認証オプションが + 利用可能です。

+ +

最後に、Require + ディレクティブが、サーバのこの領域にアクセスできるユーザを + 指定することによって、プロセスの承認部分を提供します。 + 次のセクションでは、Require + ディレクティブの様々な用法について述べます。

+
top
+
+

+複数の人が入れるようにする

+

上記のディレクティブは、ただ一人 (具体的にはユーザ名 + rbowen の誰か) がディレクトリに + 入れるようにします。多くの場合は、複数の人が + 入れるようにしたいでしょう。ここで + AuthGroupFile + の登場です。

+ +

もし複数の人が入れるようにしたいのであれば、 + グループに属するユーザの一覧の入っている、グループ名のついた + グループファイルを作る必要があります。このファイルの + 書式はきわめて単純で、お好みのエディタで生成できます。 + ファイルの中身は次のようなものです。

+ +

+ GroupName: rbowen dpitts sungo rshersey +

+ +

一行にスペース区切りで、グループに所属するメンバーの + 一覧をならべるだけです。

+ +

既に存在するパスワードファイルにユーザを加える場合は、 + 次のようにタイプしてください。

+ +

+ htpasswd /usr/local/apache/passwd/passwords dpitts +

+ +

以前と同じ応答が返されますが、新しいファイルを + 作るのではなく、既にあるファイルに追加されています。 + (新しいパスワードファイルを作るには -c + を使います。)

+ +

ここで次のようにして .htaccess ファイルを + 修正する必要があります。

+ +

+ AuthType Basic
+ AuthName "By Invitation Only"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthGroupFile /usr/local/apache/passwd/groups
+ Require group GroupName +

+ +

これで、グループ GroupName にリストされていて、 + password ファイルにエントリがある人は、 + 正しいパスワードをタイプすれば入ることができるでしょう。

+ +

もっと特定せずに複数のユーザが入れるようにする、 + もう一つの方法があります。グループファイルを作るのではなく、 + 次のディレクティブを使えばできます。

+ +

+ Require valid-user +

+ +

require user rbowen 行でなく、上記を使うと、 + パスワードファイルにリストされている人であれば誰でも + 許可されます。 + 単にパスワードファイルをグループ毎に分けておくことで、 + グループのような振る舞いをさせることもできます。 + このアプローチの利点は、Apache は二つではなく、 + ただ一つのファイルだけを検査すればよいという点です。 + 欠点は、たくさんのパスワードファイルを管理して、その中から + AuthUserFile + ディレクティブに正しいファイルを参照させなければならない点です。

+
top
+
+

起こりえる問題

+

Basic 認証が指定されている場合は、 + サーバにドキュメントをリクエストする度に + ユーザ名とパスワードを検査しなければなりません。 + これは同じページ、ページにある全ての画像を + リロードする場合であっても該当します + (もし画像も保護されたディレクトリから来るのであれば) 。 + 予想される通り、これは動作を多少遅くします。 + 遅くなる程度はパスワードファイルの大きさと比例しますが、 + これは、ファイルを開いてあなたの名前を発見するまで + ユーザ名のリストを読まなければならないからです。 + そして、ページがロードされる度にこれを行わなければ + なりません。

+ +

結論としては、一つのパスワードファイルに置くことのできる + ユーザ数には実質的な限界があります。 + この限界はサーバマシンの性能に依存して変わりますが、 + 数百のエントリを越えたあたりから速度低下が見られると予期されています。 + その時は他の認証方法を考慮に入れた方が良いでしょう。

+
top
+
+

もっと巧みに制御できない +?

+

ユーザ名とパスワードによる認証は認証の一つの方法に過ぎません。 + しばしば誰であるかということとは違う何かに基づいて、 + 入れるようにしたくなることもあるでしょう。 + 例えばその人がどこから来ているかといったことです。

+ +

Allow と + Deny + ディレクティブを使って、ドキュメントを要求してきたマシンの + ホスト名やホストアドレスに基づいて許可不許可を制御できます。 + Order + ディレクティブはこの二つと連携して動作し、Apache + にどの順番でフィルタを適用するかを知らせます。

+ +

これらのディレクティブの使い方は次のようになります。

+ +

+ Allow from address +

+ +

ここで、address は IP アドレス + (または IP アドレスの一部)、あるいは完全修飾ドメイン名 + (またはドメイン名の一部) です。 + 必要であれば複数のアドレスやドメイン名を指定できます。

+ +

例えば、もし誰かが掲示板を攻撃していて、 + その人を閉め出したいのであれば、 + 次のようにすることができます。

+ +

+ Deny from 205.252.46.165 +

+ +

このアドレスから来る人は、このディレクティブの範囲内の + コンテンツを見ることができません。もし IP + アドレスの代わりにマシン名があれば、それを使えます。

+ +

+ Deny from host.example.com +

+ +

ドメイン全体からのアクセスを防ぎたければ、 + 単にアドレスやドメイン名の一部を指定することができます。

+ +

+ Deny from 192.101.205
+ Deny from cyberthugs.com moreidiots.com
+ Deny from ke +

+ +

Order を使うことで、 + Deny と + Allow の組み合わせで + 入っても良いグループが本当に確実に限定できているようにできます。

+ +

+ Order deny,allow
+ Deny from all
+ Allow from dev.example.com +

+ +

Allow + ディレクティブを単純に列挙するのでは望みの動作をしないでしょう。 + なぜなら、全ての人が入れるということに加えて、 + 指定したホストからの人が入れるようにするからです。 + やりたいことは、指定した人たちだけが入れるように + することです。

+
top
+
+

追加情報

+

これら全てがどのように動作するかについて + もっと多くの情報が書かれている mod_auth と + mod_access + の文書も読むとよいでしょう。

+
+
+

Available Languages:  en  | + es  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/auth.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/auth.html.ko.euc-kr new file mode 100644 index 00000000..f79cc967 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/auth.html.ko.euc-kr @@ -0,0 +1,325 @@ + + + +(Authentication), Ѻο(Authorization), +(Access Control) - Apache HTTP Server + + + + + +
<-
+

(Authentication), Ѻο(Authorization), +(Access Control)

+
+

:  en  | + es  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

(authentication) ڽ ϴ + Ȯϴ ̴. Ѻο(authorization) + Ȥ ϴ 򵵷 ϴ ̴.

+
+ +
top
+
top
+
+

Ұ

+

Ʈ ִ Ҽ 鸸 ̰ų + ̵鸸 , ۿ ϴ Ͽ + ϴ ִ.

+ +

Ʈ Ϻθ ȣϱ + ϴ "ǥ" ٷ.

+
top
+
+

+

ۿ ٷ þ ּ(Ϲ + <Directory> + )̳ 丮 (.htaccess ) + Ѵ.

+ +

.htaccess Ϸ Ͽ ִ + þ ϵ ؾ Ѵ. ̸ + 丮 Ͽ  þ ִ ϴ + AllowOverride þ + Ѵ.

+ +

⼭ ٷ , + AllowOverride þ ʿϴ.

+ +

+ AllowOverride AuthConfig +

+ +

Ȥ þ ּϿ ´ٸ, Ͽ + ־ Ѵ.

+ +

׸ ȣ ִ ˱ 丮 + ˾ƾѴ. ʰ, + ڼ ̴.

+
top
+
+

⺻ ϱ

+

丮 ȣ ȣϴ ⺻ + Ѵ.

+ +

ȣ Ѵ. + ־ Ѵ. ٸ ȣ ٿε + ϰϱ ؼ. , + /usr/local/apache/htdocs ִٸ ȣ() + /usr/local/apache/passwd д.

+ +

ġ Ե htpasswd Ͽ + ȣ . α׷ ġ ġ + bin 丮 ִ. + ԷѴ.

+ +

+ htpasswd -c /usr/local/apache/passwd/passwords rbowen +

+ +

htpasswd ȣ , Ȯ + ȣ ٽ Է϶ ûѴ.

+ +

+ # htpasswd -c /usr/local/apache/passwd/passwords rbowen
+ New password: mypassword
+ Re-type new password: mypassword
+ Adding password for user rbowen +

+ +

htpasswd ο ٸ + ü θ Էؾ Ѵ. ϴ + /usr/local/apache/bin/htpasswd + ִ.

+ +

ȣ ûϵ ϰ, +  ˷ Ѵ. + httpd.conf ϰų .htaccess + Ͽ Ѵ. , + /usr/local/apache/htdocs/secret 丮 + ȣϷ, Ʒ þ + /usr/local/apache/htdocs/secret/.htaccess ̳ + httpd.conf <Directory + /usr/local/apache/apache/htdocs/secret> ǿ + Ѵ.

+ +

+ AuthType Basic
+ AuthName "Restricted Files"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ Require user rbowen +

+ +

þ ϳ 캸. AuthType þ ڸ + Ѵ. Ϲ Basic, + mod_auth Ѵ. ׷ Basic + ȣ ȣȭ ʰ . + ׷Ƿ ڷḦ ȣϱ ϸ ȵȴ. + ġ AuthType Digest Ѵ. + mod_auth_digest ϸ, ſ + ϴ. ֱ Ŭ̾Ʈ鸸 Digest Ѵٰ + Ѵ.

+ +

AuthName þ + (realm) Ѵ. + ΰ Ѵ. ù° Ŭ̾Ʈ + ȣ ȭâ ش. ι° Ͽ + Ŭ̾Ʈ Ư  ȣ Ѵ.

+ +

, ϴ Ŭ̾Ʈ "Restricted Files" + Ͽٸ, Ŭ̾Ʈ ڵ + "Restricted Files" ǥõ + ȣ õѴ. ׷ + ϸ ڰ ȣ Է ʾƵ ȴ. + Ȼ Ŭ̾Ʈ ȣƮ ٸ ׻ + ȣ .

+ +

AuthUserFile + þ 츮 htpasswd ȣ + θ Ѵ. ڰ ٸ û Ź ڸ + ϱ Ϲ ˻ϴµ ð + ɸ ִ. ġ Ÿ̽ Ͽ + ִ. mod_auth_dbm AuthDBMUserFile þ + Ѵ. dbmmanage + α׷ Ͽ ȣ ٷ. ġ + Ÿ̽ ٸ ϴ ڰ + ִ.

+ +

Require + þ Ư ִ ڸ Ͽ + Ѻο Ѵ. require þ + ϴ پ Ѵ.

+
top
+
+

+

þ 丮 (ڸ rbowen) + 鿩. κ 鿩 + ̴. AuthGroupFile + .

+ +

鿩 ʹٸ ׷ ׷쿡  + ڵ ִ ˷ִ ׷ ʿϴ. + ſ Ͽ, ƹ γ ִ. ϳ + .

+ +

+ GroupName: rbowen dpitts sungo rshersey +

+ +

׳ ׷ ̴.

+ +

ȣϿ ڸ ߰Ϸ ԷѴ

+ +

+ htpasswd /usr/local/apache/passwd/passwords dpitts +

+ +

, ʰ Ͽ ڸ + ߰Ѵ. (-c ɼ ȣ ).

+ +

.htaccess Ѵ.

+ +

+ AuthType Basic
+ AuthName "By Invitation Only"
+ AuthUserFile /usr/local/apache/passwd/passwords
+ AuthGroupFile /usr/local/apache/passwd/groups
+ Require group GroupName +

+ +

׷ GroupName ׷쿡 ϸ + password Ͽ ׸ ִ ڰ ùٸ + ȣ Էϸ Ѵ.

+ +

Ϲ ڸ 鿩 ٸ ִ. ׷ + ʿ þ ϱ⸸ ϸ ȴ.

+ +

+ Require valid-user +

+ +

Require user rbowen þ ϸ + ȣϿ ִ ùٸ ȣ Էϱ⸸ ϸ + Ѵ. ׷캰 ٸ ȣ Ͽ ׷ + ȿ ִ. ġ ΰ(ȣϰ + ׷) ƴ Ѱ(ȣ) ˻ϸ ȴٴ + ̴. ׷ ȣ ؾ ϰ, AuthUserFile þ + Ȯ ȣ ؾ ϴ ̴.

+
top
+
+

߻ ִ

+

Basic û ڸ + ȣ ȮѴ. ħ + (׸ ȣ ȣϴ 丮 ִ ) ִ + ׸ ٽ ȮѴ. ϵ ӵ . + ȣ  ڸ ã + ϱ⶧ ȣ ũⰡ Ŀ . ׸ + ۾ û Ѵ.

+ +

׷ ȣϿ ִ ڼ + Ѱ谡 ִ. Ѱ ϴ ɿ ٸ, + ׸ 鰳 Ѵ´ٸ ٰ ϰ ٸ + ؾ Ѵ.

+
top
+
+

ٸ Ѱ?

+

ڸ ȣ ٰ ƴϴ. + ҿ ٸ ڸ 鿩 + ִ.

+ +

Allow + Deny þ + û ǻ ȣƮ Ȥ ȣƮ ּҸ + ϰų źѴ. Order þ + þ Ͽ, ġ  Ģ + ˸.

+ +

̵ þ .

+ +

+ Allow from address +

+ +

address IP ּ(Ȥ IP ּ Ϻ) + θ(Ȥ θ Ϻ)̴. Ѵٸ ּҳ + θ ִ.

+ +

, Խǿ ø ִٸ + ִ.

+ +

+ Deny from 205.252.46.165 +

+ +

ּҿ 湮ڴ þ ȣϴ + . IP ּ ǻ͸ + ִ.

+ +

+ Deny from host.example.com +

+ +

, ü ּҳ θ Ϻθ + Ѵ.

+ +

+ Deny from 192.101.205
+ Deny from cyberthugs.com moreidiots.com
+ Deny from ke +

+ +

Order + Deny Allow þ + Ͽ ϴ ִ.

+ +

+ Order deny,allow
+ Deny from all
+ Allow from dev.example.com +

+ +

Allow + þ ϸ, ش ȣƮ ڸ ϰ ű⿡ + ߰ ϹǷ ϴ Ѵ. + Ư ϱ Ѵ.

+
top
+
+

+

mod_auth + mod_access  ϴ + ִ.

+
+
+

:  en  | + es  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/cgi.html b/rubbos/app/apache2/manual/howto/cgi.html new file mode 100644 index 00000000..61f160a2 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/cgi.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: cgi.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: cgi.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: cgi.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/howto/cgi.html.en b/rubbos/app/apache2/manual/howto/cgi.html.en new file mode 100644 index 00000000..c3299f6c --- /dev/null +++ b/rubbos/app/apache2/manual/howto/cgi.html.en @@ -0,0 +1,555 @@ + + + +Apache Tutorial: Dynamic Content with CGI - Apache HTTP Server + + + + + +
<-
+

Apache Tutorial: Dynamic Content with CGI

+
+

Available Languages:  en  | + ja  | + ko 

+
+
+ +
top
+
+

Introduction

+ + + + +

The CGI (Common Gateway Interface) defines a way for a web + server to interact with external content-generating programs, + which are often referred to as CGI programs or CGI scripts. It + is the simplest, and most common, way to put dynamic content on + your web site. This document will be an introduction to setting + up CGI on your Apache web server, and getting started writing + CGI programs.

+
top
+
+

Configuring Apache to permit CGI

+ + +

In order to get your CGI programs to work properly, you'll + need to have Apache configured to permit CGI execution. There + are several ways to do this.

+ +

ScriptAlias

+ + +

The + ScriptAlias + + directive tells Apache that a particular directory is set + aside for CGI programs. Apache will assume that every file in + this directory is a CGI program, and will attempt to execute + it, when that particular resource is requested by a + client.

+ +

The ScriptAlias + directive looks like:

+ +

+ ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ +

+ +

The example shown is from your default httpd.conf + configuration file, if you installed Apache in the default + location. The ScriptAlias + directive is much like the Alias directive, which defines a URL prefix that + is to mapped to a particular directory. Alias + and ScriptAlias are usually used for + directories that are outside of the DocumentRoot directory. The difference between + Alias and ScriptAlias + is that ScriptAlias has the added meaning + that everything under that URL prefix will be considered a CGI + program. So, the example above tells Apache that any request for a + resource beginning with /cgi-bin/ should be served from + the directory /usr/local/apache2/cgi-bin/, and should be + treated as a CGI program.

+ +

For example, if the URL + http://www.example.com/cgi-bin/test.pl + is requested, Apache will attempt to execute the file + /usr/local/apache2/cgi-bin/test.pl + and return the output. Of course, the file will have to + exist, and be executable, and return output in a particular + way, or Apache will return an error message.

+ + +

CGI outside of ScriptAlias directories

+ + +

CGI programs are often restricted to ScriptAlias'ed directories for security reasons. + In this way, administrators can tightly control who is allowed to + use CGI programs. However, if the proper security precautions are + taken, there is no reason why CGI programs cannot be run from + arbitrary directories. For example, you may wish to let users + have web content in their home directories with the + UserDir directive. + If they want to have their own CGI programs, but don't have access to + the main cgi-bin directory, they will need to be able to + run CGI programs elsewhere.

+ +

There are two steps to allowing CGI execution in an arbitrary + directory. First, the cgi-script handler must be + activated using the AddHandler or SetHandler directive. Second, + ExecCGI must be specified in the Options directive.

+ + +

Explicitly using Options to permit CGI execution

+ + +

You could explicitly use the Options directive, inside your main server configuration + file, to specify that CGI execution was permitted in a particular + directory:

+ +

+ <Directory /usr/local/apache2/htdocs/somedir>
+ + Options +ExecCGI
+
+ </Directory> +

+ +

The above directive tells Apache to permit the execution + of CGI files. You will also need to tell the server what + files are CGI files. The following AddHandler directive tells the server to treat all + files with the cgi or pl extension as CGI + programs:

+ +

+ AddHandler cgi-script .cgi .pl +

+ + +

.htaccess files

+ + +

The .htaccess tutorial + shows how to activate CGI programs if you do not have + access to httpd.conf.

+ + +

User Directories

+ + +

To allow CGI program execution for any file ending in + .cgi in users' directories, you can use the + following configuration.

+ +

+ <Directory /home/*/public_html>
+ + Options +ExecCGI
+ AddHandler cgi-script .cgi
+
+ </Directory> +

+ +

If you wish designate a cgi-bin subdirectory of + a user's directory where everything will be treated as a CGI + program, you can use the following.

+ +

+ <Directory /home/*/public_html/cgi-bin>
+ + Options ExecCGI
+ SetHandler cgi-script
+
+ </Directory> +

+ + + +
top
+
+

Writing a CGI program

+ + +

There are two main differences between ``regular'' + programming, and CGI programming.

+ +

First, all output from your CGI program must be preceded by + a MIME-type header. This is HTTP header that tells the client + what sort of content it is receiving. Most of the time, this + will look like:

+ +

+ Content-type: text/html +

+ +

Secondly, your output needs to be in HTML, or some other + format that a browser will be able to display. Most of the + time, this will be HTML, but occasionally you might write a CGI + program that outputs a gif image, or other non-HTML + content.

+ +

Apart from those two things, writing a CGI program will look + a lot like any other program that you might write.

+ +

Your first CGI program

+ + +

The following is an example CGI program that prints one + line to your browser. Type in the following, save it to a + file called first.pl, and put it in your + cgi-bin directory.

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ print "Hello, World."; +

+ +

Even if you are not familiar with Perl, you should be able + to see what is happening here. The first line tells Apache + (or whatever shell you happen to be running under) that this + program can be executed by feeding the file to the + interpreter found at the location /usr/bin/perl. + The second line prints the content-type declaration we + talked about, followed by two carriage-return newline pairs. + This puts a blank line after the header, to indicate the end + of the HTTP headers, and the beginning of the body. The third + line prints the string "Hello, World.". And that's the end + of it.

+ +

If you open your favorite browser and tell it to get the + address

+ +

+ http://www.example.com/cgi-bin/first.pl +

+ +

or wherever you put your file, you will see the one line + Hello, World. appear in your browser window. + It's not very exciting, but once you get that working, you'll + have a good chance of getting just about anything working.

+ +
top
+
+

But it's still not working!

+ + +

There are four basic things that you may see in your browser + when you try to access your CGI program from the web:

+ +
+
The output of your CGI program
+
Great! That means everything worked fine. If the output is correct, + but the browser is not processing it correctly, make sure you have the + correct Content-Type set in your CGI program.
+ +
The source code of your CGI program or a "POST Method Not + Allowed" message
+
That means that you have not properly configured Apache + to process your CGI program. Reread the section on + configuring + Apache and try to find what you missed.
+ +
A message starting with "Forbidden"
+
That means that there is a permissions problem. Check the + Apache error log and the section below on + file permissions.
+ +
A message saying "Internal Server Error"
+
If you check the + Apache error log, you will probably + find that it says "Premature end of + script headers", possibly along with an error message + generated by your CGI program. In this case, you will want to + check each of the below sections to see what might be + preventing your CGI program from emitting the proper HTTP + headers.
+
+ +

File permissions

+ + +

Remember that the server does not run as you. That is, + when the server starts up, it is running with the permissions + of an unprivileged user - usually nobody, or + www - and so it will need extra permissions to + execute files that are owned by you. Usually, the way to give + a file sufficient permissions to be executed by nobody + is to give everyone execute permission on the file:

+ +

+ chmod a+x first.pl +

+ +

Also, if your program reads from, or writes to, any other + files, those files will need to have the correct permissions + to permit this.

+ + + +

Path information and environment

+ + +

When you run a program from your command line, you have + certain information that is passed to the shell without you + thinking about it. For example, you have a PATH, + which tells the shell where it can look for files that you + reference.

+ +

When a program runs through the web server as a CGI program, + it may not have the same PATH. Any programs that you + invoke in your CGI program (like sendmail, for + example) will need to be specified by a full path, so that the + shell can find them when it attempts to execute your CGI + program.

+ +

A common manifestation of this is the path to the script + interpreter (often perl) indicated in the first + line of your CGI program, which will look something like:

+ +

+ #!/usr/bin/perl +

+ +

Make sure that this is in fact the path to the + interpreter.

+ +

In addition, if your CGI program depends on other environment variables, you will need to + assure that those variables are passed by Apache.

+ + + +

Program errors

+ + +

Most of the time when a CGI program fails, it's because of + a problem with the program itself. This is particularly true + once you get the hang of this CGI stuff, and no longer make + the above two mistakes. The first thing to do is to make + sure that your program runs from the command line before + testing it via the web server. For example, try:

+ +

+ cd /usr/local/apache2/cgi-bin
+ ./first.pl +

+ +

(Do not call the perl interpreter. The shell + and Apache should find the interpreter using the path information on the first line of + the script.)

+ +

The first thing you see written by your program should be + a set of HTTP headers, including the Content-Type, + followed by a blank line. If you see anything else, Apache will + return the Premature end of script headers error if + you try to run it through the server. See Writing a CGI program above for more + details.

+ + +

Error logs

+ + +

The error logs are your friend. Anything that goes wrong + generates message in the error log. You should always look + there first. If the place where you are hosting your web site + does not permit you access to the error log, you should + probably host your site somewhere else. Learn to read the + error logs, and you'll find that almost all of your problems + are quickly identified, and quickly solved.

+ + +

Suexec

+ + +

The suexec support program + allows CGI programs to be run under different user permissions, + depending on which virtual host or user home directory they are + located in. Suexec has very strict permission checking, and any + failure in that checking will result in your CGI programs + failing with Premature end of script headers.

+ +

To check if you are using suexec, run apachectl + -V and check for the location of SUEXEC_BIN. + If Apache finds an suexec binary there on startup, + suexec will be activated.

+ +

Unless you fully understand suexec, you should not be using it. + To disable suexec, simply remove (or rename) the suexec + binary pointed to by SUEXEC_BIN and then restart the + server. If, after reading about suexec, + you still wish to use it, then run suexec -V to find + the location of the suexec log file, and use that log file to + find what policy you are violating.

+ +
top
+
+

What's going on behind the scenes?

+ + +

As you become more advanced in CGI programming, it will + become useful to understand more about what's happening behind + the scenes. Specifically, how the browser and server + communicate with one another. Because although it's all very + well to write a program that prints "Hello, World.", it's not + particularly useful.

+ +

Environment variables

+ + +

Environment variables are values that float around you as + you use your computer. They are useful things like your path + (where the computer searches for the actual file + implementing a command when you type it), your username, your + terminal type, and so on. For a full list of your normal, + every day environment variables, type + env at a command prompt.

+ +

During the CGI transaction, the server and the browser + also set environment variables, so that they can communicate + with one another. These are things like the browser type + (Netscape, IE, Lynx), the server type (Apache, IIS, WebSite), + the name of the CGI program that is being run, and so on.

+ +

These variables are available to the CGI programmer, and + are half of the story of the client-server communication. The + complete list of required variables is at + http://hoohoo.ncsa.uiuc.edu/cgi/env.html.

+ +

This simple Perl CGI program will display all of the + environment variables that are being passed around. Two + similar programs are included in the + cgi-bin + + directory of the Apache distribution. Note that some + variables are required, while others are optional, so you may + see some variables listed that were not in the official list. + In addition, Apache provides many different ways for you to + add your own environment variables + to the basic ones provided by default.

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ foreach $key (keys %ENV) {
+ + print "$key --> $ENV{$key}<br>";
+
+ } +

+ + +

STDIN and STDOUT

+ + +

Other communication between the server and the client + happens over standard input (STDIN) and standard + output (STDOUT). In normal everyday context, + STDIN means the keyboard, or a file that a + program is given to act on, and STDOUT + usually means the console or screen.

+ +

When you POST a web form to a CGI program, + the data in that form is bundled up into a special format + and gets delivered to your CGI program over STDIN. + The program then can process that data as though it was + coming in from the keyboard, or from a file

+ +

The "special format" is very simple. A field name and + its value are joined together with an equals (=) sign, and + pairs of values are joined together with an ampersand + (&). Inconvenient characters like spaces, ampersands, and + equals signs, are converted into their hex equivalent so that + they don't gum up the works. The whole data string might look + something like:

+ +

+ name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey +

+ +

You'll sometimes also see this type of string appended to + a URL. When that is done, the server puts that string + into the environment variable called + QUERY_STRING. That's called a GET + request. Your HTML form specifies whether a GET + or a POST is used to deliver the data, by setting the + METHOD attribute in the FORM tag.

+ +

Your program is then responsible for splitting that string + up into useful information. Fortunately, there are libraries + and modules available to help you process this data, as well + as handle other of the aspects of your CGI program.

+ +
top
+
+

CGI modules/libraries

+ + +

When you write CGI programs, you should consider using a + code library, or module, to do most of the grunt work for you. + This leads to fewer errors, and faster development.

+ +

If you're writing CGI programs in Perl, modules are + available on CPAN. The most + popular module for this purpose is CGI.pm. You might + also consider CGI::Lite, which implements a minimal + set of functionality, which is all you need in most programs.

+ +

If you're writing CGI programs in C, there are a variety of + options. One of these is the CGIC library, from + http://www.boutell.com/cgic/.

+
top
+
+

For more information

+ + +

There are a large number of CGI resources on the web. You + can discuss CGI problems with other users on the Usenet group + comp.infosystems.www.authoring.cgi. And the -servers mailing + list from the HTML Writers Guild is a great source of answers + to your questions. You can find out more at + http://www.hwg.org/lists/hwg-servers/.

+ +

And, of course, you should probably read the CGI + specification, which has all the details on the operation of + CGI programs. You can find the original version at the + NCSA and there is an updated draft at the + Common Gateway + Interface RFC project.

+ +

When you post a question about a CGI problem that you're + having, whether to a mailing list, or to a newsgroup, make sure + you provide enough information about what happened, what you + expected to happen, and how what actually happened was + different, what server you're running, what language your CGI + program was in, and, if possible, the offending code. This will + make finding your problem much simpler.

+ +

Note that questions about CGI problems should never + be posted to the Apache bug database unless you are sure you + have found a problem in the Apache source code.

+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/cgi.html.ja.utf8 b/rubbos/app/apache2/manual/howto/cgi.html.ja.utf8 new file mode 100644 index 00000000..51168ac5 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/cgi.html.ja.utf8 @@ -0,0 +1,546 @@ + + + +Apache Tutorial: CGI による動的コンテンツ - Apache HTTP サーバ + + + + + +
<-
+

Apache Tutorial: CGI による動的コンテンツ

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+
+ +
top
+
+

はじめに

+ + + + +

CGI (Common Gateway Interface) は、ウェブサーバが + コンテンツ生成をする外部プログラムと協調して動作するための方法を + 定義しています。そのプログラムはしばしば CGI プログラムや + CGI スクリプトと呼ばれます。CGI は、ウェブサイトに動的な + コンテンツを置くための最も簡単で一般的な方法です。このドキュメントは、 + Apache ウェブサーバで CGI を設定し、 + CGI プログラムを書き始めるための入門書となるでしょう。

+
top
+
+

CGI を許可するように Apache を設定する

+ + +

CGI プログラムを正しく動作させるには、CGI を許可するように + Apache の設定を行う必要があります。 + これを行なうための方法がいくつかあります。

+ +

ScriptAlias

+ + +

ScriptAlias + ディレクティブを使用して、 + CGI プログラム用の特別な別ディレクトリを Apache に設定します。 + Apache は、このディレクトリ中の全てのファイルを CGI + プログラムであると仮定します。 + そして、この特別なリソースがクライアントから要求されると、 + そのプログラムの実行を試みます。

+ +

ScriptAlias + ディレクティブは以下のように使用します:

+ +

+ ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ +

+ +

デフォルト位置に Apache をインストールしたならば、 + この例はデフォルト状態の httpd.conf + 設定ファイルに含まれています。 + ScriptAlias + ディレクティブは、URL の前に付加するディレクトリを定義する + Alias + ディレクティブとかなり似ています。 + AliasScriptAlias + は通常、DocumentRoot + ディレクトリ外のディレクトリのために使用されます。 + AliasScriptAlias + との差は、ScriptAlias が接頭辞で始まるすべての + URL は CGI プログラムとみなされるという追加の意味を含んでいることです。 + 従って、上記の例では、/cgi-bin/ + で始まるリソースへのあらゆるリクエストに対して、ディレクトリ + /usr/local/apache2/cgi-bin/ から提供し、それらを + CGI プログラムとして扱うよう Apache に示します。

+ +

例えば、URL http://dev.rcbowen.com/cgi-bin/test.pl + が要求された場合、Apache は ファイル + /usr/local/apache2/cgi-bin/test.pl + を実行し、その出力を返すことを試みます。 + もちろん、ファイルが存在し、実行可能であり、決められた方法で出力を返します。 + そうでなければ、Apache はエラーメッセージを返します。

+ + +

ScriptAlias ディレクトリ外の CGI

+ + +

CGI プログラムは、セキュリティ上の理由から + ScriptAlias + されたディレクトリに制限されることがしばしばあります。この方法により、 + CGI プログラムを使用できるユーザを管理者が厳しく制御することができます。 + しかしながら、適切なセキュリティ事前対策がとられるならば、CGI + プログラムを任意のディレクトリで実行できないようにする理由はありません。 + 例えば、ユーザに UserDir + ディレクティブで彼らのホームディレクトリ配下にウェブコンテンツを持たせたいとします。 + もし、彼らが CGI プログラムを持つことを望んでいても、メインの + cgi-bin ディレクトリへのアクセスができない場合、 + CGI プログラムを実行することができる他の場所が必要になります。

+ +

任意のディレクトリで CGI の実行を許可するには二段階の設定が必要です。 + まず、AddHandlerSetHandler ディレクティブによって + cgi-script ハンドラが可能になっている必要があります。 + 次に、Options ディレクティブで + ExecCGI が指定されていなければなりません。

+ + +

CGI の実行を可能にするために Options を明示的に使用する

+ + +

サーバのメインの設定ファイル中で Options + ディレクティブを明示的に使用することで、特定のディレクトリ配下で + CGI の実行を許可するように指定することができます:

+ +

+ <Directory /usr/local/apache2/htdocs/somedir>
+ + Options +ExecCGI
+
+ </Directory> +

+ +

上記ディレクティブは、CGI ファイルの実行を可能にするよう + Apache に伝えます。また、どのファイルが CGI ファイルかを + サーバに伝える必要があります。次の + AddHandler + ディレクティブの例では、cgi または pl + を拡張子に持つすべてのファイルを CGI + プログラムとしてみなすことをサーバに伝えます:

+ +

+ AddHandler cgi-script .cgi .pl +

+ + +

.htaccess files

+ + +

.htaccess チュートリアル + は httpd.conf を変更できない場合にどうやって CGI プログラムを + 使えるようにするかを説明しています。

+ + +

User ディレクトリ

+ + +

.cgi で終わるすべてのファイルに対して CGI プログラムの + 実行を許可するには、以下の設定を使用できます。

+ +

+ <Directory /home/*/public_html>
+ + Options +ExecCGI
+ AddHandler cgi-script .cgi
+
+ </Directory> +

+ +

ユーザディレクトリの cgi-bin サブディレクトリの + すべてのファイルを CGI プログラムとして指定したい場合には + 以下のようなものを使います。

+ +

+ <Directory /home/*/public_html/cgi-bin>
+ + Options ExecCGI
+ SetHandler cgi-script
+
+ </Directory> +

+ + +
top
+
+

CGI プログラムを書く

+ + +

「通常の」プログラミングと CGI + プログラミングの間には主に二つの違いがあります。

+ +

一つは、CGI プログラムのすべての出力には MIME-type + ヘッダを付けなければなりません。 + これはどのような種類のコンテンツを受け取っているかをクライアントに示す + HTTP ヘッダです。ほとんどの場合では、次のように出力します:

+ +

+ Content-type: text/html +

+ +

もう一つは、出力を HTML + か、ブラウザが表示することができる何か他の形式にする必要があります。 + 大抵の場合は HTML でしょうが、GIF イメージや他の非 HTML + コンテンツを出力する CGI プログラムを書くこともあるでしょう。

+ +

これら二点以外では、CGI プログラムを書くことは、 + あなたが書いている他のプログラムとよく似ているでしょう。

+ +

最初の CGI プログラム

+ + +

次に示すのは、ブラウザに 1 行印字する CGI + プログラムの例です。以下を入力し、first.pl + というファイルに保存し、それを cgi-bin + ディレクトリに置いてください。

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ print "Hello, World."; +

+ +

Perl に精通していなくても、 + 何が起こるかを理解することはできるでしょう。1 行目は、 + /usr/bin/perl で見つけられるインタプリタに + このファイルを供給することでこのプログラムが実行されることを + Apache に (シェル上で実行しようとしているならば、そのシェルに ) + 示します。2 行目は、前述したとおり content-type の定義を印字します。 + これには復帰改行の二つの組を後に付加します。 + これにより、ヘッダの終りに空行が置かれ、HTTP + ヘッダの終りとボディの始まりを示します。3 行目は、"Hello, World." + という文字列を印字し、これで終りとなります。

+ +

好みのブラウザを開き、アドレス

+ +

+ http://www.example.com/cgi-bin/first.pl +

+ +

あるいはファイルを置いたロケーションを指定すると、 + Hello, World. + という 1 行がブラウザウィンドに現れるでしょう。 + それはあまりエキサイティングなことではありません。 + しかし、これがうまく動けば、 + 他のどのようなものでも動かすことができるようになります。

+ +
top
+
+

しかし、まだ動かない !

+ + +

ウェブから CGI プログラムへのアクセスを行なったとき、 + ブラウザで見る可能性がある四つの基本的なことがあります:

+ +
+
CGI プログラムの出力
+
素晴らしい ! それはすべてがうまく動いたことを意味します。 + 出力が正常だけれども、ブラウザが正常に処理してくれない場合は、 + 正しい Content-Type を CGI プログラム内で + セットしたかを確認してください。
+ +
CGI プログラムのソースコード、または "POST Method Not Allowed" + というメッセージ
+
これは、CGI プログラムを処理できるよう Apache + を適切に設定していなかったことを意味します。「CGI を許可するように + Apache を設定する」の章を読み直し、 + あなたが何を間違えたかを探してみてください。 +
+ +
メッセージが "Forbidden" で始まっている
+
これはパーミッションの問題ということを意味します。 + Apache のエラーログと、後述の「ファイルのパーミッション」 + の章をチェックしてください。 +
+ +
"Internal Server Error" というメッセージ
+
Apache + のエラーログをチェックすると、"Premature end of script headers" + というログが記録されていると思います。そして、おそらく CGI + プログラムによって生成されたエラーメッセージも記録されているでしょう。 + この場合、CGI プログラムが適切な + HTTP ヘッダを出力できない原因を知るために、 + 以下の各章でチェックしてみてください。
+
+ +

ファイルのパーミッション

+ + +

サーバはあなたの権限で実行されていないのを忘れないように。 + つまり、起動するとき、サーバは特権をもたないユーザ - 通常 nobody + や www の権限で実行されます。したがって、あなたが所有する + ファイルを実行するには別のパーミッションが必要となります。 + 通常、nobody が実行するのに十分なパーミッションを与える方法は、 + ファイルに誰でも実行可能とするパーミッションを与えることです:

+ +

+ chmod a+x first.pl +

+ +

また、もしあなたのプログラムが他のファイルを読み書きするならば、 + それらのファイルは、これが可能となる正しいパーミッション + を持っている必要があります。

+ + + +

パス情報と環境

+ + +

コマンドラインからプログラムを実行するとき、 + 意識しなくてもシェルに渡される情報があります。 + 例えば、参照するファイルのためにどこを検索したらよいかを + シェルに伝える PATH があります。

+ +

プログラムが CGI プログラムとしてウェブサーバによって実行されるとき、 + それは同じ PATH ではないかもしれません。 + CGI プログラム内で呼び出すあらゆるプログラム + (例えば、sendmail のようなもの) は、 + フルパスで指定する必要があるでしょう。それにより、CGI + プログラムを実行しようとしたとき、 + シェルはそのようなプログラムを見つけることができます。

+ +

同様なことは、スクリプトのインタプリタ (しばしば perl) + へのパスで、CGI プログラムの 1 行目に次のように示されます:

+ +

+ #!/usr/bin/perl +

+ +

これがインタープリタへの実際のパスであることを確実にしておきます。

+ + +

プログラムエラー

+ + +

CGI + プログラムが失敗するのは大抵、プログラム自身に問題がある場合です。 + 一度 CGI の使い方を理解し、前述の二つの誤りを犯していないならば、 + まず間違いなくそうでしょう。ブラウザを使ってテストする前に + まず確認することは、コマンドラインからプログラムが実行できることです。 + 例えば、以下を実行してみてください:

+ +

+ cd /usr/local/apache2/cgi-bin
+ ./first.pl +

+ +

(perl インタプリタは呼ばないでください。 + シェルと Apache がスクリプトの最初の行の パス情報 を使って見つけます。)

+ +

最初にプログラムから出力されるのは Content-Type を含み、 + 後に空行の続く HTTP ヘッダでなければなりません。他のものが出力されている + 場合は、Apache はこのプログラムをサーバ経由で実行しようとしたときには + Premature end of script headers エラーを出力します。詳細は + 上記の CGI プログラムを書く を読んでください。

+ + +

エラーログ

+ + +

エラーログは友達です。 + 全てのうまくいかないことは、エラーログにメッセージを生成します。 + 必ずそれを最初に見るべきです。 + もし、あなたがウェブサイトを主催している場所が + エラーログの参照を許していないならば、きっと他のサイトで主催するべきです。 + エラーログの読み方を学ぶことで、ほとんど全ての問題が迅速に確認され、 + 迅速に解決されるということが分かるでしょう。

+ + +

Suexec

+ + +

suexec サポートプログラムは + バーチャルホストやユーザのホームディレクトリの場所に依って + CGI プログラムを違うユーザ権限の下で走らせることを可能にします。 + Suexec の権限のチェックは非常に厳しく、それを満たさない場合は + CGI プログラムが Premature end of script headers エラーで + 実行されません。

+ +

suexec を使っているかどうかを調べためには apachectl + -V を実行して、SUEXEC_BIN の場所を調べてください。 + Apache がそこに suexec のバイナリを発見した場合は、suexec が + 使用されます。

+ +

suexec を完全に理解していない限り、使うべきではありません。 + suexec を無効にするには、SUEXEC_BIN から指されている + suexec バイナリを削除 (か名前を変更) するだけです。 + suexec を読んだ後で、まだそれを + 使いたいのであれば、suexec -V を実行して suexec の + ログファイルの位置を調べ、そのログファイルを使ってポリシー違反を + 見つけてください。

+ +
top
+
+

裏で何が起こっているのか?

+ + +

CGI プログラミングに習熟すると、 + 裏で起こっていることについて更に理解すること役に立ちます。 + ブラウザとサーバがどのように相互通信するかについては特にそうです。 + なぜなら、"Hello, World." + を印字するプログラムを書くことはおおいに結構ですが、 + それは特に有益ではありません。

+ +

環境変数

+ + +

環境変数は、 + あなたがコンピュータを使うときに辺りに存在している値です。 + それらは、パス + (コマンドをタイプしたときに実行する実際のファイルを探し出すところ)、 + ユーザ名、端末型などのような便利なものです。 + 通常、普段使用している環境変数の完全なリストを調べるには、 + コマンドプロンプトで env を入力します。

+ +

CGI の処理中、サーバとブラウザも環境変数を設定し、 + それにより相互に通信することができるようになります。 + その環境変数は、ブラウザタイプ (Netscape, IE, Lynx)、サーバタイプ + (Apache, IIS, WebSite)、実行されている CGI + プログラムの名前などです。

+ +

これらの変数は CGI プログラマが使用できます。 + そして、それはクライアントとサーバの通信の話の半分です。 + 必要な変数の完全なリストは http://hoohoo.ncsa.uiuc.edu/cgi/env.html にあります。

+ +

以下の単純な Perl CGI + プログラムは、渡される全ての環境変数を表示します。同様のプログラムは、 + Apache ディストリビューションの cgi-bin + ディレクトリに二つ含まれています。 + いくつかの変数が必須であり、いくつかは任意であることに注意してください。 + そして、公式のリストにはないいくつかの変数が表示されているかもしれません。 + さらに、Apache はデフォルトで用意されている基本的なものに + あなた自身の環境変数を加えるための、 + 多くの異なる方法を用意してします。

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ foreach $key (keys %ENV) {
+ + print "$key --> $ENV{$key}<br>";
+
+ } +

+ + +

STDIN と STDOUT

+ + +

サーバとクライアント間のもう一つの通信は、標準入力 + (STDIN)と標準出力 (STDOUT) + を通じて行なわれます。通常の文脈において、STDIN + はキーボードやプログラムが動作するために与えられるファイルを意味し、 + STDOUT は通常コンソールまたはスクリーンを意味します。

+ +

ウェブフォームから CGI プログラムへPOST + したとき、フォームのデータは特別なフォーマットで束ねられ、 + STDIN を通して、CGI プログラムに引き渡されます。 + プログラムはデータがキーボード + もしくはファイルから来ていたかのように処理することができます。

+ +

「特別なフォーマット」はとても単純です。フィールド名と値はイコール + (=) で結ばれます。そして値の組はアンパサンド (&) で結ばれます。 + スペース、アンパサンド、イコールのような面倒な文字は、 + それらが動作を駄目にしないようにその文字に相当する 16 進に変換されます。 + 全データ文字列は、以下のようになります: +

+ +

+ name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey +

+ +

時々、このような文字列が URL + に付加されるのを見るでしょう。その場合、サーバは + QUERY_STRING という環境変数にその文字列を入れます。それは + GET リクエストと呼ばれます。 + HTML フォームでは、データを渡すために GET と + POST のどちらを使用するかを、FORM タグの + METHOD 属性の設定で指定します。

+ +

CGI プログラムは、その文字列を役に立つ情報に分割する責任があります。 + 幸いにも、そのデータ処理を助けるライブラリやモジュールが存在します。 + これらは、CGI プログラムの他の面でも同様に役に立ちます。

+ +
top
+
+

CGI モジュール/ライブラリ

+ + +

CGI プログラムを書くとき、面倒な仕事の大部分をしてくれる + コードライブラリまたはモジュールを使うことを検討すべきです。 + これはエラーを減らし、早い開発につながります。

+ +

Perl で CGI プログラムを書いているなら、モジュールは CPAN で提供されています。 + この目的のための最も普及しているモジュールは CGI.pm です。 + CGI::Lite も検討しましょう。これは、ほとんどのプログラム + において必要とするすべての機能の最小セットの実装です。

+ +

C で CGI プログラムを書いているなら、いろいろな + オプションがあります。これらの内の一つは http://www.boutell.com/cgic/ + で提供されている CGIC ライブラリです。

+
top
+
+

更なる情報

+ + +

CGI に関する情報はウェブで数多く提供されています。CGI + の問題については Usenet の comp.infosystems.www.authoring.cgi で、 + 他のユーザと論議することができます。HTML Writers Guide の + -servers メーリングリストは、あなたの質問に回答してくれる偉大なリソースです。 + http://www.hwg.org/lists/hwg-servers/ + で更に多くを探し出すことができます。

+ +

そしてもちろん、おそらく CGI + プログラムの動作に関する詳細の全てが記述されている + CGI の仕様を読むべきです。オリジナルバージョンを + NCSA + で、アップデートされたドラフトを + Common Gateway Interface RFC + プロジェクトで参照することができます。

+ +

CGI の問題について、加わっているメーリングリストまたはニュース + グループに質問を送るとき、起こったもの、起こってほしいこと、 + 実際に起こったことがどう違うか、使用しているサーバ、 + CGI プログラムを記述している言語に関する十分な情報と、 + 可能であれば問題のコードを提供するようにしてください。 + そうすることで、問題がより間単に見つかるようになります。

+ +

Apache のソースコードにおいて問題を発見したことを確信していない限り、 + CGI の問題に関する質問を Apache + バグデータベースに送るべきでない + ことに注目してください。

+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/cgi.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/cgi.html.ko.euc-kr new file mode 100644 index 00000000..0486a222 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/cgi.html.ko.euc-kr @@ -0,0 +1,503 @@ + + + +ġ 丮: CGI - Apache HTTP Server + + + + + +
<-
+

ġ 丮: CGI

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+
+ +
top
+
+

Ұ

+ + + + +

CGI (Common Gateway Interface) CGI α׷ + Ȥ CGI ũƮ θ, ( ) ܺ + α׷ ϴ Ѵ. Ʈ + ϰ ̴. ġ + CGI ϴ Ұϰ, CGI α׷ + ۼغ.

+
top
+
+

CGI ϵ ġ ϱ

+ + +

CGI α׷ ùٷ Ϸ CGI ϵ + ġ ؾ Ѵ. ϴ .

+ +

ScriptAlias

+ + +

ScriptAlias + þ ϸ ġ Ư 丮 CGI α׷ + д. ġ 丮 ִ CGI + α׷̶ Ͽ Ŭ̾Ʈ ڿ ûϸ ڿ + Ϸ õѴ.

+ +

ScriptAlias + þ Ѵ.

+ +

+ ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ +

+ +

ġ ⺻ ҿ ġ + httpd.conf Ͽ ִ ̴. ScriptAlias þ Alias þ URL + պκ Ư 丮 Ѵ. + Alias + ScriptAlias DocumentRoot 丮 ۿ ִ + 丮 Ѵ. Alias + ScriptAlias + ScriptAlias ߰ URL պκ + ϴ CGI α׷ ϴ ̴. + ׷ ġ /cgi-bin/ + ϴ ڿ ûϸ + /usr/local/apache2/cgi-bin/ 丮 + ãƼ CGI α׷ ó϶ ˸.

+ +

, URL + http://www.example.com/cgi-bin/test.pl + ûϸ ġ + /usr/local/apache2/cgi-bin/test.pl + Ͽ ȯѴ. ϰ డϸ +  ε ؾ Ѵ. ׷ ġ + .

+ + +

ScriptAlias 丮 ۿ ִ CGI

+ + +

Ȼ CGI α׷ ScriptAlias 丮 + Ѵ. ׷ ڴ CGI α׷ + ִ ִ. ׷ ġ + ߴٸ ƹ 丮 CGI α׷ + . , UserDir þ Ͽ + ڰ ڽ Ȩ丮 츦 + . ڰ ڽ CGI α׷ ϰ + cgi-bin 丮 ٱ ٸ, ٸ + CGI α׷ ϰ ̴.

+ +

ƹ 丮 CGI Ϸ + ʿϴ. , AddHandler SetHandler þ Ͽ + cgi-script ڵ鷯 ۵ؾ Ѵ. ι°, + Options þ + ExecCGI ؾ Ѵ.

+ + +

Options Ͽ CGI ϱ

+ + +

ּϿ Options þ Ͽ Ư + 丮 CGI ִ.

+ +

+ <Directory /usr/local/apache2/htdocs/somedir>
+ + Options +ExecCGI
+
+ </Directory> +

+ +

þ ġ CGI Ѵ.  + CGI ˷ Ѵ. AddHandler þ + Ȯڰ cgi pl + CGI α׷̶ ˸.

+ +

+ AddHandler cgi-script .cgi .pl +

+ + +

.htaccess

+ + +

.htaccess + httpd.conf ٱ 쿡 CGI α׷ + ִ ˷ش.

+ + +

+ + +

Ʒ ϸ 丮 .cgi + CGI α׷ Ѵ.

+ +

+ <Directory /home/*/public_html>
+ + Options +ExecCGI
+ AddHandler cgi-script .cgi
+
+ </Directory> +

+ +

ϸ 丮 cgi-bin + 丮 ִ CGI α׷ νѴ.

+ +

+ <Directory /home/*/public_html/cgi-bin>
+ + Options ExecCGI
+ SetHandler cgi-script
+
+ </Directory> +

+ + + +
top
+
+

CGI α׷ ۼϱ

+ + +

``Ϲ'' α׷ְ CGI α׷ ̿ ΰ + ֵ ִ.

+ +

ù° ̴ CGI α׷ ٸ ϱ + MIME-type ؾ Ѵٴ ̴. HTTP + Ŭ̾Ʈ Ŭ̾Ʈ  ްԵ ̸ ˸. + .

+ +

+ Content-type: text/html +

+ +

ι° ̴ HTML Ȥ ִ + ؾ Ѵٴ ̴. κ HTML , + gif ׸ HTML ƴ ϴ CGI + α׷ ۼϴ 쵵 ִ.

+ +

ΰ ϰ CGI α׷ ۼ ̹ + ٸ α׷ ſ ϴ.

+ +

ó CGI α׷

+ + +

CGI α׷ . + ״ first.pl̶ Ͽ ϰ, + cgi-bin 丮 Ѵ.

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ print "Hello, World."; +

+ +

Perl ͼ ʴ Ͼ + ִ. ù° ġ(Ȥ ϴ ) + /usr/bin/perl ġ ִ Ͽ + α׷ ϶ ˸. ι° + content-type ϰ carriage-return ٹٲ + ι Ѵ. ׷ ڿ HTTP ϴ + , Ѵ. ° "Hello, World." + ڿ Ѵ. ̰ ̴.

+ +

ϰ ּҸ ԷѴ

+ +

+ http://www.example.com/cgi-bin/first.pl +

+ +

Ҹ Էϸ, â Hello, World. + δ. е , ѹ ϴ + ٸ õ ִ.

+ +
top
+
+

׷ ʾƿ!

+ + +

CGI α׷ Ҷ ִ + ⺻ װ.

+ +
+
CGI α׷
+
! Ѵٴ ̴. Ȯ + ùٷ ó Ѵٸ, CGI α׷ + ùٸ Content-Type Ͽ ȮѴ.
+ +
CGI α׷ ҽڵ Ȥ "POST Method Not Allowed" +
+
CGI α׷ ϵ ġ + ʾҴٴ ̴. ġ ϱ + ٽ а κ ִ ãƺ.
+ +
"Forbidden" ϴ
+
ִٴ ̴. ġ + α Ʒ ϱ + Ȯ϶.
+ +
"Internal Server Error"
+
ġ α Ƹ + CGI α׷ Բ "Premature end of + script headers" ̴. Ʒ ϳ + ȮϿ  CGI α׷ HTTP + ߴ ˾ƺ.
+
+ +

ϱ

+ + +

Ű ϶. + , ϸ Ư ( + nobody www) Ѵ. + ׷ Ϸ ʿϴ. + Ͽ nobody ϱ⿡ + ֱ ο ش.

+ +

+ chmod a+x first.pl +

+ +

, α׷ ٸ аų ٸ Ͽ + ʿϴ.

+ + + +

ȯ

+ + +

࿡ α׷ ϸ ڵ  + ޵ȴ. , PATH + ã Ҹ ˷ش.

+ +

α׷ CGI α׷ Ҷ + PATH ٸ ִ. ( , + sendmail ) CGI α׷ ȿ ϴ + ɾ η ؾ ɾ ã + ִ.

+ +

CGI α׷ ù° ٿ + ũƮ ( perl) ο + ߻Ѵ.

+ +

+ #!/usr/bin/perl +

+ +

ȮѴ.

+ +

, CGI α׷ ٸ ȯ溯 + Ѵٸ ġ α׷ ؾ + Ѵ.

+ + + +

α׷

+ + +

CGI α׷ ϴ κ α׷ ü + ̴. Ư ΰ Ǽ ʾҰ + ִٸ ׷. ϱ + ࿡ α׷ غ. , + Ѵ.

+ +

+ cd /usr/local/apache2/cgi-bin
+ ./first.pl +

+ +

(perl ͸ . + ġ ũƮ ù° ٿ ִ Ͽ ͸ + ãƾ Ѵ.)

+ +

α׷ Content-Type + HTTP ϰ ؾ Ѵ. ٸ + Ѵٸ ġ Premature + end of script headers ȯѴ. ڼ + CGI α׷ ۼϱ ϶.

+ + +

α

+ + +

α״ ̴. ߸Ǹ α׿ + . α׸ Ѵ. Ʈ + ȣϴ α׸ ϰ Ѵٸ, Ƹ + ٸ ü ˾ƺ Ѵ. α׸ , + κ ľϿ ذ ִ.

+ + +

Suexec

+ + +

suexec α׷ + ϸ  ȣƮ Ȥ  丮 ִ + CGI α׷ ٸ ִ. + Suexec ſ ϰ ˻ϸ, ˻縦 ϳ + ϸ CGI α׷ ʰ Premature + end of script headers ȯѴ.

+ +

suexec ϰ ִ ˷ apachectl -V + Ͽ SUEXEC_BIN ġ ȮѴ. ġ + Ҷ ҿ suexec ߰ϸ, suexec + ִ.

+ +

suexec ߴٸ ؼ ȵȴ. + suexec SUEXEC_BIN ġ + ִ suexec (Ȥ ϸ + ٲٰ) ϸ ȴ. suexec ׷ + ϰ ʹٸ, suexec -V Ͽ suexec + α ġ ˾Ƴ αϿ  Ģ + ִ ã´.

+ +
top
+
+

ڿ °?

+ + +

CGI α׷ֿ ͼ ڿ ϸ + ȴ. ü ϴ + ϴ ̴. "Hello, World." ϴ + α׷ ۼ ̷ α׷ + ⶧̴.

+ +

ȯ溯

+ + +

ȯ溯 ǻ͸ ϴ + ٴϴ ̴. ȯ溯 path (ǻͰ Է + ɾ شϴ ã ), ڸ, ͹̳ + . Ϲ ȯ溯 + Ʈ env ԷѴ.

+ +

CGI Ҷ ȯ溯 + ȯѴ. (Netscape, IE, + Lynx), (ġ, IIS, WebSite), ϴ CGI + α׷ ִ.

+ +

CGI α׷Ӵ ̷ ְ, + ȯ溯 Ŭ̾Ʈ- ſ Ϻκ Ѵ. + ü ʼ http://hoohoo.ncsa.uiuc.edu/cgi/env.html ִ.

+ +

Ʒ Perl CGI α׷ ڽſ ޵ + ȯ溯 ش. ġ cgi-bin + 丮 ̿ α׷ ΰ ִ. + ʼ̰ ̴. ׷ Ͽ + δ. , ġ ⺻ ϴ ȯ溯 + ܿ ȯ溯 + ߰ ִ.

+ +

+ #!/usr/bin/perl
+ print "Content-type: text/html\n\n";
+ foreach $key (keys %ENV) {
+ + print "$key --> $ENV{$key}<br>";
+
+ } +

+ + +

STDIN STDOUT

+ + +

, Ŭ̾Ʈ ǥԷ(STDIN) + ǥ(STDOUT) Ѵ. ϻ + STDIN Ű峪 α׷ óϴ + Ÿ, STDOUT ܼ̳ ȭ Ѵ.

+ +

CGI α׷ (form) POSTϸ + Ŀ Է ڷḦ Ư  CGI α׷ + STDIN Ѵ. ׷ α׷ Ű峪 + Ͽ ڷḦ óϵ ڷḦ ó ִ.

+ +

"Ư " ſ ϴ. ׸ ̸ ȣ(=) + ϰ, ׸ ̸ ֵ ۻ(&) + Ѵ. , ۻ, ȣ ڿ ڴ + ȥ ʵ 16 ȯѴ. ڷ ڿ + .

+ +

+ name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey +

+ +

URL ڿ ̷ ڿ ȴ. + ڿ QUERY_STRING̶ ȯ溯 Ѵ. + ̸ GET û̶ Ѵ. FORM + ± METHOD Ӽ Ͽ HTML (form) + ڷḦ GET POST Ѵ.

+ +

α׷ ̷ ڿ ɰ + Ѵ. ̷ ڷ ó CGI α׷ ٸ + Ǵ ̺귯 ִ.

+ +
top
+
+

CGI /̺귯

+ + +

CGI α׷ ۼҶ ۾ ִ ڵ + ̺귯 Ȥ غ Ѵ. ̷ + ϸ װ ٰ α׷ ִ.

+ +

Perl CGI α׷ ۼѴٸ CPAN ã + ִ. CGI ߿ θ Ǵ + CGI.pm̴. κ α׷ ּ + CGI::Lite ִ.

+ +

C CGI α׷ ۼѴٸ . + ϳ http://www.boutell.com/cgic/ + ִ CGIC ̺귯.

+
top
+
+

...

+ + +

ſ CGI ִ. ׷ comp.infosystems.www.authoring.cgi + CGI ִ. HTML Writers Guild -servers + ϸƮ ã⿡ Ǹ Ҵ. http://www.hwg.org/lists/hwg-servers/ + ִ.

+ +

׸ CGI α׷ ۿ + CGI Ծ о 𸥴. NCSA + ְ, ʾ Common Gateway Interface + RFC Ʈ ִ.

+ +

ϸƮ ׷쿡 ݰ ִ CGI + Ҷ ߻ , ߻ +  ٸ, ϴ , CGI α׷ ۼ + , ϸ ش ڵ带 ڼ . ׷ ذå + ã .

+ +

ġ ҽڵ尡 ߸Ǿٰ Ȯ ʴ CGI + ġ ͺ̽ ø + ȵȴ.

+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/htaccess.html b/rubbos/app/apache2/manual/howto/htaccess.html new file mode 100644 index 00000000..9c5991ce --- /dev/null +++ b/rubbos/app/apache2/manual/howto/htaccess.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: htaccess.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: htaccess.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: htaccess.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/howto/htaccess.html.en b/rubbos/app/apache2/manual/howto/htaccess.html.en new file mode 100644 index 00000000..f9d6614f --- /dev/null +++ b/rubbos/app/apache2/manual/howto/htaccess.html.en @@ -0,0 +1,386 @@ + + + +Apache Tutorial: .htaccess files - Apache HTTP Server + + + + + +
<-
+

Apache Tutorial: .htaccess files

+
+

Available Languages:  en  | + ja  | + ko 

+
+ +

.htaccess files provide a way to make configuration +changes on a per-directory basis.

+
+ +
top
+
top
+
+

What they are/How to use them

+ + +

.htaccess files (or "distributed configuration files") + provide a way to make configuration changes on a per-directory basis. A + file, containing one or more configuration directives, is placed in a + particular document directory, and the directives apply to that + directory, and all subdirectories thereof.

+ +

Note:

+

If you want to call your .htaccess file something + else, you can change the name of the file using the AccessFileName directive. For example, + if you would rather call the file .config then you + can put the following in your server configuration file:

+ +

+ AccessFileName .config +

+
+ +

In general, .htaccess files use the same syntax as + the main configuration + files. What you can put in these files is determined by the + AllowOverride directive. This + directive specifies, in categories, what directives will be + honored if they are found in a .htaccess file. If a + directive is permitted in a .htaccess file, the + documentation for that directive will contain an Override section, + specifying what value must be in AllowOverride in order for that + directive to be permitted.

+ +

For example, if you look at the documentation for the AddDefaultCharset + directive, you will find that it is permitted in .htaccess + files. (See the Context line in the directive summary.) The Override line reads + FileInfo. Thus, you must have at least + AllowOverride FileInfo in order for this directive to be + honored in .htaccess files.

+ +

Example:

+ + + + + + + + + +
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
+ +

If you are unsure whether a particular directive is permitted in a + .htaccess file, look at the documentation for that + directive, and check the Context line for ".htaccess".

+
top
+
+

When (not) to use .htaccess files

+ +

In general, you should never use .htaccess files unless + you don't have access to the main server configuration file. There is, + for example, a prevailing misconception that user authentication should + always be done in .htaccess files. This is simply not the + case. You can put user authentication configurations in the main server + configuration, and this is, in fact, the preferred way to do + things.

+ +

.htaccess files should be used in a case where the + content providers need to make configuration changes to the server on a + per-directory basis, but do not have root access on the server system. + In the event that the server administrator is not willing to make + frequent configuration changes, it might be desirable to permit + individual users to make these changes in .htaccess files + for themselves. This is particularly true, for example, in cases where + ISPs are hosting multiple user sites on a single machine, and want + their users to be able to alter their configuration.

+ +

However, in general, use of .htaccess files should be + avoided when possible. Any configuration that you would consider + putting in a .htaccess file, can just as effectively be + made in a <Directory> section in your main server + configuration file.

+ +

There are two main reasons to avoid the use of + .htaccess files.

+ +

The first of these is performance. When AllowOverride + is set to allow the use of .htaccess files, Apache will + look in every directory for .htaccess files. Thus, + permitting .htaccess files causes a performance hit, + whether or not you actually even use them! Also, the + .htaccess file is loaded every time a document is + requested.

+ +

Further note that Apache must look for .htaccess files + in all higher-level directories, in order to have a full complement of + directives that it must apply. (See section on how + directives are applied.) Thus, if a file is requested out of a + directory /www/htdocs/example, Apache must look for the + following files:

+ +

+ /.htaccess
+ /www/.htaccess
+ /www/htdocs/.htaccess
+ /www/htdocs/example/.htaccess +

+ +

And so, for each file access out of that directory, there are 4 + additional file-system accesses, even if none of those files are + present. (Note that this would only be the case if + .htaccess files were enabled for /, which + is not usually the case.)

+ +

The second consideration is one of security. You are permitting + users to modify server configuration, which may result in changes over + which you have no control. Carefully consider whether you want to give + your users this privilege. Note also that giving users less + privileges than they need will lead to additional technical support + requests. Make sure you clearly tell your users what level of + privileges you have given them. Specifying exactly what you have set + AllowOverride to, and pointing them + to the relevant documentation, will save yourself a lot of confusion + later.

+ +

Note that it is completely equivalent to put a .htaccess + file in a directory /www/htdocs/example containing a + directive, and to put that same directive in a Directory section + <Directory /www/htdocs/example> in your main server + configuration:

+ +

.htaccess file in /www/htdocs/example:

+ +

Contents of .htaccess file in + /www/htdocs/example

+ AddType text/example .exm +

+ +

Section from your httpd.conf + file

+ <Directory /www/htdocs/example>
+ + AddType text/example .exm
+
+ </Directory> +

+ +

However, putting this configuration in your server configuration + file will result in less of a performance hit, as the configuration is + loaded once when Apache starts, rather than every time a file is + requested.

+ +

The use of .htaccess files can be disabled completely + by setting the AllowOverride + directive to none:

+ +

+ AllowOverride None +

+
top
+
+

How directives are applied

+ +

The configuration directives found in a .htaccess file + are applied to the directory in which the .htaccess file + is found, and to all subdirectories thereof. However, it is important + to also remember that there may have been .htaccess files + in directories higher up. Directives are applied in the order that they + are found. Therefore, a .htaccess file in a particular + directory may override directives found in .htaccess files + found higher up in the directory tree. And those, in turn, may have + overridden directives found yet higher up, or in the main server + configuration file itself.

+ +

Example:

+ +

In the directory /www/htdocs/example1 we have a + .htaccess file containing the following:

+ +

+ Options +ExecCGI +

+ +

(Note: you must have "AllowOverride Options" in effect + to permit the use of the "Options" directive in + .htaccess files.)

+ +

In the directory /www/htdocs/example1/example2 we have + a .htaccess file containing:

+ +

+ Options Includes +

+ +

Because of this second .htaccess file, in the directory + /www/htdocs/example1/example2, CGI execution is not + permitted, as only Options Includes is in effect, which + completely overrides any earlier setting that may have been in + place.

+ +

Merging of .htaccess with the main + configuration files

+ +

As discussed in the documentation on Configuration Sections, + .htaccess files can override the <Directory> sections for + the corresponding directory, but will be overriden by other types + of configuration sections from the main configuration files. This + fact can be used to enforce certain configurations, even in the + presence of a liberal AllowOverride setting. For example, to + prevent script execution while allowing anything else to be set in + .htaccess you can use:

+ +

+<Directory />
+ +Allowoverride All
+
+</Directory>
+
+<Location />
+ +Options +IncludesNoExec -ExecCGI
+
+</Location> +

+ + +
top
+
+

Authentication example

+ +

If you jumped directly to this part of the document to find out how + to do authentication, it is important to note one thing. There is a + common misconception that you are required to use + .htaccess files in order to implement password + authentication. This is not the case. Putting authentication directives + in a <Directory> + section, in your main server configuration file, is the preferred way + to implement this, and .htaccess files should be used only + if you don't have access to the main server configuration file. See above for a discussion of when you should and should + not use .htaccess files.

+ +

Having said that, if you still think you need to use a + .htaccess file, you may find that a configuration such as + what follows may work for you.

+ +

You must have "AllowOverride AuthConfig" in effect for + these directives to be honored.

+ +

.htaccess file contents:

+ +

+ AuthType Basic
+ AuthName "Password Required"
+ AuthUserFile /www/passwords/password.file
+ AuthGroupFile /www/passwords/group.file
+ Require Group admins +

+ +

Note that AllowOverride AuthConfig must be in effect + for these directives to have any effect.

+ +

Please see the authentication tutorial for a + more complete discussion of authentication and authorization.

+
top
+
+

Server Side Includes example

+ +

Another common use of .htaccess files is to enable + Server Side Includes for a particular directory. This may be done with + the following configuration directives, placed in a + .htaccess file in the desired directory:

+ +

+ Options +Includes
+ AddType text/html shtml
+ AddHandler server-parsed shtml +

+ +

Note that AllowOverride Options and AllowOverride + FileInfo must both be in effect for these directives to have any + effect.

+ +

Please see the SSI tutorial for a more + complete discussion of server-side includes.

+
top
+
+

CGI example

+ +

Finally, you may wish to use a .htaccess file to permit + the execution of CGI programs in a particular directory. This may be + implemented with the following configuration:

+ +

+ Options +ExecCGI
+ AddHandler cgi-script cgi pl +

+ +

Alternately, if you wish to have all files in the given directory be + considered to be CGI programs, this may be done with the following + configuration:

+ +

+ Options +ExecCGI
+ SetHandler cgi-script +

+ +

Note that AllowOverride Options and AllowOverride + FileInfo must both be in effect for these directives to have any + effect.

+ +

Please see the CGI tutorial for a more + complete discussion of CGI programming and configuration.

+ +
top
+
+

Troubleshooting

+ +

When you put configuration directives in a .htaccess + file, and you don't get the desired effect, there are a number of + things that may be going wrong.

+ +

Most commonly, the problem is that AllowOverride is not + set such that your configuration directives are being honored. Make + sure that you don't have a AllowOverride None in effect + for the file scope in question. A good test for this is to put garbage + in your .htaccess file and reload. If a server error is + not generated, then you almost certainly have AllowOverride + None in effect.

+ +

If, on the other hand, you are getting server errors when trying to + access documents, check your Apache error log. It will likely tell you + that the directive used in your .htaccess file is not + permitted. Alternately, it may tell you that you had a syntax error, + which you will then need to fix.

+ +
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/htaccess.html.ja.utf8 b/rubbos/app/apache2/manual/howto/htaccess.html.ja.utf8 new file mode 100644 index 00000000..bafb8b7c --- /dev/null +++ b/rubbos/app/apache2/manual/howto/htaccess.html.ja.utf8 @@ -0,0 +1,347 @@ + + + +Apache チュートリアル: .htaccess ファイル - Apache HTTP サーバ + + + + + +
<-
+

Apache チュートリアル: .htaccess ファイル

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

.htaccess ファイルはディレクトリ毎に設定を変更する方法を +提供します。

+
+ +
top
+
top
+
+

.htaccess ファイルとは何か/その使い方

+ + +

.htaccess ファイル (「分散設定ファイル」) は + ディレクトリ毎に設定を変更する方法を提供します。ディレクティブの + 書かれたファイルをディレクトリに置くことで、そのディレクトリとその + サブディレクトリすべてにディレクティブを適用させることができます。

+ +

注:

+

.htaccess ファイルを別の名前にしたい場合は、 + AccessFileName ディレクティブを + 使って変更することができます。例えば、そのファイルを .config + という名前にしたい場合は、以下の設定をサーバ設定ファイルに入れることが + できます:

+ +

+ AccessFileName .config +

+
+ +

一般に、.htaccess ファイルの構文は + 主設定ファイル + と同じです。これらのファイルに書くことのできるディレクティブは AllowOverride ディレクティブにより決まります。 + このディレクティブは、.htaccess ファイルに + 書かれたディレクティブの中で、、 + どのディレクティブが適用されるかをカテゴリー単位で指定します。 + .htaccess に書くことのできるディレクティブであれば、 + 説明文書には「上書き」という項目があり、.htaccess に書くことができるように + なるための AllowOverride の値が指定されています。

+ +

例えば、AddDefaultCharset ディレクティブの説明を + 見ると、.htaccess ファイルでの使用が許可されていることが + わかります。 (ディレクティブの概要の所にある「コンテキスト」と書かれている + 行を見てください。) 上書きと書かれている行には + FileInfo とあります。ですから、.htaccess 中の + このディレクティブが有効になるためには、少なくとも + AllowOverride FileInfo が設定されている必要があります。

+ +

例:

+ + + + + + + + + +
コンテキスト:サーバ設定ファイル,バーチャルホスト,ディレクトリ,.htaccess
上書き:FileInfo
+ +

あるディレクティブを .htaccess ファイルに書くことができるか + どうかわからないときは、そのディレクティブの説明を探して、".htaccess" + のための「コンテキスト」の行を調べてください。

+
top
+
+

いつ .htaccess ファイルを使う(使わない)か。

+ +

一般的に、サーバの主設定ファイルにアクセスできない場合を除いて、 + .htaccess ファイルの使用は極力避けてください。 + 世の中には、例えば、ユーザ認証は常に .htaccess ファイルで + 行なわなければならない、という誤解が広まっていますが、まったくそんなことは + ありません。ユーザ認証の設定はサーバ主設定ファイルに書くことができ、 + 実際、その方がより良い設定方法です。

+ +

.htaccess ファイルはコンテンツ提供者がディレクトリ毎の + 設定を行ないたいけれど、サーバシステムの root アクセス権限を持っていない + という場合にのみ使うべきものです。サーバ管理者が頻繁に設定変更を行ないたくは + ない、というときには個々のユーザが .htaccess ファイルを使って + 自分で設定の変更を行なうことを許可した方が良いときもあるでしょう。 + これは特に、ISP が複数のユーザのサイトを一つのマシンでホストしていて、 + 各ユーザが設定の変更をできるようにしたいようなときにあてはまります。

+ +

しかし、普通は可能であれば .htaccess ファイルの使用は + 避けてください。.htaccess ファイルに書こうと考えるような + すべての設定は、サーバの主設定ファイルの <Directory> セクションで同じように行なうことが + できます。

+ +

.htaccess ファイルの使用を避ける理由は主に二つあります。

+ +

一つ目はサーバの性能の問題です。AllowOverride ディレクティブが + .htaccess ファイルの設定を許可している場合は、Apache は + 各ディレクトリで .htaccess ファイルを探します。 + ですから、.htaccess ファイルを許可すると、実際に使用しているか + どうかに関わらず、性能の低下を招くことになります! また、.htaccess + ファイルは文書がリクエストされる度に読み込まれます。

+ +

さらに、Apache は適用すべきディレクティブを集めるために、すべての + 上位のディレクトリの .htaccess ファイルを探す必要があることにも + 注意してください。(ディレクティブが適用される方法を + 参照してください。)ですから、/www/htdocs/example にある + ファイルがリクエストされたときは、Apache は以下のファイルを調べます。

+ +

+ /.htaccess
+ /www/.htaccess
+ /www/htdocs/.htaccess
+ /www/htdocs/example/.htaccess +

+ +

ですから、そのディレクトリのそれぞれのファイルへのアクセスに対して、 + 上の例のファイルがまったく存在しないときでも、追加のファイルシステムの + アクセスが行なわれることになります。(これは、.htaccess が + / に対して有効になっているときの場合で、普通はそうなって + いないことに注意してください。)

+ +

二つ目はセキュリティです。ユーザにサーバの設定を変更することを + 許可することになりますので、あなた自身が管理できない変更をされる + 恐れがあります。ユーザにこの特権を与えるのが良いのかどうか、十分 + 検討してください。また、ユーザに与える権限が必要なものよりも少なすぎると、 + 余分な技術サポート報告を受け取るようになる可能性が高いことにも + 注意してください。確実に、ユーザにどの程度の権限を与えたか明確に告げるように + してください。AllowOverride に + 何を設定したかということと、関連する文書を示すことで、 + 後々の混乱をぐっと減らすことが + できます。

+ +

ところで、ディレクティブの書かれた .htaccess を + /www/htdocs/example に置くことと、同じディレクティブを + 主サーバ設定の Directory セクション + <Directory /www/htdocs/example> に書くことは + 完全に等価です:

+ +

/www/htdocs/example.htaccess ファイル:

+ +

/www/htdocs/example の .htaccess ファイルの + 内容

+ AddType text/example .exm +

+ +

httpd.conf のセクション + file

+ <Directory /www/htdocs/example>
+ + AddType text/example .exm
+
+ </Directory> +

+ +

しかし、この設定はサーバ設定ファイルに書いた方がパフォーマンスの + 低下が少なくなります。ファイルがリクエストされる度に + 読み込まれる代わりに、Apache の起動時に 1 回だけ読み込めば + よくなるからです。

+ +

AllowOverride ディレクティブの + 値を none に設定することで .htaccess ファイル + の使用を完全に無効にすることができます。

+ +

+ AllowOverride None +

+
top
+
+

ディレクティブの適用のされ方

+ +

.htaccess ファイルの設定ディレクティブは .htaccess + ファイルの存在するディレクトリと、そのサブディレクトリすべてに適用されます。 + しかし、上の階層のディレクトリにも .htaccess ファイルが + 存在するかもしれないことを覚えておくことは大切です。ディレクティブは現れる + 順番に適用されます。ですから、あるディレクトリの .htaccess は + ディレクトリツリーのより上の階層の .htaccess ファイルの + 設定を上書きするかもしれません。そして、その .htaccess も + より上の階層で書かれたディレクティブを上書きしたり、主サーバ設定ファイル + そのものの設定を上書きしたりしているかもしれません。

+ +

例:

+ +

ディレクトリ /www/htdocs/example1 に以下の内容の + .htaccess ファイルがあります:

+ +

+ Options +ExecCGI +

+ +

(注: .htaccess + ファイルで "Options" ディレクティブが有効になるためには、 + "AllowOverride Options" を有効にする必要があります。)

+ +

ディレクトリ /www/htdocs/example1/example2 には + 以下のような .htaccess ファイルがあります:

+ +

+ Options Includes +

+ +

二つめの .htaccess により、ディレクトリ + /www/htdocs/example1/example2 では CGI の実行は + 許可されません。これは、Options Includes のみが + 効力を持ち、それがすべての以前の設定を上書きするからです。

+
top
+
+

認証の例

+ +

もし認証の方法を知るためにこの部分に直接来たのであれば、次のことを + 知っておくことが重要です。よくある誤解に、パスワード認証を行なうためには + .htaccess ファイルを使う必要がある、というものがあります。 + これは正しくありません。主サーバ設定ファイルの <Directory> セクションに + 認証用のディレクティブを書く方が推奨される方法で、.htaccess + ファイルは主サーバ設定ファイルを変更できないときにのみ使用すべきです。 + いつ .htaccess ファイルを使うべきで、いつ使うべきではないかに + ついては を参照してください。

+ +

以上のことをふまえた上で、もし .htaccess の使用が + まだ必要だと思う場合は、次のようなものが望みのことをしてくれるかも + しれません。

+ +

ディレクティブが適用されるためには、 + "AllowOverride AuthConfig" の設定がなされている + 必要があります。

+ +

.htaccess ファイルの内容:

+ +

+ AuthType Basic
+ AuthName "Password Required"
+ AuthUserFile /www/passwords/password.file
+ AuthGroupFile /www/passwords/group.file
+ Require Group admins +

+ +

これらのディレクティブが有効になるためには、 + AllowOverride AuthConfig が有効でなくてはならないことに + 注意してください。

+ +

認証と承認については 認証チュートリアルを + 参照してください。

+
top
+
+

SSI の例

+ +

もう一つの .htaccess ファイルのよくある利用法は + 特定のディレクトリで SSI を有効にすることです。これは、望みのディレクトリの + .htaccess ファイルに以下の設定ディレクティブを書くことで + 達成できます:

+ +

+ Options +Includes
+ AddType text/html shtml
+ AddHandler server-parsed shtml +

+ +

これらのディレクティブが有効になるためには、 + AllowOverride OptionsAllowOverride + FileInfo が有効になっている必要があることに注意してください。

+ +

よりまとまった SSI の説明は SSI チュートリアルを + 参照してください。

+
top
+
+

CGI の例

+ +

最後に、特定のディレクトリで CGI プログラムの実行を許可したいことが + あるでしょう。これは以下の設定で行なうことができます:

+ +

+ Options +ExecCGI
+ AddHandler cgi-script cgi pl +

+ +

もしくは、あるディレクトリのすべてのファイルが CGI プログラムと + みなされるようにしたいなら、以下の設定で実現することができます:

+ +

+ Options +ExecCGI
+ SetHandler cgi-script +

+ +

これらのディレクティブが有効になるためには、 + AllowOverride OptionsAllowOverride + FileInfo が有効である必要があることに注意してください。

+ +

CGI プログラムと設定のよりまとまった説明は CGI チュートリアルを参照してください。

+ +
top
+
+

問題解決

+ +

設定ディレクティブを .htaccess ファイルに書いたけれども、 + 期待した効果が得られないときには、いくつかの原因が考えられます。

+ +

一番よくあることは、設定ディレクティブが考慮されるようには + AllowOverride が設定されていない + というものです。該当のファイルのスコープに AllowOverride None + が設定されていないことを確認してください。これを調べるための良い方法は、 + .htaccess ファイルにごみを書いて、リロードすることです。 + サーバのエラーが生成されないときは、ほぼ確実に AllowOverride + None が設定されている状態になっています。

+ +

そうではなく、文書をアクセスしようとしたときにエラーが発生している + ときは、Apache のエラーログを調べてください。.htaccess ファイルで + 使用されたディレクティブが許可されていない、ということを知らせている + 可能性が高いです。または、構文の間違いがあることを述べているかもしれません。 + その場合にはまずそれを修正する必要があります。

+ +
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/htaccess.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/htaccess.html.ko.euc-kr new file mode 100644 index 00000000..7fcb2b92 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/htaccess.html.ko.euc-kr @@ -0,0 +1,334 @@ + + + +ġ 丮: .htaccess - Apache HTTP Server + + + + + +
<-
+

ġ 丮: .htaccess

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

.htaccess Ͽ 丮 + ִ.

+
+ +
top
+
top
+
+

̸/ ϴ°

+ + +

.htaccess (Ȥ "л ") + ϸ 丮 ִ. þ + ִ Ư 丮 θ, 丮 + 丮 þ Ѵ.

+ +

:

+

.htaccess ϸ ٸ ϰ ʹٸ, + AccessFileName þ + Ͽ ִ. , .config + ϸ Ϸ Ͽ ߰Ѵ.

+ +

+ AccessFileName .config +

+
+ +

Ϲ .htaccess ּ + . AllowOverride + þ Ͽ ִ Ѵ. þ + .htaccess Ͽ ϴ þ з Ѵ. + þ .htaccess Ͽ ִٸ, + ش þ Override ׸ þ ϱ + AllowOverride + ˷ش.

+ +

, AddDefaultCharset + þ þ .htaccess Ͽ + ִ. (þ ࿡ ׸ .) + Override + ٿ FileInfo ִ. ׷ þ + .htaccess Ͽ ϱؼ ּ + AllowOverride FileInfo ʿϴ.

+ +

:

+ + + + + + + + + +
:ּ, ȣƮ, directory, .htaccess
Override:FileInfo
+ +

Ư þ .htaccess Ͽ + ִ ñϸ þ ׸ ".htaccess" + ִ ȮѴ.

+
top
+
+

.htaccess ϳ + (Ȥ ʳ)

+ +

Ϲ ּϿ 찡 ƴ϶ + .htaccess ϸ ȵȴ. , + ׻ .htaccess Ͽ ־ + Ѵٴ ߸ ˷ ش. ̴ ƴϴ. ּ + ְ, ̷ Ѵ.

+ +

.htaccess ڰ 丮 + ٸϰ ýۿ root + 쿡 Ѵ. ڰ ϰ + Ϲ ڰ .htaccess + ϵ ϴ ٶϴ. , + ǻͿ Ʈ ϴ ISP ڰ + ڽ ϰ 찡 ׷ϴ.

+ +

׷ Ϲ .htaccess + ؾ Ѵ. .htaccess Ͽ ϴ þ + ּ <Directory> ǰ ȿ + ִ.

+ +

ΰ ū .htaccess + ؾ Ѵ.

+ +

ù° ̴. AllowOverride .htaccess + ϵ ϸ, ġ 丮 + .htaccess ã´. ׷ + .htaccess ϸ + ʴ 쿡 ! , .htaccess + ûҶ оδ.

+ +

Դٰ ؾ ϴ ü þ ġ + 丮 .htaccess ã´. + ( þ ϳ .) + ׷ /www/htdocs/example 丮 ִ + ûϸ, ġ ϵ ãƾ Ѵ.

+ +

+ /.htaccess
+ /www/.htaccess
+ /www/htdocs/.htaccess
+ /www/htdocs/example/.htaccess +

+ +

׷ 丮 ִ +  Ͻý 4 ؾ Ѵ. + (/ .htaccess + 츦 Ѵ. ʴ´.)

+ +

ι° ̴. ڿ + ָ ȭ Ͼ ִ. ڿ + ̷ ϶. , ڰ ϴ ͺ + ָ û ´. ڿ + Ȯ ˷. ڿ AllowOverride  Ͽ + Ȯ ˸ ϸ ȥ + ִ.

+ +

þ /www/htdocs/example 丮 + .htaccess δ Ͱ ּ + <Directory /www/htdocs/example> Directory + δ .

+ +

/www/htdocs/example ִ + .htaccess :

+ +

/www/htdocs/example ִ + .htaccess

+ AddType text/example .exm +

+ +

httpd.conf Ͽ ִ

+ <Directory /www/htdocs/example>
+ + AddType text/example .exm
+
+ </Directory> +

+ +

׷ û ʰ ġ + Ҷ ѹ б⶧ Ͽ + ϸ .

+ +

AllowOverride þ + none ϸ .htaccess + .

+ +

+ AllowOverride None +

+
top
+
+

 þ ϳ

+ +

.htaccess ߰ 丮 丮 + 丮 .htaccess Ͽ ִ + þ Ѵ. ׷ 丮 .htaccess + ؾ Ѵ. ߰ þ Ѵ. Ư + 丮 ִ .htaccess 丮 + ִ .htaccess þ ȿ + ְ, 丮 ִ þ 丮 Ȥ + ּϿ ִ þ ȿ ִ.

+ +

:

+ +

/www/htdocs/example1 丮 + .htaccess ִ.

+ +

+ Options +ExecCGI +

+ +

(: .htaccess Ͽ "Options" þ Ϸ + "AllowOverride Options" ʿϴ.)

+ +

/www/htdocs/example1/example2 丮 + .htaccess ִ.

+ +

+ Options Includes +

+ +

ι° .htaccess + Options Includes ȿ + ⶧ /www/htdocs/example1/example2 + 丮 CGI ʴ´.

+
top
+
+

+ +

˱ ٷ ̰ д´ٸ + ִ. ȣ Ϸ .htaccess + ʿϴٴ ذ θ ִ. ̴ ƴϴ. + ּ <Directory> ǿ þ + δ ϴ ̰, ּ + 쿡 .htaccess ؾ + Ѵ. .htaccess ؾ ϴ + ƾ ϴ + Ͽ.

+ +

տ .htaccess + ʿϴٰ Ǹ Ʒ ̴.

+ +

þ Ϸ "AllowOverride AuthConfig" + ־ Ѵ.

+ +

.htaccess .

+ +

+ AuthType Basic
+ AuthName "Password Required"
+ AuthUserFile /www/passwords/password.file
+ AuthGroupFile /www/passwords/group.file
+ Require Group admins +

+ +

þ ϱؼ + AllowOverride AuthConfig þ ʿ + ϶.

+ +

Ѻο ڼ + 丮 ٶ.

+
top
+
+

Server Side Includes

+ +

Ǵٸ Ϲ .htaccess 뵵 + Ư 丮 Server Side Includes ϰ + ̴. ϴ 丮 .htaccess Ͽ + þ ϸ ȴ.

+ +

+ Options +Includes
+ AddType text/html shtml
+ AddHandler server-parsed shtml +

+ +

þ Ϸ AllowOverride Options + AllowOverride FileInfo ʿ ϶.

+ +

server-side includes ڼ SSI 丮 ٶ.

+
top
+
+

CGI

+ +

.htaccess Ͽ Ư + 丮 CGI α׷ ϰ ʹٸ, + Ѵ.

+ +

+ Options +ExecCGI
+ AddHandler cgi-script cgi pl +

+ +

Ȥ 丮 ִ CGI α׷ + óϰ ʹٸ ϴ.

+ +

+ Options +ExecCGI
+ SetHandler cgi-script +

+ +

þ Ϸ AllowOverride Options + AllowOverride FileInfo ʿ ϶.

+ +

CGI α׷ְ ڼ CGI 丮 ٶ.

+ +
top
+
+

ذ

+ +

.htaccess Ͽ þ ϴ + ʴ ִ.

+ +

Ϲ þ ϰ AllowOverride + . Ǵ AllowOverride None + ȮѴ. .htaccess ƹԳ + ٽ Ͽ ˻غ ִ. + Ȯ + AllowOverride None .

+ +

ݴ Ҷ ߻ϸ ġ α׸ + . Ƹ .htaccess Ͽ ִ þ + ʴ´ٰ ̴. ƴϰ ִٸ + ģ.

+ +
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/index.html b/rubbos/app/apache2/manual/howto/index.html new file mode 100644 index 00000000..4f3357b3 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/index.html @@ -0,0 +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.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 diff --git a/rubbos/app/apache2/manual/howto/index.html.en b/rubbos/app/apache2/manual/howto/index.html.en new file mode 100644 index 00000000..5ef8dc03 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/index.html.en @@ -0,0 +1,105 @@ + + + +How-To / Tutorials - Apache HTTP Server + + + + + +
<-
+

How-To / Tutorials

+
+

Available Languages:  en  | + ja  | + ko 

+
+
+
top
+
+

How-To / Tutorials

+ + + +
+
Authentication
+
+

Authentication is any process by which you verify that + someone is who they claim they are. Authorization is any + process by which someone is allowed to be where they want to + go, or to have information that they want to have.

+ +

See: Authentication, Authorization, and Access Control

+
+
+ +
+
Dynamic Content with CGI
+
+

The CGI (Common Gateway Interface) defines a way for a web + server to interact with external content-generating programs, + which are often referred to as CGI programs or CGI scripts. It + is the simplest, and most common, way to put dynamic content on + your web site. This document will be an introduction to setting + up CGI on your Apache web server, and getting started writing + CGI programs.

+ +

See: CGI: Dynamic Content

+
+
+ +
+
.htaccess files
+
+

.htaccess files provide a way to make configuration + changes on a per-directory basis. A file, containing one or more + configuration directives, is placed in a particular document directory, + and the directives apply to that directory, and all subdirectories thereof.

+ +

See: .htaccess files

+
+
+ +
+
Introduction to Server Side Includes
+
+

SSI (Server Side Includes) are directives that are placed in + HTML pages, and evaluated on the server while the pages are + being served. They let you add dynamically generated content to + an existing HTML page, without having to serve the entire page + via a CGI program, or other dynamic technology.

+ +

See: Server Side Includes (SSI)

+
+
+ +
+
Per-user web directories
+
+

On systems with multiple users, each user can be permitted to have a + web site in their home directory using the UserDir directive. Visitors + to a URL http://example.com/~username/ will get content + out of the home directory of the user "username", out of + the subdirectory specified by the UserDir directive.

+ +

See: User web directories (public_html)

+
+
+ +
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/index.html.ja.utf8 b/rubbos/app/apache2/manual/howto/index.html.ja.utf8 new file mode 100644 index 00000000..cd111ec5 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/index.html.ja.utf8 @@ -0,0 +1,102 @@ + + + +How-To / チュートリアル - Apache HTTP サーバ + + + + + +
<-
+

How-To / チュートリアル

+
+

Available Languages:  en  | + ja  | + ko 

+
+
+
top
+
+

How-To / チュートリアル

+ + + +
+
認証
+
+

認証とは、誰かが自分は誰であるかを名乗っているものを検証する + 処理のことです。承認とは、誰かが望みの場所に辿り着けたり、 + 望みの情報を手に入れたりすることを許可する処理のことです。

+ +

参照: 認証、承認、アクセス制御

+
+
+ +
+
CGI による動的コンテンツ
+
+

CGI (Common Gateway Interface) はウェブサーバが外部のコンテンツ + 生成プログラムとどのように相互動作をするかを定義します。 + その外部プログラムは通常 CGI プログラムや CGI スクリプトと呼ばれます。 + CGI はウェブサイトに動的なコンテンツを追加するための、 + 一番単純でよく使われている方法です。この文書は Apache ウェブサーバに + CGI を設定し、CGI プログラムを書き始めるためのイントロダクションです。

+ +

参照: CGI: 動的コンテンツ

+
+
+ +
+
.htaccess ファイル
+
+

.htaccess ファイルはディレクトリ毎に設定を変更するための + 方法を提供します。設定ディレクティブが書かれたファイルが、あるドキュメント + ディレクトリに置かれると、ディレクティブはそのディレクトリと + すべてのサブディレクトリに適用されます。

+ +

参照: .htaccess ファイル

+
+
+ +
+
Server Side Includes イントロダクション
+
+

SSI (Server Side Includes) は HTML ページ中に書かれるディレクティブで、 + ページが送られる時にサーバにより評価されます。これにより、ページ全体を + CGI プログラムで生成したり、他の動的な技術を使うことなく、既存の HTML + ページに動的に生成された内容を付加することができます。

+ +

参照: Server Side Includes (SSI)

+
+
+ +
+
ユーザ毎のウェブディレクトリ
+
+

複数ユーザの存在するシステムでは、それぞれのユーザは UserDir ディレクティブを使うことによって + ホームディレクトリ上にウェブサイトを作成することができます。 + URL http://example.com/~username/ を訪れた人は + ユーザ "username" のホームディレクトリの、UserDir ディレクティブで指定された + サブディレクトリからコンテンツを得ることになります。

+ +

参照: ユーザウェブディレクトリ (public_html)

+
+
+ +
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/index.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/index.html.ko.euc-kr new file mode 100644 index 00000000..14434cc7 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/index.html.ko.euc-kr @@ -0,0 +1,107 @@ + + + +How-To / 丮 - Apache HTTP Server + + + + + +
<-
+

How-To / 丮

+
+

:  en  | + ja  | + ko 

+
+
+
top
+
+

How-To / 丮

+ + + +
+
+
+

(authentication) ڽ ϴ + Ȯϴ ̴. Ѻο(authorization) + Ȥ ϴ 򵵷 ϴ ̴.

+ +

: , Ѻο,

+
+
+ +
+
CGI
+
+

CGI (Common Gateway Interface) CGI + α׷ Ȥ CGI ũƮϰ θ, ( + ) ܺ α׷ ȣۿϴ Ѵ. + Ʈ ϰ + ̴. ġ CGI ϴ + Ұϰ, CGI α׷ ۼغ.

+ +

: CGI:

+
+
+ +
+
.htaccess
+
+

.htaccess Ͽ 丮 + ִ. þ ִ + Ư 丮 θ, 丮 丮 + þ Ѵ.

+ +

: .htaccess +

+
+
+ +
+
Server Side Includes Ұ
+
+

SSI (Server Side Includes) HTML ϴ + þ, Ҷ óѴ. SSI + ϸ CGI α׷̳ ٸ + ü  ʰ HTML + ߰ ִ.

+ +

: Server Side Includes (SSI)

+
+
+ +
+
ں 丮
+
+

ڰ ִ ýۿ UserDir þ ϸ + ڴ ڽ Ȩ丮 ȿ Ʈ + ִ. URL http://example.com/~username/ + ϸ "username" Ȩ丮 + UserDir + þ 丮 ִ + ȴ.

+ +

: 丮 + (public_html)

+
+
+ +
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/public_html.html b/rubbos/app/apache2/manual/howto/public_html.html new file mode 100644 index 00000000..f67a8c66 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/public_html.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: public_html.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: public_html.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: public_html.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: public_html.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/howto/public_html.html.en b/rubbos/app/apache2/manual/howto/public_html.html.en new file mode 100644 index 00000000..df6751db --- /dev/null +++ b/rubbos/app/apache2/manual/howto/public_html.html.en @@ -0,0 +1,163 @@ + + + +Per-user web directories - Apache HTTP Server + + + + + +
<-
+

Per-user web directories

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ +

On systems with multiple users, each user can be permitted to have a + web site in their home directory using the UserDir directive. Visitors + to a URL http://example.com/~username/ will get content + out of the home directory of the user "username", out of + the subdirectory specified by the UserDir directive.

+ +
+ +
top
+
top
+
+

Setting the file path with UserDir

+ + +

The UserDir + directive specifies a directory out of which per-user + content is loaded. This directive may take several different forms.

+ +

If a path is given which does not start with a leading slash, it is + assumed to be a directory path relative to the home directory of the + specified user. Given this configuration:

+ +

+ UserDir public_html +

+ +

the URL http://example.com/~rbowen/file.html will be + translated to the file path + /home/rbowen/public_html/file.html

+ +

If a path is given starting with a slash, a directory path will be + constructed using that path, plus the username specified. Given this + configuration:

+ +

+ UserDir /var/html +

+ +

the URL http://example.com/~rbowen/file.html will be + translated to the file path /var/html/rbowen/file.html

+ +

If a path is provided which contains an asterisk (*), a path is used + in which the asterisk is replaced with the username. Given this + configuration:

+ +

+ UserDir /var/www/*/docs +

+ +

the URL http://example.com/~rbowen/file.html will be + translated to the file path + /var/www/rbowen/docs/file.html

+ +
top
+
+

Restricting what users are permitted to use this + feature

+ + +

Using the syntax shown in the UserDir documentation, you can restrict + what users are permitted to use this functionality:

+ +

+ UserDir enabled
+ UserDir disabled root jro fish +

+ +

The configuration above will enable the feature for all users + except for those listed in the disabled statement. + You can, likewise, disable the feature for all but a few users by + using a configuration like the following:

+ +

+ UserDir disabled
+ UserDir enabled rbowen krietz +

+ +

See UserDir + documentation for additional examples.

+ +
top
+
+

Enabling a cgi directory for each user

+ + +

In order to give each user their own cgi-bin directory, you can use + a <Directory> + directive to make a particular subdirectory of a user's home directory + cgi-enabled.

+ +

+ <Directory /home/*/public_html/cgi-bin/>
+ Options ExecCGI
+ SetHandler cgi-script
+ </Directory> +

+ +

Then, presuming that UserDir is set to + public_html, a cgi program example.cgi + could be loaded from that directory as:

+ +

+ http://example.com/~rbowen/cgi-bin/example.cgi +

+ +
top
+
+

Allowing users to alter configuration

+ + +

If you want to allows users to modify the server configuration in + their web space, they will need to use .htaccess files to + make these changed. Ensure that you have set AllowOverride to a + value sufficient for the directives that you want to permit the users + to modify. See the .htaccess tutorial for + additional details on how this works.

+ +
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/public_html.html.ja.utf8 b/rubbos/app/apache2/manual/howto/public_html.html.ja.utf8 new file mode 100644 index 00000000..1fc52c9f --- /dev/null +++ b/rubbos/app/apache2/manual/howto/public_html.html.ja.utf8 @@ -0,0 +1,157 @@ + + + +ユーザ毎のウェブディレクトリ - Apache HTTP サーバ + + + + + +
<-
+

ユーザ毎のウェブディレクトリ

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ +

複数のユーザのいるシステムでは、UserDir ディレクティブを使って + 各ユーザがホームディレクトリにウェブサイトを構築できるように設定することが + 可能です。URL http://example.com/~username/ を訪れた人は + "username" というユーザの UserDir ディレクティブで指定された + サブディレクトリからコンテンツを得ることになります。

+
+ +
top
+
+

ユーザ毎のウェブディレクトリ

+ + +
top
+
+

UserDir を使ってファイルのパスを設定する

+ + +

UserDir ディレクティブは + ユーザ毎のコンテンツが読み込まれるディレクトリを指定します。 + このディレクティブはいろいろ違った形式を取ることができます。

+ +

スラッシュで始まらないパスが与えられたときは、ユーザのホームディレクトリ + からの相対パスとみなされます。次の設定があったときに:

+ +

+ UserDir public_html +

+ +

URL http://example.com/~rbowen/file.html は + パス /home/rbowen/public_html/file.html へ + 変換されます。

+ +

パスがスラッシュで始まるときは、ディレクトリパスはそのパスに + ユーザ名を加えたものからなります。次の設定のとき:

+ +

+ UserDir /var/html +

+ +

URL http://example.com/~rbowen/file.html は + パス /var/html/rbowen/file.html へ変換されます。

+ +

アスタリスク (*) を含むパスが指定されたときは、アスタリスクを + ユーザ名で置換したものが使用されます。このような設定だと:

+ +

+ UserDir /var/www/*/docs +

+ +

URL http://example.com/~rbowen/file.html は + パス /var/www/rbowen/docs/file.html へ変換されます。

+ +
top
+
+

この機能を使用できるユーザを制限する

+ + +

UserDir のドキュメントに示されている構文を使うことで、 + どのユーザがこの機能を使うことができるかを制限することができます:

+ +

+ UserDir enabled
+ UserDir disabled root jro fish +

+ +

上の設定は dissabled 文のユーザ以外のすべてのユーザに + 対して UserDir の機能を有効にします。同様にして、以下のように + 数名のユーザ以外に対してこの機能を無効にすることもできます:

+ +

+ UserDir disabled
+ UserDir enabled rbowen krietz +

+ +

他の例は UserDir + の説明を参照してください。

+ +
top
+
+

ユーザ毎の CGI ディレクトリ

+ + +

それぞれのユーザに専用の cgi-bin ディレクトリを与えるために、 + <Directory> + を使ってユーザのホームディレクトリの指定された領域に対して CGI を有効に + することができます。

+ +

+ <Directory /home/*/public_html/cgi-bin/>
+ Options ExecCGI
+ SetHandler cgi-script
+ </Directory> +

+ +

そして、UserDir が + public_html に設定されていると仮定すると、 + そのディレクトリの CGI プログラム example.cgi + は以下の様に呼び出されることができます:

+ +

+ http://example.com/~rbowen/cgi-bin/example.cgi +

+ +
top
+
+

ユーザによる設定変更を許可

+ + +

ユーザに彼らのウェブ空間でのサーバの設定の変更を許可する場合、 + ユーザは .htaccess ファイルを使って設定を変更する必要があります。 + AllowOverride の値を + ユーザが変更することを許可したいディレクティブに対して十分なものに + 設定していることを確認してください。この機能がどのようにして動作しているか + の詳細は .htaccess チュートリアル を読んで + ください。

+ +
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/public_html.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/public_html.html.ko.euc-kr new file mode 100644 index 00000000..782bd448 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/public_html.html.ko.euc-kr @@ -0,0 +1,158 @@ + + + +ں 丮 - Apache HTTP Server + + + + + +
<-
+

ں 丮

+
+

:  en  | + ja  | + ko  | + tr 

+
+ +

ڰ ִ ýۿ UserDir þ ϸ + ڴ ڽ Ȩ丮 ȿ Ʈ ִ. + URL http://example.com/~username/ ϸ + "username" Ȩ丮 UserDir þ + 丮 ִ ȴ.

+ +
+ +
top
+
top
+
+

UserDir ϰ ϱ

+ + +

UserDir + þ ں 丮 Ѵ. + þ .

+ +

ʴ θ ϸ + Ȩ丮 丮 η óѴ. , + Ʒ :

+ +

+ UserDir public_html +

+ +

URL http://example.com/~rbowen/file.html + /home/rbowen/public_html/file.html + Ѵ.

+ +

ϴ θ ϸ 丮 + ڸ 丮 θ Ѵ. , Ʒ + :

+ +

+ UserDir /var/html +

+ +

URL http://example.com/~rbowen/file.html + /var/html/rbowen/file.html Ѵ.

+ +

ǥ (*) θ ϸ ǥ ڸ + ü θ Ѵ. , Ʒ :

+ +

+ UserDir /var/www/*/docs +

+ +

URL http://example.com/~rbowen/file.html + /var/www/rbowen/docs/file.html + Ѵ.

+ +
top
+
+

̿ ϱ

+ + +

UserDir ִ Ͽ ں 丮 + ̿ ִ ڸ ִ:

+ +

+ UserDir enabled
+ UserDir disabled root jro fish +

+ +

disabled 忡 + ϰ ڿ 丮 Ѵ. , + ڸ ϰ + ִ:

+ +

+ UserDir disabled
+ UserDir enabled rbowen krietz +

+ +

UserDir + ִ ٸ 鵵 ϶.

+ +
top
+
+

ں cgi 丮 ϱ

+ + +

ڸ cgi-bin 丮 οϷ <Directory> þ + Ͽ Ȩ丮 Ư 丮 cgi ϰ + .

+ +

+ <Directory /home/*/public_html/cgi-bin/>
+ Options ExecCGI
+ SetHandler cgi-script
+ </Directory> +

+ +

UserDir public_html̶ + ϸ, ȿ ִ cgi α׷ + example.cgi ִ.

+ +

+ http://example.com/~rbowen/cgi-bin/example.cgi +

+ +
top
+
+

ڰ ֵ

+ + +

ڰ ڽ Ϸ, + .htaccess ־ Ѵ. AllowOverride ڰ + ִ þ ϶.  ϴ + ڼ .htaccess + 丮 ϶.

+ +
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/public_html.html.tr.utf8 b/rubbos/app/apache2/manual/howto/public_html.html.tr.utf8 new file mode 100644 index 00000000..0788ed25 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/public_html.html.tr.utf8 @@ -0,0 +1,167 @@ + + + +Kullanıcı Dizinleri (public_html) - Apache HTTP Sunucusu + + + + + +
<-
+

Kullanıcı Dizinleri (public_html)

+
+

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

+
+ +

Çok kullanıcılı sistemlerde, UserDir yönergesi ile her kullanıcının kendi ev dizininde + bir sitesi olması sağlanabilir. + http://example.com/~kullanıcı/ adresinin ziyaretçileri + "kullanıcı" isimli kullanıcının ev dizininin içeriğini değil, UserDir yönergesinde belirtilen alt + dizinin içeriğini görürler.

+
+ +
top
+
top
+
+

UserDir ile dosya yolunun belirtilmesi

+ + +

UserDir yönergesinde + kullanıcı sayfalarının yükleneceği dizin belirtilir. Bu yönergeye değeri + çeşitli biçimlerde atanabilir.

+ +

Başında bölü çizgisi bulunmayan bir dosya yolu belirtilmişse, + kullanıcının ev dizinine göreli bir dizin belirtildiği varsayılır. + Yapılandırmada şöyle bir satır varsa:

+ +

+ UserDir public_html +

+ +

http://example.com/~orhan/dosya.html adresine karşılık + gelen dosya yolu /home/orhan/public_html/dosya.html olarak + çözümlenir.

+ +

Eğer başında bölü çizgisi bulunan bir dosya yolu belirtilirse, + kullanıcı sayfalarının bu dizinin altında kullanıcı ismini taşıyan + dizinlerde bulunacağı varsayılır. Yapılandırmada şöyle bir satır + varsa:

+ +

+ UserDir /var/html +

+ +

http://example.com/~orhan/dosya.html adresine karşılık + gelen dosya yolu /var/html/orhan/dosya.html olarak + çözümlenir.

+ +

Eğer belirtilen dosya yolu bir yıldız imi (*) içeriyorsa yıldız iminin + yerine kullanıcı ismi yerleştirilerek elde edilen dosya yolu + kullanılır. Yapılandırmada şöyle bir satır varsa:

+ +

+ UserDir /var/siteler/*/sayfam +

+ +

http://example.com/~orhan/dosya.html adresine karşılık + gelen dosya yolu /var/siteler/orhan/sayfam/dosya.html + olarak çözümlenir.

+ +
top
+
+

Bu özelliği kullanacak kullanıcıların sınırlandırılması

+ + +

UserDir yönergesinin + açıklamasında belirtilen sözdizimini kullanarak bu işlevselliği bazı + kullanıcılara yasaklayabilirsiniz:

+ +

+ UserDir enabled
+ UserDir disabled root ahmet mustafa +

+ +

Bu yapılandırma ile disabled deyiminin bulunduğu + satırdaki kullanıcılar dışında kalan bütün kullanıcılar için bu özellik + etkin olacaktır. Benzer şekilde, aşağıdaki yapılandırma ile + işlevselliğin belli kullanıcılar dışında kullanılmamasını da + sağlayabilirsiniz:

+ +

+ UserDir disabled
+ UserDir enabled orhan yasar +

+ +

Daha fazla örnek için UserDir yönergesinin açıklamasına bakabilirsiniz.

+ +
top
+
+

Her kullanıcıya bir CGI dizini tahsis etmek

+ + +

Her kullanıcıya kendine ait bir CGI dizini vermek isterseniz, bir + <Directory> yönergesi + ile kullanıcının ev dizinindeki belli bir dizini CGI-etkin duruma + getirebilirsiniz.

+ +

+ <Directory /home/*/public_html/cgi-bin/>
+ Options ExecCGI
+ SetHandler cgi-script
+ </Directory> +

+ +

UserDir yönergesinde + public_html belirtildiği varsayımıyla + mesela.cgi betiği bu dizinden şöyle bir adresle + yüklenebilir:

+ +

+ http://example.com/~orhan/cgi-bin/mesela.cgi +

+ +
top
+
+

Kullanıcıların yapılandırmayı değiştirmesine izin vermek

+ + +

Kullanıcıların kendilerine ayrılan bölge içinde sunucu + yapılandırmasını değiştirebilmelerine izin vermek isterseniz, + .htaccess dosyalarını kullanmalarına izin vermeniz + gerekir. Kullanıcının değiştirmesine izin vereceğiniz yönerge türlerini + AllowOverride yönergesinde + belirtmeyi ihmal etmeyin. .htaccess dosyalarının kullanımı + ile ilgili daha ayrıntılı bilgi için .htaccess + öğreticisine bakınız.

+ +
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/ssi.html b/rubbos/app/apache2/manual/howto/ssi.html new file mode 100644 index 00000000..477d79ca --- /dev/null +++ b/rubbos/app/apache2/manual/howto/ssi.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssi.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ssi.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: ssi.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/howto/ssi.html.en b/rubbos/app/apache2/manual/howto/ssi.html.en new file mode 100644 index 00000000..f03a467d --- /dev/null +++ b/rubbos/app/apache2/manual/howto/ssi.html.en @@ -0,0 +1,486 @@ + + + +Apache Tutorial: Introduction to Server Side Includes - Apache HTTP Server + + + + + +
<-
+

Apache Tutorial: Introduction to Server Side Includes

+
+

Available Languages:  en  | + ja  | + ko 

+
+ +

Server-side includes provide a means to add dynamic content to +existing HTML documents.

+
+ +
top
+
+

Introduction

+ + +

This article deals with Server Side Includes, usually called + simply SSI. In this article, I'll talk about configuring your + server to permit SSI, and introduce some basic SSI techniques + for adding dynamic content to your existing HTML pages.

+ +

In the latter part of the article, we'll talk about some of + the somewhat more advanced things that can be done with SSI, + such as conditional statements in your SSI directives.

+ +
top
+
+

What are SSI?

+ +

SSI (Server Side Includes) are directives that are placed in + HTML pages, and evaluated on the server while the pages are + being served. They let you add dynamically generated content to + an existing HTML page, without having to serve the entire page + via a CGI program, or other dynamic technology.

+ +

The decision of when to use SSI, and when to have your page + entirely generated by some program, is usually a matter of how + much of the page is static, and how much needs to be + recalculated every time the page is served. SSI is a great way + to add small pieces of information, such as the current time. + But if a majority of your page is being generated at the time + that it is served, you need to look for some other + solution.

+
top
+
+

Configuring your server to permit SSI

+ + +

To permit SSI on your server, you must have the following + directive either in your httpd.conf file, or in a + .htaccess file:

+

+ Options +Includes +

+ +

This tells Apache that you want to permit files to be parsed + for SSI directives. Note that most configurations contain + multiple Options directives + that can override each other. You will probably need to apply the + Options to the specific directory where you want SSI + enabled in order to assure that it gets evaluated last.

+ +

Not just any file is parsed for SSI directives. You have to + tell Apache which files should be parsed. There are two ways to + do this. You can tell Apache to parse any file with a + particular file extension, such as .shtml, with + the following directives:

+

+ AddType text/html .shtml
+ AddOutputFilter INCLUDES .shtml +

+ +

One disadvantage to this approach is that if you wanted to + add SSI directives to an existing page, you would have to + change the name of that page, and all links to that page, in + order to give it a .shtml extension, so that those + directives would be executed.

+ +

The other method is to use the XBitHack directive:

+

+ XBitHack on +

+ +

XBitHack + tells Apache to parse files for SSI + directives if they have the execute bit set. So, to add SSI + directives to an existing page, rather than having to change + the file name, you would just need to make the file executable + using chmod.

+

+ chmod +x pagename.html +

+ +

A brief comment about what not to do. You'll occasionally + see people recommending that you just tell Apache to parse all + .html files for SSI, so that you don't have to + mess with .shtml file names. These folks have + perhaps not heard about XBitHack. The thing to + keep in mind is that, by doing this, you're requiring that + Apache read through every single file that it sends out to + clients, even if they don't contain any SSI directives. This + can slow things down quite a bit, and is not a good idea.

+ +

Of course, on Windows, there is no such thing as an execute + bit to set, so that limits your options a little.

+ +

In its default configuration, Apache does not send the last + modified date or content length HTTP headers on SSI pages, + because these values are difficult to calculate for dynamic + content. This can prevent your document from being cached, and + result in slower perceived client performance. There are two + ways to solve this:

+ +
    +
  1. Use the XBitHack Full configuration. This + tells Apache to determine the last modified date by looking + only at the date of the originally requested file, ignoring + the modification date of any included files.
  2. + +
  3. Use the directives provided by + mod_expires to set an explicit expiration + time on your files, thereby letting browsers and proxies + know that it is acceptable to cache them.
  4. +
+
top
+
+

Basic SSI directives

+ +

SSI directives have the following syntax:

+

+ <!--#element attribute=value attribute=value ... --> +

+ +

It is formatted like an HTML comment, so if you don't have + SSI correctly enabled, the browser will ignore it, but it will + still be visible in the HTML source. If you have SSI correctly + configured, the directive will be replaced with its + results.

+ +

The element can be one of a number of things, and we'll talk + some more about most of these in the next installment of this + series. For now, here are some examples of what you can do with + SSI

+ +

Today's date

+ +

+ <!--#echo var="DATE_LOCAL" --> +

+ +

The echo element just spits out the value of a + variable. There are a number of standard variables, which + include the whole set of environment variables that are + available to CGI programs. Also, you can define your own + variables with the set element.

+ +

If you don't like the format in which the date gets printed, + you can use the config element, with a + timefmt attribute, to modify that formatting.

+ +

+ <!--#config timefmt="%A %B %d, %Y" -->
+ Today is <!--#echo var="DATE_LOCAL" --> +

+ + +

Modification date of the file

+ +

+ This document last modified <!--#flastmod file="index.html" --> +

+ +

This element is also subject to timefmt format + configurations.

+ + +

Including the results of a CGI program

+ +

This is one of the more common uses of SSI - to output the + results of a CGI program, such as everybody's favorite, a ``hit + counter.''

+ +

+ <!--#include virtual="/cgi-bin/counter.pl" --> +

+ + +
top
+
+

Additional examples

+ + +

Following are some specific examples of things you can do in + your HTML documents with SSI.

+ +

When was this document +modified?

+ +

Earlier, we mentioned that you could use SSI to inform the + user when the document was most recently modified. However, the + actual method for doing that was left somewhat in question. The + following code, placed in your HTML document, will put such a + time stamp on your page. Of course, you will have to have SSI + correctly enabled, as discussed above.

+

+ <!--#config timefmt="%A %B %d, %Y" -->
+ This file last modified <!--#flastmod file="ssi.shtml" --> +

+ +

Of course, you will need to replace the + ssi.shtml with the actual name of the file that + you're referring to. This can be inconvenient if you're just + looking for a generic piece of code that you can paste into any + file, so you probably want to use the + LAST_MODIFIED variable instead:

+

+ <!--#config timefmt="%D" -->
+ This file last modified <!--#echo var="LAST_MODIFIED" --> +

+ +

For more details on the timefmt format, go to + your favorite search site and look for strftime. The + syntax is the same.

+ + +

Including a standard footer

+ + +

If you are managing any site that is more than a few pages, + you may find that making changes to all those pages can be a + real pain, particularly if you are trying to maintain some kind + of standard look across all those pages.

+ +

Using an include file for a header and/or a footer can + reduce the burden of these updates. You just have to make one + footer file, and then include it into each page with the + include SSI command. The include + element can determine what file to include with either the + file attribute, or the virtual + attribute. The file attribute is a file path, + relative to the current directory. That means that it + cannot be an absolute file path (starting with /), nor can it + contain ../ as part of that path. The virtual + attribute is probably more useful, and should specify a URL + relative to the document being served. It can start with a /, + but must be on the same server as the file being served.

+

+ <!--#include virtual="/footer.html" --> +

+ +

I'll frequently combine the last two things, putting a + LAST_MODIFIED directive inside a footer file to be + included. SSI directives can be contained in the included file, + and includes can be nested - that is, the included file can + include another file, and so on.

+ + +
top
+
+

What else can I config?

+ + +

In addition to being able to config the time + format, you can also config two other things.

+ +

Usually, when something goes wrong with your SSI directive, + you get the message

+

+ [an error occurred while processing this directive] +

+ +

If you want to change that message to something else, you + can do so with the errmsg attribute to the + config element:

+

+ <!--#config errmsg="[It appears that you don't know how to use SSI]" --> +

+ +

Hopefully, end users will never see this message, because + you will have resolved all the problems with your SSI + directives before your site goes live. (Right?)

+ +

And you can config the format in which file + sizes are returned with the sizefmt attribute. You + can specify bytes for a full count in bytes, or + abbrev for an abbreviated number in Kb or Mb, as + appropriate.

+
top
+
+

Executing commands

+ + +

I expect that I'll have an article some time in the coming + months about using SSI with small CGI programs. For now, here's + something else that you can do with the exec + element. You can actually have SSI execute a command using the + shell (/bin/sh, to be precise - or the DOS shell, + if you're on Win32). The following, for example, will give you + a directory listing.

+

+ <pre>
+ <!--#exec cmd="ls" -->
+ </pre> +

+ +

or, on Windows

+

+ <pre>
+ <!--#exec cmd="dir" -->
+ </pre> +

+ +

You might notice some strange formatting with this directive + on Windows, because the output from dir contains + the string ``<dir>'' in it, which confuses + browsers.

+ +

Note that this feature is exceedingly dangerous, as it will + execute whatever code happens to be embedded in the + exec tag. If you have any situation where users + can edit content on your web pages, such as with a + ``guestbook'', for example, make sure that you have this + feature disabled. You can allow SSI, but not the + exec feature, with the IncludesNOEXEC + argument to the Options directive.

+
top
+
+

Advanced SSI techniques

+ + +

In addition to spitting out content, Apache SSI gives you + the option of setting variables, and using those variables in + comparisons and conditionals.

+ +

Caveat

+ +

Most of the features discussed in this article are only + available to you if you are running Apache 1.2 or later. Of + course, if you are not running Apache 1.2 or later, you need to + upgrade immediately, if not sooner. Go on. Do it now. We'll + wait.

+ + +

Setting variables

+ +

Using the set directive, you can set variables + for later use. We'll need this later in the discussion, so + we'll talk about it here. The syntax of this is as follows:

+

+ <!--#set var="name" value="Rich" --> +

+ +

In addition to merely setting values literally like that, you + can use any other variable, including environment variables or the variables + discussed above (like LAST_MODIFIED, for example) to + give values to your variables. You will specify that something is + a variable, rather than a literal string, by using the dollar sign + ($) before the name of the variable.

+ +

<!--#set var="modified" value="$LAST_MODIFIED" --> +

+ +

To put a literal dollar sign into the value of your + variable, you need to escape the dollar sign with a + backslash.

+

+ <!--#set var="cost" value="\$100" --> +

+ +

Finally, if you want to put a variable in the midst of a + longer string, and there's a chance that the name of the + variable will run up against some other characters, and thus be + confused with those characters, you can place the name of the + variable in braces, to remove this confusion. (It's hard to + come up with a really good example of this, but hopefully + you'll get the point.)

+

+ <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> +

+ + +

Conditional expressions

+ + +

Now that we have variables, and are able to set and compare + their values, we can use them to express conditionals. This + lets SSI be a tiny programming language of sorts. + mod_include provides an if, + elif, else, endif + structure for building conditional statements. This allows you + to effectively generate multiple logical pages out of one + actual page.

+ +

The structure of this conditional construct is:

+

+ <!--#if expr="test_condition" -->
+ <!--#elif expr="test_condition" -->
+ <!--#else -->
+ <!--#endif --> +

+ +

A test_condition can be any sort of logical + comparison - either comparing values to one another, or testing + the ``truth'' of a particular value. (A given string is true if + it is nonempty.) For a full list of the comparison operators + available to you, see the mod_include + documentation. Here are some examples of how one might use this + construct.

+ +

In your configuration file, you could put the following + line:

+

+ BrowserMatchNoCase macintosh Mac
+ BrowserMatchNoCase MSIE InternetExplorer +

+ +

This will set environment variables ``Mac'' and + ``InternetExplorer'' to true, if the client is running Internet + Explorer on a Macintosh.

+ +

Then, in your SSI-enabled document, you might do the + following:

+

+ <!--#if expr="${Mac} && ${InternetExplorer}" -->
+ Apologetic text goes here
+ <!--#else -->
+ Cool JavaScript code goes here
+ <!--#endif --> +

+ +

Not that I have anything against IE on Macs - I just + struggled for a few hours last week trying to get some + JavaScript working on IE on a Mac, when it was working + everywhere else. The above was the interim workaround.

+ +

Any other variable (either ones that you define, or normal + environment variables) can be used in conditional statements. + With Apache's ability to set environment variables with the + SetEnvIf directives, and other related directives, + this functionality can let you do some pretty involved dynamic + stuff without ever resorting to CGI.

+ +
top
+
+

Conclusion

+ +

SSI is certainly not a replacement for CGI, or other + technologies used for generating dynamic web pages. But it is a + great way to add small amounts of dynamic content to pages, + without doing a lot of extra work.

+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/ssi.html.ja.utf8 b/rubbos/app/apache2/manual/howto/ssi.html.ja.utf8 new file mode 100644 index 00000000..4e83b0fd --- /dev/null +++ b/rubbos/app/apache2/manual/howto/ssi.html.ja.utf8 @@ -0,0 +1,481 @@ + + + +Apache チュートリアル: Server Side Includes 入門 - Apache HTTP サーバ + + + + + +
<-
+

Apache チュートリアル: Server Side Includes 入門

+
+

Available Languages:  en  | + ja  | + ko 

+
+ +

サーバサイドインクルードによって、既存の HTML +ドキュメントに動的なコンテンツを追加することができます。

+
+ +
top
+
+

はじめに

+ + +

この記事は、通常は単に SSI と呼ばれる Server Side Includes + を扱います。この記事においては、サーバでの SSI を許可するための設定と、 + 現在の HTML ページに動的なコンテンツを加えるためのいくつかの基本的な + SSI 技術を紹介します。

+ +

記事の後半では、SSI ディレクティブで SSI + と共に実行することができる条件文のような + 幾分高度な事柄について述べています。

+ +
top
+
+

SSI とは ?

+ +

SSI (Server Side Includes) は、HTML + ページ中に配置されるディレクティブであり、 + サーバでページを提供する時に評価されます。SSI は、CGI + プログラムやその他の動的な技術で全てのページを提供せずに、 + 動的に生成されたコンテンツを現在の HTML ページに加えます。

+ +

どういう場合に SSI を使い、どういう場合にプログラムで + ページを完全に生成するかは、ページのうちどの程度が静的であり、 + ページが提供されるたびに再計算する必要がどの程度あるかで通常は決定します。 + SSI は現在時刻のような小さい情報を加えるにはうってつけの方法です。 + しかし、そのページのほとんどの部分が提供時に生成される場合は、 + 他の方法を探す必要があります。

+
top
+
+

SSI を許可するためのサーバの設定

+ + +

サーバで SSI を許可するには、httpd.conf + ファイルまたは .htaccess + ファイルに次のディレクティブを指定する必要があります:

+

+ Options +Includes +

+ +

この指定は、ファイルを SSI + ディレクティブで解析させることを許可するということを Apache + に伝えます。ほとんどの設定ではお互いを上書きできる、複数の + Options があることに + 注意してください。おそらく、設定が最後に評価されることを + 保証されるために、SSI を使用したいディレクトリに Options + ディレクティブを適用する必要があるでしょう。

+ +

全てのファイルが SSI + ディレクティブで解析されるというわけではありません。 + どのファイルが解析されるかを Apache に伝える必要があります。 + これを行なうには二つ方法があります。 + 次のディレクティブを使うことで、例えば .shtml + のような特別なファイル拡張子を持つファイルを解析するよう + Apache に伝えることができます:

+

+ AddType text/html .shtml
+ AddOutputFilter INCLUDES .shtml +

+ +

この方法の欠点は、もし現在のページに SSI ディレクティブを加えたい場合、 + それらのディレクティブが実行されるように + .shtml 拡張子にするため、そのページの名前と、 + そのページへの全てのリンクを変更しなければならないことです。

+ +

もう一つの方法は、XBitHack + ディレクティブを使用することです:

+

+ XBitHack on +

+ +

XBitHack + は、ファイルの実行ビットが立っている場合、 + SSI ディレクティブにより解析することを Apache に伝えます。 + 従って、SSI ディレクティブを現在のページに加えるためには、 + ファイル名を変更しなくてもよく、単に chmod + を使用してファイルを実行可能にするだけで済みます。

+

+ chmod +x pagename.html +

+ +

行なうべきではないことに関する短いコメント。時々誰かが、全ての + .html ファイルを SSI で解析するよう Apache に伝えれば、 + わざわざ .shtml というファイル名にする必要がないといって + 薦めるのを見ることでしょう。こういう人たちは、おそらく + XBitHack + について聞いたことがないのでしょう。 + この方法について注意することは、たとえ SSI + ディレクティブを全く含まない場合でも、Apache がクライアントに + 送る全てのファイルを最後まで読み込ませることになります。 + この方法はかなり処理を遅くするものであり、良くないアイデアです。

+ +

もちろん、Windows ではそのような実行ビットをセット + するようなものはありませんのでオプションが少し制限されています。

+ +

デフォルトの設定では、Apache は SSI ページについて最終変更時刻や + コンテンツの長さを HTTP ヘッダに送りません。 + 動的なコンテンツであるため、それらの値を計算するのが難しいからです。 + このためドキュメントがキャッシュされなくなり、 + 結果としてクライアントの性能が遅くなったように感じさせることになります。 + これを解決する方法が二つあります:

+ +
    +
  1. XBitHack Full 設定を使用する。 + この設定により、もともと要求されたファイルの時刻を参照し、 + 読み込まれるファイルの変更時刻を無視して最終変更時刻を決定するよう + Apache に伝えます。
  2. + +
  3. mod_expires + で提供されているディレクティブを使用して、 + ファイルが無効になる時刻を明示します。これにより、 + ブラウザとプロキシにキャッシュが有効であることを通知します。
  4. +
+
top
+
+

基本的な SSI ディレクティブ

+ +

SSI ディレクティブは以下の文法で記述します:

+

+ <!--#element attribute=value attribute=value ... --> +

+ +

HTML のコメントのような書式をしているので、もし SSI + を正しく動作可能にしなければ、ブラウザはそれを無視するでしょう。 + しかし、HTML ソース中では見えます。もし SSI を正しく設定したなら、 + ディレクティブはその結果と置き換えられます。

+ +

element はたくさんあるものから一つ指定することができます。 + 指定できるものの大多数については、次回もう少し詳しく説明します。 + ここでは、SSI で行なうことができる例をいくつか示します。

+ +

今日の日付

+ +

+ <!--#echo var="DATE_LOCAL" --> +

+ +

echo 要素は単に変数の値を出力します。 + CGI プログラムに利用可能な環境変数の全ての + セットを含む多くの標準変数があります。また、set + 要素を用いることで、独自の変数を定義することができます。 +

+ +

出力される日付の書式が好きではない場合、その書式を修正するために、 + config 要素に timefmt + 属性を使用することができます。

+ +

+ <!--#config timefmt="%A %B %d, %Y" -->
+ Today is <!--#echo var="DATE_LOCAL" --> +

+ + +

ファイルの変更日

+ +

+ This document last modified <!--#flastmod file="index.html" --> +

+ +

この要素も timefmt + フォーマットの設定に従います。

+ + +

CGI プログラムの結果を取り込む

+ +

これは、全ての人のお気に入りである ``ヒットカウンタ'' のような + CGI プログラムの結果を出力する SSI + のより一般的な使用のうちの一つです。

+ +

+ <!--#include virtual="/cgi-bin/counter.pl" --> +

+ + +
top
+
+

追加の例

+ + +

以下は、SSI を使用して HTML + ドキュメントにおいてできることのいくつかの特別な例です。

+ +

いつこのドキュメントは修正されたのか +?

+ +

先に、ドキュメントが最後に変更されたのはいつかを + ユーザに通知するために SSI を使用することができることを述べました。 + しかしながら、実際の方法は、いくぶん問題のままにしておきました。 + HTML ドキュメントに配置された次のコードは、ページにそのような + タイムスタンプを入れるでしょう。もちろん、上述のように、 + SSI を正しく動作可能にしておく必要があります。

+

+ <!--#config timefmt="%A %B %d, %Y" -->
+ This file last modified <!--#flastmod file="ssi.shtml" --> +

+ +

もちろん、ssi.shtml + の部分を実際の当該ファイル名と置き換える必要があります。 + もし、あらゆるファイルに張ることができる一般的なコードを探しているなら、 + これは不便であるかもしれません。おそらくその場合は、 + そうする代わりに変数 LAST_MODIFIED + を使用したいと考えるでしょう:

+

+ <!--#config timefmt="%D" -->
+ This file last modified <!--#echo var="LAST_MODIFIED" --> +

+ +

timefmt + 書式についてのより詳細については、お好みの検索サイトに行き、 + strftime で検索してみてください。文法は同じです。

+ + +

標準のフッタを挿入する

+ + +

もし数ページを超えるページを持つサイトを管理しているならば、 + 全ページに対して変項を行なうことが本当に苦痛となり得ることが + 分かるでしょう。全てのページに渡ってある種の標準的な外観を + 維持しようとしているならば特にそうでしょう。

+ +

ヘッダやフッタ用の挿入用ファイルを使用することで、 + このような更新にかかる負担を減らすことができます。 + 一つのフッタファイルを作成し、それを include + SSI コマンドで各ページに入れるだけで済みます。include + 要素は、file 属性または virtual + 属性のいずれかを使用してどのファイルを挿入するかを決めることができます。 + file 属性は、カレントディレクトリからの相対パスで示された + ファイルパスです。 + それは / で始まる絶対ファイルパスにはできず、また、そのパスの一部に ../ + を含むことができないことを意味します。virtual + 属性は、おそらくより便利だと思いますが、提供するドキュメントからの相対 + URL で指定すべきです。それは / で始めることができますが、 + 提供するファイルと同じサーバ上に存在しなくてはなりません。

+

+ <!--#include virtual="/footer.html" --> +

+ +

私は最後の二つを組み合わせて、LAST_MODIFIED + ディレクティブをフッタファイルの中に置くことがよくあります。 + SSI ディレクティブは、挿入用のファイルに含ませたり、 + 挿入ファイルのネストをしたりすることができます。すなわち、 + 挿入用のファイルは他のファイルを再帰的に挿入することができます。

+ + +
top
+
+

他に何が設定できるのか ?

+ + +

時刻書式を config で設定できることに加えて、 + 更に二つ config で設定することができます。

+ +

通常、SSI ディレクティブで何かがうまくいかないときは、 + 次のメッセージが出力されます。

+

+ [an error occurred while processing this directive] +

+ +

このメッセージを他のものにしたい場合、config + 要素の errmsg 属性で変更することができます:

+

+ <!--#config errmsg="[It appears that you don't know how to use SSI]" --> +

+ +

おそらく、エンドユーザはこのメッセージを決して見ることはありません。 + なぜなら、そのサイトが生きた状態になる前に SSI ディレクティブに関する + 全ての問題を解決しているはずだからです。(そうですよね?)

+ +

そして、config において sizefmt + 属性を使用することで、 + 返されるファイルサイズの書式を設定することができます。 + バイト数には bytes を、適当に Kb や Mb + に短縮させるには abbrev を指定することができます。

+
top
+
+

コマンドの実行

+ + +

今後数ヶ月のうちに、小さな CGI プログラムと SSI + を使用する記事を出したいと考えています。ここではそれとは別に、 + exec 要素によって行なうことができることを示します。 + SSI にシェル (正確には /bin/sh。Win32 ならば DOS シェル) + を使用してコマンドを実行させることができます。 + 下記の例では、ディレクトリリスト出力を行ないます。

+

+ <pre>
+ <!--#exec cmd="ls" -->
+ </pre> +

+ +

Windows 上では、

+

+ <pre>
+ <!--#exec cmd="dir" -->
+ </pre> +

+ +

Windows 上では、このディレクティブによっていくつかの奇妙な + 書式に気づくでしょう。なぜなら dir の出力が文字列 + ``<dir>'' を含み、ブラウザを混乱させるからです。

+ +

この機能は非常に危険であり、どんなコードでも exec + タグに埋め込まれてしまえば実行することに注意してください。例えば + `` ゲストブック '' のように、もし、 + ユーザがページの内容を編集できる状況にあるならば、 + この機能を確実に抑制してください。Options + ディレクティブの IncludesNOEXEC 引数を指定することで、 + SSI は許可するけれど exec + 機能は許可しないようにすることができます。

+
top
+
+

高度な SSI テクニック

+ + +

コンテンツを出力することに加え、Apache SSI は変数を設定し、 + そして比較と条件分岐にその変数を使用できる機能を提供しています。 +

+ +

警告

+ +

この記事で述べた大部分の機能は、Apache 1.2 + 以降を使用している場合のみ利用可能です。もちろん、もし Apache 1.2 + 以降を使用してない場合、直ちにアップグレードする必要があります。 + さぁ、今それを行ないなさい。それまで待っています。

+ + +

変数を設定する

+ +

set ディレクティブを使用して、 + 後で使用するために変数を設定することができます。 + これは後の説明で必要になるので、ここでそれについて述べています。 + 文法は以下のとおりです:

+

+ <!--#set var="name" value="Rich" --> +

+ +

このように単純に文字どおりに設定することに加え、 + 環境変数や上記の変数 + (例えば LAST_MODIFIED のような) + を含む他のあらゆる変数を値を設定するのに使用することができます。 + 変数名の前にドル記号 ($) を使用することで、 + それがリテラル文字列ではなくて変数であることを示します。

+

+ <!--#set var="modified" value="$LAST_MODIFIED" --> +

+ +

ドル記号 ($) を文字として変数の値に入れるには、 + バックスラッシュによってドル記号をエスケープする必要があります。

+

+ <!--#set var="cost" value="\$100" --> +

+ +

最後になりますが、長い文字列の中に変数を置きたい場合で、 + 変数名が他の文字とぶつかる可能性があり、 + それらの文字について混乱してしまう場合、この混乱を取り除くため、 + 変数名を中括弧で囲むことができます + (これについての良い例を示すのは難しいのですが、 + おそらく分かっていただけるでしょう)。 +

+

+ <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> +

+ + +

条件式

+ + +

さて、変数を持っていて、 + それらの値を設定して比較することができるのですから、 + 条件を表すためにそれらを使用することができます。これにより + SSI はある種の小さなプログラミング言語になっています。 + mod_include は条件を表現するために if, + elif, else, endif + 構造を提供しています。これによって、 + 一つの実際のページから複数の論理ページを効果的に生成することができます。

+ +

条件構造は以下のとおりです:

+

+ <!--#if expr="test_condition" -->
+ <!--#elif expr="test_condition" -->
+ <!--#else -->
+ <!--#endif --> +

+ +

test_condition + はあらゆる種類の論理的比較をすることができます。 + 値を比較したり、その値が ``真'' かどうかを評価します + (空でないなら与えられた文字列は真です)。 + 利用可能な比較演算子の全てのリストについては、 + mod_include ドキュメンテーションを参照してください。 + ここでは、この構造をどう使用するかの例をいくつか示します。

+ +

設定ファイルで次の行を記述します:

+

+ BrowserMatchNoCase macintosh Mac
+ BrowserMatchNoCase MSIE InternetExplorer +

+ +

これはクライアントが Macintosh + 上でインターネットエクスプローラが動いている場合、環境変数 + ``Mac'' と ``InternetExplorer'' を真と設定します。

+ +

次に、SSI が可能になったドキュメントで以下を行ないます: +

+

+ <!--#if expr="${Mac} && ${InternetExplorer}" -->
+ Apologetic text goes here
+ <!--#else -->
+ Cool JavaScript code goes here
+ <!--#endif --> +

+ +

Mac 上の IE に対して何か思うところがあるわけでありません。 + 他では実行できているいくつかの JavaScript を Mac 上の IE + で実行させるのに、先週数時間苦労したというだけのことです。 + 上の例はその暫定的な対処方法です。

+ +

他のどんな変数 (あなたが定義するもの、 + または普通の環境変数のいずれか) も、条件文に使用することができます。 + Apache は SetEnvIf ディレクティブや他の関連 + ディレクティブを使用して環境変数を設定することができます。 + この機能により、CGI + に頼ることなくかなり複雑な動的なことをさせることができます。

+ +
top
+
+

終わりに

+ +

SSI は確かに CGI + や動的なウェブページを生成する他の技術に代わるものではありません。 + しかし、たくさんの余分な作業をせずに、 + 少量の動的なコンテンツを加えるにはすぐれた方法です。

+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/howto/ssi.html.ko.euc-kr b/rubbos/app/apache2/manual/howto/ssi.html.ko.euc-kr new file mode 100644 index 00000000..f849bd67 --- /dev/null +++ b/rubbos/app/apache2/manual/howto/ssi.html.ko.euc-kr @@ -0,0 +1,426 @@ + + + +ġ 丮: Server Side Includes Ұ - Apache HTTP Server + + + + + +
<-
+

ġ 丮: Server Side Includes Ұ

+
+

:  en  | + ja  | + ko 

+
+ +

Server-side includes Ͽ HTML +߰ ִ.

+
+ +
top
+
+

Ұ

+ + +

SSI θ Server Side Includes Ѵ. + SSI ϵ ϴ HTML + ߰ϴ ⺻ SSI ҰѴ.

+ +

޺κ SSI þ ǹ ޱ + Ѵ.

+ +
top
+
+

SSI ΰ?

+ +

SSI (Server Side Includes) HTML ϴ þ, + Ҷ óѴ. SSI ϸ CGI + α׷̳ ٸ ü  + ʰ HTML ߰ + ִ.

+ +

SSI ƴϸ α׷ ü + κ + ٽ ؾ ޷ȴ. SSI + ð ߰ϴµ . ׷ + Ҷ κ ؾ Ѵٸ ٸ + ãƺ Ѵ.

+
top
+
+

SSI ϵ ϱ

+ + +

SSI óϷ httpd.conf ̳ + .htaccess Ͽ þ ؾ Ѵ.

+

+ Options +Includes +

+ +

׷ ġ Ͽ SSI þ óѴ. + Options þ + ְ, þ Ἥ ȿ . ׷ + þ Ǹ óϱ SSI ϴ Ư + 丮 Options Ѵ.

+ +

Ͽ SSI þ óϴ ƴϴ. ġ +  ó ˷ Ѵ. ΰ ִ. + ϳ þ .shtml Ư + Ȯڸ óϴ ̴.

+

+ AddType text/html .shtml
+ AddOutputFilter INCLUDES .shtml +

+ +

̹ ִ SSI þ ߰ϴ + SSI þ óϱ .shtml Ȯڸ + οϱ⶧ ϸ ũ ؾ + ϴ ̴.

+ +

ٸ XBitHack + þ ϴ ̴.

+

+ XBitHack on +

+ +

XBitHack + ִ Ͽ SSI þ óѴ. ׷ ̹ + ִ SSI þ ߰Ѵٸ ϸ + ʰ chmod Ͽ ָ ȴ.

+

+ chmod +x pagename.html +

+ +

ƾ ϳ. .shtml ϸ + ġ .html SSI ó϶ + ϴ ִ. Ƹ XBitHack 𸣴 + . ̷ ϸ ġ Ͽ SSI þ + Ŭ̾Ʈ Ѵٴ + ̴. ſ , ƴϴ.

+ +

 ̶ ⶧ ڸ + .

+ +

̿ ϱ Ʊ⶧ ġ ⺻ + SSI ֱټϰ content length HTTP + ʴ´. ׷ ij ϰ Ŭ̾Ʈ + . ΰ ذ ִ.

+ +
    +
  1. XBitHack Full Ѵ. ׷ + ġ ϴ(include) ϵ ü + û ¥ ֱټ ˾Ƴ.
  2. + +
  3. mod_expires ִ þ Ͽ + Ͽ ϸ Ͻð + ij ִ.
  4. +
+
top
+
+

⺻ SSI þ

+ +

SSI þ .

+

+ <!--#element attribute=value attribute=value ... --> +

+ +

HTML ּ ⶧ SSI ʾƵ + HTML ҽ Ѵ. SSI ùٷ + ϸ þ ٲ۴.

+ +

element ϳ. ȸ ڼ ̴. + SSI ִ  δ

+ +

¥

+ +

+ <!--#echo var="DATE_LOCAL" --> +

+ +

echo element ״ Ѵ. + CGI α׷ ϴ ȯ溯 ܿ ǥ + ִ. , set element Ͽ + ִ.

+ +

¥ ʴ´ٸ, + config element timefmt attribute + Ѵ.

+ +

+ <!--#config timefmt="%A %B %d, %Y" -->
+ Today is <!--#echo var="DATE_LOCAL" --> +

+ + +

+ +

+ <!--#flastmod file="index.html" --> Ǿ +

+ +

element timefmt ޷ȴ.

+ + +

CGI α׷ ϱ

+ +

Ϲ SSI ϳ, ̵ ֿϴ ``湮 + ī'' CGI α׷ Ѵ.

+ +

+ <!--#include virtual="/cgi-bin/counter.pl" --> +

+ + +
top
+
+

߰

+ + +

HTML ִ  SSI .

+ +

+Ǿ?

+ +

տ SSI Ͽ ڿ ֱټ + ˸ ִٰ ߴ. ׷ ˷ ʾҴ. + ڵ带 HTML ϸ ð . + Ѵ SSI ùٷ ۵ؾ Ѵ.

+

+ <!--#config timefmt="%A %B %d, %Y" -->
+ <!--#flastmod file="ssi.shtml" --> Ǿ; +

+ +

ssi.shtml ϴ ϸ + Ѵ. ƹ ٿ ִ ڵ带 + Ѵٸ, ϸ LAST_MODIFIED + Ѵ.

+

+ <!--#config timefmt="%D" -->
+ This file last modified <!--#echo var="LAST_MODIFIED" --> +

+ +

timefmt Ŀ ڼ ˻ + strftime ãƺ. .

+ + +

ǥ ϴ ϱ

+ + +

ִ Ʈ Ѵٸ ü + ϴ , Ư ǥ ܰ ϴ + Ӵ.

+ +

(header) ϴ(footer) Ϸ Ͽ + ̷ δ ִ. + include SSI ɾ Ͽ ϴ + ϳ ϸ ȴ. include element + file attribute virtual attribute + Ѵ. file attribute + 丮 ϰδ. , (/ ϴ) + ϰγ ȿ ../ . Ƹ ϴ + URL ִ virtual attribute + ̴. θ / , Ϸ + ϴ ϰ ־ Ѵ.

+

+ <!--#include virtual="/footer.html" --> +

+ +

ΰ ļ ϴ Ͽ + LAST_MODIFIED þ ִ´. Ϸ Ͽ + SSI þ , ̷ ٸ + ϴ ִ.

+ + +
top
+
+

̿ܿ ִ ?

+ + +

ð config() ܿ ΰ + config() ִ.

+ +

SSI þ ߸Ǹ ´

+

+ [an error occurred while processing this directive] +

+ +

ϰ ʹٸ config element + errmsg attribute Ͽ Ѵ.

+

+ <!--#config errmsg="[It appears that you don't know how to use SSI]" --> +

+ +

Ʈ ϱ SSI þ ذϿ + ڰ ̷ ʱ ٶ. (׷?)

+ +

׸ sizefmt attribute ȯϴ ũ + config() ִ. Ʈ ũ⸦ + ַ bytes, Kb Mb ũ⸦ + ַ abbrev Ѵ.

+
top
+
+

ɾ ϱ

+ + +

޿ CGI α׷ SSI ϴ + ̴. exec element + ִ ٸ ͵ ̴. SSI (Ȯ + /bin/sh Win32 Ѵٸ DOS ) Ͽ + ɾ Ѵ. , 丮 ش.

+

+ <pre>
+ <!--#exec cmd="ls" -->
+ </pre> +

+ +

or, on Windows

+

+ <pre>
+ <!--#exec cmd="dir" -->
+ </pre> +

+ +

dir ¿ ȥ + ``<dir>'' ڿ Եֱ⶧, +  þ ϸ ̻ ̴.

+ +

exec ±׿  ɾ + ֱ⶧ ſ ϴ. ``'' ڰ + ִ ȯ̶, + ؼ ȵȴ. Options þ + IncludesNOEXEC ƱԸƮ Ͽ SSI + exec ִ.

+
top
+
+

SSI

+ + +

ϴ ܿ ġ SSI ϰ, + 񱳹 ǹ ִ.

+ +

+ +

ۿ ϴ κ ġ 1.2 ĺ + ִ. , ġ 1.2 ̻ ʴ´ٸ + Ƹ ׷̵ؾ Ѵ. ض. ض. ٸ + ̴.

+ + +

+ +

set þ Ͽ ߿ + ִ. ʿϱ⶧ Ѵ. + .

+

+ <!--#set var="name" value="Rich" --> +

+ +

ڱ״ ʰ ȯ溯 ( + , LAST_MODIFIED) ٸ Ͽ + ִ. ̶ տ ޷ ǥ($) + ٿ ڿ ƴ ǥѴ.

+ +

<!--#set var="modified" value="$LAST_MODIFIED" --> +

+ +

޷ ڸ ״ ԷϷ ޷ ǥ տ + 齽 Ѵ.

+

+ <!--#set var="cost" value="\$100" --> +

+ +

ڿ ߰ ϴµ ڿ ִ + ڵ Ͽ ȥǴ , ȣ +  Ȯ Ѵ. ( ã , + ϱ ٶ.)

+

+ <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" --> +

+ + +

ǥ

+ + +

ϰ ǹ ϴ. + SSI α׷־ ȴ. + mod_include ǹ if, + elif, else, endif + Ѵ. + ִ.

+ +

ǹ .

+

+ <!--#if expr="test_condition" -->
+ <!--#elif expr="test_condition" -->
+ <!--#else -->
+ <!--#endif --> +

+ +

test_condition  񱳶 + ִ. ٸ ϰų, Ư ``'' + ˻Ѵ. (ڿ ̴.) 밡 + ڸ , mod_include + ϶. ǹ  .

+ +

Ͽ ߰Ѵ.

+

+ BrowserMatchNoCase macintosh Mac
+ BrowserMatchNoCase MSIE InternetExplorer +

+ +

Ŭ̾Ʈ Ųÿ ϴ Internet Explorer + ȯ溯 ``Mac'' ``InternetExplorer'' Ѵ.

+ +

׸ SSI ´.

+

+ <!--#if expr="${Mac} && ${InternetExplorer}" -->
+ ⿡ ´
+ <!--#else -->
+ ⿡ JavaScript ڵ尡 ´
+ <!--#endif --> +

+ +

Ų IE ݰ ִ ƴϴ. + ֿ ٸ JavaScript ڵ尡 Ų + IE ʾƼ ð ߴ. ӽ + ذå̴.

+ +

( Ͽ Ϲ ȯ溯̰)  ǹ + ִ. ƶġ SetEnvIf ٸ + þ ȯ溯 ֱ⶧ CGI ̵ + ִ.

+ +
top
+
+

+ +

SSI Ȯ CGI ϴ ٸ + ü . ׷ ߰ ۾ + ߰ϱ⿡ Ǹ ̴.

+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/images/apache_header.gif b/rubbos/app/apache2/manual/images/apache_header.gif new file mode 100644 index 00000000..260e421b Binary files /dev/null and b/rubbos/app/apache2/manual/images/apache_header.gif differ diff --git a/rubbos/app/apache2/manual/images/custom_errordocs.gif b/rubbos/app/apache2/manual/images/custom_errordocs.gif new file mode 100644 index 00000000..d566c5d8 Binary files /dev/null and b/rubbos/app/apache2/manual/images/custom_errordocs.gif differ diff --git a/rubbos/app/apache2/manual/images/custom_errordocs.png b/rubbos/app/apache2/manual/images/custom_errordocs.png new file mode 100644 index 00000000..f2b94907 Binary files /dev/null and b/rubbos/app/apache2/manual/images/custom_errordocs.png differ diff --git a/rubbos/app/apache2/manual/images/down.gif b/rubbos/app/apache2/manual/images/down.gif new file mode 100644 index 00000000..2194532b Binary files /dev/null and b/rubbos/app/apache2/manual/images/down.gif differ diff --git a/rubbos/app/apache2/manual/images/favicon.ico b/rubbos/app/apache2/manual/images/favicon.ico new file mode 100644 index 00000000..bfb4f63a Binary files /dev/null and b/rubbos/app/apache2/manual/images/favicon.ico differ diff --git a/rubbos/app/apache2/manual/images/feather.gif b/rubbos/app/apache2/manual/images/feather.gif new file mode 100644 index 00000000..441e3dd1 Binary files /dev/null and b/rubbos/app/apache2/manual/images/feather.gif differ diff --git a/rubbos/app/apache2/manual/images/feather.png b/rubbos/app/apache2/manual/images/feather.png new file mode 100644 index 00000000..5dd0dd10 Binary files /dev/null and b/rubbos/app/apache2/manual/images/feather.png differ diff --git a/rubbos/app/apache2/manual/images/home.gif b/rubbos/app/apache2/manual/images/home.gif new file mode 100644 index 00000000..11299c1c Binary files /dev/null and b/rubbos/app/apache2/manual/images/home.gif differ diff --git a/rubbos/app/apache2/manual/images/index.gif b/rubbos/app/apache2/manual/images/index.gif new file mode 100644 index 00000000..741c8939 Binary files /dev/null and b/rubbos/app/apache2/manual/images/index.gif differ diff --git a/rubbos/app/apache2/manual/images/left.gif b/rubbos/app/apache2/manual/images/left.gif new file mode 100644 index 00000000..2be39310 Binary files /dev/null and b/rubbos/app/apache2/manual/images/left.gif differ diff --git a/rubbos/app/apache2/manual/images/mod_rewrite_fig1.gif b/rubbos/app/apache2/manual/images/mod_rewrite_fig1.gif new file mode 100644 index 00000000..664ac1e7 Binary files /dev/null and b/rubbos/app/apache2/manual/images/mod_rewrite_fig1.gif differ diff --git a/rubbos/app/apache2/manual/images/mod_rewrite_fig1.png b/rubbos/app/apache2/manual/images/mod_rewrite_fig1.png new file mode 100644 index 00000000..f914f681 Binary files /dev/null and b/rubbos/app/apache2/manual/images/mod_rewrite_fig1.png differ diff --git a/rubbos/app/apache2/manual/images/mod_rewrite_fig2.gif b/rubbos/app/apache2/manual/images/mod_rewrite_fig2.gif new file mode 100644 index 00000000..3ea8cb65 Binary files /dev/null and b/rubbos/app/apache2/manual/images/mod_rewrite_fig2.gif differ diff --git a/rubbos/app/apache2/manual/images/mod_rewrite_fig2.png b/rubbos/app/apache2/manual/images/mod_rewrite_fig2.png new file mode 100644 index 00000000..90dbf544 Binary files /dev/null and b/rubbos/app/apache2/manual/images/mod_rewrite_fig2.png differ diff --git a/rubbos/app/apache2/manual/images/pixel.gif b/rubbos/app/apache2/manual/images/pixel.gif new file mode 100644 index 00000000..c0801475 Binary files /dev/null and b/rubbos/app/apache2/manual/images/pixel.gif differ diff --git a/rubbos/app/apache2/manual/images/right.gif b/rubbos/app/apache2/manual/images/right.gif new file mode 100644 index 00000000..f27eb970 Binary files /dev/null and b/rubbos/app/apache2/manual/images/right.gif differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig1.gif b/rubbos/app/apache2/manual/images/ssl_intro_fig1.gif new file mode 100644 index 00000000..3c209864 Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig1.gif differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig1.png b/rubbos/app/apache2/manual/images/ssl_intro_fig1.png new file mode 100644 index 00000000..e599d239 Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig1.png differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig2.gif b/rubbos/app/apache2/manual/images/ssl_intro_fig2.gif new file mode 100644 index 00000000..26b295a6 Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig2.gif differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig2.png b/rubbos/app/apache2/manual/images/ssl_intro_fig2.png new file mode 100644 index 00000000..c540f48a Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig2.png differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig3.gif b/rubbos/app/apache2/manual/images/ssl_intro_fig3.gif new file mode 100644 index 00000000..00a975b5 Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig3.gif differ diff --git a/rubbos/app/apache2/manual/images/ssl_intro_fig3.png b/rubbos/app/apache2/manual/images/ssl_intro_fig3.png new file mode 100644 index 00000000..d71a1cba Binary files /dev/null and b/rubbos/app/apache2/manual/images/ssl_intro_fig3.png differ diff --git a/rubbos/app/apache2/manual/images/sub.gif b/rubbos/app/apache2/manual/images/sub.gif new file mode 100644 index 00000000..93061c5a Binary files /dev/null and b/rubbos/app/apache2/manual/images/sub.gif differ diff --git a/rubbos/app/apache2/manual/images/up.gif b/rubbos/app/apache2/manual/images/up.gif new file mode 100644 index 00000000..5afcbe2d Binary files /dev/null and b/rubbos/app/apache2/manual/images/up.gif differ diff --git a/rubbos/app/apache2/manual/index.html b/rubbos/app/apache2/manual/index.html new file mode 100644 index 00000000..e1d67be1 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html @@ -0,0 +1,33 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.es +Content-Language: es +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.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 diff --git a/rubbos/app/apache2/manual/index.html.de b/rubbos/app/apache2/manual/index.html.de new file mode 100644 index 00000000..335fb794 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.de @@ -0,0 +1,104 @@ + + + +Dokumentation zum Apache HTTP Server Version +2.0 - Apache HTTP Server + + + + + + +
<-
+ + +
+

Verfgbare Sprachen:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.en b/rubbos/app/apache2/manual/index.html.en new file mode 100644 index 00000000..59ffc2da --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.en @@ -0,0 +1,103 @@ + + + +Apache HTTP Server Version 2.0 +Documentation - Apache HTTP Server + + + + + + +
<-
+ + +
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.es b/rubbos/app/apache2/manual/index.html.es new file mode 100644 index 00000000..7d1f4980 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.es @@ -0,0 +1,108 @@ + + + +Documentacin del Servidor HTTP Apache +2.0 - Servidor HTTP Apache + + + + + + +
<-
+ + +
+

Idiomas disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.fr b/rubbos/app/apache2/manual/index.html.fr new file mode 100644 index 00000000..a8102b54 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.fr @@ -0,0 +1,103 @@ + + + +Documentation du Serveur Apache Version +2.0 - Serveur Apache HTTP + + + + + + +
<-
+ + +
+

Langues Disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.ja.utf8 b/rubbos/app/apache2/manual/index.html.ja.utf8 new file mode 100644 index 00000000..8ade990c --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.ja.utf8 @@ -0,0 +1,101 @@ + + + +Apache HTTP サーバ バージョン 2.0 ドキュメント - Apache HTTP サーバ + + + + + + +
<-
+ + +
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.ko.euc-kr b/rubbos/app/apache2/manual/index.html.ko.euc-kr new file mode 100644 index 00000000..7331a954 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.ko.euc-kr @@ -0,0 +1,101 @@ + + + +Apache HTTP Server Version 2.0 - Apache HTTP Server + + + + + + +
<-
+ + +
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.ru.koi8-r b/rubbos/app/apache2/manual/index.html.ru.koi8-r new file mode 100644 index 00000000..bb45b5f2 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.ru.koi8-r @@ -0,0 +1,103 @@ + + + + HTTP Apache +2.0 - HTTP Apache + + + + + + +
<-
+ + +
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/index.html.tr.utf8 b/rubbos/app/apache2/manual/index.html.tr.utf8 new file mode 100644 index 00000000..7c393586 --- /dev/null +++ b/rubbos/app/apache2/manual/index.html.tr.utf8 @@ -0,0 +1,101 @@ + + + +Apache HTTP Sunucusu Sürüm 2.0 +Belgeleri - Apache HTTP Sunucusu + + + + + + +
<-
+ + +
+

Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html b/rubbos/app/apache2/manual/install.html new file mode 100644 index 00000000..38d88404 --- /dev/null +++ b/rubbos/app/apache2/manual/install.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: install.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: install.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: install.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: install.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: install.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: install.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: install.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/install.html.de b/rubbos/app/apache2/manual/install.html.de new file mode 100644 index 00000000..953099ec --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.de @@ -0,0 +1,406 @@ + + + +Kompilieren und Installieren - Apache HTTP Server + + + + + +
<-
+

Kompilieren und Installieren

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Dieses Dokument umfat nur die Kompilierung und Installation des + Apache auf Unix und Unix-hnlichen Systemen. Fr die + Kompilierung und Installation unter Windows lesen Sie bitte Den Apache unter Microsoft Windows + betreiben. Fr andere Plattformen lesen Sie bitte die + Dokumentation Plattformen.

+ +

Die Konfigurations- und Installationsumgebung des Apache 2.0 hat sich + seit dem Apache 1.3 komplett verndert. Der Apache 1.3 benutzt einen + speziellen Satz von Skripten, um eine einfache Installation zu + ermglichen. Der Apache 2.0 dagegen verwendet nun + libtool und autoconf, um eine Umgebung zu + schaffen, die der vieler anderer Open Source Projekte hnlich + sieht.

+ +

Wenn Sie von einer Unterversion auf die nchste aktualisieren (z.B. + von 2.0.50 auf 2.0.51), springen Sie bitte zum Abschnitt Upgrade.

+
+ +
top
+
+

berblick fr die Ungeduldigen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Download$ lynx http://httpd.apache.org/download.cgi
Auspacken$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
Konfigurieren$ ./configure --prefix=PREFIX +
Kompilieren$ make
Installieren$ make install
Anpassen$ vi PREFIX/conf/httpd.conf
Testen$ PREFIX/bin/apachectl start +
+ +

NN muss durch die Nummer der Unterversion ersetzt werden, + und PREFIX durch den Verzeichnispfad, + in dem der Server installiert werden soll. Wenn PREFIX nicht + angegeben ist, wird die Voreinstellung /usr/local/apache2 + verwendet.

+ +

Beginnend mit den Anforderungen + fr die Kompilierung und Installation des Apache HTTPD ist + weiter unten jeder Abschnitt des Kompilierungs- und + Installationsvorganges genauer beschrieben.

+
top
+
+

Anforderungen

+ +

Folgende Anforderungen gelten fr die Erstellung des + Apache:

+ +
+
Plattenplatz
+
Stellen Sie sicher, dass Sie kurzzeitig wenigstens 50 MB freien + Festplattenplatz zur Verfgung haben. Nach der Installation + belegt der Apache ungefhr 10 MB Plattenplatz. Der + tatschliche Platzbedarf variiert in Abhngigkeit von den + gewhlten Konfigurationseinstellungen und + Modulen von Drittanbietern.
+ +
ANSI-C-Compiler und Generierungswerkzeuge
+
Stellen Sie sicher, dass Sie einen ANSI-C Compiler installiert + haben. Der GNU C + Compiler (GCC) der Free Software + Foundation (FSF) ist empfehlenswert (Version 2.7.2 ist gut). Wenn + Sie den GCC nicht besitzen, stellen Sie zumindest sicher, dass der + Compiler Ihres Anbieters ANSI-kompatibel ist. Auerdem muss Ihr + PATH wesentliche Generierungswerkzeuge wie + make enthalten.
+ +
Zeitgenauigkeit bewahren
+
Elemente des HTTP-Protokolls werden in Form einer Tageszeit + ausgedrckt. Darum sollten Sie jetzt prfen, ob Ihr System + die Fhigkeit zur Zeitsynchronisation besitzt, und diese + gegebenenfalls installieren. blicherweise werden hierfr + die Programme ntpdate oder xntpd verwendet, + die auf dem Network Time Protocol (NTP) basieren. Nhere + Informationen ber NTP Software und ffentliche Zeitserver + finden Sie in der Usenet Newsgroup comp.protocols.time.ntp + und auf der NTP + Homepage.
+ +
Perl 5 + [OPTIONAL]
+
Fr einige Hilfsskripte wie apxs + oder dbmmanage (die in Perl + geschrieben sind) wird der Perl 5 Interpreter bentigt (die + Versionen ab 5.003 sind ausreichend). Wenn Sie mehrere Perl + Interpreter haben (beispielsweise eine systemweite Installation von + Perl 4 und Ihre eigene Perl 5-Installation), dann sollten Sie die + --with-perl-Option (siehe unten) verwenden, um + sicherzustellen, dass der richtige Interpreter von + configure ausgewhlt wird. + Wenn kein Perl 5-Interpreter vom configure-Skript + gefunden werden kann, knnen Sie die betroffenen Hilfsskripte nicht + verwenden, sind jedoch selbstverstndlich nach wie vor in der Lage, + den Apache 2.0 zu bauen und zu installieren.
+
+
top
+
+

Download

+ +

Der Apache kann von der Apache HTTP Server + Downloadseite heruntergeladen werden, auf der verschiedene Spiegelserver + angegeben sind. Fr die meisten Benutzer des Apache ist es auf + Unix-hnlichen Systemen am Besten, die Quellcodeversion herunterzuladen + und zu kompilieren. Der Erstellungsprozess (weiter unten beschrieben) ist + einfach und erlaubt es Ihnen, den Server Ihren Bedrfnissen anzupassen. + Dazu kommt, dass Binrdistributionen gegenber der aktuellen + Quellcodeversion oft veraltet sind. Wenn Sie tatschlich ein + Binrpaket herunterladen, folgen Sie bitte den Anweisungen in der Datei + INSTALL.bindist, die der Distribution beiliegt.

+ +

Es ist wichtig, dass Sie nach dem Herunterladen berprfen, + dass es sich um einer vollstndige und unvernderte Version des + Apache HTTP Servers handelt. Das knnen Sie erreichen, indem Sie das + heruntergeladene Paket gegen die PGP-Signatur prfen. Einzelheiten dazu + erfahren Sie auf der Download-Seite. Es + ist auch ein erweitertes Beispiel verfgbar, dass die Anwendung von PGP + beschreibt.

+ +
top
+
+

Auspacken

+ +

Das Auspacken des Quellcodes aus dem Apache HTTPD Tarball besteht + aus einem simplen Dekomprimieren und danach "Ent-tarren":

+ +

+ $ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar +

+ +

Dies erstellt unterhalb des aktuellen Verzeichnisses ein neues + Verzeichnis, das den Quellcode fr die Distribution enthlt. + Sie sollten mit cd in dieses Verzeichnis wechseln, + bevor Sie mit der Kompilierung des Servers weitermachen.

+ +
top
+
+

Den Codebaum konfigurieren

+ +

Der nchste Schritt ist die Konfiguration des + Apache-Codebaumes fr Ihre spezielle Plattform und Ihre + persnlichen Bedrfnisse. Dies wird mit dem Skript + configure durchgefhrt, das im Wurzelverzeichnis + der Distribution enthalten ist. (Entwickler, welche die CVS Version + des Apache-Codebaumes herunterladen, mssen autoconf + und libtool installiert haben und mssen + buildconf ausfhren, bevor sie mit den + nchsten Schritten fortfahren knnen. Dies wird bei + offiziellen Releases nicht notwendig sein.)

+ +

Um den Codebaum mit den Standardeinstellungen zu konfigurieren, + geben Sie einfach ./configure ein. Zur nderung + dieser Voreinstellungen akzeptiert configure eine + Reihe von Variablen und Kommandozeilenoptionen.

+ +

Die wichtigste Option ist --prefix, der Ablageort, an dem + der Apache spter installiert wird, da er fr diesen Ort + konfiguriert werden muss, um korrekt zu arbeiten. Eine feinere Einstellung + der Dateiablagen ist mit weiteren configure-Optionen + mglich.

+ +

Weiterhin knnen Sie zu diesem Zeitpunkt festlegen, welche Funktionalitt Sie + in den Apache aufnehmen mchten, indem Sie Module + aktivieren oder deaktivieren. Der Apache bindet standardmig + einen Satz von Basismodulen ein. + Andere Module werden mit Hilfe der Option + --enable-module aktiviert, wobei module + den Namen des Moduls ohne das Prfix mod_ darstellt. + Ausserdem sind alle Unterstriche durch Bindestriche zu ersetzen. Sie + knnen sich auch entscheiden, Module als "Shared + Objects (DSOs)" zu kompilieren, welche zur Laufzeit ge- und entladen + werden knnen. Dazu verwenden Sie die Option + --enable-module=shared. Entsprechend knnen Sie + Basismodule mit der Option --disable-module + deaktivieren. Lassen Sie Vorsicht walten. wenn Sie diese Optionen verwenden, + da configure Sie nicht warnen kann, wenn die von Ihnen + angegebenen Module nicht existieren; die Option wird dann einfach + ignoriert.

+ +

Zustzlich ist es zuweilen notwendig, das + configure-Skript mit Extrainformationen zum Ablageort + Ihres Compilers, Ihrer Bibliotheken oder Header-Dateien zu versorgen. Das + tun Sie, indem Sie entweder Umgebungsvariablen oder Kommandozeilenoptionen + an configure bergeben. Fr mehr Informationen + lesen Sie bitte die Hilfeseite zu configure.

+ +

Um einen kurzen Eindruck zu gewinnen, welche Mglichkeiten Sie + haben, folgt hier ein typisches Beispiel, das den Apache mit einem + speziellen Compiler und Compilerflags fr das + Installationsverzeichnis /sk/pkg/apache kompiliert, sowie + die beiden zustzlichen Module mod_rewrite und + mod_speling fr spteres Laden durch den + DSO-Mechanismus:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

Wenn configure startet, bentigt es mehrere + Minuten, um die Verfgbarkeit von Features auf Ihrem System zu + prfen und ein Makefile zu generieren, das spter zur + Kompilierung des Servers verwendet wird.

+ +

Einzelheiten zu den vielen verschiedenen configure-Optionen finden Sie auf der Hilfeseite zu + configure.

+ +
top
+
+

Erstellen

+ +

Nun knnen Sie die verschiedenen Teile, die das Apache-Paket + bilden, einfach durch Ausfhren des folgenden Befehls erstellen:

+ +

$ make

+ +

Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration + bentigt ungefhr 3 Minuten auf einem Pentium III/Linux 2.2. + System. Dies kann aber abhngig von Ihrer Hardware und der Anzahl + der Module, die Sie aktiviert haben, sehr stark variieren.

+
top
+
+

Installieren

+ +

Nun endlich installieren Sie das Package unter dem konfigurierten + Installations-PREFIX (siehe oben: Option --prefix + durch Aufrufen von:

+ +

$ make install

+ +

Wenn Sie upgraden, wird die Installation Ihre Konfigurationsdateien + oder Dokumente nicht berschrieben.

+
top
+
+

Anpassen

+ +

Als nchstes knnen Sie Ihren Apache HTTP Server anpassen, + indem Sie die Konfigurationsdateien + unterhalb von PREFIX/conf/ editieren.

+ +

$ vi PREFIX/conf/httpd.conf

+ +

Werfen Sie auch einen Blick in das Apache-Handbuch unter docs/manual/. Die aktuellste Version dieses Handbuchs + sowie eine komplette Referenz der verfgbaren Konfigurationsanweisungen finden + Sie unter http://httpd.apache.org/docs/2.0/.

+
top
+
+

Testen

+ +

Sie knnen nun Ihren Apache HTTP Server starten, indem Sie einfach

+ +

$ PREFIX/bin/apachectl start

+ +

ausfhren.

+ +

Danach sollten Sie Ihr erstes Dokument unter dem URL + http://localhost/ anfordern knnen. Die Webseite, + die Sie sehen, ist im DocumentRoot + abgelegt, welches blicherweise PREFIX/htdocs/ + ist. Den Server stoppen Sie wieder durch + Ausfhren von:

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

Upgrade

+ +

Der erste Schritt beim Aktualisieren besteht darin, die + Versionsankndigung sowie die CHANGES-Datei in der + Quelltextdistribution zu lesen, um nderungen zu finden, die Ihr + System mglicherweise betreffen. Wenn Sie einen greren + Versionssprung durchfhren (z.B. vom 1.3 auf 2.0 oder von 2.0 auf + 2.2), wird es wahrscheinlich auch grere Unterschiede in der + Kompilier- und Laufzeitkonfiguration geben, die manuelle Nacharbeiten + erfordern. Auerdem mssen alle Module aktualisiert + werden, um den nderungen der Modul-API gerecht zu werden.

+ +

Die Aktualisierung einer Unterversion auf eine andere (z.B. von 2.0.55 + auf 2.0.57) ist einfacher. make install berschreibt + keine der bereits existierenden Dokumente, Log- und Konfigurationsdateien. + Ausserdem bemhen sich die Entwickler, inkompatible nderungen + der configure-Optionen, der Laufzeitkonfiguration sowie + der Modul-API zu vermeiden. In den meisten Fllen sollten Sie in der + Lage sein, den gleichen configure-Befehl, die gleiche + Konfiguration und die gleichen Module wieder zu verwenden. (Das gilt erst + seit Version 2.0.41 -- frhere Versionen enthielten noch inkompatible + nderungen).

+ +

Um auf eine neue Unterversion zu aktualisieren, suchen Sie zunchst + die Datei config.nice im build-Verzeichnis + Ihrer Serverinstallation oder im Wurzelverzeichnis des Quelltextbaums + der alten Installation. Die Datei enthlt den genauen + configure-Befehl, der verwendet wurde, um den + Quellcode zu konfigurieren. Um jetzt von einer Version auf die + nchste zu aktualisieren, kopieren Sie einfach die + config.nice in das Verzeichnis der neuen Version, + passen sie bei Bedarf an, und fhren Sie sie aus:

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
Sie sollten jede neue Version immer in Ihrer Umgebung + testen, bevor Sie sie produktiv schalten. Beispielsweise knnen Sie + die neue Version neben der alten installieren, indem Sie ein anderes + --prefix und einen anderen Port whlen (durch Anpassen der + Listen-Direktive). So + knnen Sie auf eventuelle Inkompatibilitten testen, bevor Sie + endgltig die neue Version verwenden.
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.en b/rubbos/app/apache2/manual/install.html.en new file mode 100644 index 00000000..0db521df --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.en @@ -0,0 +1,386 @@ + + + +Compiling and Installing - Apache HTTP Server + + + + + +
<-
+

Compiling and Installing

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

This document covers compilation and installation of Apache + on Unix and Unix-like systems only. For compiling and + installation on Windows, see Using Apache with Microsoft + Windows. For other platforms, see the platform documentation.

+ +

Apache 2.0's configuration and installation environment has + changed completely from Apache 1.3. Apache 1.3 used a custom + set of scripts to achieve easy installation. Apache 2.0 now + uses libtool and autoconf + to create an environment that looks like many other Open Source + projects.

+ +

If you are upgrading from one minor version to the next (for + example, 2.0.50 to 2.0.51), please skip down to the upgrading section.

+ +
+ +
top
+
+

Overview for the + impatient

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Download$ lynx http://httpd.apache.org/download.cgi +
Extract$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
Configure$ ./configure --prefix=PREFIX +
Compile$ make
Install$ make install
Customize$ vi PREFIX/conf/httpd.conf
Test$ PREFIX/bin/apachectl start +
+ +

NN must be replaced with the current minor version + number, and PREFIX must be replaced with the + filesystem path under which the server should be installed. If + PREFIX is not specified, it defaults to + /usr/local/apache2.

+ +

Each section of the compilation and installation process is + described in more detail below, beginning with the requirements + for compiling and installing Apache HTTPD.

+
top
+
+

Requirements

+ +

The following requirements exist for building Apache:

+ +
+
Disk Space
+
Make sure you have at least 50 MB of temporary free disk + space available. After installation Apache occupies + approximately 10 MB of disk space. The actual disk space + requirements will vary considerably based on your chosen + configuration options and any third-party modules.
+ +
ANSI-C Compiler and Build System
+
Make sure you have an ANSI-C compiler installed. The GNU C + compiler (GCC) from the Free Software Foundation (FSF) + is recommended (version 2.7.2 is fine). If you don't have GCC + then at least make sure your vendor's compiler is ANSI + compliant. In addition, your PATH must contain + basic build tools such as make.
+ +
Accurate time keeping
+
Elements of the HTTP protocol are expressed as the time of + day. So, it's time to investigate setting some time + synchronization facility on your system. Usually the + ntpdate or xntpd programs are used for + this purpose which are based on the Network Time Protocol (NTP). + See the Usenet newsgroup comp.protocols.time.ntp + and the NTP + homepage for more details about NTP software and public + time servers.
+ +
Perl 5 + [OPTIONAL]
+
For some of the support scripts like apxs or dbmmanage (which are + written in Perl) the Perl 5 interpreter is required (versions + 5.003 or newer are sufficient). If you have multiple Perl + interpreters (for example, a systemwide install of Perl 4, and + your own install of Perl 5), you are advised to use the + --with-perl option (see below) to make sure the + correct one is used by configure. + If no Perl 5 interpreter is found by the + configure script, you will not be able to use + the affected support scripts. Of course, you will still be able to + build and use Apache 2.0.
+
+
top
+
+

Download

+ +

Apache can be downloaded from the Apache HTTP Server + download site which lists several mirrors. Most users of + Apache on unix-like systems will be better off downloading and + compiling a source version. The build process (described below) is + easy, and it allows you to customize your server to suit your needs. + In addition, binary releases are often not up to date with the latest + source releases. If you do download a binary, follow the instructions + in the INSTALL.bindist file inside the distribution.

+ +

After downloading, it is important to verify that you have a + complete and unmodified version of the Apache HTTP Server. This + can be accomplished by testing the downloaded tarball against the + PGP signature. Details on how to do this are available on the download + page and an extended example is available describing the use of + PGP.

+ +
top
+
+

Extract

+ +

Extracting the source from the Apache HTTPD tarball is a + simple matter of uncompressing, and then untarring:

+ +

+$ gzip -d httpd-2_0_NN.tar.gz
+$ tar xvf httpd-2_0_NN.tar +

+ +

This will create a new directory under the current directory + containing the source code for the distribution. You should + cd into that directory before proceeding with + compiling the server.

+
top
+
+

Configuring the source tree

+ +

The next step is to configure the Apache source tree for your + particular platform and personal requirements. This is done using + the script configure included in + the root directory of the distribution. (Developers downloading + the CVS version of the Apache source tree will need to have + autoconf and libtool installed and will + need to run buildconf before proceeding with the next + steps. This is not necessary for official releases.)

+ +

To configure the source tree using all the default options, + simply type ./configure. To change the default + options, configure accepts a variety of variables + and command line options.

+ +

The most important option is the location --prefix + where Apache is to be installed later, because Apache has to be + configured for this location to work correctly. More fine-tuned + control of the location of files is possible with additional configure + options.

+ +

Also at this point, you can specify which features you + want included in Apache by enabling and disabling modules. Apache comes with a Base set of modules included by + default. Other modules are enabled using the + --enable-module option, where + module is the name of the module with the + mod_ string removed and with any underscore converted + to a dash. You can also choose to compile modules as shared objects (DSOs) -- which can be loaded + or unloaded at runtime -- by using the option + --enable-module=shared. Similarly, you can + disable Base modules with the + --disable-module option. Be careful when + using these options, since configure cannot warn you + if the module you specify does not exist; it will simply ignore the + option.

+ +

In addition, it is sometimes necessary to provide the + configure script with extra information about the + location of your compiler, libraries, or header files. This is + done by passing either environment variables or command line + options to configure. For more information, see the + configure manual page.

+ +

For a short impression of what possibilities you have, here + is a typical example which compiles Apache for the installation + tree /sw/pkg/apache with a particular compiler and flags + plus the two additional modules mod_rewrite and + mod_speling for + later loading through the DSO mechanism:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

When configure is run it will take several minutes to + test for the availability of features on your system and build + Makefiles which will later be used to compile the server.

+ +

Details on all the different configure options are + available on the configure manual page.

+
top
+
+

Build

+ +

Now you can build the various parts which form the Apache + package by simply running the command:

+ +

$ make

+ +

Please be patient here, since a base configuration takes + approximately 3 minutes to compile under a Pentium III/Linux + 2.2 system, but this will vary widely depending on your + hardware and the number of modules which you have enabled.

+
top
+
+

Install

+ +

Now it's time to install the package under the configured + installation PREFIX (see --prefix option + above) by running:

+ +

$ make install

+ +

If you are upgrading, the installation will not overwrite + your configuration files or documents.

+
top
+
+

Customize

+ +

Next, you can customize your Apache HTTP server by editing + the configuration files under + PREFIX/conf/.

+ +

$ vi PREFIX/conf/httpd.conf

+ +

Have a look at the Apache manual under docs/manual/ or consult http://httpd.apache.org/docs/2.0/ for the most recent + version of this manual and a complete reference of available configuration directives.

+
top
+
+

Test

+ +

Now you can start your Apache + HTTP server by immediately running:

+ +

$ PREFIX/bin/apachectl start

+ +

and then you should be able to request your first document + via URL http://localhost/. The web page you see is located + under the DocumentRoot + which will usually be PREFIX/htdocs/. + Then stop the server again by + running:

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

Upgrading

+ +

The first step in upgrading is to read the release announcement + and the file CHANGES in the source distribution to + find any changes that may affect your site. When changing between + major releases (for example, from 1.3 to 2.0 or from 2.0 to 2.2), + there will likely be major differences in the compile-time and + run-time configuration that will require manual adjustments. All + modules will also need to be upgraded to accomodate changes in the + module API.

+ +

Upgrading from one minor version to the next (for example, from + 2.0.55 to 2.0.57) is easier. The make install + process will not overwrite any of your existing documents, log + files, or configuration files. In addition, the developers make + every effort to avoid incompatible changes in the + configure options, run-time configuration, or the + module API between minor versions. In most cases you should be able to + use an identical configure command line, an identical + configuration file, and all of your modules should continue to + work. (This is only valid for versions after 2.0.41; earlier + versions have incompatible changes.)

+ +

To upgrade across minor versions, start by finding the file + config.nice in the build directory of + your installed server or at the root of the source tree for your + old install. This will contain the exact + configure command line that you used to + configure the source tree. Then to upgrade from one version to + the next, you need only copy the config.nice file to + the source tree of the new version, edit it to make any desired + changes, and then run:

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
You should always test any new version in your + environment before putting it into production. For example, you + can install and run the new version along side the old one by + using a different --prefix and a + different port (by adjusting the Listen directive) to test for any + incompatibilities before doing the final upgrade.
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.es b/rubbos/app/apache2/manual/install.html.es new file mode 100644 index 00000000..4e86e9cc --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.es @@ -0,0 +1,446 @@ + + + +Compilacin e Instalacin - Servidor HTTP Apache + + + + + +
<-
+

Compilacin e Instalacin

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + +

Este documento explica cmo compilar e instalar Apache en + sistemas Unix y tipo Unix. Si lo que busca es informacin sobre + cmo compilar e instalar Apache en Windows, consulte la seccin + Usar Apache en Microsoft + Windows. Para otras plataformas, consulte la + documentacin sobre plataformas.

+ +

El entorno de configuracin e instalacin de Apache + 2.0 ha cambiado completamente respecto al de Apache 1.3. Apache + 1.3 usaba un conjunto de scripts a medida para conseguir una + instalacin fcil. Apache 2.0 usa libtool y + autoconf para crear un entorno ms parecido al + de muchos otros proyectos Open Source.

+ +

Si lo que quiere hacer es actualizar su servidor Apache desde + una versin menor (por ejemplo, desde la 2.0.50 a la 2.0.51), + pase directamente a la seccin de actualizacin.

+ +
+ +
top
+
+

Visin general del proceso para + impacientes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Descargar$ lynx http://httpd.apache.org/download.cgi +
Descomprimir$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
Ejecutar el script configure$ ./configure --prefix=PREFIX +
Compilar$ make
Instalar$ make install
Personalizar$ vi PREFIX/conf/httpd.conf
Comprobar que la instalacin + funciona$ PREFIX/bin/apachectl start +
+ +

NN hay que reemplazarlo por el nmero de la + versin menor, y PREFIX hay que reemplazarlo por la + ruta en la que se va a instalar Apache. Si no especifica + ningn valor en PREFIX, el valor que se usa + por defecto es /usr/local/apache2.

+ +

Cada parte del proceso de configuracin e instalacin + se describe detalladamente ms abajo, empezando por los + requisitos para compilar e instalar Apache.

+
top
+
+

Requisitos

+ +

Requisitos necesarios para compilar Apache:

+ +
+
Espacio en disco
Compruebe que tiene disponibles al + menos 50 MB de espacio libre en disco. Despus de la + instalacin, Apache ocupa aproximadamente 10 MB. No + obstante, la necesidad real de espacio en disco vara + considerablemente en funcin de las opciones de + configuracin que elija y de los mdulos externos que + use.
+ +
Compilador ANSI-C y Build System
Compruebe que + tiene instalado un compilador de ANSI-C. Se recomienda el Compilador GNU C + (GCC) de la Free Software + Foundation (FSF) (con la versin 2.7.2 es + suficiente). Si no tiene instaldo el GCC, entonces compruebe que + el compilador que va a utilizar cumple con los estndares + ANSI. Adems, su variable de entorno PATH debe + contener la ubicacin en la que se encuentran las + herramientas bsicas para compilar, como por ejemplo + make.
+ +
Ajuste exacto del reloj del sistema
Los elementos + del protocolo HTTP estn expresados segn la hora del + da. Por eso, si quiere puede investigar como instalar + alguna utilidad para sincronizar la hora de su sistema. Para + esto, normalmente, se usan los programas ntpdate o + xntpd, que estn basados en el protocolo + Network Time Protocol (NTP). Consulte el grupo de noticias comp.protocols.time.ntp + y el sitio web de NTP + para obtener ms informacin sobre NTP y los + servidores pblicos de tiempo.
+ +
Perl 5 [OPCIONAL]
+
Para algunos de los scripts de soporte como + apxs o dbmmanage (que + estn escritos en Perl) es necesario el intrprete de + Perl 5 (las versiones 5.003 o posteriores son suficientes). Si + el script configure no encuentra ese + intrprete tampoco pasa nada. An puede compilar e + instalar Apache 2.0. Lo nico que ocurrir es que esos + scripts de soporte no podrn ser usados. Si usted tiene + varios interpretes de Perl instalados (quizs Perl 4 porque + estaba ya incluido en su distribucin de Linux y Perl 5 + porque lo ha instalado usted), entonces se recomienda usar la + opcin --with-perl para asegurarse de que + configure usa el intrprete + correcto.
+
+
top
+
+

Descargar

+ +

Puede descargar Apache desde la seccin de + descargas del sitio web de Apache el cual tiene varios + mirrors. Para la mayora de los usuarios de Apache que tienen + sistemas tipo Unix, se recomienda que se descarguen y compilen el + cdigo fuente. El proceso de compilacin (descrito + ms abajo) es fcil, y permite adaptar el servidor + Apache a sus necesidades. Adems, las versiones de + disponibles en archivos binarios no estn siempre actulizadas + con las ltimas modificaciones en el codigo fuente. Si se + descarga un binario, siga las instrucciones contenidas en el + archivo INSTALL.bindist incluido en la + distribucin

+ +

Despus de la descarga, es importante que verifique que el + archivo descargado del servidor HTTP Apache est completo y + sin modificaciones. Esto puede hacerlo comparando el archivo + descargado (.tgz) con su firma PGP. Instrucciones detalladas de + cmo hacer esto estn disponibles en la + seccin de descargas junto con un ejemplo de cmo usar + PGP.

+ +
top
+
+

Descomprimir

+ +

Extraer el cdigo fuente del archivo .tgz que acabada de + descargar es muy fcil. Ejecute los siguientes comandos:

+ +

+ $ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar +

+ +

Estos comandos crearn un nuevo directorio dentro del + directorio en el que se encuentra y que contendr el + cdigo fuente de la distribucin. Debe cambiarse a ese + directorio con cd para proceder a compilar el + servidor Apache.

+ +
top
+
+

Configuracin de la estructura de +directorios

+ +

El siguiente paso es configurar la estructura de directorios + para su plataforma y sus necesidades personales. Esto se hace + usando el script configure incluido en el directorio + raiz de la distribucin que acaba de descargar. (Los + desarrolladores que se descarguen la versin del CVS de la + estructura de directorios necesitarn tener instalados + autoconf y libtool, y necesitarn + ejecutar buildconf antes de continuar con los + siguientes pasos. Esto no es preciso para las versiones + oficiales.)

+ +

Para configurar la estructura de directorios a partir del + cdigo fuente usando las opciones por defecto, solo tiene que + ejecutar ./configure. Para cambiar las opciones por + defecto, configure acepta una serie de variables y + opciones por la lnea de comandos.

+ +

La opcin ms importante es --prefix que + es el directorio en el que Apache va a ser instalado despus, + porque Apache tiene que ser configurado para el directorio que se + especifique para que funcione correctamente. Es posible lograr un + mayor control del lugar donde se van a instalar los ficheros de + Apache con otras opciones de + configuracin.

+ +

En este momento, puede especificar que caractersticas + o funcionalidades quiere incluir en Apache activando o + desactivando mdulos. Apache viene con + una seleccin + bsica de mdulos incluidos por defecto. Se pueden + activar otros mdulos usando la opcin + --enable-module, donde module + es el nombre del mdulo sin el mod_ y + convirtiendo los guiones bajos que tenga en guiones normales. + Tambin puede optar por compilar mdulos como objetos dinmicos compartidos (DSOs) -- + que pueden ser activados o desactivados al ejecutar -- usando la + opcin --enable-module=shared. De + igual manera, puede desactivar alguno de los mdulos que + vienen por defecto en la seleccin basica con la opcin + --disable-module. Tenga cuidado cuando + use estas opciones, porque configure no le + avisar si el mdulo que especifica no existe; + simplemente ignorar esa opcin.

+ +

Adems, a veces es necesario pasarle al script + configure informacin adicional sobre + donde est su compilador, libreras o ficheros de cabecera. Esto + se puede hacer, tanto pasando variables de entorno, como pasndole + opciones a configure a travs de la + lnea de comandos. Para ms informacin, consulte + la pgina de ayuda de configure.

+ +

Para que se haga una idea sobre las posibilidades que tiene, + aqu tiene un ejemplo tpico que configura Apache para + la ruta /sw/pkg/apache con un compilador y unos flags + determinados, y adems, con dos mdulos adicionales + mod_rewrite y mod_speling para + cargarlos despus a travs del mecanismo DSO:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

Cuando se ejecuta configure se comprueban + que caractersticas o funcionalidades estn disponibles + en su sistema y se crean los Makefiles que sern usados luego + para compilar el servidor. Esto tardar algunos minutos.

+ +

La informacin sobre todas las opciones de + configure est disponible en la + pgina de ayuda de configure.

+ +
top
+
+

Compilar

+ +

Ahora puede compilar las diferentes partes que forman Apache + simplemente ejecutando el siguiente comando:

+ +

$ make

+ +

Por favor, tanga un poco de paciencia ahora, porque una + configuracin bsica tarda aproximadamente 3 minutos en + compilar en un Pentium III con un sistema Linux 2.2, pero este + tiempo puede variar considerablemente en funcin de su + hardware y del nmero de mdulos que haya + seleccionado.

+
top
+
+

Instalar

+ +

Ahora es el momento de instalar el paquete en el diretorio + elegido en PREFIX (consulte la opcin + --prefix ms arriba) ejecutando:

+ +

$ make install

+ +

Si usted est solo actualizando una instalacin + anterior, la nueva instalacin no sobreescribir sus + ficheros de configuracin ni otros documentos.

+
top
+
+

Personalizar

+ +

El paso siguiente, es personalizar su servidor Apache editando + los ficheros de configuracin + que estn en PREFIX/conf/.

+ +

$ vi PREFIX/conf/httpd.conf

+ +

chele un vistazo al Manual de Apache que est en docs/manual/ o consulte en http://httpd.apache.org/docs/2.0/ la versin ms + reciente de este manual y la Guia de Referencia de todas las directivas de configuracin + disponibles.

+
top
+
+

Comprobar que la instalacin +funciona

+ +

Ahora puede iniciar su servidor + Apache cuando quiera ejecutando:

+ +

$ PREFIX/bin/apachectl start

+ +

y entonces debe poder acceder al documento que tenga + especificado por defecto usando el siguiente URL: + http://localhost/. El documento que ver + estar en DocumentRoot y + casi siempre estar en PREFIX/htdocs/. + Si quiere parar el servidor, puede + hacerlo ejecutando:

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

Actualizar una instalacin +prrevia

+ +

El primer paso para actualizar una instalacin anterior es + leer las especificaciones de la versin y el fichero + CHANGES en la distribucin de cdigo fuente + que ha descargado para encontrar los cambios que puedan afectar a + su instalacin actual. Cuando el cambio sea entre versiones + mayores (por ejemplo, de la 1.3 a la 2.0 o de la 2.0 a la 2.2), + entonces es ms probable que haya diferencias importantes en + la compilacin y en la ejecucin que necesitarn + ajustes manuales. Todos los mdulos necesitarn + tambin ser actualizados para adaptarse a los cambios en el + interfaz de programacin (API) de mdulos.

+ +

La actualizacin cuando el cambio es entre versiones + menores (por ejemplo, de la 2.0.55 a la 2.0.57) es ms + fcil. El proceso make install no + sobreescribir ninguno de los documentos existentes, archivos + log, o archivos de configuracin. Adems, los + desarrolladores hacen todos los esfuerzos posibles para evitar + cambios que generen incompatibilidades en las opciones de + configure, en la configuracin de la + ejecucin o en la interfaz de programacin de + mdulos. En la mayor parte de los casos debe poder usar un + comando configure idntico, un fichero de + configuracin idntico, y todos sus mdulos deben + seguir funcionando. (Esto es vlido solo para versiones + posteriores a la 2.0.41; las versiones anteriores contienen + cambios incompatibles.)

+ +

Si la actualizacin es entre versiones menores (por + ejemplo, de la 2.0.55 a la 2.0.57), lo primero que debe hacer es + encontrar el fichero config.nice en el directorio + build de la instalacin antigua de Apache que + desea actualizar o en el directorio raiz de la estructura de + directorios con las fuentes del servidor que uso para su anterior + instalacin. Ese fichero contiene el comando + configure exacto que us originalmente + para configurar la estructura de directorios de las fuentes de + Apache. Para actualizar su instalacin de una versin a + la siguiente, solo tiene que copiar el archivo + config.nice a la estructura de directorios que + contiene las fuentes de la nueva versin de Apache, editarlo, + hacer cualquier cambio que desee, y ejecutar:

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
Tenga en cuenta que antes de poner una nueva + versin de Apache en produccin, debe siempre probarla + antes en su entorno. Por ejemplo, puede instalar y ejecutar la + nueva versin junto con la antigua usando un + --prefix diferente y un puerto diferente (modificando + la directiva Listen) + para comprobar que no existe ninguna incompatibilidad antes de + hacer la actualizacin definitiva.
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.ja.utf8 b/rubbos/app/apache2/manual/install.html.ja.utf8 new file mode 100644 index 00000000..ee6db41f --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.ja.utf8 @@ -0,0 +1,396 @@ + + + +コンパイルとインストール - Apache HTTP サーバ + + + + + +
<-
+

コンパイルとインストール

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + +

この文書で扱う範囲は、Unix や Unix に類似したシステムでの + Apache のコンパイルとインストールです。 Windows における + コンパイルとインストールに関しては「Microsoft + Windows で Apache を使う」をご覧下さい。 + その他のプラットホームに関しては「プラットホーム」をご覧下さい。

+ +

Apache 2.0 の設定とインストールの環境は、Apache 1.3 とは + 完全に異なるものになりました。簡単にインストールできるように、 + Apache 1.3 では特製スクリプトを使っていました。 + Apache 2.0 では他の Open Source プロジェクトと同様の環境に + するために libtoolautoconf + を使うようになっています。

+ +

マイナーバージョンからその次のバージョンにアップグレードする + (2.0.50 から 2.0.51 へ等) 場合は、まず + アップグレードをご覧下さい。

+ +
+ +
top
+
+

概要 (せっかちな人向け)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ダウンロード$ lynx http://httpd.apache.org/download.cgi +
展開$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
設定$ ./configure --prefix=PREFIX +
コンパイル$ make
インストール$ make install
カスタマイズ$ vi PREFIX/conf/httpd.conf
テスト$ PREFIX/bin/apachectl start +
+ +

NN は最新のマイナーバージョンナンバーに、 + PREFIX はインストールするサーバでのファイルシステムのパスに、 + 置き換えてください。PREFIX を指定しなかった場合は、 + デフォルトの /usr/local/apache2 になります。

+ +

Apache HTTPD のコンパイルとインストールに必要なものをはじめとして、 + 編集とインストールプロセスでのそれぞれの項は + 次に詳しく記述されています。

+
top
+
+

必要なもの

+ +

Apache のビルドには次のものが必要です:

+ +
+
ディスクスペース
+
ディスクに少なくとも 50 MB の一時的な空き容量があるように + 気を付けてください。インストール後は Apache は 10 MB 程度の + ディスクスペースを占めます。実際に必要になるディスクスペースは、 + 設定オプションやサードパーティー製モジュールをどう選択するかによって + 大きく変わるでしょう。
+ +
ANSI-C コンパイラとビルドシステム
+
ANSI-C コンパイラをインストールしておいて下さい。お薦めは Free Software Foundation (FSF) + による GNU C + compiler (GCC) です (バージョン 2.7.2 で大丈夫です)。GCC がない場合は、 + 少なくとも提供されているコンパイラが ANSI 準拠であることを確認しておいて下さい。 + それから、変数 PATH には make + といった基本的なビルドツールが含まれている必要があります。
+ +
時刻を正確にする
+
HTTP プロトコルの要素は日時の時刻で表現されています。ですから、 + 正確な時刻にシンクロさせる機能をシステムに設定することを吟味してみて下さい。 + Network Time Protocol (NTP) をベースとした ntpdate や xntpd プログラムが + この目的によく用いられます。NTP ソフトウェアや公開 NTP + サーバに関する詳細は、Usenet ニュースグループ comp.protocols.time.ntpNTP ホームページ をご覧下さい。
+ +
Perl 5 + [オプション]
+
提供されているスクリプト幾つか、例えば apxsdbmmanage は + Perl で書かれているので、Perl + 5 インタプリタが必要になります (5.003 以降)。 + "configure"スクリプトでこのようなインタプリタが見つからなくても、 + 別に不具合はありません。もちろん、Apache + 2.0 のコンパイルとインストールはできます。 + これらのサポートスクリプトが使えなくなるだけです。 + Perl インタプリタを複数インストールしている場合 (ベンダーの Perl + 4 と自分で入れた Perl 5 がある場合など) は、 + --with-perl オプション (下記参照) を使って ./configure + が適切なものを確実に選ぶようにすると良いでしょう。
+
+
top
+
+

ダウンロード

+ +

Apache は Apache HTTP + サーバダウンロードサイトからダウンロードできますし、 + 同じ場所に幾つかのミラーサイトもリストしています。 + UNIX に類似するシステムで Apache を使うユーザは、ソースを + ダウンロードしてビルドしたほうが良いでしょう。 + ビルドの手順(下記)は簡単ですし、そのおかげでニーズに + 見合ったカスタマイズを簡単にできます。 + さらに、バイナリのリリースはソースリリースよりも + 遅れていることがよくあります。 + それでもバイナリをダウンロードしたのであれば、 + ディストリビューションの中にある INSSTALL.bindist + ファイルの説明に従ってください。

+ +

ダウンロード後、ダウンロードしたものが Apache HTTP + サーバの完全で改竄されていないバージョンであることを + 検証することが重要です。これはダウンロードした tarball の PGP 署名を + テストすることによって検証します。 + この手順の詳細は ダウンロード + ページ にあり、さらに詳しい例は PGP の使用 + に記載されています。

+ +
top
+
+

展開

+ +

Apache HTTPD の tarball + からソースファイルを展開して取り出すとは、 + 単なる圧縮の解除と tar の展開です:

+ +

+$ gzip -d httpd-2_0_NN.tar.gz
+$ tar xvf httpd-2_0_NN.tar +

+ +

配布用のソースコードがある現在いるディレクトリの下に、 + 新しいディレクトリが作られます。 + サーバをコンパイルする段階に進む前に、そのディレクトリに + cd で移動してください。

+
top
+
+

ソースツリーを設定する

+ +

次のステップは、あなたのプラットホームと + 個人的な要求に合うように Apache + ソースツリーを設定することです。 + これは配布ディレクトリのルートディレクトリにある、 + configure + スクリプトで行ないます。 + (Apache ソースツリーの CVS + 版をダウンロードした開発者は、次のステップに進む前に + autoconflibtool + をインストールして buildconf + を実行する必要があるでしょう。 + 公式リリースではこの作業は必要ありません。)

+ +

デフォルトオプションを使ってソースツリーを全て設定する + のであれば、単純に ./configure とタイプしてください。 + デフォルトオプションを変更できるように、configure + には様々な変数やコマンドラインオプションが用意されています。

+ +

最も重要なオプションは、Apache がこの後でインストールされる位置 + --prefix です。Apache は、このインストール位置に + おいて正常に動作するように設定しなければならないからです。 + さらに詳細なファイル位置の制御は追加の 設定オプション + でできます。

+ +

この時点で、モジュール を有効にしたり + 無効にしたりすることで Apache 本体に含まれる 機能 + を指定できます。Apache 本体にはデフォルトで、モジュールの Base セットが + 含まれます。その他のモジュールは + --enable-module オプションで + 有効になります。ここで module はモジュールの名前で、 + つまりそれはモジュールの名前から mod_ 文字列を取り除いた後に + アンダースコアをダッシュで置換した文字列です。 + これとは別の方法で --enable-module=shared + オプションを使って、モジュールを + シェアードオブジェクト (DSO) -- 実行時にロードしたり + アンロードしたりできる形式 -- としてコンパイルすることもできます。 + 同様に、--disable-module オプションで + Base モジュールを無効化することもできます。 + これらのオプションを使っているときに、もし指定したモジュールが存在しなくても + configure は警告を上げることなく、単純にオプションを + 無視することに気をつけてください。

+ +

上記に加えて、configure スクリプトに、 + コンパイラ、ライブラリ、ヘッダファイルの位置を追加情報として渡す + 必要がある場合があります。このような場合には、環境変数あるいは + コマンドラインオプションで configure に渡します。 + 詳細に関しては configure マニュアルページ + をご覧ください。

+ +

ちょっとどんなことができるかを見せましょう。 + ここで典型的な例として、/sw/pkg/apache + というインストールツリーでコンパイラとフラグを指定して、 + さらに二つの追加モジュール mod_rewrite と + mod_speling を後で DSO + メカニズムでロードするようにコンパイルしてみます:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

configure を実行したら、システムの機能を + テストしたり、後でサーバをコンパイルするために必要な Makefile + を生成したりするのに数分間かかるでしょう。

+ +

個々の configure オプションの詳細に関しては + configure マニュアルページ + をご覧ください。

+
top
+
+

ビルド

+ +

これで Apache の様々なパーツをビルドすることができます。 + 次のコマンドを単純に実行するだけです:

+ +

$ make

+ +

基本的な設定をするのに、Pentium III/Linux 2.2 + のシステムでおおよそ 3 分程度かかりますが、 + あらかじめご了承下さい。 + また、時間はハードウェアや有効にしたモジュールの数に + 大きく依存するでしょう。

+
top
+
+

インストール

+ +

さて、設定したインストール PREFIX + (前述の --prefix オプションを参照) + 以下にパッケージをインストールする段階になりました。 + 次のコマンドを実行してください:

+ +

$ make install

+ +

アップグレードする場合は、インストールでは設定ファイルや + ドキュメントファイルの上書きは行いません。

+
top
+
+

カスタマイズ

+ +

次に PREFIX/conf/ 以下にある 設定ファイルを編集して、 + Apache HTTP サーバをカスタマイズします。

+ +

$ vi PREFIX/conf/httpd.conf

+ +

docs/manual/ の Apache マニュアルをざっと見てください。 + または、http://httpd.apache.org/docs/2.0/ + にあるマニュアル最新版、設定ディレクティブに当たってみてください。

+
top
+
+

テスト

+ +

次のコマンドを実行して Apache HTTP サーバを開始できます:

+ +

$ PREFIX/bin/apachectl start

+ +

URL http://localhost/ を通して最初のドキュメントに対する + リクエストを発行する事ができるはずです。これで見える + ウェブページは DocumentRoot + 以下に置かれたもので、通常は + PREFIX/htdocs/ でしょう。 + サーバを再び停止するには、 + 次のコマンドを実行します:

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

アップグレード

+ +

アップグレードでまず行なうべきことは、リリースアナウンスと + ソースディストリビューションに入っている CHANGES を読んで、 + 自身のサイトに対して影響を及ぼす変更点を探すことです。 + メジャーリリース間の変更をする場合 (例えば 1.3 から 2.0 へ、2.0 から 2.2 へ) + は、コンパイル時や実行時の設定に大きな差異があるでしょうから、 + 手動の調整が必要になるでしょう。モジュールも全て、API + の変更に合わせるためにアップグレードが必要になるでしょう。

+ +

マイナーバージョンから次のバージョンにアップグレードする場合 + (例えば 2.0.55 から 2.0.57 へ) は、もっと簡単です。 + make install を実行しても今あるドキュメント、 + ログファイル、設定ファイルは上書きされません。 + さらに、マイナーバージョン間では configure オプション、 + 実行時の設定、モジュール API に不整合が起こらないように、 + 開発者は最大限の努力をしています。 + 大抵の場合、同一の configure コマンドライン、 + 同一の設定ファイル、モジュール全てが正常に動作するはずです。 + (2.0.41 以降ではそのようになっています。それ以前のバージョンには + 不整合が存在します。)

+ +

前回のインストール時のソースツリーが残されているのであれば、 + アップグレードはさらに簡単です。古いソースツリーのルートに存在する + config.nice ファイルには、前回ソースツリーを設定した時の + configure コマンドラインが入っています。 + 次のバージョンにアップグレードする場合は、config.nice + ファイルを新しいバージョンのソースツリーにコピーし、 + それを編集し必要な変更を行なって、次のように実行します。

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
新しいバージョンを使用する場合は、 + 実際に運用を始める前に、必ず自分用の環境でテストすべきです。 + 最終的にアップグレードする前に、非互換性がないかをテストするために、 + 例えば、異なる --prefix と異なるポート (Listen ディレクティブで設定します) + を使用することで、古いバージョンに影響を与えずに新しいバージョンを + インストールし、実行できます。
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.ko.euc-kr b/rubbos/app/apache2/manual/install.html.ko.euc-kr new file mode 100644 index 00000000..e2a75c07 --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.ko.euc-kr @@ -0,0 +1,363 @@ + + + +ϰ ġ - Apache HTTP Server + + + + + +
<-
+

ϰ ġ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

н н ýۿ ġ ϰ + ġϴ ͸ ٷ.  ϰ ġϴ + ũμƮ  + ġ ϶. ٸ ÷ ؼ ÷ ϶.

+ +

ġ 2.0 ġ ȯ 1.3 ſ ٸ. + ġ 1.3 ġ ü ũƮ ߴ. + ġ 2.0 ٸ ¼ҽ Ʈ ȯ + libtool autoconf + Ѵ.

+ +

Ѵܰ ׷̵Ѵٸ ( , + 2.0.50 2.0.51), ׷̵ + ٷ ٶ.

+ +
+ +
top
+
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ٿε$ lynx http://httpd.apache.org/download.cgi +
Ǯ$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
$ ./configure --prefix=PREFIX +
$ make
ġ$ make install
$ vi PREFIX/conf/httpd.conf
˻$ PREFIX/bin/apachectl start +
+ +

NN ڷ, PREFIX + ġ Ͻý η üؾ Ѵ. PREFIX + ⺻ /usr/local/apache2 + Ѵ.

+ +

Ʒ ġ ϰ ġϱ 䱸׺ + ϰ ġ ڼ Ѵ.

+
top
+
+

+ +

ġ ϱ ͵ ʿϴ:

+ +
+
ũ
+
ũ ּ 50 MB ̻ Ȯ϶. + ġ ġ 10 MB ũ Ѵ. + ʿ ũ ɼǰ ߰ ⿡ + ̰ .
+ +
ANSI-C Ϸ ý
+
ANSI-C Ϸ ġִ Ȯ϶. Free Software Foundation (FSF) + GNU C + compiler (GCC) õѴ. ( 2.7.2 ȴ.) GCC + ٸ ּ ϴ Ϸ ANSI ȣȯ Ȯ϶. + ߰ PATH ȯ溯 make + ⺻ ؾ Ѵ.
+ +
Ȯ ð
+
HTTP ݿ Ϸ ð ǥϴ κ ִ. ׷ + ý ð ȭ 캼 ð̴. + ̸ Network Time Protocol (NTP) + ntpdate xntpd Ѵ. + NTP Ʈ ð ׷ + comp.protocols.time.ntp + NTP Ȩ + ϶.
+ +
Perl 5 + [û]
+
(Perl ) apxs + dbmmanage + ũƮ Perl 5 Ͱ ʿϴ. ( + 5.003 ̸̻ ȴ.) `configure' ũƮ + ͸ ã ص ġ 2.0 + ϰ ġ ִ. ٸ ũƮ + ̴. Perl Ͱ ġִٸ (Ƹ + 춧 Ե Perl 4 Perl 5) + ./configure ùٸ ã + --with-perl ɼ (Ʒ ) ϱ ٶ.
+
+
top
+
+

ٿε

+ +

ġ ̷ ִ ġ + ٿε Ʈ ٿε ִ. н ý + Ѵٸ ҽڵ带 ٿ޾Ƽ ϴ . + (Ʒ ) ְ, ڽ 뵵 ˸° + ִ. , ֽ ̳ʸ 쵵 + . ̳ʸ ٿ޴´ٸ ִ + INSTALL.bindist ø .

+ +

ٿε ٿ ϰ + ġ Ȯϴ ߿ϴ. + PGP ٿε Ÿ(tarball) ˻Ͽ ȮѴ. + ڼ ٿε + ְ, PGP + ϴ ִ.

+ +
top
+
+

Ǯ

+ +

ġ Ÿ ҽ Ǫ ۾ ܼ + tar Ǫ ̴:

+ +

+$ gzip -d httpd-2_0_NN.tar.gz
+$ tar xvf httpd-2_0_NN.tar +

+ +

׷ 丮 Ʒ ҽڵ带 + ο 丮 . ϱ + 丮 cdؾ Ѵ.

+
top
+
+

ҽ Ʈ ϱ

+ +

Ư ÷ ʿ信 ġ + ҽ Ʈ ϴ ̴. ̸ ֻ 丮 + ִ configure + ũƮ Ѵ. (ġ + ҽ Ʈ CVS ٿε ڴ ̹ + autoconf libtool ġְ, + Ѿ buildconf ؾ + Ѵ. ̴ ʿ.)

+ +

⺻ ɼ Ͽ ҽ Ʈ Ϸ + ./configure Էϸȴ. ⺻ ɼ Ϸ + ./configure ɼ Ѵ.

+ +

߿ ɼ ġ ۵ϱ ġ + ϰ ġ --prefix. ٸ configure + ɼǵ Ͽ ġ ڼ + ִ.

+ +

ϰų ġ + + Ѵ. Base + ⺻ ġ Եȴ. ٸ + --enable-module ɼ Ͽ + Ѵ. ⼭ module ̸ + mod_ ȣ . + --enable-module=shared ɼ ϸ + ߿ ϰų ִ ü(shared object, DSO) Ѵ. + , --disable-module ɼ Ͽ + Base ִ.  + configure ʰ ׳ ϱ⶧ + ̸ Ȯ Է϶.

+ +

configure ũƮ Ϸ, + ̺귯, ġ ˷ 찡 ִ. + ȯ溯 configure ɼ + Ͽ Ѵ. ڼ configure manpage + ϶.

+ +

ִ ɼ ֱ + Ư Ϸ ÷׸ ϰ ߿ DSO о + mod_rewrite + mod_speling ߰Ͽ + /sw/pkg/apache ġ ġ ϴ + ̴:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

configure ϸ а ý + ˻Ͽ ߿ Ҷ Makefile + .

+ +

configure ɼǵ鿡 ڼ configure manpage ִ.

+ +
top
+
+

+ +

ɾ ϳ ġ κ + ִ:

+ +

$ make

+ +

⼭ ٷ. Ƽ III/ 2.2 ýۿ + ⺻ ϴµ 3 ɸ. ð + ϵ ũ Ѵ.

+
top
+
+

ġ

+ +

ɾ Ű ( --prefix + ɼ ) ġ ġ PREFIX ġѴ:

+ +

$ make install

+ +

׷̵Ѵٸ ġ ̳ +  ʴ´.

+
top
+
+

+ +

PREFIX/conf/ ִ + Ͽ ġ + Ѵ.

+ +

$ vi PREFIX/conf/httpd.conf

+ +

þ + ֱ docs/manual/̳ http://httpd.apache.org/docs/2.0/ ִ ġ + ϶.

+
top
+
+

˻

+ +

ġ ִ:

+ +

$ PREFIX/bin/apachectl start

+ +

׸ URL http://localhost/ ù + ûѴ. Ե Ƹ + PREFIX/htdocs/ DocumentRoot Ʒ ִ. ׸ + ɾ ٽ ߴѴ:

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

׷̵

+ +

׷̵Ѵٸ Ʈ ִ ȭ + ִ ˾ƺ ǥ ҽ CHANGES + д´. ( , 1.3 2.0̳ 2.0 2.2 + ) ū ɼǰ ؾ + ū ȭ ̴. ⵵ API ȭ + ˸° ׷̵ؾ Ѵ.

+ +

Ѵܰ ׷̵ϴ ( , + 2.0.55 2.0.57) . make install ۾ + , α, ʴ´. , + ڴ configure ɼ, , + API ȣȯ ȭ ִ ´. κ + configure , + ְ, 鵵 ̴. ( + 2.0.41 شѴ. 鿡 ȣȯ + ȭ ִ.)

+ +

ġߴ ҽ ִٸ, ׷̵尡 + . ҽ ֻ ִ config.nice + Ͽ ҽ ߴ configure + ɼ ״ ִ. ׷ ׷̵Ѵٸ + ο ҽ config.nice ϰ, + Ѵٸ , Ѵ:

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
ο ϱ ׻ ˻غ + Ѵ. , ׷̵带 ġ ȣȯ + ִ ˾ƺ ٸ --prefix (Listen þ) ٸ Ʈ + Ͽ ο ġ غ + ִ.
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.ru.koi8-r b/rubbos/app/apache2/manual/install.html.ru.koi8-r new file mode 100644 index 00000000..73d96e4f --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.ru.koi8-r @@ -0,0 +1,406 @@ + + + + - HTTP Apache + + + + + +
<-
+

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

+ Apache UNIX UNIX- . + Windows, « Apache Microsoft Windows». + , , + «».

+ +

, + Apache 1.3. Apache 1.3 , + . Apache 2.0 libtool + autoconf, + (Open Source projects).

+ +

+ (, 2.0.50 2.0.51), + .

+ +
+

.

+
top
+
+

« »

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
$ lynx http://httpd.apache.org/download.cgi +
$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
$ ./configure --prefix=PREFIX +
$ make
$ make install
$ vi PREFIX/conf/httpd.conf
$ PREFIX/bin/apachectl start +
+ +

NN , + PREFIX , + . PREFIX , + + /usr/local/apache2.

+ +

+ , ޣ , + , .

+
top
+
+

+ +

, :

+ +
+
+
, 50 MB + . + Apache 10 MB. + + , + Apache.
+ +
ANSI-C
+
, ANSI-C + . GNU C + (GCC) Free Software Foundation (FSF) + ( 2.7.2 ). , + , ANSI. , + PATH , + , (make ).
+ +
+
HTTP . + , + . + ntpdate xntpd, + + (Network Time Protocol - NTP). + NTP , Usenet comp.protocols.time.ntp, + NTP.
+ +
Perl 5 + []
+
, + apxs dbmmanage + ( Perl), Perl + ( 5.003 ). + + Perl ( Perl 4 Perl 5), + configure , + --with-perl ( ). + + configure ģ , ӣ + Apache 2.0 - + . +
+
+
top
+
+

+ +

Apache Apache HTTP Software + Foundation, . + , unix- , + Apache . ( ) + . + . + ӣ- , , + INSTALL.bindist .

+ +

, , , + Σ HTTP Apache. + (tarball) PGP . + + . + PGP.

+ +
top
+
+

+ +

Apache + + (untarring):

+ +

+$ gzip -d httpd-2_0_NN.tar.gz
+$ tar xvf httpd-2_0_NN.tar +

+ +

+ . + , Σ .

+
top
+
+

+ +

+ , + , . + configure, + . (, + CVS, autoconf + libtool buildconf, + . + .)

+ +

+ , ./configure + . , configure + .

+ +

- + (--prefix), , + Apache. + , + , + .

+ +

, + - ԣ + . , + Apache . + + --enable-module, module - + , mod_ + ޣ . + (DSO) -- + + -- + --enable-module=shared. + + --disable-module. + , configure + , , + , ; .

+ +

, + configure + , . + , + configure. + + configure.

+ +

Apache, + ģ ./configure. + + + /sw/pkg/apache, + , + ݣ mod_rewrite mod_speling, + DSO.

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

, configure , + ӣ , Make-, + .

+ +

+ configure + configure.

+
top
+
+

+ +

Apache, + :

+ +

$ make

+ +

- + ( ) + , Pentium III/Linux 2.2. + + , .

+
top
+
+

+ +

+ PREFIX, Apache + ( --prefix), :

+ +

$ make install

+ +

Apache , + .

+
top
+
+

+ +

HTTP Apache + + PREFIX/conf/.

+ +

$ vi PREFIX/conf/httpd.conf

+ +

Apache + docs/manual/, + Apache http://httpd.apache.org/docs/2.0/, + + .

+
top
+
+

+ +

HTTP Apache, + :

+ +

$ PREFIX/bin/apachectl start

+ +

ӣ , + http://localhost/. -, , + DocumentRoot - , + PREFIX/htdocs/. + :

+ +

$ PREFIX/bin/apachectl stop

+
top
+
+

+ +

+ CHANGES, + - , + -. + (, 1.3 2.0, 2.0 2.2), + + , . + , + API .

+ +

, + (, 2.0.55 2.0.57) . + make install + , . + , ӣ , + configure, + API + . + + configure, + , . + ( , 2.0.41; + .)

+ +

, + config.nice, + build , + . + + configure, + . , + , config.nice + , + , :

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ PREFIX/bin/apachectl stop
+ $ PREFIX/bin/apachectl start
+

+ +
+ , ţ . , + , + --prefix + (ԣ Listen), + , + .
+ +
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/install.html.tr.utf8 b/rubbos/app/apache2/manual/install.html.tr.utf8 new file mode 100644 index 00000000..8291cbe8 --- /dev/null +++ b/rubbos/app/apache2/manual/install.html.tr.utf8 @@ -0,0 +1,380 @@ + + + +Derleme ve Kurulum - Apache HTTP Sunucusu + + + + + +
<-
+

Derleme ve Kurulum

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

Bu belge Apache’nin sadece Unix ve Unix benzeri sistemlerde + derlenmesini ve kurulmasını kapsar. Windows üzerinde derleme ve kurulum + için Apache’nin Microsoft Windows ile + kullanımı bölümüne bakınız. Diğer platformlar için ise platform belgelerine bakınız.

+ +

Apache 2.0’ın yapılandırma ve kurulum ortamı Apache 1.3’e göre tamamen değişmiştir. Apache 1.3, kurulumu kolaylaştırmak için özel bazı betikler kullanırdı. Apache 2.0 ise artık derleme ortamını oluşturmak için çoğu Açık Kaynak Kodlu projenin yaptığı gibi libtool ve autoconf kullanmaktadır.

+ +

Eğer sadece sürüm yükseltiyorsanız (2.0.50’den 2.0.51’e yükseltmek + gibi) lütfen doğrudan Yükseltme bölümüne + atlayınız.

+ +
+ +
top
+
+

Tez canlılar için genel bir bakış

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
İndirme$ lynx http://httpd.apache.org/download.cgi +
Paketi açma$ gzip -d httpd-2_0_NN.tar.gz
+ $ tar xvf httpd-2_0_NN.tar
Yapılandırma$ ./configure --prefix=ÖNEK +
Derleme$ make
Kurulum$ make install
Kişiselleştirme$ vi ÖNEK/conf/httpd.conf
Deneme$ ÖNEK/bin/apachectl start +
+ +

NN yerine kuracağınız alt sürümü, ÖNEK + yerine de dosya sisteminde sunucunun altına kurulacağı dizin yolunu + yazınız. ÖNEK belirtilmezse + /usr/local/apache2 öntanımlıdır.

+ +

Derleme ve kurulum işleminin her aşaması, Apache httpd’nin derlenmesi + ve kurulması için gerekenler başta olmak üzere aşağıda ayrıntılı olarak + açıklanmıştır.

+
top
+
+

Gereksinimler

+ +

Apache’yi derleyebilmek için şunlar mevcut olmalıdır:

+ +
+
Disk Alanı
+
Geçici olarak en azından 50 MB boş disk alanınız olduğundan emin + olunuz. Kurulumdan sonra Apache yaklaşık 10 MB disk alanı kaplıyor + olacaktır. Asıl disk alanı gereksinimi seçtiğiniz yapılandırma + seçenekleri ve üçüncü parti modüllere göre değişiklik + gösterecektir.
+ +
ANSI-C Derleyici ve Derleme Sistemi
+
Bir ANSI-C derleyicinin kurulu olduğundan emin olunuz. Free Software Foundation (FSF) + tarafından dağıtılan GNU C derleyicisini + (GCC) kullanmanız önerilir (2.7.2 sürümü uygundur). GCC yoksa en + azından satıcınızın derleyicisinin ANSI uyumlu olduğundan emin + olunuz. Ayrıca, PATH ortam değişkeninizin içerdiği + yollarda make gibi temel derleme araçları da + bulunmalıdır.
+ +
Zamanın doğru belirlenmesi
+
HTTP protokolünün elemanları sunuldukları tarih ve saate göre ifade + edilirler. Bu bakımdan sisteminizdeki zaman ayarlama oluşumunun + ayarlarını gözden geçirmenizin tam sırasıdır. Bu amaçla, Ağ Zaman + Protokolüne (NTP) göre çalışan ntpdate veya + xntpd programları kullanılır. NTP yazılımları ve halka + açık zaman sunucuları hakkında daha ayrıntılı bilgi için NTP sitesine ve Usenet comp.protocols.time.ntp haber + grubuna bakınız.
+ +
Perl 5 [SEÇİMLİK]
+
Perl ile yazılmış apxs veya + dbmmanage gibi bazı betikleri desteklemek için + Perl 5 yorumlayıcısı gerekir (5.003 veya daha yeni sürümleri + yeterlidir). Eğer sisteminizde birden fazla Perl yorumlayıcı + kuruluysa (örneğin, sistem geneli için Perl 4, kendi kullanımızı için + Perl 5 kurulu olabilir), doğru sürümün kullanılacağından emin olmak + bunu configure betiğine --with-perl + seçeneğini kullanarak belirtmeniz önerilir. Eğer + configure betiği sisteminizde Perl 5 yorumlayıcısı + bulamazsa bu betikleri kullanamazsınız. Ancak, bu durum Apache + 2.0’ın derlenip kurulmasına engel değildir.
+
+
top
+
+

İndirme

+ +

Apache HTTP Sunucusunu, çeşitli yansıların da listelendiği Apache HTTP Sunucusu + indirme sayfasından indirebilirsiniz. Unix benzeri sistemler + kullanan Apache kullanıcılarının kaynak paketlerinden birini indirip + derlemeleri daha iyi olacaktır. Derleme işlemi (aşağıda açıklanmıştır) + kolaydır ve sunucunuzu ihtiyaçlarınıza uygun olarak kişiselleştirmenize + imkan tanır. Ayrıca, hazır derlenmiş paketler çoğunlukla en son kaynak + sürüm kadar güncel değildirler. Eğer böyle bir paket indirmişseniz, + kurarken paketin içinde bulunan INSTALL.bindist + dosyasındaki talimatlara uyunuz.

+ +

İndirme işleminin ardından Apache HTTP Sunucusunun eksiksiz ve + değişikliğe uğramamış olduğunun doğrulanması önemlidir. Bu indirilen + tar paketinin PGP imzasına göre sınanması ile sağlanabilir. Bunun nasıl + yapılacağı indirme + sayfasında anlatıldığı gibi PGP + kullanımının anlatıldığı daha geniş bir örnek de vardır.

+ +
top
+
+

Paketi açma

+ +

Apache HTTPD tar paketinden sıkıştırmayı kaldırdıktan sonra tar + arşivinden dosyaları çıkarmak basit bir işlemdir:

+ +

+$ gzip -d httpd-2_0_NN.tar.gz
+$ tar xvf httpd-2_0_NN.tar +

+ +

Bu işlem bulunduğunuz dizinin içinde dağıtımın kaynak dosyalarını + içeren yeni bir dizin oluşturacaktır. Sunucuyu derleme işlmine + başlayabilmek için önce cd ile bu dizine geçmelisiniz.

+
top
+
+

Kaynak ağacının yapılandırılması

+ +

Sonraki adım, Apache kaynak ağacının platformunuza ve kişisel + gereksinimlerinize uygun olarak yapılandırılmasıdır. Bu işlem dağıtımın + kök dizininde bulunan configure betiği kullanılarak + yapılır. (Apache kaynak ağacının CVS sürümünü + indiren geliştiricilerin sistemlerinde autoconf ve + libtool kurulu olması ve sonraki adıma geçmek için + buildconf çalıştırmaları gerekir. Bu işlem resmi + dağıtımlar için gerekli değildir.)

+ +

Kaynak ağacını tamamen öntanımlı seçenekler kullanılarak derlemek için + ./configure komutunu vermek yeterlidir. Öntanımlı + seçenekleri değiştirmek için configure betiği + çeşitli değişkenler ve komut satırı seçenekleri kabul eder.

+ +

En önemli seçenek, Apache’nin kurulacağı yerin belirlenmesini, + dolayısıyla Apache’nin bu konumda doğru olarak çalışması için + yapılandırılmasını sağlayan --prefix’tir. Kurulacak + dosyaların yerleri ile ilgili daha ayrıntılı denetim ek yapılandırma + seçenekleri ile mümkün kılınmıştır.

+ +

Bu noktada ayrıca, Apache’de hangi özelliklerin bulunmasını + istediğinizi modülleri etkin kılarak veya iptal + ederek belirtebilirsiniz. Apache, öntanımlı olarak içerilmiş temel modüllerle gelir. Diğer + modüller --enable-modül seçenekleri + kullanılarak etkinleştirilir. Buradaki modül, + önünden mod_ dizgesi kaldırılmış ve içindeki altçizgi + imleri tire imleri ile değiştirilmiş modül ismidir. Ayrıca, + --enable-modül=shared seçeneklerini kullanarak + modülleri çalışma anında gerektiğinde yüklemek veya kaldırmak üzere paylaşımlı nesneler (DSO’lar) olarak derlemeniz de + mümkündür. Temel modülleri de benzer şekilde + --disable-modül seçenekleriyle iptal + edebilirsiniz. configure betiği mevcut olmayan + modüller için sizi uyarmayıp, seçeneği yok saymakla yetineceğinden, bu + seçenekleri kullanırken dikkatli olmalısınız.

+ +

Ek olarak, bazen kullandığınız derleyici, kütüphaneler veya başlık + dosyalarının yerleri hakkında configure betiğine + ilave bilgiler sağlamanız gerekir. Bu işlem + configure betiğine ya ortam değişkenleriyle ya da + komut satırı seçenekleriyle bilgi aktarılarak yapılır. Daha fazla bilgi + için configure kılavuz sayfasına bakınız.

+ +

Apache’yi derlerken ne gibi olasılıklara sahip olduğunuz hakkında bir + izlenim edinmeniz için aşağıda tipik bir örneğe yer verilmiştir. Bu + örnekte, Apache’nin /sw/pkg/apache önekiyle başlayan + dizinlere kurulması, belli bir derleyici ve derleyici seçenekleriyle + derlenmesi ve mod_rewrite ve + mod_speling modüllerinin de DSO mekanizması üzerinden + daha sonra yüklenmek üzere derlenmesi istenmektedir:

+ +

+ $ CC="pgcc" CFLAGS="-O2" \
+ ./configure --prefix=/sw/pkg/apache \
+ --enable-rewrite=shared \
+ --enable-speling=shared +

+ +

configure betiği başlatıldığında sisteminizde + mevcut özelliklerin işe yararlığını sınamak ve sonradan sunucuyu + derlemek için kullanılacak Makefile dosyalarını oluşturmak için bir kaç + dakika çalışacaktır.

+ +

configure seçeneklerinin tamamı ayrıtılı olarak + configure kılavuz sayfasında açıklanmıştır.

+
top
+
+

Derleme

+ +

Artık, Apache paketini şekillendiren çeşitli parçaları derlemek için + basitçe aşağıdaki komutu verebilirsiniz:

+ +

$ make

+ +

Bu komutu verdikten sonra lütfen sabırlı olunuz. Temel yapılandırmanın + derlenmesi bir Pentium III/Linux 2.2 makinede 3 dakika alsa da + modüllerin derlenmesi donanımınıza ve seçtiğiniz modüllerin sayısına + bağlı olarak daha uzun süre gerektirecektir.

+
top
+
+

Kurulum

+ +

Şimdi sıra ÖNEK dizini altına kurulmak üzere + yapılandırdığınız (yukarı --prefix seçeneğine bakınız) + paketi kurmaya geldi. Basitçe şu komutu veriniz:

+ +

# make install

+ +

ÖNEK dizininde genellikle yazma izinlerinin + sınırlı oluşu nedeniyle bu adım genellikle root yetkilerini + gerektirir.

+ +

Eğer sürüm yükseltiyorsanız, kurulum sırasında mevcut yapılandırma + dosyalarının ve belgelerin üzerine yazılmayacaktır.

+
top
+
+

Kişiselleştirme

+ +

Bu adımda, Apache HTTP sunucunuzu ÖNEK/conf/ + dizini altındaki yapılandırma + dosyalarını düzenleyerek kişiselleştirebilirsiniz.

+ +

$ vi ÖNEK/conf/httpd.conf

+ +

Bu kılavuz ve kullanılabilecek yapılandırma yönergelerinin kılavuzlarını + docs/manual/ altında bulabileceğiniz gibi en + son sürümünü daima http://httpd.apache.org/docs/2.0/ adresinde + bulabilirsiniz.

+
top
+
+

Deneme

+ +

Artık Apache HTTP sunucunuzu başlatmaya + hazırsınız. Hemen şu komutu verin:

+ +

$ ÖNEK/bin/apachectl start

+ +

http://localhost/ üzerinden ilk belgeniz için bir istek + yapmalısınız. Genellikle DocumentRoot olarak bilinen + ÖNEK/htdocs/ altındaki sayfayı görürsünüz. + Çalışmakta olan sunucuyu durdurmak için şu + komutu verebilirsiniz:

+ +

$ ÖNEK/bin/apachectl stop

+
top
+
+

Yükseltme

+ +

Sürüm yükseltme işleminin ilk adımı, sitenizi etkileyen değişiklikleri + öğrenmek için dağıtım duyurusunu ve kaynak paketindeki + CHANGES dosyasını okumaktır. Ana sürümlerden yükseltme + yapıyorsanız (1.3’ten 2.0’a veya 2.0’dan 2.2’ye gibi), derleme anı ve + çalışma anı yapılandırmalarındaki ana farklılıklar elle ayarlamalar + yapmanızı gerektirecektir. Ayrıca, tüm modüllerin de modül API’sindeki + değişikliklere uyum sağlaması için yükseltilmesi gerekecektir.

+ +

Aynı ana sürüm içinde yükseltme yapmak (2.0.55’ten 2.0.57’ye + yükseltmek gibi) daha kolaydır. make install işlemi, + mevcut yapılandırma ve günlük dosyalarınızın ve belgelerin üzerine + yazmayacaktır. Ek olarak, geliştiriciler alt sürüm değişikliklerinde + configure seçenekleri, çalışma anı yapılandırması + veya modül API’sinde uyumsuz değişiklikler yapmamaya özen + göstereceklerdir. Çoğu durumda, aynı configure komut + satırını, aynı yapılandırma dosyasını kullanabileceksiniz ve tüm + modülleriniz de çalışmaya devam edebilecektir. (Bu sadece 2.0.41 sürümünden sonrası için geçerlidir; daha önceki sürümler için uyumluluk söz konusu değildir.)

+ +

Aynı ana sürüm içinde yükseltme işlemine, eski kaynak ağacının kök + dizininde veya kurulu sunucunuzun build dizininde + bulacağınız config.nice dosyasını yeni kaynak ağacının kök + dizinine kopyalamak suretiyle başlayabilirsiniz. Bu dosya evvelce + kaynak ağacını yapılandırmakta kullandığınız + configure komut satırını içerir. + config.nice dosyasında yapmak istediğiniz değişiklikler + varsa yaptıktan sonra şu komutları veriniz:

+ +

+ $ ./config.nice
+ $ make
+ $ make install
+ $ ÖNEK/bin/apachectl graceful-stop
+ $ ÖNEK/bin/apachectl start
+

+ +
Her yeni sürümü hizmete sokmadan önce daima çalışma + ortamınızda denemeniz gerekir. Örneğin, yükseltme işlemini + sonuçlandırmadan önce eski sürümün çalışmasını durdurmadan yenisini + farklı bir --prefix ile kurabilir ve farklı bir port ile + (Listen yönergesini + ayarlamak suretiyle) çalıştırabilirsiniz.
+
+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html b/rubbos/app/apache2/manual/invoking.html new file mode 100644 index 00000000..f38962a0 --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: invoking.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: invoking.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: invoking.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: invoking.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: invoking.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: invoking.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: invoking.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/invoking.html.de b/rubbos/app/apache2/manual/invoking.html.de new file mode 100644 index 00000000..c1477952 --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.de @@ -0,0 +1,158 @@ + + + +Apache starten - Apache HTTP Server + + + + + +
<-
+

Apache starten

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Unter Windows luft der Apache blicherweise als Dienst + (Windows NT, 2000 und XP) oder als Konsolenanwendung (Windows 9x und + ME). Fr Einzelheiten lesen Sie bitte Apache als Dienst betreiben + und Apache als Konsolenanwendung betreiben.

+ +

Unter Unix wird das httpd-Programm als Daemon + ausgefhrt, der im Hintergrund fortlaufend aktiv ist, um + Anfragen zu bearbeiten. Dieses Dokument beschreibt, wie + httpd aufgerufen wird.

+
+ +
top
+
+

Wie der Apache startet

+ +

Wenn die in der Konfigurationsdatei angegebene Listen-Anweisung auf die Voreinstellung + von 80 gesetzt ist (oder einen anderen Port unterhalb von 1024), dann + mssen Sie root-Berechtigung besitzen, um den Apache starten + zu knnen. Nur dann kann er sich an diesen privilegierten + Port binden. Sobald der Server gestartet ist und einige vorbereitende + Aktionen wie das ffnen seiner Log-Dateien ausgefhrt hat, + startet er mehrere Kind-Prozesse, welche die Arbeit erledigen: + das Lauschen auf und Beantworten von Anfragen von Clients. Der + Haupt-httpd-Prozess luft unter dem Benutzer root + weiter, die Kind-Prozesse jedoch werden unter weniger privilegierten + Benutzerkennungen ausgefhrt. Dies wird von dem ausgewhlten + Multi-Processing-Modul gesteuert.

+ +

Die Verwendung des Steuerskripts apachectl ist die + empfohlene Methode, das httpd-Programm zu starten. + Dieses Skript setzt verschiedene Umgebungsvariablen, die fr die + korrekte Funktion von httpd unter einigen + Betriebssystemen notwendig sind, und startet dann das + httpd-Programm. apachectl + reicht alle Kommandozeilenargumente durch, so dass alle + httpd-Optionen auch mit apachectl + verwendet werden knnen. Um den korrekten Ablageort des + httpd-Programms sowie einige Kommandozeilenargumente + anzugeben, die Sie immer verwenden mchten, knnen + Sie auch das Skript apachectl direkt editieren und die + Variable HTTPD am Anfang ndern.

+ +

Das Erste was httpd macht, wenn es startet, ist das + Suchen und Einlesen der Konfigurationsdatei httpd.conf. + Der Ablageort dieser Datei wird zur Kompilierungszeit festgelegt. Es ist + aber mglich, den Ablageort zur Laufzeit anzugeben, indem die + Kommandozeilenoption -f wie folgt verwendet wird:

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

Wenn whrend des Starts alles gutgeht, trennt sich der Server + vom Terminal ab und die Eingabeaufforderung erscheint gleich darauf + wieder. Dies zeigt an, dass der Server hochgefahren ist und luft. + Sie knnen nun Ihren Browser benutzen, um Verbindung zum Server + aufzunehmen und sich die Testseite im DocumentRoot-Verzeichnis anzusehen wie auch + die lokale Kopie der Dokumentation, die von dieser Seite aus verlinkt + ist.

+
top
+
+

Fehler whrend des Hochfahrens

+ +

Wenn der Apache whrend des Hochfahrens einen schweren Fehler + feststellt, schreibt er entweder eine Nachricht, die das Problem + nher schildert, auf die Konsole oder ins ErrorLog, bevor er sich selbst beendet. + Eine der hufigsten Fehlermeldungen ist "Unable + to bind to Port ..." (Anm.d..: "Kann nicht an Port ... + binden"). Diese Meldung wird blicherweise verursacht:

+ +
    +
  • entweder durch den Versuch, den Server an einem privilegierten + Port zu starten, whrend man nicht als Benutzer root angemeldet + ist,
  • + +
  • oder durch den Versuch, den Server zu starten, wenn bereits eine + andere Instanz des Apache oder ein anderer Webserver an den gleichen + Port gebunden ist.
  • +
+ +

Fr weitere Anleitungen zur Fehlerbehebung lesen Sie bitte die + Apache-FAQ.

+
top
+
+

Beim Bootvorgang starten

+ +

Wenn Sie mchten, dass Ihr Server direkt nach einem + System-Neustart weiterluft, sollten Sie einen Aufruf von + apachectl zu den Startdateien Ihres Systems + hinzufgen (blicherweise rc.local oder + eine Datei in einem rc.N-Verzeichnis). Dies startet + den Apache als root. Stellen Sie zuvor jedoch sicher, dass Ihr + Server hinsichtlich Sicherheit und Zugriffsbeschrnkungen + richtig konfiguriert ist.

+ +

Das apachectl-Skript ist dafr ausgelegt, wie + ein Standard-SysV-init-Skript zu arbeiten. Es akzeptiert die Argumente + start, restart und stop + und bersetzt sie in die entsprechenden Signale fr + httpd. Daher knnen Sie oftmals + einfach apachectl in das entsprechende init-Verzeichnis + linken. berprfen Sie bitte auf jeden Fall die genauen + Anforderungen Ihres Systems.

+
top
+
+

Weitere Informationen

+ +

Weitere Informationen ber Kommandozeilenoptionen von httpd und apachectl sowie anderen + Hilfsprogrammen, die dem Server beigefgt sind, sind auf der + Seite Server und Hilfsprogramme + verfgbar. Es existiert auerdem eine Dokumentation + aller in der Apache-Distribution enthaltenen Module und der von ihnen bereitgestellten + Direktiven.

+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.en b/rubbos/app/apache2/manual/invoking.html.en new file mode 100644 index 00000000..ebf75c0d --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.en @@ -0,0 +1,153 @@ + + + +Starting Apache - Apache HTTP Server + + + + + +
<-
+

Starting Apache

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

On Windows, Apache is normally run as a service on Windows + NT, 2000 and XP, or as a console application on Windows 9x and + ME. For details, see Running Apache as a Service + and Running Apache as a + Console Application.

+ +

On Unix, the httpd program + is run as a daemon that executes continuously in the + background to handle requests. This document describes how + to invoke httpd.

+
+ +
top
+
+

How Apache Starts

+ +

If the Listen + specified in the configuration file is default of 80 (or any other + port below 1024), then it is necessary to have root privileges in + order to start apache, so that it can bind to this privileged + port. Once the server has started and performed a few preliminary + activities such as opening its log files, it will launch several + child processes which do the work of listening for and + answering requests from clients. The main httpd + process continues to run as the root user, but the child processes + run as a less privileged user. This is controlled by the selected + Multi-Processing Module.

+ +

The recommended method of invoking the httpd + executable is to use the apachectl control script. This + script sets certain environment variables that are necessary for + httpd to function correctly under some operating + systems, and then invokes the httpd binary. + apachectl will pass through any command line + arguments, so any httpd options may also be used with + apachectl. You may also directly edit the + apachectl script by changing the HTTPD + variable near the top to specify the correct location of the + httpd binary and any command-line arguments that you + wish to be always present.

+ +

The first thing that httpd does when it is + invoked is to locate and read the configuration file + httpd.conf. The location of this file is set at + compile-time, but it is possible to specify its location at run + time using the -f command-line option as in

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

If all goes well during startup, the server will detach from + the terminal and the command prompt will return almost + immediately. This indicates that the server is up and running. + You can then use your browser to connect to the server and view + the test page in the DocumentRoot directory + and the local copy of the documentation linked from that + page.

+
top
+
+

Errors During Start-up

+ +

If Apache suffers a fatal problem during startup, it will + write a message describing the problem either to the console or + to the ErrorLog before + exiting. One of the most common error messages is "Unable + to bind to Port ...". This message is usually caused by + either:

+ +
    +
  • Trying to start the server on a privileged port when not + logged in as the root user; or
  • + +
  • Trying to start the server when there is another instance + of Apache or some other web server already bound to the same + Port.
  • +
+ +

For further trouble-shooting instructions, consult the + Apache FAQ.

+
top
+
+

Starting at Boot-Time

+ +

If you want your server to continue running after a system + reboot, you should add a call to apachectl to your + system startup files (typically rc.local or a file in + an rc.N directory). This will start Apache as + root. Before doing this ensure that your server is properly + configured for security and access restrictions.

+ +

The apachectl script is designed to act like a + standard SysV init script; it can take the arguments + start, restart, and stop + and translate them into the appropriate signals to + httpd. So you can often simply link + apachectl into the appropriate init directory. But be + sure to check the exact requirements of your system.

+
top
+
+

Additional Information

+ +

Additional information about the command-line options of httpd and apachectl as well as other support + programs included with the server is available on the + Server and Supporting Programs page. + There is also documentation on all the modules included with the Apache distribution + and the directives that they + provide.

+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.es b/rubbos/app/apache2/manual/invoking.html.es new file mode 100644 index 00000000..47afcfc5 --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.es @@ -0,0 +1,170 @@ + + + +Iniciar Apache - Servidor HTTP Apache + + + + + +
<-
+

Iniciar Apache

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

En Windows, Apache se ejecuta normalmente como un servicio en + Windows NT, 2000 y XP, y como una aplicacin de consola en + Windows 9x y ME. Para obtener ms informacin, consulte + Ejecutar Apache como un + servicio y Ejecutar + Apache como una aplicacin de consola.

+ +

En Unix, el programa httpd se ejecuta como + un demonio (daemon) en modo silencioso y atiende las peticiones + que le lleguen. Este documento explica cmo invocar el + programa httpd.

+
+ +
top
+
+

Cmo iniciar Apache

+ +

Si el puerto especificado en la directiva Listen del fichero de + configuracin es el que viene por defecto, es decir, el + puerto 80 (o cualquier otro puerto por debajo del 1024), es + necesario tener privilegios de usuario root (superusuario) para + iniciar Apache. Solamente con esos privilegios puede establecerse + una conexin a travs de esos puertos. Una vez que el + servidor Apache se ha iniciado y ha completado algunas tareas + preliminares, como abrir sus ficheros log, lanzar varios + procesos hijo, que hacen el trabajo de escuchar y atender + las peticiones de los clientes. El proceso principal, + httpd contina ejecutandose como root, pero los + procesos hijo se ejecutan con menores privilegios de usuario. + Esto lo controla el mdulo de + multiprocesamiento (MPM) seleccionado.

+ +

El mtodo recomendado para invocar el ejecutable + httpd es usar el script de control + apachectl. Este script fija los valores de + determinadas variables de entorno que son necesarias para que + httpd funcione correctamente en el sistema operativo, + y despus invoca el binario httpd. + apachectl pasa a httpd cualquier argumento que + se le pase a travs de la lnea de comandos, de forma + que cualquier opcin de httpd puede ser + usada tambin con apachectl. Puede editar + directamente el script apachectl y cambiar la + variable HTTPD que est al principio y que + especifica la ubicacin exacta en la que est el binario + httpd y cualquier argumento de lnea de + comandos que quiera que est siempre presente cuando + use este script.

+ +

La primera cosa que hace httpd cuando es invocado + es localizar y leer el fichero de + configuracin httpd.conf. El lugar en el que + est ese fichero se determina al compilar, pero tambin + es posible especificar la ubicacin en la que se encuentra al + iniciar el servidor Apache usando la opcin de lnea de + comandos -f

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

Si todo va bien durante el arranque, la sesin de terminal + se suspender un momento y volver a estar activa casi + inmediatamente. Esto quiere decir que el servidor est activo + y funcionando. Puede usar su navegador para conectarse al + servidor y ver la pgina de prueba que hay en el directorio + DocumentRoot y la copia local + de esta documentacin a la que se puede acceder desde esa + pgina.

+
top
+
+

Errores Durante el Arranque

+ +

Si se produce algn error irrecuperable durante el proceso de + arranque de Apache, aparecer un mensaje describiendo el + problema en la consola o en el archivo ErrorLog antes de abortar la + ejecucin. Uno de los mensajes de error ms comunes es + "Unable to bind to Port ...". Cuando se recibe este + mensaje es normalmente por alguna de las siguientes razones:

+ +
    +
  • Est intentando iniciar el servidor Apache en un puerto + privilegiado (del 0 al 1024) sin haber hecho login como usuario + root;
  • + +
  • Est intentando iniciar el servidor Apache mientras + est ya ejecutando Apache o algn otro servidor web en + el mismo puerto.
  • +
+ +

Puede encontrar ms informacin sobre cmo + solucionar estos problemas, en la seccin de Preguntas Frecuentes de Apache.

+
top
+
+

Iniciar Apache al Iniciar el Sistema

+ +

Si quiere que el servidor Apache contine su + ejecucin despus de reiniciar el sistema, debe + aadir una llamada a apachectl en sus + archivos de arranque (normalmente rc.local o + algn fichero un directorio del tipo rc.N). Esto + iniciar Apache como usuario root. Antes de hacer esto, + asegrese de que la configuracin de seguridad y las + restricciones de acceso de su servidor Apache estn + correctamente configuradas.

+ +

El script apachectl est diseado + para actuar como un script estndar de tipo SysV init; puede + tomar los argumentos start, restart, y + stop y traducirlos en las seales apropiadas + para httpd. De esta manera, casi siempre puede + simplemente enlazar apachectl con el directorio + init adecuado. Pero asegrese de comprobar cuales son los + requerimientos especficos de su sistema.

+
top
+
+

Informacin Adicional

+ +

En la seccin El Servidor y Programas + de Soporte puede encontrar ms informacin sobre las + opciones de lnea de comandos que puede pasar a + httpd y a apachectl as + como sobre otros programas de soporte incluidos con el servidor + Apache. Tambin hay documentacin sobre todos los mdulos incluidos con la distribucin de + Apache y sus correspondientes directivas asociadas.

+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.ja.utf8 b/rubbos/app/apache2/manual/invoking.html.ja.utf8 new file mode 100644 index 00000000..ec33f07f --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.ja.utf8 @@ -0,0 +1,166 @@ + + + +Apache の起動 - Apache HTTP サーバ + + + + + +
<-
+

Apache の起動

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

Windows 上では、Apache は通常は + Windows NT, 2000, XP ではサービスとして、Windows 9x, ME + ではコンソールアプリケーションとして実行されます。 + 詳細に関しては、「 + サービスとして実行する」と「 + コンソールアプリケーションとして実行する」をご覧下さい。

+ +

Unixでは、httpd + プログラムが、バックグラウンドで常にリクエスト処理を行う + デーモンとして実行されます。この文書ではどのように + httpd を起動するかについて記述しています。

+
+ +
top
+
+

Apache の起動方法

+ +

もし、設定ファイル中で指定されている + Listen + がデフォルトの 80 (もしくは 1024 以下の他のポート) + である場合は、Apache を起動するためには root + 権限が必要になりますが、 + これはこの特権ポートにバインドするためです。 + 起動して、一度ログファイルを開くといった準備のための + 動作を幾つか実行した後は、クライアントからのリクエストに対する + listen と応答を実際に行うプロセスを起動します。 + メインの httpd プロセスは root 権限で走り続けますが、 + 子プロセスはもっと低い権限で走ります。 + これは選択したマルチプロセッシングモジュールで制御されます。

+ +

推奨の httpd 実行プログラムの起動方法は、 + apachectl + 制御スクリプトを使用する方法です。このスクリプトは、httpd + がオペレーティングシステム上で正常に動作するように必要な環境変数を + 適切に設定して、httpd バイナリを起動します。 + apachectl はどんなコマンドライン引数も通過させますので、 + httpd のどのコマンドラインオプションも + apchectl のオプションとして使用できます。 + また、apchectl スクリプトを直接編集し、 + スクリプト先頭付近の HTTPD 変数を変更することで、 + httpd バイナリの正しい位置を指定したり、常に + 付加させるコマンドライン引数を指定したりすることができます。

+ +

httpd が起動されてまず最初にすることは、 + 設定ファイル + httpd.conf の位置を特定して読み込むことです。 + このファイルの位置はコンパイル時に設定されますが、実行時に + -f コマンドラインオプションを使って + 位置を指定することもできます。例えば次のようにです。

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

スタートアップが万事上手くいったら、サーバはターミナルから + 切り離されて、コマンドプロンプトが即座に戻ってくるでしょう。 + これはサーバが起動している状態を示しています。 + その後はブラウザでサーバに接続して、 + DocumentRoot + ディレクトリのテストページやそこからリンクされている + ローカルのドキュメントを見ることができるでしょう。

+
top
+
+

起動時のエラー

+ +

Apache は、起動時に致命的な問題に遭遇すると、 + 終了する前に、コンソールか + ErrorLog + のどちらかに問題を記述したメッセージを出力します。 + 最もよくあるエラーメッセージは + 「Unable to bind to Port ...」 + です。このメッセージは普通は次のどちらかが原因です。

+ +
    +
  • root でログインしていない時に、 + 特権ポートでサーバを起動しようとした。
  • + +
  • 同じポートに既にバインドされている Apache + がもう一つあるときや他のウェブサーバが存在している時に、 + サーバを開始しようとした。
  • +
+ +

より多くの問題解決の方策の説明は、 + Apache FAQ をご覧下さい。

+
top
+
+

ブート時の起動

+ +

システムがリブートした後でも + サーバが実行され続けるようにしたい場合は、 + apachectl + を呼び出すものをシステムスタートアップファイル + (通常 rc.localrc.N + 内のファイル) に追加しなければなりません。 + この方法では Apache を root 権限で起動します。 + これをする前に、セキュリティやアクセス制限が + 適切に設定されていていることを確認してください。

+ +

apachectl スクリプトは通常は、標準的な SysV init + スクリプトとして動作するように設計されています。 + start, restart, stop + といった引数をとって、httpd + への適切なシグナルに変換します。 + ですから、通常は単に適切な init ディレクトリ内から + apachectl へリンクすることができます。しかし、 + 念のためシステムの要求に合致していることを確認してください。

+
top
+
+

追加情報

+ +

httpd や + apachectl + 、サーバに含まれていたその他補助プログラムの、 + コマンドラインオプションに関する追加情報は、 + サーバと補助プログラムページに + 記載されています。 + Apache 配布に含まれている全モジュール、 + それによって提供されるディレクティブ + のドキュメントもあります。

+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.ko.euc-kr b/rubbos/app/apache2/manual/invoking.html.ko.euc-kr new file mode 100644 index 00000000..55d16518 --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.ko.euc-kr @@ -0,0 +1,142 @@ + + + +ġ - Apache HTTP Server + + + + + +
<-
+

ġ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ Windows NT, 2000, XP 񽺷, + Windows 95 ME ܼ α׷ ȴ. ڼ + 񽺷 + ġ ϱ ܼ α׷ + ġ ϱ.

+ +

н httpd + α׷ ׶忡 û óϴ + ȴ. httpd ϴ + Ѵ.

+
+ +
top
+
+

 ġ ϳ

+ +

Ͽ Listen ⺻ 80(Ȥ + 1024 ٸ Ʈ)̶ Ư Ʈ ϱ + root ʿϴ. Ͽ α + ۾ ģ, Ŭ̾Ʈ û ٸ + ϴ ڽ(child) μ . + httpd μ root ڷ , + ڽ μ ڷ ȴ. ̴ + ó Ѵ.

+ +

apachectl + ũƮ Ͽ httpd ϱ + Ѵ. ũƮ httpd + ü ϱ ʿ ȯ溯 + ϰ httpd Ѵ. + apachectl ƱԸƮ ״ ѱ⶧, + httpd  ɼ̶ apachectl + 밡ϴ. , apachectl ũƮ պκп + HTTPD httpd + ִ ġ ׻ ƱԸƮ + ִ.

+ +

httpd ϸ httpd.conf + ãƼ д´. ġ ߿ ϳ, + -f ɼ ִ.

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

ϴ ٸ, ͹̳ο + Ʈ Եȴ. ̴ + ǹѴ. Ͽ DocumentRoot 丮 ִ + ׽Ʈ ũ (ī) + ִ.

+
top
+
+

+ +

ġ ϴ ߿ ɰ ߻ϸ, + ϱ ˸ ܼ̳ ErrorLog . + ϳ "Unable to bind to Port ..."̴. + ޼ 쿡 ߻Ѵ:

+ +
    +
  • root ڷ α ʰ Ư Ʈ + Ϸ . Ȥ
  • + +
  • ̹ ġ ٸ Ʈ + Ϸ .
  • +
+ +

Ÿ ذ ġ FAQ + ϶.

+
top
+
+

Ҷ ϱ

+ +

ý Ŀ DZ ٶٸ, + ý ( rc.local̳ rc.N + 丮 ִ ) apachectl ߰ؾ + Ѵ. ġ root ۵ȴ. ̳ + (ϱ) ùٷ Ǿ Ȯ϶.

+ +

apachectl ǥ SysV init ũƮ ϰ + ϵ . ũƮ ƱԸƮ start, + restart, stop + ñ׳ httpd . ׷ + apachectl init 丮 ũ ɸȴ. + ׷ ϴ ý Ȯ 䱸 Ȯ϶.

+
top
+
+

߰

+ +

httpd apachectl, Ÿ + Ե α׷ ɼ + α׷ + ϶. ġ + ׵ ϴ þ + ִ.

+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.ru.koi8-r b/rubbos/app/apache2/manual/invoking.html.ru.koi8-r new file mode 100644 index 00000000..f943ab4e --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.ru.koi8-r @@ -0,0 +1,145 @@ + + + + Apache - HTTP Apache + + + + + +
<-
+

Apache

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Windows Apache Windows NT/2000/XP + Windows 95/ME. + , , Apache Windows + Apache Windows + .

+ +

Unix httpd + , . + , httpd + , .

+
+ +
top
+
+

Apache

+ +

Listen + 80 ( ) + 1024, Apache + , Apache + . , + , log-, + , + . httpd + , + . -, .

+ +

httpd + apachectl. + , + , httpd. + apachectl , + . + apachectl, + , HTTPD Apache + , , + .

+ +

httpd + httpd.conf. , + , -f, +

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

, + + . , + . , , + , + DocumentRoot, , + .

+
top
+
+

,

+ +

Apache - , + , , + ErrorLog , + . + "Unable to bind to Port ...". :

+ +
    +
  • , + ;
  • + +
  • , Apache + web-, .
  • +
+ +

+ FAQ.

+
top
+
+

+ +

, , + apachectl , + ( rc.local rc.N). + Apache . + , , .

+ +

apachectl , + init- SysV; + start, restart, stop + httpd. + apachectl + init. , + .

+
top
+
+

+ +

httpd + apachectl, + , " + ". + , Apache, , .

+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/invoking.html.tr.utf8 b/rubbos/app/apache2/manual/invoking.html.tr.utf8 new file mode 100644 index 00000000..d2396aed --- /dev/null +++ b/rubbos/app/apache2/manual/invoking.html.tr.utf8 @@ -0,0 +1,149 @@ + + + +Apache HTTPd’nin başlatılması - Apache HTTP Sunucusu + + + + + +
<-
+

Apache HTTPd’nin başlatılması

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Apache normal olarak, Windows NT, 2000 ve XP'de bir hizmet olarak, + Windows 9x ve ME’de ise bir konsol uygulaması olarak çalışır. Ayrıntılı + bilgi için Apache HTTPd’nin bir + hizmet olarak çalıştırılması ve Apache HTTPd’nin bir konsol + uygulaması olarak çalıştırılması bölümlerine bakınız.

+ +

Unix’te ise artalanda isteklere yanıt vermek için sürekli çalışan bir + artalan sürecidir. Bu belgede httpd’nin nasıl + çalıştırılacağı açıklanmaktadır.

+
+ +
top
+
+

Apache Nasıl Başlatılır?

+ +

Yapılandırma dosyasında Listen yönergesi ile öntanımlı olan port + 80 (veya 1024’ten küçük herhangi bir port) belirtilmişse Apache HTTP + Sunucusunu başlatmak için root yetkileri gerekecektir. Sunucu başlatılıp + günlük dosyalarını açmak gibi bazı ön hazırlık etkinliklerinde + bulunduktan sonra istemcilerden gelen istekleri dinlemek ve yanıt vermek + için çeşitli çocuk süreçler başlatır. Ana + httpd süreci root kullanıcısının aidiyetinde + çalışmasını sürdürürken çocuk süreçler daha az yetkili bir kullanıcının + aidiyetinde çalışır. Bu işlem seçilen Çok Süreçlilik + Modülü tarafından denetlenir.

+ +

httpd’yi çalıştırmak için önerilen yöntem + apachectl betiğini kullanmaktır. Bu betik, + httpd’nin bazı işletim sistemlerinde işlevini + gerektiği gibi yerine getirebilmesi için gereken belli ortam + değişkenlerini ayarlar ve httpd’yi çalıştırır. + apachectl, komut satırı argümanlarını + httpd’ye aktarabildiğinden gerekli + httpd seçenekleri apachectl + betiğine komut satırı seçenekleri olarak belirtilebilir. Ayrıca, + apachectl betiğinin içeriğini doğrudan düzenlemek + suretiyle betiğin başlangıç satırlarındaki HTTPD + değişkenine httpd çalıştırılabilir dosyasının doğru + yerini ve daima mevcut olmasını istediğiniz komut satırı + seçeneklerini belirtebilirsiniz.

+ +

httpd çalıştırıldığında yaptığı ilk şey yapılandırma dosyası + httpd.conf’u bulup okumaktır. Bu dosyanın yeri derleme + sırasında belirtilmekteyse de -f komut satırı seçeneği + kullanılarak çalıştırma sırasında belirtmek de mümkündür:

+ +

/usr/local/apache2/bin/apachectl -f + /usr/local/apache2/conf/httpd.conf

+ +

Başlatma sırasında herşey yolunda giderse sunucu kendini uçbirimden + ayıracak ve hemen ardından uçbirim, komut istemine düşecektir. Bu, + sunucunun etkin ve çalışmakta olduğunu gösterir. Artık tarayıcınızı + kullanarak sunucuya bağlanabilir, DocumentRoot dizinindeki deneme sayfasını + görebilir ve bu sayfadan bir bağla bu belgelerin makinenizdeki kopyasına + erişebilirsiniz.

+
top
+
+

Başlatma Sırasındaki Hatalar

+ +

Apache başlatma sırasında ölümcül bir sorunla karşılaşacak olursa + çıkmadan önce sorunu açıklayan bir iletiyi konsola veya ErrorLog yönergesi ile belirtilen hata + günlüğüne yazacaktır. En çok karşılaşılan hata iletilerinden biri + "Unable to bind to Port ..." dizgesidir. Bu iletiye + genellikle şu iki durumdan biri sebep olur:

+ +
    +
  • Sunucunun, root yetkileri gerektiren bir portu kullanmak üzere root + kullanıcısı tarafından çalıştırılmamış olması.
  • + +
  • Aynı portu kullanan başka bir Apache Sunucusunun veya başka bir HTTP + sunucusunun zaten çalışmakta oluşu.
  • +
+ +

Bu ve diğer sorun çözme talimatları için Apache SSS’sini inceleyiniz.

+
top
+
+

Sistem Açılışında Başlatma

+ +

Sunucunuzun sistem yeniden başlatıldıktan sonra çalışmasına devam + etmesini istiyorsanız sistem başlatma betiklerinize (genellikle ya + rc.local dosyasıdır ya da bir rc.N dizininde + bir dosyadır) apachectl betiği için bir çağrı + eklemelisiniz. Bu, Apache sunucunuzu root yetkileriyle başlatacaktır. + Bunu yapmadan önce sunucunuzun güvenlik ve erişim kısıtlamaları + bakımından gerektiği gibi yapılandırıldığından emin olunuz.

+ +

apachectl betiği, bir standart SysV init betiği gibi + davranacak şekilde tasarlanmıştır. start, + restart ve stop argümanlarını kabul edebilir + ve bunları httpd’ye uygun sinyallere dönüştürebilir. + Bu bakımdan, çoğunlukla uygun init dizinlerinden birine + apachectl betiği için basitçe bir bağ + yerleştirebilirsiniz. Fakat bunu yapmadan önce betiğin sisteminizin + gereklerini yerine getirdiğinden emin olunuz.

+
top
+
+

Ek Bilgiler

+ +

httpd, apachectl ve sunucuyla + gelen diğer destek programlarının komut satırı seçenekleri hakkında ek + bilgi Sunucu ve Destek Programları sayfasında + bulunabilir. Ayrıca, Apache dağıtımında bulunan tüm modüller ve bunlarla sağlanan yönergeler hakkında da belgeler + vardır.

+
+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/license.html b/rubbos/app/apache2/manual/license.html new file mode 100644 index 00000000..96b08f6d --- /dev/null +++ b/rubbos/app/apache2/manual/license.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: license.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/license.html.en b/rubbos/app/apache2/manual/license.html.en new file mode 100644 index 00000000..e83a833a --- /dev/null +++ b/rubbos/app/apache2/manual/license.html.en @@ -0,0 +1,238 @@ + + + +The Apache License, Version 2.0 - Apache HTTP Server + + + + + +
<-
+

The Apache License, Version 2.0

+
+

Available Languages:  en 

+
+ +

Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/

+ + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+ +
    +
  1. Definitions
    + +

    "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document.

    + +

    "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License.

    + +

    "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity.

    + +

    "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License.

    + +

    "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files.

    + +

    "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types.

    + +

    "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below).

    + +

    "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof.

    + +

    "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution."

    + +

    "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work.

  2. + +
  3. Grant of Copyright License. Subject to the terms + and conditions of this License, each Contributor hereby grants to You + a perpetual, worldwide, non-exclusive, no-charge, royalty-free, + irrevocable copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form.
  4. + +
  5. Grant of Patent License. Subject to the terms + and conditions of this License, each Contributor hereby grants to You a + perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed.
  6. + +
  7. Redistribution. You may reproduce and distribute + copies of the Work or Derivative Works thereof in any medium, with or + without modifications, and in Source or Object form, provided that You + meet the following conditions: + +
      +
    1. You must give any other recipients of the Work or + Derivative Works a copy of this License; and
    2. + +
    3. You must cause any modified files to carry prominent notices + stating that You changed the files; and
    4. + +
    5. You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and
    6. + +
    7. If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License.
    8. +
    + +

    You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License.

  8. + +
  9. Submission of Contributions. Unless You explicitly + state otherwise, any Contribution intentionally submitted for inclusion + in the Work by You to the Licensor shall be under the terms and + conditions of this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions.
  10. + +
  11. Trademarks. This License does not grant permission + to use the trade names, trademarks, service marks, or product names of + the Licensor, except as required for reasonable and customary use in + describing the origin of the Work and reproducing the content of the + NOTICE file.
  12. + +
  13. Disclaimer of Warranty. Unless required by + applicable law or agreed to in writing, Licensor provides the Work (and + each Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License.
  14. + +
  15. Limitation of Liability. In no event and under no + legal theory, whether in tort (including negligence), contract, or + otherwise, unless required by applicable law (such as deliberate and + grossly negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages.
  16. + +
  17. Accepting Warranty or Additional Liability. While + redistributing the Work or Derivative Works thereof, You may choose to + offer, and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability.
  18. +
+ +

END OF TERMS AND CONDITIONS

+ +

APPENDIX: How to apply the Apache License to your + work.

+ +

To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives.

+ +
Copyright [yyyy] [name of copyright owner]
+
+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
+
+    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.
+
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/logs.html b/rubbos/app/apache2/manual/logs.html new file mode 100644 index 00000000..a7f27c28 --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: logs.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: logs.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: logs.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: logs.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: logs.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/logs.html.en b/rubbos/app/apache2/manual/logs.html.en new file mode 100644 index 00000000..cc625f8a --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html.en @@ -0,0 +1,587 @@ + + + +Log Files - Apache HTTP Server + + + + + +
<-
+

Log Files

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

In order to effectively manage a web server, it is necessary + to get feedback about the activity and performance of the + server as well as any problems that may be occurring. The Apache + HTTP Server provides very comprehensive and flexible logging + capabilities. This document describes how to configure its + logging capabilities, and how to understand what the logs + contain.

+
+ +
top
+
+

Security Warning

+ + +

Anyone who can write to the directory where Apache is + writing a log file can almost certainly gain access to the uid + that the server is started as, which is normally root. Do + NOT give people write access to the directory the logs + are stored in without being aware of the consequences; see the + security tips document + for details.

+ +

In addition, log files may contain information supplied + directly by the client, without escaping. Therefore, it is + possible for malicious clients to insert control-characters in + the log files, so care must be taken in dealing with raw + logs.

+
top
+
+

Error Log

+ + + + +

The server error log, whose name and location is set by the + ErrorLog directive, is the + most important log file. This is the place where Apache httpd + will send diagnostic information and record any errors that it + encounters in processing requests. It is the first place to + look when a problem occurs with starting the server or with the + operation of the server, since it will often contain details of + what went wrong and how to fix it.

+ +

The error log is usually written to a file (typically + error_log on Unix systems and + error.log on Windows and OS/2). On Unix systems it + is also possible to have the server send errors to + syslog or pipe them to a + program.

+ +

The format of the error log is relatively free-form and + descriptive. But there is certain information that is contained + in most error log entries. For example, here is a typical + message.

+ +

+ [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test +

+ +

The first item in the log entry is the date and time of the + message. The second item lists the severity of the error being + reported. The LogLevel + directive is used to control the types of errors that are sent + to the error log by restricting the severity level. The third + item gives the IP address of the client that generated the + error. Beyond that is the message itself, which in this case + indicates that the server has been configured to deny the + client access. The server reports the file-system path (as + opposed to the web path) of the requested document.

+ +

A very wide variety of different messages can appear in the + error log. Most look similar to the example above. The error + log will also contain debugging output from CGI scripts. Any + information written to stderr by a CGI script will + be copied directly to the error log.

+ +

It is not possible to customize the error log by adding or + removing information. However, error log entries dealing with + particular requests have corresponding entries in the access log. For example, the above example + entry corresponds to an access log entry with status code 403. + Since it is possible to customize the access log, you can + obtain more information about error conditions using that log + file.

+ +

During testing, it is often useful to continuously monitor + the error log for any problems. On Unix systems, you can + accomplish this using:

+ +

+ tail -f error_log +

+
top
+
+

Access Log

+ + + + +

The server access log records all requests processed by the + server. The location and content of the access log are + controlled by the CustomLog + directive. The LogFormat + directive can be used to simplify the selection of + the contents of the logs. This section describes how to configure the server + to record information in the access log.

+ +

Of course, storing the information in the access log is only + the start of log management. The next step is to analyze this + information to produce useful statistics. Log analysis in + general is beyond the scope of this document, and not really + part of the job of the web server itself. For more information + about this topic, and for applications which perform log + analysis, check the + Open Directory or + Yahoo.

+ +

Various versions of Apache httpd have used other modules and + directives to control access logging, including + mod_log_referer, mod_log_agent, and the + TransferLog directive. The CustomLog directive now subsumes + the functionality of all the older directives.

+ +

The format of the access log is highly configurable. The format + is specified using a format string that looks much like a C-style + printf(1) format string. Some examples are presented in the next + sections. For a complete list of the possible contents of the + format string, see the mod_log_config format strings.

+ +

Common Log Format

+ + +

A typical configuration for the access log might look as + follows.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common +

+ +

This defines the nickname common and + associates it with a particular log format string. The format + string consists of percent directives, each of which tell the + server to log a particular piece of information. Literal + characters may also be placed in the format string and will be + copied directly into the log output. The quote character + (") must be escaped by placing a backslash before + it to prevent it from being interpreted as the end of the + format string. The format string may also contain the special + control characters "\n" for new-line and + "\t" for tab.

+ +

The CustomLog + directive sets up a new log file using the defined + nickname. The filename for the access log is relative to + the ServerRoot unless it + begins with a slash.

+ +

The above configuration will write log entries in a format + known as the Common Log Format (CLF). This standard format can + be produced by many different web servers and read by many log + analysis programs. The log file entries produced in CLF will + look something like this:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 +

+ +

Each part of this log entry is described below.

+ +
+
127.0.0.1 (%h)
+ +
This is the IP address of the client (remote host) which + made the request to the server. If HostnameLookups is + set to On, then the server will try to determine + the hostname and log it in place of the IP address. However, + this configuration is not recommended since it can + significantly slow the server. Instead, it is best to use a + log post-processor such as logresolve to determine + the hostnames. The IP address reported here is not + necessarily the address of the machine at which the user is + sitting. If a proxy server exists between the user and the + server, this address will be the address of the proxy, rather + than the originating machine.
+ +
- (%l)
+ +
The "hyphen" in the output indicates that the requested + piece of information is not available. In this case, the + information that is not available is the RFC 1413 identity of + the client determined by identd on the clients + machine. This information is highly unreliable and should + almost never be used except on tightly controlled internal + networks. Apache httpd will not even attempt to determine + this information unless IdentityCheck is set + to On.
+ +
frank (%u)
+ +
This is the userid of the person requesting the document + as determined by HTTP authentication. The same value is + typically provided to CGI scripts in the + REMOTE_USER environment variable. If the status + code for the request (see below) is 401, then this value + should not be trusted because the user is not yet + authenticated. If the document is not password protected, + this part will be "-" just like the previous + one.
+ +
[10/Oct/2000:13:55:36 -0700] + (%t)
+ +
+ The time that the request was received. + The format is: + +

+ [day/month/year:hour:minute:second zone]
+ day = 2*digit
+ month = 3*letter
+ year = 4*digit
+ hour = 2*digit
+ minute = 2*digit
+ second = 2*digit
+ zone = (`+' | `-') 4*digit
+

+ It is possible to have the time displayed in another format + by specifying %{format}t in the log format + string, where format is as in + strftime(3) from the C standard library. +
+ +
"GET /apache_pb.gif HTTP/1.0" + (\"%r\")
+ +
The request line from the client is given in double + quotes. The request line contains a great deal of useful + information. First, the method used by the client is + GET. Second, the client requested the resource + /apache_pb.gif, and third, the client used the + protocol HTTP/1.0. It is also possible to log + one or more parts of the request line independently. For + example, the format string "%m %U%q %H" will log + the method, path, query-string, and protocol, resulting in + exactly the same output as "%r".
+ +
200 (%>s)
+ +
This is the status code that the server sends back to the + client. This information is very valuable, because it reveals + whether the request resulted in a successful response (codes + beginning in 2), a redirection (codes beginning in 3), an + error caused by the client (codes beginning in 4), or an + error in the server (codes beginning in 5). The full list of + possible status codes can be found in the HTTP + specification (RFC2616 section 10).
+ +
2326 (%b)
+ +
The last part indicates the size of the object returned + to the client, not including the response headers. If no + content was returned to the client, this value will be + "-". To log "0" for no content, use + %B instead.
+
+ + +

Combined Log Format

+ + +

Another commonly used format string is called the Combined + Log Format. It can be used as follows.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined
+ CustomLog log/access_log combined +

+ +

This format is exactly the same as the Common Log Format, + with the addition of two more fields. Each of the additional + fields uses the percent-directive + %{header}i, where header can be + any HTTP request header. The access log under this format will + look like:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)" +

+ +

The additional fields are:

+ +
+
"http://www.example.com/start.html" + (\"%{Referer}i\")
+ +
The "Referer" (sic) HTTP request header. This gives the + site that the client reports having been referred from. (This + should be the page that links to or includes + /apache_pb.gif).
+ +
"Mozilla/4.08 [en] (Win98; I ;Nav)" + (\"%{User-agent}i\")
+ +
The User-Agent HTTP request header. This is the + identifying information that the client browser reports about + itself.
+
+ + +

Multiple Access Logs

+ + +

Multiple access logs can be created simply by specifying + multiple CustomLog + directives in the configuration + file. For example, the following directives will create three + access logs. The first contains the basic CLF information, + while the second and third contain referer and browser + information. The last two CustomLog lines show how + to mimic the effects of the ReferLog and AgentLog directives.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+ CustomLog logs/referer_log "%{Referer}i -> %U"
+ CustomLog logs/agent_log "%{User-agent}i" +

+ +

This example also shows that it is not necessary to define a + nickname with the LogFormat directive. Instead, + the log format can be specified directly in the CustomLog directive.

+ + +

Conditional Logs

+ + +

There are times when it is convenient to exclude certain + entries from the access logs based on characteristics of the + client request. This is easily accomplished with the help of environment variables. First, an + environment variable must be set to indicate that the request + meets certain conditions. This is usually accomplished with + SetEnvIf. Then the + env= clause of the CustomLog directive is used to + include or exclude requests where the environment variable is + set. Some examples:

+ +

+ # Mark requests from the loop-back interface
+ SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+ # Mark requests for the robots.txt file
+ SetEnvIf Request_URI "^/robots\.txt$" dontlog
+ # Log what remains
+ CustomLog logs/access_log common env=!dontlog +

+ +

As another example, consider logging requests from + english-speakers to one log file, and non-english speakers to a + different log file.

+ +

+ SetEnvIf Accept-Language "en" english
+ CustomLog logs/english_log common env=english
+ CustomLog logs/non_english_log common env=!english +

+ +

Although we have just shown that conditional logging is very + powerful and flexible, it is not the only way to control the + contents of the logs. Log files are more useful when they + contain a complete record of server activity. It is often + easier to simply post-process the log files to remove requests + that you do not want to consider.

+ +
top
+
+

Log Rotation

+ + +

On even a moderately busy server, the quantity of + information stored in the log files is very large. The access + log file typically grows 1 MB or more per 10,000 requests. It + will consequently be necessary to periodically rotate the log + files by moving or deleting the existing logs. This cannot be + done while the server is running, because Apache will continue + writing to the old log file as long as it holds the file open. + Instead, the server must be restarted after the log files are + moved or deleted so that it will open new log files.

+ +

By using a graceful restart, the server can be + instructed to open new log files without losing any existing or + pending connections from clients. However, in order to + accomplish this, the server must continue to write to the old + log files while it finishes serving old requests. It is + therefore necessary to wait for some time after the restart + before doing any processing on the log files. A typical + scenario that simply rotates the logs and compresses the old + logs to save space is:

+ +

+ mv access_log access_log.old
+ mv error_log error_log.old
+ apachectl graceful
+ sleep 600
+ gzip access_log.old error_log.old +

+ +

Another way to perform log rotation is using piped logs as discussed in the next + section.

+
top
+
+

Piped Logs

+ + +

Apache httpd is capable of writing error and access log + files through a pipe to another process, rather than directly + to a file. This capability dramatically increases the + flexibility of logging, without adding code to the main server. + In order to write logs to a pipe, simply replace the filename + with the pipe character "|", followed by the name + of the executable which should accept log entries on its + standard input. Apache will start the piped-log process when + the server starts, and will restart it if it crashes while the + server is running. (This last feature is why we can refer to + this technique as "reliable piped logging".)

+ +

Piped log processes are spawned by the parent Apache httpd + process, and inherit the userid of that process. This means + that piped log programs usually run as root. It is therefore + very important to keep the programs simple and secure.

+ +

One important use of piped logs is to allow log rotation + without having to restart the server. The Apache HTTP Server + includes a simple program called rotatelogs + for this purpose. For example, to rotate the logs every 24 hours, you + can use:

+ +

+ CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common +

+ +

Notice that quotes are used to enclose the entire command + that will be called for the pipe. Although these examples are + for the access log, the same technique can be used for the + error log.

+ +

A similar but much more flexible log rotation program + called cronolog + is available at an external site.

+ +

As with conditional logging, piped logs are a very powerful + tool, but they should not be used where a simpler solution like + off-line post-processing is available.

+
top
+
+

Virtual Hosts

+ + +

When running a server with many virtual + hosts, there are several options for dealing with log + files. First, it is possible to use logs exactly as in a + single-host server. Simply by placing the logging directives + outside the <VirtualHost> sections in the + main server context, it is possible to log all requests in the + same access log and error log. This technique does not allow + for easy collection of statistics on individual virtual + hosts.

+ +

If CustomLog + or ErrorLog + directives are placed inside a + <VirtualHost> + section, all requests or errors for that virtual host will be + logged only to the specified file. Any virtual host which does + not have logging directives will still have its requests sent + to the main server logs. This technique is very useful for a + small number of virtual hosts, but if the number of hosts is + very large, it can be complicated to manage. In addition, it + can often create problems with insufficient file + descriptors.

+ +

For the access log, there is a very good compromise. By + adding information on the virtual host to the log format + string, it is possible to log all hosts to the same log, and + later split the log into individual files. For example, + consider the following directives.

+ +

+ LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost
+ CustomLog logs/access_log comonvhost +

+ +

The %v is used to log the name of the virtual + host that is serving the request. Then a program like split-logfile can be used to + post-process the access log in order to split it into one file + per virtual host.

+
top
+
+

Other Log Files

+ + + + +

PID File

+ + +

On startup, Apache httpd saves the process id of the parent + httpd process to the file logs/httpd.pid. This + filename can be changed with the PidFile directive. The + process-id is for use by the administrator in restarting and + terminating the daemon by sending signals to the parent + process; on Windows, use the -k command line option instead. + For more information see the Stopping + and Restarting page.

+ + +

Script Log

+ + +

In order to aid in debugging, the + ScriptLog directive + allows you to record the input to and output from CGI scripts. + This should only be used in testing - not for live servers. + More information is available in the mod_cgi documentation.

+ + +

Rewrite Log

+ + +

When using the powerful and complex features of mod_rewrite, it is almost + always necessary to use the RewriteLog to help + in debugging. This log file produces a detailed analysis of how + the rewriting engine transforms requests. The level of detail + is controlled by the RewriteLogLevel directive.

+ +
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/logs.html.es b/rubbos/app/apache2/manual/logs.html.es new file mode 100644 index 00000000..7b9d4f26 --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html.es @@ -0,0 +1,644 @@ + + + +Archivos de Registro (Log Files) - Servidor HTTP Apache + + + + + +
<-
+

Archivos de Registro (Log Files)

+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

Para administrar de manera efectiva un servidor web, es + necesario tener registros de la actividad y el rendimiento del + servidor as como de cualquier problema que haya podido + ocurrir durante su operacin. El servidor HTTP Apache ofrece + capacidades muy amplias de registro de este tipo de + informacin. Este documento explica cmo configurar esas + capacidades de registro, y cmo comprender qu + informacin contienen los ficheros de registro.

+
+ +
top
+
+

Advertencia de seguridad

+ + +

Cualquiera que tenga permisos de escritura sobre el directorio + en el que Apache est escribiendo un archivo de registro + puede con casi toda seguridad tener acceso al identificador de + usuario con el que se inici el servidor, normalmente + root. NO le de a nadie permisos de escritura sobre el + directorio en que se almacenan los ficheros de registro sin tener + en cuenta las consecuencias; consulte los consejos de seguridad para + obtener ms informacin.

+ +

Adems, los ficheros de registro pueden contener + informacin suministrada directamente por el cliente, sin + sustituir. Es posible por tanto que clientes con malas intenciones + inserten caracteres de control en los ficheros de registro. Por + ello es necesario tener cuidado cuando se procesan los ficheros de + registro originales.

+
top
+
+

Registro de Errores (Error Log)

+ + + + +

El registro de errores del servidor, cuyo nombre y + ubicacin se especifica en la directiva ErrorLog, es el ms importante de + todos los registros. Apache enviar cualquier + informacin de diagnstico y registrar cualquier + error que encuentre al procesar peticiones al archivo de registro + seleccionado. Es el primer lugar donde tiene que mirar cuando + surja un problema al iniciar el servidor o durante su + operacin normal, porque con frecuencia encontrar en + l informacin detallada de qu ha ido mal y + cmo solucionar el problema.

+ +

El registro de errores se escribe normalmente en un fichero + (cuyo nombre suele ser error_log en sistemas Unix y + error.log en Windows y OS/2). En sistemas Unix + tambin es posible hacer que el servidor enve los + mensajes de error al syslog o pasarlos a un programa.

+ +

El formato del registro de errores es relativamente libre y + descriptivo. No obstante, hay cierta informacin que se + incluye en casi todas las entradas de un registro de errores. Por + ejemplo, este es un mensaje tpico.

+ +

+ [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test +

+ +

El primer elemento de la entrada es la fecha y la hora del + mensaje. El segundo elemento indica la gravedad del error que se + ha producido. La directiva LogLevel se usa para controlar los tipos + de errores que se envan al registro de errores segn su + gravedad. La tercera parte contiene la direccin IP del + cliente que gener el error. Despus de la direccin + IP est el mensaje de error propiamente dicho, que en este + caso indica que el servidor ha sido configurado para denegar el + acceso a ese cliente. El servidor reporta tambin la ruta en + el sistema de ficheros (en vez de la ruta en el servidor + web) del documento solicitado.

+ +

En el registro de errores puede aparecer una amplia variedad de + mensajes diferentes. La mayora tienen un aspecto similar al + del ejemplo de arriba. El registro de errores tambin + contiene mensaje de depuracin de scripts CGI. Cualquier + informacin escrita en el stderr por un script + CGI se copiar directamente en el registro de errores.

+ +

El registro de errores no se puede personalizar aadiendo + o quitando informacin. Sin embargo, las entradas del + registro de errores que se refieren a determinadas peticiones + tienen sus correspondientes entradas en el registro de acceso. El ejemplo de arriba se + corresponde con una entrada en el registro de acceso que + tendr un cdigo de estado 403. Como es posible + personalizar el registro de acceso, puede obtener ms + informacin sobre los errores que se producen usando ese + registro tambin.

+ +

Si hace pruebas, suele ser de utilidad monitorizar de forma + continua el registro de errores para comprobar si ocurre + algn problema. En sistemas Unix, puede hacer esto + usando:

+ +

+ tail -f error_log +

+
top
+
+

Registro de Acceso (Access Log)

+ + + + +

El servidor almacena en el registro de acceso informacin + sobre todas las peticiones que procesa. La ubicacin del + fichero de registro y el contenido que se registra se pueden + modificar con la directiva CustomLog. Puede usar la + directiva LogFormat + para simplificar la seleccin de los contenidos que quiere + que se incluyan en los registros. Esta seccin explica como + configurar el servidor para que registre la informacin que + usted considere oportuno en el registro de acceso.

+ +

Por supuesto, almacenar informacin en el registro de + acceso es solamente el principio en la gestin de los + registros. El siguiente paso es analizar la informacin que + contienen para producir estadsticas que le resulten de + utilidad. Explicar el anlisis de los registros en general + est fuera de los propsitos de este documento, y no es + propiamente una parte del trabajo del servidor web. Para ms + informacin sobre este tema, y para aplicaciones que analizan + los registros, puede visitar + + Open Directory o + Yahoo.

+ +

Diferentes versiones de Apache httpd han usado otros + mdulos y directivas para controlar la informacin que + se almacena en el registro de acceso, incluyendo mod_log_referer, + mod_log_agent, y la directiva TransferLog. Ahora la + directiva CustomLog + asume toda la funcionalidad que antes estaba repartida.

+ +

El formato del registro de acceso es altamente configurable. El + formato se especifica usando una cadena de caracteres de formato + similar a las de printf(1) en lenguaje C. Hay algunos ejemplos en + las siguientes secciones. Si quiere una lista completa de los + posibles contenidos que se pueden incluir, consulte la + documentaci sobre las cadenas de caracteres + de formato del mod_log_config.

+ +

Formato Comn de Registro (Common Log + Format)

+ + +

Una configuracin tpica del registro de acceso + podra tener un aspecto similar a este.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common +

+ +

Con esto se define el apodo (nickname) common y se + le lo asocia con un determinado formato. El formato consiste en + una serie de directivas con tantos por ciento, cada una de las + cuales le dice al servidor que registre una determinada + informacin en particular. El formato tambin puede + incluir caracteres literales, que se copiarn directamente + en el registro. Si usa el caracter comillas (") + debe anteponerle una barra invertida para evitar que sea + interpretado como el final la cadena de caracteres a + registrar. El formato que especifique tambin puede + contener los caracteres de control especiales "\n" + para salto de lnea y "\t" para tabulador.

+ +

La directiva CustomLog crea un nuevo + fichero de registro usando el apodo definido. El + nombre del fichero de registro de acceso se asume que es + relativo al valor especificado en ServerRoot a no ser que empiece + por una barra (/).

+ +

La configuracin de arriba escribir las entradas + en el registro con el formato conocido como Formato Comn + de Registro (CLF). Este formato estndar lo pueden generar + muchos servidores web diferentes y lo pueden leer muchos de los + progrmas que analizan registros. Las entradas de un fichero de + registro que respetan ese formato comn tienen una + aparariencia parecida es esta:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 +

+ +

Cada una de las partes de la entrada se explican a + continuaci#243;n.

+ +
+
127.0.0.1 (%h)
+ +
Es la direccin IP del cliente (host remoto) que hizo + la peticin al servidor. Si la directiva HostnameLookups tiene valor + On, el servidor intentar determinar el + nombre del host y registrar ese nombre en lugar de la + direccin IP. Sin embargo, no se recomienda que use esta + configuracin porque puede ralentizar significativamente + las operaciones del servidor. En su lugar, es mejor usar un + programa que realice esta tarea posteriormente sobre el + registro, por ejemplo logresolve. Las + direcciones IP que se registren no son necesariamente las + direcciones de las mquinas de los usuarios finales. Si + existe un servidor proxy entre el usuario final y el servidor, + la direccin que se registra es la del proxy.
+ +
- (%l)
+ +
Un "guin" siginifica que la informacin que + debera ir en ese lugar no est disponible. En este + caso, esa informacin es la identidad RFC 1413 del + cliente determinada por identd en la mquina + del cliente. Esta informacin es muy poco fiable y no + debera ser usada nunca excepto con clientes que + estn sometidos a controles muy estrictos en redes + internas. Apache httpd ni siquiera intenta recoger esa + informacin a menos que la directiva IdentityCheck tenga valor + On.
+ +
frank (%u)
+ +
Este es el identificador de usuario de la persona que + solicita el documento determinado por la autentificacin + HTTP. Normalmente ese mismo valor se pasa a los scripts CGI + con la variable de entorno REMOTE_USER. Si el + cdigo de estado de la peticin (ver abajo) es 401, + entonces no debe confiar en la veracidad de ese dato porque el + usuario no ha sido an autentificado. Si el documento no + est protegido por contrasea, se mostrar un + guin "-" en esta entrada.
+ +
[10/Oct/2000:13:55:36 -0700] + (%t)
+ +
+ La hora a la que el servidor recibi la + peticin. El formato es: + +

+ [da/mes/ao:hora:minuto:segundo zona_horaria]
+ day = 2*digit
+ month = 3*letter
+ year = 4*digit
+ hour = 2*digit
+ minute = 2*digit
+ second = 2*digit
+ zone = (`+' | `-') 4*digit
+

+ Es posible mostrar la hora de otra manera especificando + %{format} en el formato a usar en el registro, + donde format se sustituye como se hara al + usar strftime(3) de la librera + estndar de C. +
+ +
"GET /apache_pb.gif HTTP/1.0" + (\"%r\")
+ +
La lnea de la peticin del cliente se muestra + entre dobles comillas. La lnea de peticin contiene + mucha informacin de utilidad. Primero, el mtodo + usado por el cliente es GET. Segundo, el cliente + ha hecho una peticin al recurso + /apache_pb.gif, y tercero, el cliente uso el + protocolo HTTP/1.0. Tambin es posible + registrar una o ms partes de la lnea de + peticin independientemente. Por ejemplo, el formato + "%m %U%q %H" registrar el mtodo, ruta, + cadena de consulta y protocolo, teniendo exactamente el mismo + resultado que "%r".
+ +
200 (%>s)
+ +
Es el cdigo de estado que el servidor enva de + vuelta al cliente. Esta informacin es muy valiosa, + porque revela si la peticin fue respondida con + xito por el servidor (los cdigos que empiezan por + 2), una redireccin (los cdigos que empiezan por + 3), un error provocado por el cliente (los cdigos que + empiezan por 4), o un error en el servidor (los cdigos + que empiezan por 5). La lista completa de cdigos de + estado posibles puede consultarle en la + especificacin de HTTP (RFC2616 seccin + 10).
+ +
2326 (%b)
+ +
La ltima entrada indica el tamao del objeto + retornado por el cliente, no includas las cabeceras de + respuesta. Si no se respondi con ningn contenido + al cliente, este valor mostrar valor + "-". Para registrar "0" en ese caso, + use %B en su lugar.
+
+ + +

Formato de Registro Combinado (Combined Log Format)

+ + +

Otro formato usado a menudo es el llamado Formato de Registro + Combinado. Este formato puede ser usado como sigue.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined
+ CustomLog log/access_log combined +

+ +

Es exactamente igual que Formato Comn de Registro, pero + aade dos campos. Cada campo adicional usa la directiva + %{header}i, donde header puede + ser cualquier cabecera de peticin HTTP. El registro de + acceso cuando se usa este formato tendr este aspecto:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)" +

+ +

Los campos adicionales son:

+ +
+
"http://www.example.com/start.html" + (\"%{Referer}i\")
+ +
La cabecera de peticin de HTTP "Referer" + (sic). Muestra el servidor del que proviene el cliente. (Esta + debera ser la pgina que contiene un enlace o + que contiene a /apache_pb.gif).
+ +
"Mozilla/4.08 [en] (Win98; I ;Nav)" + (\"%{User-agent}i\")
+ +
La cabecera de peticin HTTP "User-Agent". Es la + informacin de identificacin que el navegador del + cliente incluye sobre s mismo.
+
+ + +

Cmo usar varios registros de acceso

+ + +

Para crear varios registros de acceso solamente tiene que + especificar varias directivas CustomLog en el fichero de + configuracin. Por ejemplo, las siguientes directivas + crearn tres registros de acceso. El primero contendr + la informacin bsica en Formato Comn de + Registro, mientras que el segundo y el tercero contendrn + contendrn la informacin de los "referer" y de los + navegadores usados. Las dos ltimas lneas CustomLog muestran cmo + reproducir el comportamiento de las directivas + ReferLog y AgentLog.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+ CustomLog logs/referer_log "%{Referer}i -> %U"
+ CustomLog logs/agent_log "%{User-agent}i" +

+ +

Este ejemplo tambin muestra que no es necesario definir un + "apodo" con la directiva LogFormat. En lugar de esto, + el formato de registro puede especificarse directamente en la + directiva CustomLog.

+ + +

Registro Condicional

+ + +

Algunas veces es ms conveniente excluir determinadas + entradas del registro de acceso en funcin de las + caractersticas de la peticin del cliente. Puede + hacer esto fcilmente con la ayuda de variables de entorno. Primero, debe + especificar una variable de entorno que indique que la + peticin cumple determinadas condiciones. Esto se hace + normalmente con SetEnvIf. Entonces puede usar + la clasula env= de la directiva CustomLog para incluir o + excluir peticiones en las que est presente la variable de + entorno. Algunos ejemplos:

+ +

+ # Marcar las peticiones de la interfaz loop-back
+ SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+ # Marcar las peticiones del fichero robots.txt
+ SetEnvIf Request_URI "^/robots\.txt$" dontlog
+ # Registrar lo que quede
+ CustomLog logs/access_log common env=!dontlog +

+ +

Como otro ejemplo, considere registrar las peticiones de los + angloparlantes en un fichero de registro, y el resto de + peticiones en un fichero de registro diferente.

+ +

+ SetEnvIf Accept-Language "en" english
+ CustomLog logs/english_log common env=english
+ CustomLog logs/non_english_log common env=!english +

+ +

Aunque acabamos de mostar que el registro condicional es muy + potente y flexible, no es la nica manera de controlar los + contenidos de los ficheros de registro. Los ficheros de registro + son ms tiles cuanta ms informacin sobre + la actividad del servidor contengan. A menudo es ms + fcil eliminar las peticiones que no le interesen + procesando posteriormente los ficheros de registro + originales.

+ +
top
+
+

Rotacin de los ficheros de registro

+ + +

Incluso en un servidor con una actividad moderada, la cantidad + de informacin almacenada en los ficheros de registro es muy + grande. El registro de acceso crece normalmente en 1MB por cada + 10.000 peticiones. Por lo tanto, es necesario rotar + peridicamente los registros moviendo o borrando su + contenido. Esto no se puede hacer con el servidor funcionando, + porque Apache continuar escribiendo en el antiguo registro + mientras que el archivo est abierto. En lugar de esto, el + servidor debe ser reiniciado + despus de mover o borrar los ficheros de registro para que + se abran nuevos ficheros de registro.

+ +

Usando un reinicio graceful, se le puede indicar al + servidor que abra nuevos ficheros de registro sin perder ninguna + peticin siendo servida o en espera de algn cliente. Sin + embargo, para hacer esto, el servidor debe continuar escribiendo + en los ficheros de registro antiguos mientras termina de servir + esas peticiones. Por lo tanto, es preciso esperar algn + tiempo despus del reinicio antes de realizar ninguna + operacin sobre los antiguos ficheros de registro. Una + situacin tpica que simplemente rota los registros y + comprime los registros antiguos para ahorrar espacio es:

+ +

+ mv access_log access_log.old
+ mv error_log error_log.old
+ apachectl graceful
+ sleep 600
+ gzip access_log.old error_log.old +

+ +

Otra manera de realizar la rotacin de los registros es + usando ficheros de registro redireccionados + (piped logs) de la forma en que se explica en la siguiente + seccin.

+
top
+
+

Ficheros de registro redireccionados (Piped Logs)

+ + +

Apache httpd es capaz de escribir la informacin del + registro de acceso y errores mediante una redireccin a otro + proceso, en lugar de directamente a un fichero. Esta capacidad + incrementa de forma muy importante la flexibilidad de registro, + sin aadir cdigo al servidor principal. Para escribir + registros a una redireccin, simplemente reemplace el nombre + de fichero por el carcter "|", seguido por el + nombre del ejecutable que debera aceptar las entradas de + registro por su canal de entrada estndar. Apache + iniciar el proceso de registro redireccionado cuando se + inicie el servidor, y lo reiniciar si se produce algn + error irrecuperable durante su ejecucin. (Esta ltima + funcionalidad es la que hace que se llame a esta tcnica + "registro redireccionado fiable".)

+ +

Los procesos de registros son engendrados por el proceso padre + de Apache httpd, y heredan el identificador de usuario de ese + proceso. Esto significa que los programas a los que se + redireccionan los registros se ejecutan normalmente como root. Es + por ello que es muy importante que los programas sean simples y + seguros.

+ +

Un uso importante de los registros redireccionados es permitir + la rotacin de los registros sin tener que reiniciar el + servidor. El servidor Apache HTTP incluye un programa simple + llamado rotatelogs con este propsito. Por + ejemplo para rotar los registros cada 24 horas, puede usar:

+ +

+ CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common +

+ +

Tenga en cuenta que las comillas se usan para abarcar el + comando entero que ser invocado por la + redireccin. Aunque estos ejemplos son para el registro de + acceso, la misma tcnica se puede usar para el registro de + errores.

+ +

Otro programa para la rotacin de los registros mucho + ms flexible llamado cronolog est disponible + en un sitio web externo.

+ +

Como ocurre con el registro condicional, la redireccin de + registros es una herramienta muy potente, pero no deben ser usados + si hay disponible una solucin ms simple de procesado + posterior de los registros fuera de lnea.

+
top
+
+

Hosts Virtuales

+ + +

Cuando se est ejecutando un servidor con muchos hosts virtuales, hay varias formas de abordar + el asunto de los registros. Primero, es posible usar los registros + de la misma manera que se usaran si hubiera solamente un + host en el servidor. Simplemente poniendo las directivas que + tienen que ver con los registros fuera de las secciones <VirtualHost> en el + contexto del servidor principal, puede almacenar toda la + informacin de todas las peticiones en los mismos registros + de acceso y errores. Esta tcnica no permite una + recoleccin fcil de las estadsticas individuales + de cada uno de los hosts virtuales.

+ +

Si una directiva CustomLog o ErrorLog se pone dentro una seccin + <VirtualHost>, + todas las peticiones de ese host virtual se registrarn + solamente en el fichero especificado. Las peticiones de cualquier + host virtual que no tenga directivas de registro especficas + para l se registrarn en los registros del servidor + principal. Esta tcnica es muy til si usa un + pequeo nmero de hosts virtuales, pero si usa un gran + nmero de ellos, puede ser complicado de + gestionar. Adems, puede a menudo provocar problemas con descriptores de fichero + insuficientes.

+ +

Para el registro de acceso, se puede llegar a un buen + equilibrio. Aadiendo informacin del host virtual al + formato de registro, es posible registrar las operaciones de todos + los hosts en un nico registro, y posteriormente dividir el + fichero con todos los registros en ficheros individualizados. Por + ejemplo, considere las siguientes directivas.

+ +

+ LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost
+ CustomLog logs/access_log comonvhost +

+ +

El %v se usa para registrar el nombre del host + virtual que est sirviendo la peticin. Puede usar un + programa como split-logfile para + procesar posteriormente el registro de acceso y dividirlo en + ficheros independientes para cada host virtual.

+
top
+
+

Otros ficheros de registro

+ + + + +

Fichero PID (PID File)

+ + +

Al iniciar, Apache httpd guarda el identificador del proceso + padre del servidor en el fichero + logs/httpd.pid. Puede modificar el nombre de este + fichero con la directiva PidFile. El identificador del + proceso puede usarlo el administrador para reiniciar y finalizar + el demonio (daemon) mediante el envo de seales al + proceso padre; en Windows, use la opcin de lnea de + comandos -k en su lugar. Para ms informacin al + respecto, consulte la documentacin sobre parar y reiniciar Apache.

+ + +

Registro de actividad de scripts (Script Log)

+ + +

Para ayudar a la deteccin de errores, la directiva + ScriptLog permite + guardar la entrada y la salida de los scripts CGI. Esta + directiva solamente debera usarla para hacer pruebas - no + en servidores en produccin. Puede encontrar ms + informacin al respecto en la documentacin de mod_cgi.

+ + +

Registro de actividad de Rewrite (Rewrite Log)

+ + +

Cuando use las potentes y complejas funcionalidades de mod_rewrite, ser casi + siempre necesario usar la direcitiva RewriteLog para ayudar a la + deteccin de errores. Este fichero de registro produce un + anlisis detallado de cmo acta este + mdulo sobre las peticiones. El nivel de detalle del + registro se controla con la directiva RewriteLogLevel.

+ +
+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/logs.html.ja.utf8 b/rubbos/app/apache2/manual/logs.html.ja.utf8 new file mode 100644 index 00000000..0e76e4a4 --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html.ja.utf8 @@ -0,0 +1,557 @@ + + + +ログファイル - Apache HTTP サーバ + + + + + +
<-
+

ログファイル

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

ウェブサーバを効果的に管理するためには、サーバの活動やパフォーマンス、 + 今発生しているかもしれない問題に関するフィードバックを得ることが必要です。 + Apache HTTP サーバには非常に包括的で柔軟なロギング機能があります。 + この文書はロギング機能の設定の仕方と、ログに何が書かれているかを + 理解するための方法を説明します。

+
+ +
top
+
+

+ セキュリティに関する警告

+ +

Apache がログファイルを書いているディレクトリに書き込める人は、 + ほぼ確実にサーバが起動された uid へのアクセスを手に入れることができます。 + そして、それは通常は root ユーザです。 + ちゃんと結果を考えることなく、そのディレクトリへの + 書き込み権限を与えないでください。詳しくは + セキュリティのこつの文書を + 読んでください。

+ +

加えて、ログファイルにはクライアントからの情報がそのまま、 + エスケープされることなく書かれています。ですから、悪意のある + クライアントがログファイルに制御文字を挿入することができます。 + 生のログを扱うときは注意してください。

+
top
+
+

エラーログ

+ + + +

ErrorLog ディレクティブにより + 名前と場所が決まるサーバのエラーログは、一番重要なログファイルです。 + Apache の診断情報はここに送られ、リクエストを処理しているときに + 発生したエラーはすべてここに記録されます。サーバを起動したときや、 + サーバの動作に問題が起こったときは、一番最初に調べるべき + ところです。間違いの詳細や修正方法がそこに書かれていることが + よくあります。

+ +

エラーログは普通はファイルに書かれます (通常 unix システムでは + error_log、Windows と OS/2 では error.log)。 + Unix システムではエラーを syslog や + パイプでプログラムに送る ことができます。

+ +

エラーログの書式は比較的自由度の高いもので、説明的に書かれています。 + ただし、いくつかの情報はほとんどのエラーログのエントリにあります。 + 例えば、代表的なものに次のようなメッセージがあります。

+ +

+ [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test +

+ +

ログエントリの最初の項目はメッセージの日付と時刻です。 + 二つめの項目は報告されているエラーの重要度です。 + LogLevel で重要度のレベルを + 制限することによりエラーログに送られるエラーの種類を制御することが + できます。三つ目の項目はエラーを発生させたクライアントの IP アドレス + です。残りはメッセージで、この場合はサーバがクライアントのアクセスを + 拒否するように設定されている、ということを示しています。 + サーバはリクエストされた文書の (ウェブのパスではなく) ファイルシステムの + パスを報告します。

+ +

非常に広範囲のメッセージがエラーログに現れます。たいていのものは + 上の例のような感じです。エラーログには CGI スクリプトのデバッグ + 出力も書かれます。CGI スクリプトが stderr に書いた + すべての情報は直接エラーログにコピーされます。

+ +

情報を追加したり削除したりしてエラーログをカスタマイズすることは + できません。しかし、リクエストに対するエラーログのエントリは、 + 対応するエントリがアクセスログにあります。 + 例えば、上の例のエントリはアクセスログのステータスコード 403 の + エントリに対応します。アクセスログはカスタマイズ可能ですので、 + そちらを使うことによりエラーの状況に関する情報をより多く + 手に入れることができます。

+ +

テストの最中は、問題が発生しているかどうかを見るために、 + 常にエラーログを監視するのが役に立つ場合がよくあります。 + Unix システムでは、次のものを使うことができます。

+ +

+ tail -f error_log +

+
top
+
+

アクセスログ

+ + + + +

サーバアクセスログはサーバが処理をしたすべてのリクエストを + 記録します。アクセスログの場所と内容は CustomLog + ディレクティブにより決まります。ログの内容の選択を簡潔にするために + LogFormat + ディレクティブを使用することができます。このセクションはアクセスログに + 情報を記録するためのサーバの設定方法を説明します。

+ +

もちろん、アクセスログに情報を蓄積することはログ管理の + 始まりに過ぎません。次の段階は有用な統計を取るためにこの情報を + 解析することです。一般的なログ解析はこの文書の範囲外で、 + ウェブサーバ自身の仕事というわけでもありません。この話や、 + ログ解析を行なうアプリケーションの情報を得るには、 + Open Directory + Yahoo を調べてください。

+ +

いろんなバージョンの Apache httpd が mod_log_config, + mod_log_agent, TransferLog ディレクティブといった、 + 他のモジュールやディレクティブを使ってアクセスのロギングを + 制御してきました。今では、CustomLog がすべての古い + ディレクティブの機能を含むようになっています。

+ +

アクセスログの書式は非常に柔軟な設定が可能です。 + 書式は C の printf(1) フォーマット文字列に非常に似た + フォーマット文字列 + により指定されます。いくつか次の節で例を示します。 + フォーマット文字列に使用できる内容の一覧は mod_log_config の文書 + を見てください。

+ +

Common Log Format

+ + +

アクセスログのよくある設定に以下のものがあります。

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common +

+ +

これは、ニックネーム common を定義し、 + ログのフォーマット文字列の一つと関連付けます。フォーマット文字列は + パーセントディレクティブからなり、それぞれのパーセントディレクティブは + サーバにどの情報をロギングするかを指示します。フォーマット文字列に + 文字をそのまま入れることもでき、それらはログの出力に直接コピーされます。 + そこに引用文字 (") を書くときは、 + フォーマット文字列の最後として解釈 + されることを防ぐためにバックスラッシュでエスケープする必要があります。 + フォーマット文字列には改行用の "\n"、タブ用の + "\t" という特別な制御文字も含めることができます。

+ +

CustomLog ディレクティブは + 既に定義された + ニックネーム を使って新しいログファイルを設定します。 + アクセスログのファイル名はスラッシュで始まらない限り、 + ServerRoot からの相対パスとして + 扱われます。

+ +

上の設定は Common Log Format (CLF) と呼ばれる形式で + ログエントリを書きます。この標準の形式は異なるウェブサーバの多くが + 生成することができ、多くのログ解析プログラムが読みこむことができます。 + CLF により生成されたログファイルのエントリは以下のようになります:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 +

+ +

このログエントリのそれぞれの部分の意味は以下で説明します。

+ +
+
127.0.0.1 (%h)
+ +
これはサーバへリクエストをしたクライアント (リモートホスト) + の IP アドレスです。HostnameLookups が + On の場合は、サーバはホスト名を調べて、 + IP アドレスが書かれているところに記録します。しかし、この設定は + サーバをかなり遅くするので、あまりお勧めできません。 + そうではなく、logresolve の + ようなログの後処理を行なうプログラムでホスト名を調べるのが良いでしょう。 + ここに報告される IP アドレスは必ずしもユーザが使っているマシンの + ものであるとは限りません。ユーザとサーバの間にプロキシサーバが + あれば、このアドレスは元のマシンのものではなく、プロキシの + アドレスになります。
+ +
- (%l)
+ +
出力中の「ハイフン」は要求された情報が手に入らなかったということを + 意味します。この場合、取得できなかった情報はクライアントのマシンの + identd により決まる RFC 1413 のクライアントの + アイデンティティです。この情報はあまり信用することができず、 + しっかりと管理された内部ネットワークを除いては使うべきではありません。 + Apache は IdentityCheck が + On になっていない限り、この情報を得ようとすらしません。
+ +
frank (%u)
+ +
これは HTTP 認証による、ドキュメントをリクエストした人の + ユーザ ID です。CGI スクリプトには通常同じ値が REMOTE_USER + 環境変数として与えられます。リクエストのステータスコード + (以下を参照) が 401 であった場合は、ユーザは認証に失敗しているので、 + この値は信用できません。ドキュメントがパスワードで保護されていない + 場合は、このエントリは前のものと同じように "-" に + なります。
+ +
[10/Oct/2000:13:55:36 -0700] + (%t)
+ +
+ サーバがリクエストの処理を終えた時刻です。書式は: + +

+ [day/month/year:hour:minute:second zone]
+ day = 2*digit
+ month = 3*letter
+ year = 4*digit
+ hour = 2*digit
+ minute = 2*digit
+ second = 2*digit
+ zone = (`+' | `-') 4*digit
+

+ ログのフォーマット文字列に %{format}t を + 指定することで、別の形式で時刻を表示させることもできます。 + このとき、format は C の標準ライブラリの + strftime(3) の形式になります。 +
+ +
"GET /apache_pb.gif HTTP/1.0" + (\"%r\")
+ +
クライアントからのリクエストが二重引用符の中に示されています。 + リクエストには多くの有用な情報があります。まず、この場合クライアントが + 使ったメソッドは GET です。次に、クライアントは + リソース /apache_pb.gif を要求しました。そして、 + クライアントはプロトコル HTTP/1.0 を使用しました。 + リクエストの各部分を独立にログ収集することもできます。例えば、 + フォーマット文字列 "%m %U%q %H" は + メソッド、パス、クエリ文字列、プロトコルをログ収集し、 + 結局 "%r" とまったく同じ出力になります。
+ +
200 (%>s)
+ +
サーバがクライアントに送り返すステータスコードです。 + この情報は、リクエストが成功応答 (2 で始まるコード) であったか、 + リダイレクション (3 で始まるコード) であったか、クライアントによる + エラー (4 で始まるコード) であったか、サーバのエラー (5 で始まるコード) + であったか、を現すので、非常に大切です。ステータスコードの + 完全なリストは HTTP + 規格 (RFC2616 第 10 節) にあります。
+ +
2326 (%b)
+ +
この最後のエントリはクライアントに送信されたオブジェクトの、 + 応答ヘッダを除いたサイズを現します。コンテントがクライアントに送られなかった + 場合は、この値は "-" になります。コンテントが無い場合に + "0" をログ収集するには、%b ではなく + %B を使ってください。
+ +
+ + +

Combined Log Format

+ + +

もう一つのよく使われる書式は Combined Log Format と呼ばれています。 + 以下のようにして使うことができます。

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined
+ CustomLog log/access_log combined +

+ +

この書式の最初の方は Common Log Format とまったく同じで、最後に + 二つ追加のエントリがあります。追加のエントリはパーセントディレクティブ + %{header}i を使っています。ここで + header は HTTP のリクエストヘッダのどれかです。この書式による + アクセスログは以下のような感じになります:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)" +

+ +

追加のエントリは:

+ +
+
"http://www.example.com/start.html" + (\"%{Referer}i\")
+ +
"Referer" (意図的な綴り間違い) HTTP リクエストヘッダです。 + これはクライアントが報告してくる参照元のサイトを表します。 + (この場合は、/apache_pb.gif にリンクしているか、 + それを含んでいるページです)。
+ +
"Mozilla/4.08 [en] (Win98; I ;Nav)" + (\"%{User-agent}i\")
+ +
User-Agent HTTP リクエストヘッダです。これはクライアントのブラウザが + 自分自身のことを報告してくる情報です。
+
+ + +

複数のアクセスログ

+ + +

複数のアクセスログは単に設定ファイルに複数の CustomLog + ディレクティブを書くことで作成されます。例えば、以下のディレクティブは + 三つのアクセスログを作ります。最初のものは基本的な CLF の情報で、 + 二つ目と三つ目は referer とブラウザの情報です。最後二つの + CustomLog は + ReferLog ディレクティブと + AgentLog ディレクティブの効果をまねる方法を示しています。

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+ CustomLog logs/referer_log "%{Referer}i -> %U"
+ CustomLog logs/agent_log "%{User-agent}i" +

+ +

この例は LogFormat で + ニックネームを定義する必要がない、 + ということも示しています。ニックネームの代わりに、 + CustomLog ディレクティブに + 直接ログの書式を指定することができます。

+ + +

条件付きログ

+ + +

クライアントのリクエストの特徴に基づいてアクセスログにエントリの + 一部をロギングしない方が便利なことがあります。これは 環境変数 の補助により簡単に実現できます。まず、 + リクエストが何らかの条件に合うということを現すために環境変数が + 設定される必要があります。これは通常は SetEnvIf により + 行なわれます。そして、CustomLog ディレクティブの + env= 節を使って環境変数が設定されているリクエストを + 含めたり排除したりすることができます。いくつか例を挙げます:

+ +

+ # Mark requests from the loop-back interface
+ SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+ # Mark requests for the robots.txt file
+ SetEnvIf Request_URI "^/robots\.txt$" dontlog
+ # Log what remains
+ CustomLog logs/access_log common env=!dontlog +

+ +

他の例として、英語を話す人からのリクエストとそれ以外の人からのリクエストを + 分けたい、という場合を考えてみてください。

+ +

+ SetEnvIf Accept-Language "en" english
+ CustomLog logs/english_log common env=english
+ CustomLog logs/non_english_log common env=!english +

+ +

ここまででは条件付きロギングが非常に強力で柔軟であることを示してきましたが、 + それがログの内容を制御する唯一の方法というわけではありません。ログファイルは + サーバの活動の完全な記録である方がより役に立ちます。単純にログファイルを + 後処理して、考慮したくないログを削除する方が簡単であることがよくあります。

+ +
top
+
+

ログの交替

+ + +

普通の負荷のサーバでさえ、ログファイルに保存される情報の量は + 膨大になります。アクセスログのファイルは普通 10,000 リクエスト毎に + 1 MB 以上増えます。ですから、既存のログを移動したり、削除したりして、 + 定期的にログを交替させることが必要になります。これはサーバの実行中には + 行なえません。というのは、Apache はファイルが open されている間は + ずっと古いログファイルに書き続けるからです。 + 新しいログファイルを open できるように、ログファイルが移動されたり + 削除された後に、サーバを再起動する + 必要があります。

+ +

優雅な 再起動を行なうことで、サーバは既存のコネクションや + 処理待ちのコネクションを失うことなく新しいログファイルを open させる + ことができます。しかし、これを実現するために、サーバは古いリクエストを + 扱っている間は古いログファイルに書き続ける必要があります。 + ですから、再起動の後ではログファイルの処理を始める前に、しばらく待たなければ + なりません。単にログを交替させて、ディスクの節約のために古いログを + 圧縮する普通のシナリオは:

+ +

+ mv access_log access_log.old
+ mv error_log error_log.old
+ apachectl graceful
+ sleep 600
+ gzip access_log.old error_log.old +

+ +

ログの交替をするもう一つの方法はパイプ経由のログを使うもので、次の節で説明されています。

+
top
+
+

パイプ経由のログ

+ + +

Apache httpd はエラーログとアクセスログをファイルに直接書く代わりに、 + パイプを通して別のプログラムに書き出すことができます。 + この機能により、主サーバにコードを追加することなく + ロギングの柔軟性が非常に高まっています。パイプにログを書くためには、 + 単にファイル名をパイプ文字 "|" に置き換え、その続きに + 標準入力からログのエントリを受けとる実行プログラムの名前を書くだけです。 + Apache はパイプ経由のログ用のプロセスをサーバの起動時に実行し、 + サーバの実行中にそのプログラムがクラッシュしたときはそれを再び + 実行します。(この最後の機能がこの技術が「信頼性のあるパイプ経由のロギング」 + と呼ばれている理由です。)

+ +

パイプ経由のログ用のプロセスは Apache httpd の親プロセスから起動され、 + そのプロセスのユーザ ID を継承します。これは、これは、パイプ経由のログ用の + プログラムは普通 root として実行されることを意味します。 + ですから、プログラムを簡単で安全に保つことが非常に重要です。

+ +

パイプ経由のログの重要な利用法は、サーバの再起動なしでログの交替を + することです。Apache HTTP サーバにはこのための rotatelogs と呼ばれる簡単な + プログラムが付属しています。たとえば、24 時間毎にログを交替させるには、 + 以下のものを使うことができます:

+ +

+ CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common +

+ +

パイプの先で呼ばれるコマンド全体が引用符で囲まれていることに注目して + ください。この例はアクセスログを使っていますが、エラーログにも同じ技術を + 使うことができます。

+ +

似ているけれど、よりずっと柔軟な + cronolog というログ交替用の + プログラムが外部のサイトにあります。

+ +

条件付きロギングと同様、パイプ経由のログは非常に強力な + 道具ですが、オフラインの後処理のような、より簡単な解決方法があるときは + 使わない方が良いでしょう。

+
top
+
+

バーチャルホスト

+ + +

多くの バーチャルホスト のあるサーバを実行している + ときは、ログファイルの扱い方にいくつかの方法があります。 + まず、単独のホストのみのサーバとまったく同じようにログを使うことができます。 + ロギングディレクティブを主サーバのコンテキストの + <VirtualHost> セクションの外に置くことで、 + すべてのログを同じアクセスログとエラーログにログ収集することができます。 + この手法では個々のバーチャルホストの統計を簡単にとることはできません。

+ +

>CustomLog や + ErrorLog ディレクティブが + <VirtualHost> の中に + 置かれた場合は、そのバーチャル + ホストへのすべてのリクエストやエラーがそこで指定されたファイルにのみ + ログ収集されます。ロギングディレクティブのないバーチャルホストは + 依然としてリクエストが主サーバのログに送られます。この手法は少ない + バーチャルホストに対しては非常に有用ですが、ホストの数が非常に多くなると + 管理が大変になります。さらに、ファイル記述子の限界の問題を起こすことが + あります。

+ +

アクセスログには、非常に良い妥協案があります。バーチャルホストの + 情報をログのフォーマット文字列に加えることで、すべてのホストへの + リクエストを同じログにログ収集して、後でログを個々のファイルに分割することが + できます。たとえば、以下のディレクティブを見てください。

+ +

+ LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost
+ CustomLog logs/access_log comonvhost +

+ +

%v がリクエストを扱っているバーチャルホストの名前を + ログ収集するために使われています。そして、split-logfile のようなプログラムを + 使ってアクセスログを後処理することで、 + バーチャルホスト毎のファイルにログを分割することができます。

+ +

残念ながら、エラーログには同様の手法はありません。ですから、 + すべてのバーチャルホストを同じエラーログの中に混ぜるか、 + バーチャルホスト毎にエラーログを使うかを選ばなければなりません。

+
top
+
+

他のログファイル

+ + + + +

PID ファイル

+ + +

起動時に、Apache は親 httpd プロセスのプロセス ID を + logs/httpd.pid に保存します。この + ファイル名は PidFile ディレクティブを使って + 変更することができます。プロセス ID は管理者が親プロセスに + シグナルを送ることでデーモンを再起動したり終了させたりするときに + 使用します。Windows では、代わりに -k コマンドオプションを + 使ってください。詳しい情報は 終了と + 再起動 のページを見てください。

+ + +

スクリプトログ

+ + +

デバッグの補助のために、ScriptLog ディレクティブは + CGI スクリプトの入力と出力を記録するようにできます。 + これはテスト用にのみ使用して、通常のサーバでは使用しないでください。 + 詳しい情報は mod_cgi の文書 にあります。

+ + +

リライトログ

+ + +

mod_rewrite の強力で + 複雑な機能を + 使っているときは、ほぼいつもデバッグを簡単にするために + RewriteLog の使用が + 必要でしょう。このログファイルにはリライトエンジンがリクエストを + 書き換える方法の詳細な解析が出力されます。詳しさの度合は RewriteLogLevel + で制御できます。

+ +
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/logs.html.ko.euc-kr b/rubbos/app/apache2/manual/logs.html.ko.euc-kr new file mode 100644 index 00000000..7adb5a0a --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html.ko.euc-kr @@ -0,0 +1,525 @@ + + + +α - Apache HTTP Server + + + + + +
<-
+

α

+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ȿ Ϸ ߻ϴ Բ + Ȱ ɿ ˾ƾ Ѵ. ġ ſ ̰ + α Ѵ. α ϴ + α׿  Ѵ.

+
+ +
top
+
+

+ + +

ġ α ִ 丮 + ִٸ ( root) ϴ uid Ȯ + ִ. ̸ ʰ αװ 丮 + . ڼ ϶.

+ +

, Ŭ̾Ʈ αϿ ״ + ϵȴ. ׷ ǰ ִ Ŭ̾Ʈ αϿ ڸ + Ƿ, α׸ ٷ궧 ؾ Ѵ.

+
top
+
+

α (Error Log)

+ + + + +

ErrorLog þ + ߿ α α ̸ ġ Ѵ. + ġ Ͽ û óϴ + ߻ Ѵ. ϰų ϴµ + ִٸ ߸Ǿ  ġ ˷ִ + ̰ Ѵ.

+ +

α״ ( н ýۿ + error_log, OS/2 + error.log) Ͽ ϵȴ. н ýۿ + syslog + Ͽ ٸ α׷ ִ.

+ +

α Ӱ ڼϴ. ׷ + κ α ׸ ִ. + , ׸ .

+ +

+ [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test +

+ +

α ׸񿡼 ù° ׸ ¥ ð̴. ι° + ׸ ϴ ɰ Ÿ. LogLevel þ α׿ + ϵǴ ɰ ִ. ° ׸ + ߻ Ŭ̾Ʈ IP ̴ּ. + , Ŭ̾Ʈ źϵ + Ǿٰ ִ. û ( ΰ ƴ) + Ͻý ε δ.

+ +

α׿ ſ پ ִ. + κ ϴ. CGI ũƮ µ + α׿ ϵȴ. CGI ũƮ stderr + ״ α׷ ȴ.

+ +

α׿ ߰ϰ . ׷ + û α + α ϴ ׸ . , + ڵ尡 403 α ׸ . α״ + Ƿ Ͽ Ȳ + ߰ ִ.

+ +

˻Ҷ  α׸ 캸 + . н ýۿ Ѵ:

+ +

+ tail -f error_log +

+
top
+
+

α (Access Log)

+ + + + +

α״ óϴ û Ѵ. + CustomLog + þ α ġ Ѵ. LogFormat þ + Ͽ α׿ ִ. + α׿ ϴ Ѵ.

+ +

α׿ ϴ α + ̴. ܰ мϿ 踦 + ̴. Ϲ α м ؼ ٷ , + α м ƴϴ. α м + α׸ мϴ Ʈ ؼ Open Directory + Yahoo + ϶.

+ +

ġ mod_log_referer, mod_log_agent, + CustomLog + þ Ͽ α׸ ٷ. + CustomLog + þ þ ̾޾Ҵ.

+ +

α ſ ϴ. C + printf(1) Ĺڿ ſ Ĺڿ Ͽ + Ѵ. . Ĺڿ 밡 + ˷ mod_log_config Ĺڿ + ϶.

+ +

Common α

+ + +

α .

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common +

+ +

׷ α Ĺڿ + common Ѵ. Ĺڿ ۼƮ + þ Ǹ,  ˸. + Ĺڿ Ϲ ڸ ״ α׿ µȴ. + ǥ (") ϰ ʹٸ 齽 + տ ٿ Ĺڿ ƴ ǥѴ. Ĺڿ + ٹٲ "\n", "\t" + Ư ڸ ִ.

+ +

CustomLog + þ ϴ ο α + . α ϸ + ServerRoot ̴.

+ +

α(Common Log Format, CLF)̶ + α ׸ Ѵ. ٸ 鵵 ̷ + ǥ α׸ , α м α׷ + ִ. CLF α ׸ :

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 +

+ +

α ׸ κ Ѵ.

+ +
+
127.0.0.1 (%h)
+ +
û Ŭ̾Ʈ( ȣƮ) IP + ̴ּ. HostnameLookups + On̶ ȣƮ ãƼ IP ּ ڸ + . ׷ ſ + Ƿ õ ʴ´. ȣƮ ˷ ߿ + logresolve + α׸ óϴ α׷ ϴ . + ⿡ IP ּҴ ڰ ϴ ǻ ּҰ + ƴ ִ. Ͻ ڿ ̿ Ѵٸ, + ǻ ּҰ ƴ϶ Ͻ ּҰ ϵ ̴.
+ +
- (%l)
+ +
¿ "ȣ" û Ÿ. + ⿡ Ŭ̾Ʈ ǻ + identd Ŭ̾Ʈ RFC 1413 + ſ̴. ſ ⶧, + Ǵ Ʈ ƴ϶ ϸ + ȵȴ. IdentityCheck + On ƴ϶ ġ + ˾ƺ õ ʴ´.
+ +
frank (%u)
+ +
̴ HTTP ˾Ƴ û + userid̴. CGI ũƮ + REMOTE_USER ȯ溯 Ѱ. û + ڵ尡 401̶ (Ʒ ) ڰ + ġ ʾǷ ȵȴ. ȣ + ȣ ʴ´ٸ ׸ ׸ + "-"̴.
+ +
[10/Oct/2000:13:55:36 -0700] + (%t)
+ +
+ ûó ģ ð. + : + +

+ [day/month/year:hour:minute:second zone]
+ day = 2
+ month = 3
+ year = 4
+ hour = 2
+ minute = 2
+ second = 2
+ zone = (`+' | `-') 4
+

+ α Ĺڿ %{format}t Ͽ + ٸ ð ִ. format + C ǥ ̺귯 strftime(3) . +
+ +
"GET /apache_pb.gif HTTP/1.0" + (\"%r\")
+ +
Ŭ̾Ʈ û ֵǥ ִ. û + ſ ִ. ù°, Ŭ̾Ʈ + ޽ GET̴. °, Ŭ̾Ʈ ڿ + /apache_pb.gif ûѴ. °, Ŭ̾Ʈ + HTTP/1.0 Ѵ. û + κ α ִ. , Ĺڿ + "%m %U%q %H" "%r" Ȱ + ޽, , ǹڿ, αѴ.
+ +
200 (%>s)
+ +
̴ Ŭ̾Ʈ ڵ̴. + (2 ϴ ڵ) û Ͽ, (4 + ϴ ڵ) Ŭ̾Ʈ ִ, (5 ϴ + ڵ) ִ ˷ֹǷ ſ ߿ϴ. + ڵ ü HTTP + Ծ (RFC2616 section 10) ã ִ.
+ +
2326 (%b)
+ +
׸ ϰ Ŭ̾Ʈ + ũ⸦ Ÿ. Ŭ̾Ʈ + ٸ "-"̴. + "0" αϷ + %B Ѵ.
+
+ + +

Combined α

+ + +

Ǵ ٸ Ĺڿ յȷα(Combined + Log Format)̴. Ѵ.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined
+ CustomLog log/access_log combined +

+ +

׸ ߰ ϰ Common + α İ . ߰ ׸ ۼƮ þ + %{header}i Ѵ. ⼭ + header ڸ HTTP û ̸ + ִ. α״ :

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)" +

+ +

߰ ׸:

+ +
+
"http://www.example.com/start.html" + (\"%{Referer}i\")
+ +
"Referer" ( Ʋʾ) HTTP û . + Ŭ̾Ʈ ߴٰ ˸ Ʈ̴. + (, /apache_pb.gif ũϿų + Ʈ̴.)
+ +
"Mozilla/4.08 [en] (Win98; I ;Nav)" + (\"%{User-agent}i\")
+ +
User-Agent HTTP û . Ŭ̾Ʈ + ڽſ ˸ ĺ̴.
+
+ + +

α

+ + +

Ͽ CustomLog þ + ϸ αװ . , + α׸ . ù° ⺻ CLF + ϰ, ι° ° referer + Ѵ. CustomLog  + ReferLog AgentLog þ + 䳻 ִ ش.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+ CustomLog logs/referer_log "%{Referer}i -> %U"
+ CustomLog logs/agent_log "%{User-agent}i" +

+ +

, LogFormat ݵ + ʿ ش. CustomLog þ + α ִ.

+ + +

Ǻ α

+ + +

Ŭ̾Ʈ û ݿ ش ׸ α׿ + ʰ ִ. ȯ溯 + ϸ ذȴ. , Ŭ̾Ʈ Ư + ϸ ȯ溯 Ѵ. ۾ SetEnvIf Ѵ. + ׸ CustomLog + þ env= Ͽ ȯ溯 + û ְų . :

+ +

+ # loop-back ̽ û ǥѴ
+ SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+ # robots.txt Ͽ û ǥѴ
+ SetEnvIf Request_URI "^/robots\.txt$" dontlog
+ # α׿
+ CustomLog logs/access_log common env=!dontlog +

+ +

ٸ û αϿ ϰ, + 񿵾 û ٸ αϿ ϴ 츦 + غ.

+ +

+ SetEnvIf Accept-Language "en" english
+ CustomLog logs/english_log common env=english
+ CustomLog logs/non_english_log common env=!english +

+ +

Ǻ α״ ſ ϰ , ̰ α + ϴ ƴϴ. α + ൿ Ҷ ϴ. ߿ ʴ û + ϰ α мϴ .

+ +
top
+
+

α ȯ (Log Rotation)

+ + +

ٻ αϿ Ǵ ſ + . α״ û 1MB ̻ Ѵ. + α׸ űų α׸ ֱ + Ȱ ʿ䰡 ִ. ġ ִ ȿ + αϿ ⶧ ϶ α׸ ȯ + . α űų Ͽ, α + Ѵ.

+ +

ϸ Ŭ̾Ʈ + Ȥ ʰ α ִ. + ׷ ̸ û 񽺸 + α ؾ Ѵ. ׷Ƿ + α óϱ 󸶰 ٸ ʿ䰡 ִ. Ϲ + α׸ ȯϰ, ũ ϱ + α׸ Ѵ:

+ +

+ mv access_log access_log.old
+ mv error_log error_log.old
+ apachectl graceful
+ sleep 600
+ gzip access_log.old error_log.old +

+ +

α׸ ȯϴ ٸ α ϴ ̴.

+
top
+
+

α׸

+ + +

ġ α׿ α׸ Ͽ + ʰ ٸ μ ִ. + ϸ ڵ带 ߰ʰ ſ ϰ + α׸ ó ִ. α׸ ϸ + ڸ "|" ڿ ǥԷ + α ׸ ϸ ȴ. ġ + Ҷ α μ ϰ, + Ǵ μ ٽ Ѵ. ( + ɶ 츮 " ִ α" + θ.)

+ +

α μ θ ġ httpd μ + , μ userid . , α + α׷ root ȴ. ׷Ƿ α׷ ϰ + ϰ ſ ߿ϴ.

+ +

θ ü ɾ ǥ ϶. + α׿ , α׵ .

+ +

ʰ α׸ ȯ ִ + α׸ ϴ ߿ . ġ ̸ + rotatelogs + α׷ Ѵ. 24ð α׸ ȯѴٸ:

+ +

+ CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common +

+ +

ٸ Ʈ cronolog + ξ α ȯ α׷ ִ.

+ +

Ǻ α׿ α״ ſ , + ߿ óϴ ؼ + ȵȴ.

+
top
+
+

ȣƮ

+ + +

ȣƮ ִ + Ҷ α ٷ ִ. , + ȣƮ Ѱ α׸ ִ. <VirtualHost> + ƴ ּ α þ θ û + α׿ α׷ ϵȴ. ȣƮ + ó .

+ +

<VirtualHost> + ȿ CustomLog + ErrorLog þ + ϸ ش ȣƮ û + Ͽ ϵȴ. α þ ٸ ȣƮ + ּ α׿ α׸ Ѵ. ȣƮ + ſ , ȣƮ ٸ ϱ + . , ϱڰ + ߻Ѵ.

+ +

α ſ ذå ִ. α Ĺڿ + ȣƮ ߰ϸ ȣƮ α׸ + ϰ, ߿ α׸ ȣƮ ִ. + , þ .

+ +

+ LogFormat "%v %l %u %t \"%r\" %>s %b" + comonvhost
+ CustomLog logs/access_log comonvhost +

+ +

%v û ϴ ȣƮ ̸ + Ѵ. ߿ split-logfile + α׷ α׸ ȣ ִ.

+
top
+
+

ٸ α

+ + + + +

PID

+ + +

ġ Ҷ logs/httpd.pid + Ͽ θ httpd μ process id Ѵ. + ϸ PidFile + þ ִ. process-id ڰ θ μ + ñ׳ ϰų ϶ Ѵ. +  -k ɼ Ѵ. ڼ + ߴܰ + ϶.

+ + +

ũƮ α

+ + +

ScriptLog þ Ͽ + CGI ũƮ Է° ִ. þ + ׽Ʈθ ؾ Ѵ. ϴ + ϸ ȵȴ. ڼ mod_cgi ϶.

+ + +

ۼ α

+ + +

mod_rewrite ϰ + Ѵٸ ׻ RewriteLog ʿ䰡 + ִ. α ۼ  û ȯϴ + ڼ ˷ش. ڼ RewriteLogLevel þ + Ѵ.

+ +
+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/logs.html.tr.utf8 b/rubbos/app/apache2/manual/logs.html.tr.utf8 new file mode 100644 index 00000000..46cea7f3 --- /dev/null +++ b/rubbos/app/apache2/manual/logs.html.tr.utf8 @@ -0,0 +1,557 @@ + + + +Günlük Dosyaları - Apache HTTP Sunucusu + + + + + +
<-
+

Günlük Dosyaları

+
+

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

+
+ +

Bir HTTP sunucusunu verimli şekilde yönetebilmek için oluşabilecek + sorunlardan başka sunucunun başarımı ve etkinliği hakkında da bazı geri + bildirimler almak gerekir. Apache HTTP Sunucusu çok kapsamlı ve esnek + bir günlükleme yeteneğine sahiptir. Bu belgede sunucunun günlükleme + yeteneğini nasıl yapılandıracağınızdan ve günlük kayıtlarını nasıl + yorumlayacağınızdan bahsedilecektir.

+
+ +
top
+
+

Güvenlik Uyarısı

+ + +

Apache’nin günlük dosyalarını yazdığı dizine yazabilen birinin sunucuyu + başlatan kullanıcı kimliğine (bu genellikle root olur) erişim + kazanabileceğine hemen hemen kesin gözüyle bakılabilir. Sonuçlarının + neler olacağını kestiremiyorsanız günlüklerin yazıldığı dizinde hiç + kimseye yazma erişimi vermeyin; ayrıntılı bilgi için güvenlik ipuçları belgesine + bakınız.

+ +

Buna ilaveten, günlük dosyaları istemci tarafından sağlanmış bilgiler + de içerebilir. Bu nedenle, kötü niyetli istemcilerin günlük dosyalarına + denetim karakterleri girmeleri olasılığına karşı ham günlükler ele + alınırken dikkatli olunmalıdır.

+
top
+
+

Hata Günlüğü

+ + + + +

İsmi ve yeri ErrorLog yönergesi + ile belirtilen sunucu hata günlüğü, en önemli günlük dosyasıdır. Apache + httpd tarafından istekler işlenirken saptanan hatalar ve tanı bilgileri + bu dosyaya gönderilir. Sunucuyu başlatırken veya sunucu çalışırken bir + sorunla karşılaşıldığında, neyin yanlış gittiğini öğrenmek için + bakılacak ilk yer burasıdır. Günlük kaydı çoğunlukla sorunun nasıl + düzeltileceği ile ilgili ayrıntıları da içerir.

+ +

Hata günlüğü normal olarak bir dosyaya yazılır (genellikle, dosyanın + ismi Unix sistemlerinde error_log, Windows ve OS/2’de ise + error.log’dur). Ayrıca, Unix sistemlerinde sunucunun + hataları syslog’a veya borulamak suretiyle + bir programa aktarması da mümkündür.

+ +

Hata günlüğünün biçemi anlaşılır olup içeriği kısmen serbestçe + belirlenir. Çoğu hata günlüğü girdisinde bulunan belli başlı bilgiler + vardır. Örnek tipik bir hata iletisi içermektedir:

+ +

+ [Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] + client denied by server configuration: + /export/home/live/ap/htdocs/test +

+ +

Günlük girdisinin ilk öğesi iletinin yazıldığı tarih ve saatten oluşur. + İkinci öğe raponlanan bilginin önem derecesini belirtir. Hata günlüğüne + gönderilecek hata türlerinin önem seviyesini belirlemek için LogLevel yönergesi kullanılır. Üçüncü öğe + hatanın üretilmesine sebep olan istemcinin IP adresini içerir. Kalanı + iletinin kendisidir (duruma bakılırsa sunucu istemci erişimini reddetmek + üzere yapılandırılmış). Sunucu istenen belgenin (belge yolunu değil) + dosya sistemindeki yolunu raporlamıştır.

+ +

Hata günlüğünde görünebilecek ileti çeşitliliği oldukça fazladır. Çoğu + yukarıdaki örneğin benzeridir. Hata günlüğü ayrıca, CGI betiklerinin + hata ayıklama çıktılarını da içerir. Bir CGI betiği tarafından standart + hataya (stderr) yazılan her türlü bilgi doğrudan hata + günlüğüne kopyalanır.

+ +

Hata günlüğünü bilgi ekleyerek veya kaldırarak kişiselleştirmek + mümkündür. Bununla birlikte, hata günlüğü girdilerinin ilgili olduğu + isteklerin erişim günlüğünde de girdileri + vardır. Örneğin, yukarıdaki girdi, erişim günlüğünde 403 durum kodlu bir + girdiyle ilgilidir. Erişim günlüğünü de kişiselleştirmek mümkün + olduğundan hata durumlarında bu günlük dosyasını da kullanarak daha + fazla bilgi sağlayabilirsiniz.

+ +

Sunucuyu denerken olası sorunlara karşı hata günlüğünü sürekli + izlemelisiniz. Unix sistemlerinde bunu şöyle bir komutla + sağlayabilirsiniz:

+ +

+ tail -f error_log +

+
top
+
+

Erişim Günlüğü

+ + + + +

Sunucu erişim günlüğü sunucu tarafından işleme alınan tüm istekleri + kaydeder. Erişim günlüğünün yeri ve içeriği CustomLog yönergesi ile belirlenir. + LogFormat yönergesi ile + günlük içeriğini kişiselleştirmek mümkündür. Bu bölümde sunucunun + bilgileri erişim günlüğüne kaydetmesi için nasıl yapılandırılacağından + bahsedilecektir.

+ +

Şüphesiz, bilginin erişim günlüğünde saklanması günlük yönetiminde ilk + adımı oluşturur. Sonraki adım yararlı istatistikleri üretmek için bu + bilgiyi incelemektir. Günlük incelemesi bu belgenin kapsamına dahil + değildir ve aslında bu işlem sunucunun yaptığı işlerden biri değildir. + Bu konu ve günlük incelemesi yapan uygulamalar hakkında daha ayrıntılı + bilgi edinmek için dmoz.org veya Yahoo’ya bakınız.

+ +

Apache httpd’nin çeşitli sürümlerinde erişim günlüklerini denetlemek + için kullanılan diğer modüller ve yönergeler arasında mod_log_referer, + mod_log_agent modülleri ve TransferLog yönergesi + sayılabilir. Artık, daha eski tüm diğer yönergelerin işlevselliklerini + bir araya toplayan CustomLog yönergesi kullanılmaktadır.

+ +

Erişim günlüğünün girdi biçemi kolayca isteğe göre + düzenlenebilmektedir. Biçemi belirtmekte kullanılan biçem dizgesi, C + tarzı printf(1) biçem dizgesini andırır. Sonraki bölümlerde bazı + örneklere yer verilmiştir. Biçem dizgesini oluşturan belirteçlerin tam + listesi için mod_log_config belgesinin Günlük Girdilerinin + Kişiselleştirilmesi bölümüne bakınız.

+ +

Ortak Günlük Biçemi (OGB)

+ + +

Erişim günlüğü için sıklıkla kullanılan bir yapılandırma:

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common +

+ +

İlk satırda belli bir biçem dizgesi için common diye bir + takma ad tanımlanmaktadır. Biçem dizgesi, sunucuya hangi + belli bir bilgi parçalarını günlükleyeceğini söyleyen % imli biçem + belirteçlerinden oluşur. Biçem dizgesine ayrıca dizgesel sabitler de + yerleştirilebilir ve bunlar erişim günlüğüne oldukları gibi + kopyalanırlar. Biçem dizgesi içinde çift tırnak karakteri (") biçem + dizgesini vaktinden önce sonlandırmaması için ters bölü çizgisi ile + öncelenmelidir. Biçem dizgesi ayrıca, satır sonlarını belirtmek için + "\n" ve sekmeleri belirtmek için "\t" + denetim karakterlerini de içerebilir.

+ +

CustomLog yönergesi + evvelce tanımlanmış bir takma adı kullanarak yeni bir günlük + dosyası tanımlar. Erişim günlüğünün dosya ismi bölü çizgisi ile + başlamadıkça dosya yolunun ServerRoot değerine göreli olduğu varsayılır.

+ +

Yukarıdaki yapılandırma günlük dosyasına girdileri Ortak Günlük + Biçemi (Common Log Format) adı verilen standart biçemde yazar. + Bu standart biçem başka HTTP sunucuları tarafından da kullanılır ve + çoğu günlük inceleme yazılımı tarafından tanınır. Ortak Günlük + Biçeminde üretilen günlük girdileri şöyle görünür:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 +

+ +

Bu günlük girdisini parça parça açıklayalım:

+ +
+
127.0.0.1 (%h)
+ +
Bu, sunucuya istek yapan istemcinin (uzak konağın) IP adresidir. + Eğer HostnameLookups + yönergesine On değeri atanmışsa sunucu bu IP adresi + için DNS sorgusu yapacak ve IP adresi yerine bulduğu konak ismini + yazmaya çalışacaktır. Bununla birlikte, bu işlem sunucuyu epeyce + yavaşlattığından önerilmemektedir. Konak isimlerini saptamak için en + iyisi günlük girdilerini logresolve gibi bir + günlük işlemcisinden geçirmektir. Burada raporlanan IP adresi + doğrudan istemcinin IP adresi olmayabilir. Eğer sunucu ile istemci + arasında bir vekil sunucu varsa bu IP adresi, vekil sunucunun IP + adresi olacaktır.
+ +
- (%l)
+ +
Çıktıdaki bir "tire" imi istenen bilgi parçasının mevcut olmadığı + anlamına gelir. Bu durumda, mevcut olmayan bilgi istemci makine + üzerinde identd tarafından belirlenen istemcinin RFC + 1413 kimliğidir. Bu bilgi oldukça güvenilmezdir ve sıkıca denetlenen + iç ağlar haricinde hemen hemen asla kullanılmamalıdır. Apache, + IdentityCheck yönergesine + On değeri atanmış olmadıkça bu bilgiyi saptamaya + uğraşmaz.
+ +
frank (%u)
+ +
Bu, belge isteğinde bulunan kişinin HTTP kimlik doğrulamasıyla + saptanan kullanıcı kimliğidir. Bu değer CGI betiklerine + REMOTE_USER ortam değişkeni ile sağlanır. Eğer istek + için durum kodu 401 ise (aşağıya bakınız) henüz kullanıcının kimliği + doğrulanmamış olacağından bu değere güvenilmemelidir. Eğer belge + parola korumalı değilse günlüğün bu kısmı da yukarıdaki gibi + "-" olacaktır.
+ +
[10/Oct/2000:13:55:36 -0700] + (%t)
+ +
İsteğin alındığı tarih ve saat. Biçemi şöyledir: + +

+ [gün/ay/yıl:saat:dakika:saniye dilim]
+ gün    = 2 hane
+ ay     = 3 harf
+ yıl    = 4 hane
+ saat   = 2 hane
+ dakika = 2 hane
+ saniye = 2 hane
+ dilim  = (`+' | `-') 4 hane
+

+ Günlük biçem dizgesinde zaman gösterim biçemini + %{biçem}t şeklinde belirtmek de mümkündür. + Buradaki biçem dizgesi, stardart C + kütüphanesindeki strftime(3) işlevi için tanımlanmış + biçem belirteçleriyle oluşturulabilir. +
+ +
"GET /apache_pb.gif HTTP/1.0" + (\"%r\")
+ +
İstemciden alınan istek satırının çift tırnaklar arasında + gösterilmesi istenmiştir. İstek satırı en yararlı bilgi parçalarını + içerir. Birincisi, istemci tarafından kullanılan yöntem + GET’miş. İkinci olarak istemci + /apache_pb.gif dosyasını istemiş ve üçüncü olarak + istemci HTTP/1.0 protokolünü kullanmış. İstek satırının + bazı parçalarını bağımsız olarak da günlüklemek mümkündür. Örneğin, + "%m %U%q %H" dizgesi, yöntem, yol, sorgu dizgesi ve + protokolü kaydedecektir; bu dizge "%r" biçem + belirtecinin tek başına yaptığı işi yapar.
+ +
200 (%>s)
+ +
Bu, sunucunun istemciye gönderdiği durum kodudur. İsteğin + başarıyla yerine getirilip getirilmediğini gösterdiği için bu bilgi + çok değerlidir. Durum kodu 2 ile başlıyorsa istek başarıyla yerine + getirilmiştir, 3 ile başlıyorsa yönlendirilmiştir, 4 ile başlıyorsa + istemci tarafında bir hata oluşmuştur, 5 ile başlıyorsa sunucuda bir + hata oluşmuştur. Olası hata kodlarının tam listesi RFC2616 Hiper + Metin Aktarım Protokolünün 10. bölümünde bulunabilir.
+ +
2326 (%b)
+ +
Son parça istemciye döndürülen nesnenin yanıt başlığı hariç + uzunluğudur. Eğer istemciye bir içerik döndürülmemişse bu değer + "-" olacaktır. Bunun yerine günlüğe "0" + yazdırmak için %B belirtecini kullanınız.
+
+ + +

Birleşik Günlük Biçemi

+ + +

Sıklıkla kullanılan diğer bir biçem dizgesi Birleşik Günlük Biçemi + (Combined Log Format) olup şöyle kullanılabilir:

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\"" combined
+ CustomLog log/access_log combined +

+ +

Bu biçem ilaveten 2 alan içermesi dışında Ortak Günlük Biçemi ile + aynıdır. İlave alanların ikisi de %{başlık}i + biçeminde olup buradaki başlık, HTTP isteğindeki + başlık alanlarından biridir. Bu biçemin kullanıldığı bir erişim + günlüğü girdisi şöyle olurdu:

+ +

+ 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET + /apache_pb.gif HTTP/1.0" 200 2326 + "http://www.example.com/start.html" "Mozilla/4.08 [en] + (Win98; I ;Nav)" +

+ +

Ek alanlar:

+ +
+
"http://www.example.com/start.html" + (\"%{Referer}i\")
+ +
HTTP istek başlığı "Referer". İstemcinin raporladığı isteğin + kaynaklandığı URI. (Bu isteğin yapılmasını sağlayan bağlantıyı + içeren URL veya istek bir sayfanın bileşenleri ile ilgiliyse istenen + sayfanın URL’si olabilir.)
+ +
"Mozilla/4.08 [en] (Win98; I ;Nav)" + (\"%{User-agent}i\")
+ +
Tarayıcı kimliğini içeren HTTP istek başlığı. Bu istemcinin + tarayıcısının raporladığı kendi tanıtım bilgisidir.
+
+ + +

Çok Sayıda Erişim Günlüğü

+ + +

Yapılandırma dosyasında çok sayıda CustomLog yönergesi kullanarak çok + sayıda erişim günlüğü kolayca oluşturulabilir. Örneğin aşağıdaki + yönergelerle 3 tane erişim günlüğü oluşturulacaktır. İlki temel OGB + bilgisini içerirken diğer ikisi isteğin kaynaklandığı yeri ve tarayıcı + kimliğini içerir. Son iki CustomLog satırı ayrıca, ReferLog ve + AgentLog yönergelerinin etkilerinin nasıl taklit + edileceğini de göstermektedir.

+ +

+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+ CustomLog logs/referer_log "%{Referer}i -> %U"
+ CustomLog logs/agent_log "%{User-agent}i" +

+ +

Bu örnek ayrıca, LogFormat yönergesi ile bir takma ad tanımlamanın şart + olmadığını da göstermektedir. Günlük biçemi doğrudan CustomLog yönergesinde + belirtilebilir.

+ + +

Şarta Bağlı Günlükler

+ + +

Bazı durumlarda istemcinin yaptığı isteğe bağlı olarak erişim + günlüğünde belli girdilerin dışlanması gerekebilir. Bu, ortam değişkenleri sayesinde kolayca yerine + getirilebilir. Önce isteğin belli koşulları sağladığını belirten bir + ortam değişkeni ataması yapılır. Bu işlem SetEnvIf yönergesi ile yapılır. + Sonra da, ortam değişkenine bağlı olarak isteklerin günlüğe dahil + edilip edilmeyeceği CustomLog yönergesinin + env= deyimi kullanılarak belirtilir. Bazı örnekler:

+ +

+ # yerel konaktan kaynaklanan istekleri imleyelim
+ SetEnvIf Remote_Addr "127\.0\.0\.1" kaydetme
+ # robots.txt dosyası isteklerini imleyelim
+ SetEnvIf Request_URI "^/robots\.txt$" kaydetme
+ # Kalanları günlüğe kaydedelim
+ CustomLog logs/access_log common env=!kaydetme +

+ +

Başka bir örnek olarak, Türkçe belge isteklerini bir dosyaya diğer + dillerdeki istekleri başka bir dosyaya kaydedelim.

+ +

+ SetEnvIf Accept-Language "tr" turkce
+ CustomLog logs/turkce_log common env=turkce
+ CustomLog logs/diger_diller_log common env=!turkce +

+ +

Şarta bağlı günlük kaydının çok esnek ve güçlü olabileceğini + göstermiş olsak da günlük içeriğini denetlemenin tek yolu bu değildir. + Günlük dosyaları sunucu etkinliğini eksiksiz olarak kaydedebildikleri + takdirde daha yararlı olurlar. Günlük dosyalarını sonradan işleme tabi + tutarak istenmeyen girdileri kaldırılmış bir kopya almak hem kolay hem + de daha yararlıdır.

+ +
top
+
+

Günlük Çevrimi

+ + +

Yükü ağır sunucularda günlük dosyalarına kaydedilen bilginin miktarı + çok büyük boyutlara ulaşabilir. 10.000 istek içeren bir erişim günlüğü + yaklaşık 1MB yer kaplar. Etkin günlük dosyasını belirli aralıklarla + değiştirmek veya silmek gerekebilir. Apache çalışırken dosyayı sürekli + açık tuttuğu ve yazdığı için bu işlem sunucu çalışırken yapılamaz. Bu + bakımdan, günlük dosyası değiştirildikten veya silindikten sonra yeni + dosyanın açılması için sunucunun yeniden + başlatılması gerekir.

+ +

Nazikçe yeniden başlatmak + suretiyle sunucunun, mevcut ve bekleyen bağlantıları kaybetmeden yeni + günlük dosyalarını açması sağlanabilir. Bununla birlikte, bu işlem + sırasında sunucunun eski isteklere sunumu bitirene kadar eski günlük + dosyalarına yazmaya devam edebilmesi gerekir. Bu bakımdan, yeniden + başlatmanın ardından eski günlük dosyaları üzerinde bir işlem yapmadan + önce biraz beklemek gerekir. Günlük dosyalarını döndürürken kullanılan + senaryolarda genellikle eski günlük dosyaları yer kazanmak için + sıkıştırılırlar:

+ +

+ mv access_log access_log.old
+ mv error_log error_log.old
+ apachectl graceful
+ sleep 600
+ gzip access_log.old error_log.old +

+ +

Günlük çevrimi yapmanın başka bir yolu da sonraki bölümde açıklandığı + gibi borulu günlükler kullanmaktır.

+
top
+
+

Borulu Günlükler

+ + +

Apache httpd hata ve erişim günlüklerini doğrudan bir dosyaya yazmak + yerine bir boru üzerinden başka bir sürece yazabilir. Bu yetenek ana + sunucuya herhangi bir kod eklemeksizin günlükleme esnekliğini şaşırtıcı + derecede arttırır. Günlükler boruya yazılmak istenirse dosya ismini boru + karakteriyle ("|") değiştirip ardına günlük girdilerini + standart girdisinden kabul edecek programın ismini eklemek yeterlidir. + Apache sunucusu başlatıldığı zaman borulu günlük işlemini de + başlatacaktır. Eğer sunucu çalışırken günlükleri kabul eden süreç + çökerse Apache bu programı yeniden başlatır. (Bu son özelliği sebebiyle + bu tekniğe “güvenilir borulu günlükleme” adını veriyoruz.)

+ +

Borulu günlük süreçleri ana Apache httpd süreci tarafından başlatılır + ve bu süreçler ana Apache httpd sürecinin kullanıcı kimliğini miras + alırlar. Yani borulu günlükleme programları aslında root tarafından + çalıştırılmış gibi olur. Bu bakımdan, bu programları basit ve güvenilir + kılmak çok önemlidir.

+ +

Borulu günlüklerin önemli kullanım alanlarından biri de sunucuyu + yeniden başlatmak gerekmeksizin günlük çevrimini mümkün kılmaktır. + Apache HTTP sunucusu bu amaçla kullanılmak üzere + rotatelogs diye bir program içerir. Örneğin, + günlükleri 24 saatte bir döndürmek isterseniz bunu şöyle + yapabilirsiniz:

+ +

+ CustomLog "|/usr/local/apache/bin/rotatelogs + /var/log/access_log 86400" common +

+ +

Borunun diğer ucundaki süreci başlatacak komutun tırnak içine + alındığına dikkat ediniz. Bu örnekler erişim günlüğü için verilmişse de + aynı teknik hata günlüğü için de kullanılabilir.

+ +

Hariçten bir uygulama olarak cronolog isminde buna benzer ancak + çok daha esnek bir program daha vardır.

+ +

Borulu günlükler de şarta bağlı günlükleme kadar güçlü olmakla beraber + çevrimdışı ardıl işlemler gibi daha basit çözümler için + kullanılmamalıdır.

+
top
+
+

Sanal Konaklar

+ + +

Bir sunucu çok sayıda sanal konak ile hizmet + sunarken bunların günlük kayıtları için çeşitli seçenekler mevcuttur. + İlk seçenekte, sanki sunucu tek bir konakla hizmet sunuyormuş gibi + günlük kaydı yapılır. Günlükleme yönergelerini <VirtualHost> bölümlerinin dışına, ana sunucu + bağlamına yerleştirerek tüm isteklerin aynı erişim ve hata günlüğüne + yazılmasını sağlamak olasıdır. Bu teknik, tek tek sanal konaklar için + kolayca istatistik toplamaya izin vermez.

+ +

Eğer CustomLog + veya ErrorLog yönergesi bir + <VirtualHost> bölümüne + yerleştirilirse bu sanal konağa bütün erişimler veya hatalar belirtilen + dosyaya günlüklenecektir. Böyle günlükleme yönergeleri içermeyen sanal + konakların günlükleri hala ana sunucunun hata ve erişim günlüklerine + yazılmaya devam edecektir. Bu teknik az sayıda sanal konak barındıran + sunucular için çok kullanışlıdır. Fakat sanal konak sayısı çok fazlaysa + bu teknikle günlük dosyalarını yönetmek çok karmaşık bir hal alabilir. + Ayrıca, yetersiz dosya tanıtıcısı + sorunlarıyla çok sık karşılaşılabilir.

+ +

Erişim günlükleri için çok az bir fedakarlıkla çok iyi bir çözüm vardır. + Günlük biçemine sanal konaklarla ilgili bilgi eklemek suretiyle tüm + konakların aynı günlük dosyasını kullanmaları olasıdır. Böylece günlük + dosyası sonradan her sanal konak için ayrı bir dosya oluşturmak üzere + ayrıştırılabilir. Örneğin, bu işlem için şu yönergeler kullanılıyor + olsun:

+ +

+ LogFormat "%v %l %u %t \"%r\" %>s %b" + ortaksankon
+ CustomLog logs/access_log ortaksankon +

+ +

%v belirteci isteği sunan sanal konağın ismini günlüğe + yazmak için kullanılır. Daha sonra split-logfile gibi bir program + kullanarak, bu dosyadan her sanal konak için ayrı birer dosya elde + edilebilir.

+
top
+
+

Diğer Günlük Dosyaları

+ + + + +

PID Dosyası

+ + +

Apache httpd başlatıldığında, ana httpd sürecinin kimliği (PID) + logs/httpd.pid dosyasına kaydedilir. Bu dosyanın ismi + PidFile yönergesi ile + değiştirilebilir. Bu süreç kimliği sistem yöneticisi tarafından ana + sürece sinyal göndererek artalan sürecini sonlandırmak veya yeniden + başlatmak için kullanılır. Windows üzerinde bu işlem için + -k komut satırı seçeneği kullanılır. Bu konuda daha + ayrıntılı bilgi edinmek için Durdurma ve + Yeniden Başlatma belgesine bakınız.

+ + +

Betik Günlüğü

+ + +

ScriptLog yönergesi CGI + betiklerinin girdi ve çıktılarını kaydetmenizi mümkün kılmak suretiyle + hata ayıklamaya yardımcı olur. Bu sadece deneysel amaçla kullanılmalı, + asıl sunucuya uygulanmamalıdır. mod_cgi + belgesinde daha fazla bilgi bulunabilir.

+ + +

Yeniden Yazım Günlüğü

+ + +

Güçlü ve karmaşık mod_rewrite + özellikleri kullanılırken, hata ayıklamaya yardımcı olmak için + RewriteLog yönergesini + kullanmak gerekebilir. Yönerge, günlük dosyasında yeniden yazım + motorunun istekleri nasıl dönüştürdüğüyle ilgili ayrıntılı bir döküm + üretir. Ayrıntı seviyesi RewriteLogLevel yönergesi ile belirlenir.

+ +
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/custom_errordocs.html b/rubbos/app/apache2/manual/misc/custom_errordocs.html new file mode 100644 index 00000000..23ab34ae --- /dev/null +++ b/rubbos/app/apache2/manual/misc/custom_errordocs.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: custom_errordocs.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/misc/custom_errordocs.html.en b/rubbos/app/apache2/manual/misc/custom_errordocs.html.en new file mode 100644 index 00000000..fc2ccd8e --- /dev/null +++ b/rubbos/app/apache2/manual/misc/custom_errordocs.html.en @@ -0,0 +1,577 @@ + + + +International Customized Server Error Messages - Apache HTTP Server + + + + + +
<-
+

International Customized Server Error Messages

+
+

Available Languages:  en 

+
+ + +

Warning:

+

This document has not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

This document describes an easy way to provide your Apache + HTTP Server with a set of customized error messages which take + advantage of Content + Negotiation and mod_include to return + error messages generated by the server in the client's native + language.

+ +
+ +
top
+
+

Introduction

+ + + +

By using SSI, all ErrorDocument messages + can share a homogenous and consistent style and layout, and + maintenance work (changing images, changing links) is kept to a + minimum because all layout information can be kept in a single + file.

+ +

Error documents can be shared across different servers, or + even hosts, because all varying information is inserted at the + time the error document is returned on behalf of a failed + request.

+ +

Content Negotiation then selects the appropriate language + version of a particular error message text, honoring the + language preferences passed in the client's request. (Users + usually select their favorite languages in the preferences + options menu of today's browsers). When an error document in + the client's primary language version is unavailable, the + secondary languages are tried or a default (fallback) version + is used.

+ +

You have full flexibility in designing your error documents + to your personal taste (or your company's conventions). For + demonstration purposes, we present a simple generic error + document scheme. For this hypothetic server, we assume that all + error messages...

+ +
    +
  • possibly are served by different virtual hosts (different + host name, different IP address, or different port) on the + server machine,
  • + +
  • show a predefined company logo in the right top of the + message (selectable by virtual host),
  • + +
  • print the error title first, followed by an explanatory + text and (depending on the error context) help on how to + resolve the error,
  • + +
  • have some kind of standardized background image,
  • + +
  • display an apache logo and a feedback email address at + the bottom of the error message.
  • +
+ +

An example of a "document not found" message for a german + client might look like this:

+ +

[Needs graphics capability to display]

+ +

All links in the document as well as links to the server's + administrator mail address, and even the name and port of the + serving virtual host are inserted in the error document at + "run-time", i.e., when the error actually occurs.

+
top
+
+

Creating an ErrorDocument directory

+ + + +

For this concept to work as easily as possible, we must take + advantage of as much server support as we can get:

+ +
    +
  1. By defining the MultiViews Options, we + enable the language selection of the most appropriate + language alternative (content negotiation).
  2. + +
  3. By setting the LanguagePriority + directive we define a set of default fallback languages in + the situation where the client's browser did not express any + preference at all.
  4. + +
  5. By enabling mod_include + (and disallowing execution of cgi scripts for + security reasons), we allow the server to include building + blocks of the error message, and to substitute the value of + certain environment variables into the generated document + (dynamic HTML) or even to conditionally include or omit parts + of the text.
  6. + +
  7. The AddHandler and AddType directives + are useful for automatically SSI-expanding all files with a + .shtml suffix to text/html.
  8. + +
  9. By using the Alias directive, we + keep the error document directory outside of the document + tree because it can be regarded more as a server part than + part of the document tree.
  10. + +
  11. The <Directory> block + restricts these "special" settings to the error document + directory and avoids an impact on any of the settings for the + regular document tree.
  12. + +
  13. For each of the error codes to be handled (see RFC2068 + for an exact description of each error code, or look at + src/main/http_protocol.c if you wish to see + apache's standard messages), an ErrorDocument in + the aliased /errordocs directory is defined. + Note that we only define the basename of the document here + because the MultiViews option will select the best candidate + based on the language suffixes and the client's preferences. + Any error situation with an error code not handled + by a custom document will be dealt with by the server in the + standard way (i.e., a plain error message in + english).
  14. + +
  15. Finally, the AllowOverride directive tells + apache that it is not necessary to look for a .htaccess file + in the /errordocs directory: a minor speed optimization.
  16. +
+ +

The resulting httpd.conf configuration would then + look similar to this:

+ +

Note

Note that you can define your own + error messages using this method for only part of the document + tree, e.g., a /~user/ subtree. In this case, the configuration + could as well be put into the .htaccess file at the root of the + subtree, and the <Directory> and </Directory> + directives -but not the contained directives- must be + omitted.
+ +

+ LanguagePriority en fr de
+ Alias /errordocs /usr/local/apache/errordocs
+
+ <Directory /usr/local/apache/errordocs>
+ + AllowOverride none
+ Options MultiViews IncludesNoExec FollowSymLinks
+ AddType text/html .shtml
+ <FilesMatch "\.shtml[.$]">
+ + SetOutputFilter INCLUDES
+
+ </FilesMatch>
+
+ </Directory>
+
+ # "400 Bad Request",
+ ErrorDocument 400 /errordocs/400
+ # "401 Authorization Required",
+ ErrorDocument 401 /errordocs/401
+ # "403 Forbidden",
+ ErrorDocument 403 /errordocs/403
+ # "404 Not Found",
+ ErrorDocument 404 /errordocs/404
+ # "500 Internal Server Error",
+ ErrorDocument 500 /errordocs/500
+

+ +

The directory for the error messages (here: + /usr/local/apache/errordocs/) must then be created + with the appropriate permissions (readable and executable by + the server uid or gid, only writable for the administrator).

+ +

Naming the Individual Error Document files

+ + + +

By defining the MultiViews option, the server was + told to automatically scan the directory for matching variants + (looking at language and content type suffixes) when a + requested document was not found. In the configuration, we + defined the names for the error documents to be just their + error number (without any suffix).

+ +

The names of the individual error documents are now + determined like this (I'm using 403 as an example, think of it + as a placeholder for any of the configured error + documents):

+ +
    +
  • No file errordocs/403 should exist. Otherwise, it would + be found and served (with the DefaultType, usually + text/plain), all negotiation would be bypassed.
  • + +
  • For each language for which we have an internationalized + version (note that this need not be the same set of languages + for each error code - you can get by with a single language + version until you actually have translated + versions), a document + errordocs/403.shtml.lang is created and + filled with the error text in that language (see below).
  • + +
  • One fallback document called + errordocs/403.shtml is created, usually by + creating a symlink to the default language variant (see below).
  • +
+ + +

The Common Header and Footer Files

+ + + +

By putting as much layout information in two special "include + files", the error documents can be reduced to a bare minimum.

+ +

One of these layout files defines the HTML document header + and a configurable list of paths to the icons to be shown in + the resulting error document. These paths are exported as a set + of SSI environment variables and are later evaluated by the + "footer" special file. The title of the current error (which is + put into the TITLE tag and an H1 header) is simply passed in + from the main error document in a variable called + title.

+ +

By changing this file, the layout of all generated + error messages can be changed in a second. (By + exploiting the features of SSI, you can easily define + different layouts based on the current virtual host, or even + based on the client's domain name).

+ +

The second layout file describes the footer to be displayed + at the bottom of every error message. In this example, it shows + an apache logo, the current server time, the server version + string and adds a mail reference to the site's webmaster.

+ +

For simplicity, the header file is simply called + head.shtml because it contains server-parsed + content but no language specific information. The footer file + exists once for each language translation, plus a symlink for + the default language.

+ +

+for English, French and German versions (default english)
+
+foot.shtml.en,
+foot.shtml.fr,
+foot.shtml.de,
+foot.shtml symlink to
+foot.shtml.en +

+ +

Both files are included into the error document by using the + directives <!--#include virtual="head" --> + and <!--#include virtual="foot" --> + respectively: the rest of the magic occurs in mod_negotiation + and in mod_include.

+ +

See the listings below to see an + actual HTML implementation of the discussed example.

+ + +

Creating ErrorDocuments in Different Languages

+ + + +

After all this preparation work, little remains to be said + about the actual documents. They all share a simple common + structure:

+ +

+<!--#set var="title" value="error description title" -->
+<!--#include virtual="head" -->
+ + explanatory error text
+
+<!--#include virtual="foot" --> +

+ +

In the listings section, you can see an + example of a [400 Bad Request] error document. Documents as + simple as that certainly cause no problems to translate or + expand.

+ + +

The Fallback Language

+ + + +

Do we need a special handling for languages other than those we + have translations for? We did set the LanguagePriority, didn't + we?!

+ +

Well, the LanguagePriority directive is for the case where + the client does not express any language priority at all. But + what happens in the situation where the client wants one of the + languages we do not have, and none of those we do have?

+ +

Without doing anything, the Apache server will usually + return a [406 no acceptable variant] error, listing the choices + from which the client may select. But we're in an error message + already, and important error information might get lost when + the client had to choose a language representation first.

+ +

So, in this situation it appears to be easier to define a + fallback language (by copying or linking, e.g., the + english version to a language-less version). Because the + negotiation algorithm prefers "more specialized" variants over + "more generic" variants, these generic alternatives will only + be chosen when the normal negotiation did not succeed.

+ +

A simple shell script to do it (execute within the + errordocs/ dir):

+ +

+ for f in *.shtml.en
+ do
+ + ln -s $f `basename $f .en`
+
+ done +

+ + +
top
+
+

Customizing Proxy Error Messages

+ + + +

As of Apache-1.3, it is possible to use the + ErrorDocument mechanism for proxy error messages + as well (previous versions always returned fixed predefined + error messages).

+ +

Most proxy errors return an error code of [500 Internal + Server Error]. To find out whether a particular error document + was invoked on behalf of a proxy error or because of some other + server error, and what the reason for the failure was, you can + check the contents of the new ERROR_NOTES CGI + environment variable: if invoked for a proxy error, this + variable will contain the actual proxy error message text in + HTML form.

+ +

The following excerpt demonstrates how to exploit the + ERROR_NOTES variable within an error document:

+ +

+ <!--#if expr="$REDIRECT_ERROR_NOTES = ''" -->
+
+ <p>
+ + The server encountered an unexpected condition
+ which prevented it from fulfilling the request.
+
+ </p>
+
+ <p>
+ + <a href="mailto:<!--#echo var="SERVER_ADMIN" -->"
+ SUBJECT="Error message [<!--#echo var="REDIRECT_STATUS" -->] <!--#echo var="title" --> for <!--#echo var="REQUEST_URI" -->">
+ Please forward this error screen to <!--#echo var="SERVER_NAME" -->'s
+ WebMaster</a>; it includes useful debugging information about
+ the Request which caused the error.
+
+ <pre><!--#printenv --></pre>
+
+ </p>
+
+ <!--#else -->
+ + <!--#echo var="REDIRECT_ERROR_NOTES" -->
+
+
+ <!--#endif --> +

+ +
top
+
+

HTML Listing of the Discussed Example

+ + + +

So, to summarize our example, here's the complete listing of + the 400.shtml.en document. You will notice that it + contains almost nothing but the error text (with conditional + additions). Starting with this example, you will find it easy + to add more error documents, or to translate the error + documents to different languages.

+ +

+<!--#set var="title" value="Bad Request"-->
+<!--#include virtual="head" -->
+
+ <p>
+ + Your browser sent a request that this server could not understand:
+ <blockquote>
+ + <strong><!--#echo var="REQUEST_URI" --></strong>
+
+ </blockquote>
+
+ The request could not be understood by the server due to malformed
+ syntax. The client should not repeat the request without
+ modifications.
+
+ </p>
+
+ <p>
+ + <!--#if expr="$HTTP_REFERER != ''" -->
+ + Please inform the owner of
+ <a href="<!--#echo var="HTTP_REFERER" -->">the referring page</a> about
+ the malformed link.
+
+
+ <!--#else -->
+ + Please check your request for typing errors and retry.
+
+
+ <!--#endif -->
+
+ </p>
+
+<!--#include virtual="foot" --> +

+ +

Here is the complete head.shtml.en file (the funny + line breaks avoid empty lines in the document after SSI + processing). Note the configuration section at top. That's + where you configure the images and logos as well as the apache + documentation directory. Look how this file displays two + different logos depending on the content of the virtual host + name ($SERVER_NAME), and that an animated apache logo is shown + if the browser appears to support it (the latter requires + server configuration lines of the form

+ +

BrowserMatch "^Mozilla/[2-4]" anigif

+ +

for browser types which support animated GIFs).

+ +

+<!--#if expr="$SERVER_NAME = /.*\.mycompany\.com/" -->
+ +<!--#set var="IMG_CorpLogo" value="http://$SERVER_NAME:$SERVER_PORT/errordocs/CorpLogo.gif" -->
+<!--#set var="ALT_CorpLogo" value="Powered by Linux!" -->
+
+
+<!--#else -->
+ +<!--#set var="IMG_CorpLogo" value="http://$SERVER_NAME:$SERVER_PORT/errordocs/PrivLogo.gif" -->
+<!--#set var="ALT_CorpLogo" value="Powered by Linux!" -->
+
+<!--#endif-->
+
+<!--#set var="IMG_BgImage" value="http://$SERVER_NAME:$SERVER_PORT/errordocs/BgImage.gif" -->
+<!--#set var="DOC_Apache" value="http://$SERVER_NAME:$SERVER_PORT/Apache/" -->
+
+<!--#if expr="$anigif" -->
+ +<!--#set var="IMG_Apache" value="http://$SERVER_NAME:$SERVER_PORT/icons/apache_anim.gif" -->
+
+<!--#else-->
+ +<!--#set var="IMG_Apache" value="http://$SERVER_NAME:$SERVER_PORT/icons/apache_pb.gif" -->
+
+<!--#endif-->
+
+ +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+ + <title>
+ [<!--#echo var="REDIRECT_STATUS" -->] <!--#echo var="title" -->
+ </title>
+
+</head>
+
+<body bgcolor="white" background="<!--#echo var="IMG_BgImage" -->">
+ + <h1 align="center">
+ [<!--#echo var="REDIRECT_STATUS" -->] + <!--#echo var="title" -->
+ <img src="<!--#echo var="IMG_CorpLogo" -->"
+   alt="<!--#echo var="ALT_CorpLogo" -->" align="right">
+ </h1>
+
+ <hr /> + <!-- ======================================================== -->
+ <div> +
+

+ +

and this is the foot.shtml.en file:

+ +

+ + </div>
+ <hr />
+
+ <div align="right">
+ + <small>Local Server time: + <!--#echo var="DATE_LOCAL" --></small>
+
+ </div>
+
+ <div align="center">
+ + <a href="<!--#echo var="DOC_Apache" -->">
+ <img src="<!--#echo var="IMG_Apache" -->" border="0" align="bottom"
+   alt="Powered by <!--#echo var="SERVER_SOFTWARE" -->"></a>
+ <br />
+ + <small><!--#set var="var" value="Powered by $SERVER_SOFTWARE --
+ File last modified on $LAST_MODIFIED" -->
+ <!--#echo var="var" --></small>
+
+ </div>
+
+ <p>If the indicated error looks like a misconfiguration, please inform
+ <a href="mailto:<!--#echo var="SERVER_ADMIN" -->"
+ subject="Feedback about Error message [<!--#echo var="REDIRECT_STATUS" -->]
+ <!--#echo var="title" -->, req=<!--#echo var="REQUEST_URI" -->">
+ <!--#echo var="SERVER_NAME" -->'s WebMaster</a>.
+ </p>
+
+
+</body>
+</html> +

+ +

If you have tips to contribute, send mail to martin@apache.org

+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/descriptors.html b/rubbos/app/apache2/manual/misc/descriptors.html new file mode 100644 index 00000000..e751d582 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/descriptors.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: descriptors.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/misc/descriptors.html.en b/rubbos/app/apache2/manual/misc/descriptors.html.en new file mode 100644 index 00000000..005356d6 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/descriptors.html.en @@ -0,0 +1,233 @@ + + + +Descriptors and Apache - Apache HTTP Server + + + + + +
<-
+

Descriptors and Apache

+
+

Available Languages:  en 

+
+ + +

Warning:

+

This document has not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

A descriptor, also commonly called a file + handle is an object that a program uses to read or write + an open file, or open network socket, or a variety of other + devices. It is represented by an integer, and you may be + familiar with stdin, stdout, and + stderr which are descriptors 0, 1, and 2 + respectively. Apache needs a descriptor for each log file, plus + one for each network socket that it listens on, plus a handful + of others. Libraries that Apache uses may also require + descriptors. Normal programs don't open up many descriptors at + all, and so there are some latent problems that you may + experience should you start running Apache with many + descriptors (i.e., with many virtual hosts).

+ +

The operating system enforces a limit on the number of + descriptors that a program can have open at a time. There are + typically three limits involved here. One is a kernel + limitation, depending on your operating system you will either + be able to tune the number of descriptors available to higher + numbers (this is frequently called FD_SETSIZE). Or you + may be stuck with a (relatively) low amount. The second limit + is called the hard resource limit, and it is sometimes + set by root in an obscure operating system file, but frequently + is the same as the kernel limit. The third limit is called the + soft resource limit. The soft limit is always less + than or equal to the hard limit. For example, the hard limit + may be 1024, but the soft limit only 64. Any user can raise + their soft limit up to the hard limit. Root can raise the hard + limit up to the system maximum limit. The soft limit is the + actual limit that is used when enforcing the maximum number of + files a process can have open.

+ +

To summarize:

+ +

+ #open files <= soft limit <= hard limit <= kernel limit +

+ + +

You control the hard and soft limits using the + limit (csh) or ulimit (sh) + directives. See the respective man pages for more information. + For example you can probably use ulimit -n + unlimited to raise your soft limit up to the hard limit. + You should include this command in a shell script which starts + your webserver.

+ +

Unfortunately, it's not always this simple. As mentioned + above, you will probably run into some system limitations that + will need to be worked around somehow. Work was done in version + 1.2.1 to improve the situation somewhat. Here is a partial list + of systems and workarounds (assuming you are using 1.2.1 or + later).

+ +
+ +
top
+
+

BSDI 2.0

+ +

Under BSDI 2.0 you can build Apache to support more + descriptors by adding -DFD_SETSIZE=nnn to + EXTRA_CFLAGS (where nnn is the number of + descriptors you wish to support, keep it less than the hard + limit). But it will run into trouble if more than + approximately 240 Listen directives are used. This may be + cured by rebuilding your kernel with a higher + FD_SETSIZE.

+ +
top
+
+

FreeBSD 2.2, BSDI 2.1+

+ +

Similar to the BSDI 2.0 case, you should define + FD_SETSIZE and rebuild. But the extra Listen + limitation doesn't exist.

+ +
top
+
+

Linux

+ +

By default Linux has a kernel maximum of 256 open + descriptors per process. There are several patches available + for the 2.0.x series which raise this to 1024 and beyond, and + you can find them in the "unofficial patches" section of the Linux Information HQ. + None of these patches are perfect, and an entirely different + approach is likely to be taken during the 2.1.x development. + Applying these patches will raise the FD_SETSIZE used to + compile all programs, and unless you rebuild all your + libraries you should avoid running any other program with a + soft descriptor limit above 256. As of this writing the + patches available for increasing the number of descriptors do + not take this into account. On a dedicated webserver you + probably won't run into trouble.

+ +
top
+
+

Solaris through 2.5.1

+ +

Solaris has a kernel hard limit of 1024 (may be lower in + earlier versions). But it has a limitation that files using + the stdio library cannot have a descriptor above 255. Apache + uses the stdio library for the ErrorLog directive. When you + have more than approximately 110 virtual hosts (with an error + log and an access log each) you will need to build Apache + with -DHIGH_SLACK_LINE=256 added to + EXTRA_CFLAGS. You will be limited to + approximately 240 error logs if you do this.

+ +
top
+
+

AIX

+ +

AIX version 3.2?? appears to have a hard limit of 128 + descriptors. End of story. Version 4.1.5 has a hard limit of + 2000.

+ +
top
+
+

SCO OpenServer

+ +

Edit the /etc/conf/cf.d/stune file or use + /etc/conf/cf.d/configure choice 7 (User and + Group configuration) and modify the NOFILES + kernel parameter to a suitably higher value. SCO recommends a + number between 60 and 11000, the default is 110. Relink and + reboot, and the new number of descriptors will be + available.

+ +
top
+
+

Compaq Tru64 UNIX/Digital UNIX/OSF

+ +
    +
  1. Raise open_max_soft and + open_max_hard to 4096 in the proc subsystem. + Do a man on sysconfig, sysconfigdb, and + sysconfigtab.
  2. + +
  3. Raise max-vnodes to a large number which + is greater than the number of apache processes * 4096 + (Setting it to 250,000 should be good for most people). + Do a man on sysconfig, sysconfigdb, and + sysconfigtab.
  4. + +
  5. If you are using Tru64 5.0, 5.0A, or 5.1, define + NO_SLACK to work around a bug in the OS. + CFLAGS="-DNO_SLACK" ./configure
  6. +
+ +
top
+
+

Others

+ +

If you have details on another operating system, please + submit it through our Bug Report + Page.

+ +

In addition to the problems described above there are + problems with many libraries that Apache uses. The most common + example is the bind DNS resolver library that is used by pretty + much every unix, which fails if it ends up with a descriptor + above 256. We suspect there are other libraries that similar + limitations. So the code as of 1.2.1 takes a defensive stance + and tries to save descriptors less than 16 for use while + processing each request. This is called the low slack + line.

+ +

Note that this shouldn't waste descriptors. If you really + are pushing the limits and Apache can't get a descriptor above + 16 when it wants it, it will settle for one below 16.

+ +

In extreme situations you may want to lower the low slack + line, but you shouldn't ever need to. For example, lowering it + can increase the limits 240 described above under Solaris and + BSDI 2.0. But you'll play a delicate balancing game with the + descriptors needed to serve a request. Should you want to play + this game, the compile time parameter is + LOW_SLACK_LINE and there's a tiny bit of + documentation in the header file httpd.h.

+ +

Finally, if you suspect that all this slack stuff is causing + you problems, you can disable it. Add -DNO_SLACK + to EXTRA_CFLAGS and rebuild. But please report it + to our Bug + Report Page so that we can investigate.

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/fin_wait_2.html b/rubbos/app/apache2/manual/misc/fin_wait_2.html new file mode 100644 index 00000000..64957238 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/fin_wait_2.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: fin_wait_2.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/misc/fin_wait_2.html.en b/rubbos/app/apache2/manual/misc/fin_wait_2.html.en new file mode 100644 index 00000000..60da4b0d --- /dev/null +++ b/rubbos/app/apache2/manual/misc/fin_wait_2.html.en @@ -0,0 +1,422 @@ + + + +Connections in the FIN_WAIT_2 state and Apache - Apache HTTP Server + + + + + +
<-
+

Connections in the FIN_WAIT_2 state and Apache

+
+

Available Languages:  en 

+
+ + +

Warning:

+

This document has not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

Starting with the Apache 1.2 betas, people are reporting + many more connections in the FIN_WAIT_2 state (as reported + by netstat) than they saw using older + versions. When the server closes a TCP connection, it sends + a packet with the FIN bit set to the client, which then + responds with a packet with the ACK bit set. The client + then sends a packet with the FIN bit set to the server, + which responds with an ACK and the connection is closed. + The state that the connection is in during the period + between when the server gets the ACK from the client and + the server gets the FIN from the client is known as + FIN_WAIT_2. See the TCP RFC for + the technical details of the state transitions.

+ +

The FIN_WAIT_2 state is somewhat unusual in that there + is no timeout defined in the standard for it. This means + that on many operating systems, a connection in the + FIN_WAIT_2 state will stay around until the system is + rebooted. If the system does not have a timeout and too + many FIN_WAIT_2 connections build up, it can fill up the + space allocated for storing information about the + connections and crash the kernel. The connections in + FIN_WAIT_2 do not tie up an httpd process.

+ +
+ +
top
+
+

Why Does It Happen?

+ +

There are numerous reasons for it happening, some of them + may not yet be fully clear. What is known follows.

+ +

Buggy Clients and Persistent + Connections

+ +

Several clients have a bug which pops up when dealing with + persistent connections (aka + keepalives). When the connection is idle and the server + closes the connection (based on the KeepAliveTimeout), + the client is programmed so that the client does not send + back a FIN and ACK to the server. This means that the + connection stays in the FIN_WAIT_2 state until one of the + following happens:

+ +
    +
  • The client opens a new connection to the same or a + different site, which causes it to fully close the older + connection on that socket.
  • + +
  • The user exits the client, which on some (most?) + clients causes the OS to fully shutdown the + connection.
  • + +
  • The FIN_WAIT_2 times out, on servers that have a + timeout for this state.
  • +
+ +

If you are lucky, this means that the buggy client will + fully close the connection and release the resources on + your server. However, there are some cases where the socket + is never fully closed, such as a dialup client + disconnecting from their provider before closing the + client. In addition, a client might sit idle for days + without making another connection, and thus may hold its + end of the socket open for days even though it has no + further use for it. This is a bug in the browser or + in its operating system's TCP implementation.

+ +

The clients on which this problem has been verified to + exist:

+ +
    +
  • Mozilla/3.01 (X11; I; FreeBSD 2.1.5-RELEASE + i386)
  • + +
  • Mozilla/2.02 (X11; I; FreeBSD 2.1.5-RELEASE + i386)
  • + +
  • Mozilla/3.01Gold (X11; I; SunOS 5.5 sun4m)
  • + +
  • MSIE 3.01 on the Macintosh
  • + +
  • MSIE 3.01 on Windows 95
  • +
+ +

This does not appear to be a problem on:

+ +
    +
  • Mozilla/3.01 (Win95; I)
  • +
+ +

It is expected that many other clients have the same + problem. What a client should do is + periodically check its open socket(s) to see if they have + been closed by the server, and close their side of the + connection if the server has closed. This check need only + occur once every few seconds, and may even be detected by a + OS signal on some systems (e.g., Win95 and NT + clients have this capability, but they seem to be ignoring + it).

+ +

Apache cannot avoid these FIN_WAIT_2 + states unless it disables persistent connections for the + buggy clients, just like we recommend doing for Navigator + 2.x clients due to other bugs. However, non-persistent + connections increase the total number of connections needed + per client and slow retrieval of an image-laden web page. + Since non-persistent connections have their own resource + consumptions and a short waiting period after each closure, + a busy server may need persistence in order to best serve + its clients.

+ +

As far as we know, the client-caused FIN_WAIT_2 problem + is present for all servers that support persistent + connections, including Apache 1.1.x and 1.2.

+ + + +

A necessary bit of code + introduced in 1.2

+ +

While the above bug is a problem, it is not the whole + problem. Some users have observed no FIN_WAIT_2 problems + with Apache 1.1.x, but with 1.2b enough connections build + up in the FIN_WAIT_2 state to crash their server. The most + likely source for additional FIN_WAIT_2 states is a + function called lingering_close() which was + added between 1.1 and 1.2. This function is necessary for + the proper handling of persistent connections and any + request which includes content in the message body + (e.g., PUTs and POSTs). What it does is read any + data sent by the client for a certain time after the server + closes the connection. The exact reasons for doing this are + somewhat complicated, but involve what happens if the + client is making a request at the same time the server + sends a response and closes the connection. Without + lingering, the client might be forced to reset its TCP + input buffer before it has a chance to read the server's + response, and thus understand why the connection has + closed. See the appendix for more + details.

+ +

The code in lingering_close() appears to + cause problems for a number of factors, including the + change in traffic patterns that it causes. The code has + been thoroughly reviewed and we are not aware of any bugs + in it. It is possible that there is some problem in the BSD + TCP stack, aside from the lack of a timeout for the + FIN_WAIT_2 state, exposed by the + lingering_close code that causes the observed + problems.

+ + +
top
+
+

What Can I Do About it?

+ +

There are several possible workarounds to the problem, some + of which work better than others.

+ +

Add a timeout for FIN_WAIT_2

+ +

The obvious workaround is to simply have a timeout for the + FIN_WAIT_2 state. This is not specified by the RFC, and + could be claimed to be a violation of the RFC, but it is + widely recognized as being necessary. The following systems + are known to have a timeout:

+ +
    +
  • FreeBSD + versions starting at 2.0 or possibly earlier.
  • + +
  • NetBSD version + 1.2(?)
  • + +
  • OpenBSD all + versions(?)
  • + +
  • BSD/OS 2.1, with + the + K210-027 patch installed.
  • + +
  • Solaris as of + around version 2.2. The timeout can be tuned by using + ndd to modify + tcp_fin_wait_2_flush_interval, but the + default should be appropriate for most servers and + improper tuning can have negative impacts.
  • + +
  • Linux 2.0.x and + earlier(?)
  • + +
  • HP-UX 10.x defaults + to terminating connections in the FIN_WAIT_2 state after + the normal keepalive timeouts. This does not refer to the + persistent connection or HTTP keepalive timeouts, but the + SO_LINGER socket option which is enabled by + Apache. This parameter can be adjusted by using + nettune to modify parameters such as + tcp_keepstart and tcp_keepstop. + In later revisions, there is an explicit timer for + connections in FIN_WAIT_2 that can be modified; contact + HP support for details.
  • + +
  • SGI IRIX can be + patched to support a timeout. For IRIX 5.3, 6.2, and 6.3, + use patches 1654, 1703 and 1778 respectively. If you have + trouble locating these patches, please contact your SGI + support channel for help.
  • + +
  • NCR's MP RAS Unix + 2.xx and 3.xx both have FIN_WAIT_2 timeouts. In 2.xx it + is non-tunable at 600 seconds, while in 3.xx it defaults + to 600 seconds and is calculated based on the tunable + "max keep alive probes" (default of 8) multiplied by the + "keep alive interval" (default 75 seconds).
  • + +
  • Sequent's ptx/TCP/IP + for DYNIX/ptx has had a FIN_WAIT_2 timeout since + around release 4.1 in mid-1994.
  • +
+ +

The following systems are known to not have a + timeout:

+ +
    +
  • SunOS 4.x does not + and almost certainly never will have one because it as at + the very end of its development cycle for Sun. If you + have kernel source should be easy to patch.
  • +
+ +

There is a + patch available for adding a timeout to the FIN_WAIT_2 + state; it was originally intended for BSD/OS, but should be + adaptable to most systems using BSD networking code. You + need kernel source code to be able to use it.

+ + + +

Compile without using + lingering_close()

+ +

It is possible to compile Apache 1.2 without using the + lingering_close() function. This will result + in that section of code being similar to that which was in + 1.1. If you do this, be aware that it can cause problems + with PUTs, POSTs and persistent connections, especially if + the client uses pipelining. That said, it is no worse than + on 1.1, and we understand that keeping your server running + is quite important.

+ +

To compile without the lingering_close() + function, add -DNO_LINGCLOSE to the end of the + EXTRA_CFLAGS line in your + Configuration file, rerun + Configure and rebuild the server.

+ + + +

Use SO_LINGER as + an alternative to lingering_close()

+ +

On most systems, there is an option called + SO_LINGER that can be set with + setsockopt(2). It does something very similar + to lingering_close(), except that it is broken + on many systems so that it causes far more problems than + lingering_close. On some systems, it could + possibly work better so it may be worth a try if you have + no other alternatives.

+ +

To try it, add -DUSE_SO_LINGER + -DNO_LINGCLOSE to the end of the + EXTRA_CFLAGS line in your + Configuration file, rerun + Configure and rebuild the server.

+ +

NOTE

Attempting to use + SO_LINGER and lingering_close() + at the same time is very likely to do very bad things, so + don't.
+ + + +

Increase the amount of memory + used for storing connection state

+ +
+
BSD based networking code:
+ +
+ BSD stores network data, such as connection states, in + something called an mbuf. When you get so many + connections that the kernel does not have enough mbufs + to put them all in, your kernel will likely crash. You + can reduce the effects of the problem by increasing the + number of mbufs that are available; this will not + prevent the problem, it will just make the server go + longer before crashing. + +

The exact way to increase them may depend on your + OS; look for some reference to the number of "mbufs" or + "mbuf clusters". On many systems, this can be done by + adding the line NMBCLUSTERS="n", where + n is the number of mbuf clusters you want + to your kernel config file and rebuilding your + kernel.

+
+
+ + + +

Disable KeepAlive

+ +

If you are unable to do any of the above then you + should, as a last resort, disable KeepAlive. Edit your + httpd.conf and change "KeepAlive On" to "KeepAlive + Off".

+ + +
top
+
+

Appendix

+ +

Below is a message from Roy Fielding, one of the authors + of HTTP/1.1.

+ +

Why the lingering close + functionality is necessary with HTTP

+ +

The need for a server to linger on a socket after a close + is noted a couple times in the HTTP specs, but not + explained. This explanation is based on discussions between + myself, Henrik Frystyk, Robert S. Thau, Dave Raggett, and + John C. Mallery in the hallways of MIT while I was at W3C.

+ +

If a server closes the input side of the connection + while the client is sending data (or is planning to send + data), then the server's TCP stack will signal an RST + (reset) back to the client. Upon receipt of the RST, the + client will flush its own incoming TCP buffer back to the + un-ACKed packet indicated by the RST packet argument. If + the server has sent a message, usually an error response, + to the client just before the close, and the client + receives the RST packet before its application code has + read the error message from its incoming TCP buffer and + before the server has received the ACK sent by the client + upon receipt of that buffer, then the RST will flush the + error message before the client application has a chance to + see it. The result is that the client is left thinking that + the connection failed for no apparent reason.

+ +

There are two conditions under which this is likely to + occur:

+ +
    +
  1. sending POST or PUT data without proper + authorization
  2. + +
  3. sending multiple requests before each response + (pipelining) and one of the middle requests resulting in + an error or other break-the-connection result.
  4. +
+ +

The solution in all cases is to send the response, close + only the write half of the connection (what shutdown is + supposed to do), and continue reading on the socket until + it is either closed by the client (signifying it has + finally read the response) or a timeout occurs. That is + what the kernel is supposed to do if SO_LINGER is set. + Unfortunately, SO_LINGER has no effect on some systems; on + some other systems, it does not have its own timeout and + thus the TCP memory segments just pile-up until the next + reboot (planned or not).

+ +

Please note that simply removing the linger code will + not solve the problem -- it only moves it to a different + and much harder one to detect.

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/index.html b/rubbos/app/apache2/manual/misc/index.html new file mode 100644 index 00000000..23ec1ec0 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/index.html @@ -0,0 +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.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/misc/index.html.en b/rubbos/app/apache2/manual/misc/index.html.en new file mode 100644 index 00000000..81445841 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/index.html.en @@ -0,0 +1,121 @@ + + + +Apache Miscellaneous Documentation - Apache HTTP Server + + + + + +
<-
+

Apache Miscellaneous Documentation

+
+

Available Languages:  en  | + tr 

+
+ + +

Below is a list of additional documentation pages that apply + to the Apache web server development project.

+ +

Warning

+

Some of the documents below have not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +
+
How to use XSSI and + Negotiation for custom ErrorDocuments
+ +
+

Describes a solution which uses XSSI and negotiation to + custom-tailor the Apache ErrorDocuments to taste, adding the + advantage of returning internationalized versions of the + error messages depending on the client's language + preferences.

+
+ +
File Descriptor use in + Apache
+ +
+

Describes how Apache uses file descriptors and talks + about various limits imposed on the number of descriptors + available by various operating systems.

+
+ +
FIN_WAIT_2
+ +
+

A description of the causes of Apache processes going + into the FIN_WAIT_2 state, and what you can do + about it.

+
+ +
Known Client + Problems
+ +
+

A list of problems in HTTP clients which can be mitigated + by Apache.

+
+ +
Performance Notes - Apache + Tuning
+ +
+

Notes about how to (run-time and compile-time) configure + Apache for highest performance. Notes explaining why Apache + does some things, and why it doesn't do other things (which + make it slower/faster).

+
+ +
Security Tips
+ +
+

Some "do"s - and "don't"s - for keeping your Apache web + site secure.

+
+ +
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 webmasters are usually confronted + with in practice.

+
+ +
Apache Tutorials
+ +
+

A list of external resources which help to accomplish common + tasks with the Apache HTTP server.

+
+ +
Relevant Standards
+ +
+

This document acts as a reference page for most of the relevant + standards that Apache follows.

+
+
+
+
+
+

Available Languages:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/index.html.tr.utf8 b/rubbos/app/apache2/manual/misc/index.html.tr.utf8 new file mode 100644 index 00000000..e4cb8a26 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/index.html.tr.utf8 @@ -0,0 +1,122 @@ + + + +Çeşitli Belgeler - Apache HTTP Sunucusu + + + + + +
<-
+

Çeşitli Belgeler

+
+

Mevcut Diller:  en  | + tr 

+
+ + +

Aşağıda listelenen belgeler de Apache HTTP sunucusu geliştirme projesi + kapsamındadır.

+ +

Uyarı

+

Aşağıdaki belgeler, Apache HTTP Sunucusunun 2.0 sürümünde yapılmış + değişikliklere göre tam olarak güncellenmemiştir. Hala güncel kalmış + bazı bilgiler olabilir, fakat siz yine de bu belgeleri kullanırken + dikkatli olun.

+
+ +
+
Hata belgelerinin özelleştirilmesi + için XSSI ve içerik uzlaşımının kullanımı
+ +
+

Belgede, istemcinin dil tercihlerine bağlı olarak hata + iletilerinin yerelleştirilmiş sürümlerini döndürmenin yanında + Apache hata belgelerine bir çeşni katmak için XSSI ve içerik + uzlaşımının kullanımıyla ilgili bir çözüme yer verilmiştir.

+
+ +
Apache’de dosya tanıtıcılarının + kullanımı
+ +
+

Belgede, Apache’nin çeşitli işletim sistemleri tarafından + dayatılan dosya tanıtıcı miktarları için işletim sistemleri ile + nasıl anlaştığı ve bu dosya tanıtıcılarını nasıl kullandığı + açıklanmıştır.

+
+ +
FIN_WAIT_2
+ +
+

Belgede, Apache’nin FIN_WAIT_2 durumuna girme + sebepleri ile bu konuda neler yapılabileceği açıklanmıştır.

+
+ +
Bilinen İstemci Sorunları +
+ +
+

Belgede, HTTP istemcilerinden kaynaklanan bazı sorunların Apache + tarafından hafifletilebilenlerinin bir listesi yer almaktadır.

+
+ +
Başarım Arttırma İpuçları - Apache’ye + İnce Ayar Çekilmesi
+ +
+

Yüksek başarım elde etmek için Apache yapılandırmasında (çalışma + anında ve derleme sırasında) yapılacaklar ile ilgili bazı bilgiler + yanında Apache’de bazı şeylerin (bir şeyleri hızlandıran ve + yavaşlatan şeylerin) yapılma ve yapılmama sebepleri + açıklanmıştır.

+
+ +
Güvenlik İpuçları
+ +
+

Apache HTTP sitenizi güvenli kılmak için yapılacaklar ve + yapılmayacaklar.

+
+ +
URL Yeniden Yazma Rehberi
+ +
+

Bu belge mod_rewrite modülünün başvuru belgesi yerine geçer. + Site yöneticilerinin sıkça karşılaştıkları belli başlı URL temelli + sorunları çözümlemek için Apache’nin mod_rewrite + modülünün nasıl kullanılacağını açıklar.

+
+ +
Apache Öğreticileri
+ +
+

Apache HTTP Sunucusu ile ilgili görevlerinizi yerine getirmenize + yardımcı olacak harici kaynakların bir listesi.

+
+ +
İlgili Standartlar
+ +
+

Bu belge Apache’nin uyacağı standartların bir çoğuna atıfta + bulunmak amacıyla hazırlanmıştır.

+
+
+ +
+
+
+

Mevcut Diller:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/known_client_problems.html b/rubbos/app/apache2/manual/misc/known_client_problems.html new file mode 100644 index 00000000..9f5b039f --- /dev/null +++ b/rubbos/app/apache2/manual/misc/known_client_problems.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: known_client_problems.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/misc/known_client_problems.html.en b/rubbos/app/apache2/manual/misc/known_client_problems.html.en new file mode 100644 index 00000000..cfc02954 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/known_client_problems.html.en @@ -0,0 +1,408 @@ + + + +Known Problems in Clients - Apache HTTP Server + + + + + +
<-
+

Known Problems in Clients

+
+

Available Languages:  en 

+
+ + +

Warning:

+

This document has not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

Over time the Apache Group has discovered or been notified + of problems with various clients which we have had to work + around, or explain. This document describes these problems and + the workarounds available. It's not arranged in any particular + order. Some familiarity with the standards is assumed, but not + necessary.

+ +

For brevity, Navigator will refer to Netscape's + Navigator product (which in later versions was renamed + "Communicator" and various other names), and MSIE will + refer to Microsoft's Internet Explorer product. All trademarks + and copyrights belong to their respective companies. We welcome + input from the various client authors to correct + inconsistencies in this paper, or to provide us with exact + version numbers where things are broken/fixed.

+ +

For reference, RFC1945 + defines HTTP/1.0, and RFC2068 + defines HTTP/1.1. Apache as of version 1.2 is an HTTP/1.1 + server (with an optional HTTP/1.0 proxy).

+ +

Various of these workarounds are triggered by environment + variables. The admin typically controls which are set, and for + which clients, by using mod_browser. Unless + otherwise noted all of these workarounds exist in versions 1.2 + and later.

+ +
+ +
top
+
+

Trailing CRLF on POSTs

+ +

This is a legacy issue. The CERN webserver required + POST data to have an extra CRLF + following it. Thus many clients send an extra CRLF + that is not included in the Content-Length of the + request. Apache works around this problem by eating any empty + lines which appear before a request.

+ +
top
+
+

Broken KeepAlive

+ +

Various clients have had broken implementations of + keepalive (persistent connections). In particular the + Windows versions of Navigator 2.0 get very confused when the + server times out an idle connection. The workaround is present + in the default config files:

+ +

+ BrowserMatch Mozilla/2 nokeepalive +

+ +

Note that this matches some earlier versions of MSIE, which + began the practice of calling themselves Mozilla in + their user-agent strings just like Navigator.

+ +

MSIE 4.0b2, which claims to support HTTP/1.1, does not + properly support keepalive when it is used on 301 or 302 + (redirect) responses. Unfortunately Apache's + nokeepalive code prior to 1.2.2 would not work + with HTTP/1.1 clients. You must apply + this patch to version 1.2.1. Then add this to your + config:

+ +

+ BrowserMatch "MSIE 4\.0b2;" nokeepalive +

+ +
top
+
+

Incorrect interpretation of + HTTP/1.1 in response

+ +

To quote from section 3.1 of RFC1945:

+ +
+ HTTP uses a "<MAJOR>.<MINOR>" numbering scheme to + indicate versions of the protocol. The protocol versioning + policy is intended to allow the sender to indicate the format + of a message and its capacity for understanding further HTTP + communication, rather than the features obtained via that + communication. +
+ +

Since Apache is an HTTP/1.1 server, it indicates so as part of + its response. Many client authors mistakenly treat this part of + the response as an indication of the protocol that the response + is in, and then refuse to accept the response.

+ +

The first major indication of this problem was with AOL's + proxy servers. When Apache 1.2 went into beta it was the first + wide-spread HTTP/1.1 server. After some discussion, AOL fixed + their proxies. In anticipation of similar problems, the + force-response-1.0 environment variable was added + to Apache. When present Apache will indicate "HTTP/1.0" in + response to an HTTP/1.0 client, but will not in any other way + change the response.

+ +

The pre-1.1 Java Development Kit (JDK) that is used in many + clients (including Navigator 3.x and MSIE 3.x) exhibits this + problem. As do some of the early pre-releases of the 1.1 JDK. + We think it is fixed in the 1.1 JDK release. In any event the + workaround:

+ +

+ BrowserMatch Java/1.0 force-response-1.0
+ BrowserMatch JDK/1.0 force-response-1.0 +

+ +

RealPlayer 4.0 from Progressive Networks also exhibits this + problem. However they have fixed it in version 4.01 of the + player, but version 4.01 uses the same User-Agent + as version 4.0. The workaround is still:

+ +

+ BrowserMatch "RealPlayer 4.0" force-response-1.0 +

+ +
top
+
+

Requests use HTTP/1.1 but + responses must be in HTTP/1.0

+ +

MSIE 4.0b2 has this problem. Its Java VM makes requests in + HTTP/1.1 format but the responses must be in HTTP/1.0 format + (in particular, it does not understand chunked + responses). The workaround is to fool Apache into believing the + request came in HTTP/1.0 format.

+ +

+ BrowserMatch "MSIE 4\.0b2;" downgrade-1.0 + force-response-1.0 +

+ +

This workaround is available in 1.2.2, and in a + patch against 1.2.1.

+ +
top
+
+

Boundary problems with + header parsing

+ +

All versions of Navigator from 2.0 through 4.0b2 (and + possibly later) have a problem if the trailing CRLF of the + response header starts at offset 256, 257 or 258 of the + response. A BrowserMatch for this would match on nearly every + hit, so the workaround is enabled automatically on all + responses. The workaround implemented detects when this + condition would occur in a response and adds extra padding to + the header to push the trailing CRLF past offset 258 of the + response.

+ +
top
+
+

Multipart responses and + Quoted Boundary Strings

+ +

On multipart responses some clients will not accept quotes + (") around the boundary string. The MIME standard recommends + that such quotes be used. But the clients were probably written + based on one of the examples in RFC2068, which does not include + quotes. Apache does not include quotes on its boundary strings + to workaround this problem.

+ +
top
+
+

Byterange Requests

+ +

A byterange request is used when the client wishes to + retrieve a portion of an object, not necessarily the entire + object. There was a very old draft which included these + byteranges in the URL. Old clients such as Navigator 2.0b1 and + MSIE 3.0 for the MAC exhibit this behaviour, and it will appear + in the servers' access logs as (failed) attempts to retrieve a + URL with a trailing ";xxx-yyy". Apache does not attempt to + implement this at all.

+ +

A subsequent draft of this standard defines a header + Request-Range, and a response type + multipart/x-byteranges. The HTTP/1.1 standard + includes this draft with a few fixes, and it defines the header + Range and type + multipart/byteranges.

+ +

Navigator (versions 2 and 3) sends both Range + and Request-Range headers (with the same value), + but does not accept a multipart/byteranges + response. The response must be + multipart/x-byteranges. As a workaround, if Apache + receives a Request-Range header it considers it + "higher priority" than a Range header and in + response uses multipart/x-byteranges.

+ +

The Adobe Acrobat Reader plugin makes extensive use of + byteranges and prior to version 3.01 supports only the + multipart/x-byterange response. Unfortunately + there is no clue that it is the plugin making the request. If + the plugin is used with Navigator, the above workaround works + fine. But if the plugin is used with MSIE 3 (on Windows) the + workaround won't work because MSIE 3 doesn't give the + Range-Request clue that Navigator does. To + workaround this, Apache special cases "MSIE 3" in the + User-Agent and serves + multipart/x-byteranges. Note that the necessity + for this with MSIE 3 is actually due to the Acrobat plugin, not + due to the browser.

+ +

Netscape Communicator appears to not issue the non-standard + Request-Range header. When an Acrobat plugin prior + to version 3.01 is used with it, it will not properly + understand byteranges. The user must upgrade their Acrobat + reader to 3.01.

+ +
top
+
+

Set-Cookie header is + unmergeable

+ +

The HTTP specifications say that it is legal to merge + headers with duplicate names into one (separated by commas). + Some browsers that support Cookies don't like merged headers + and prefer that each Set-Cookie header is sent + separately. When parsing the headers returned by a CGI, Apache + will explicitly avoid merging any Set-Cookie + headers.

+ +
top
+
+

Expires headers + and GIF89A animations

+ +

Navigator versions 2 through 4 will erroneously re-request + GIF89A animations on each loop of the animation if the first + response included an Expires header. This happens + regardless of how far in the future the expiry time is set. + There is no workaround supplied with Apache, however there are + hacks for + 1.2 and for + 1.3.

+ +
top
+
+

POST without + Content-Length

+ +

In certain situations Navigator 3.01 through 3.03 appear to + incorrectly issue a POST without the request body. There is no + known workaround. It has been fixed in Navigator 3.04, + Netscapes provides some information. + There's also + some information about the actual problem.

+ +
top
+
+

JDK 1.2 betas lose + parts of responses.

+ +

The http client in the JDK1.2beta2 and beta3 will throw away + the first part of the response body when both the headers and + the first part of the body are sent in the same network packet + AND keep-alive's are being used. If either condition is not met + then it works fine.

+ +

See also Bug-ID's 4124329 and 4125538 at the java developer + connection.

+ +

If you are seeing this bug yourself, you can add the + following BrowserMatch directive to work around it:

+ +

+ BrowserMatch "Java1\.2beta[23]" nokeepalive +

+ +

We don't advocate this though since bending over backwards + for beta software is usually not a good idea; ideally it gets + fixed, new betas or a final release comes out, and no one uses + the broken old software anymore. In theory.

+ +
top
+
+

Content-Type + change is not noticed after reload

+ +

Navigator (all versions?) will cache the + content-type for an object "forever". Using reload + or shift-reload will not cause Navigator to notice a + content-type change. The only work-around is for + the user to flush their caches (memory and disk). By way of an + example, some folks may be using an old mime.types + file which does not map .htm to + text/html, in this case Apache will default to + sending text/plain. If the user requests the page + and it is served as text/plain. After the admin + fixes the server, the user will have to flush their caches + before the object will be shown with the correct + text/html type.

+ +
top
+
+

MSIE Cookie + problem with expiry date in the year 2000

+ +

MSIE versions 3.00 and 3.02 (without the Y2K patch) do not + handle cookie expiry dates in the year 2000 properly. Years + after 2000 and before 2000 work fine. This is fixed in IE4.01 + service pack 1, and in the Y2K patch for IE3.02. Users should + avoid using expiry dates in the year 2000.

+ +
top
+
+

Lynx incorrectly asking for + transparent content negotiation

+ +

The Lynx browser versions 2.7 and 2.8 send a "negotiate: + trans" header in their requests, which is an indication the + browser supports transparent content negotiation (TCN). However + the browser does not support TCN. As of version 1.3.4, Apache + supports TCN, and this causes problems with these versions of + Lynx. As a workaround future versions of Apache will ignore + this header when sent by the Lynx client.

+ +
top
+
+

MSIE 4.0 mishandles Vary + response header

+ +

MSIE 4.0 does not handle a Vary header properly. The Vary + header is generated by mod_rewrite in apache 1.3. The result is + an error from MSIE saying it cannot download the requested + file. There are more details in PR#4118.

+ +

A workaround is to add the following to your server's + configuration files:

+ +

+ BrowserMatch "MSIE 4\.0" force-no-vary +

+ +

(This workaround is only available with releases + after 1.3.6 of the Apache Web server.)

+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/perf-tuning.html b/rubbos/app/apache2/manual/misc/perf-tuning.html new file mode 100644 index 00000000..84956329 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/perf-tuning.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: perf-tuning.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: perf-tuning.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: perf-tuning.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/misc/perf-tuning.html.en b/rubbos/app/apache2/manual/misc/perf-tuning.html.en new file mode 100644 index 00000000..2a6bc9d1 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/perf-tuning.html.en @@ -0,0 +1,1058 @@ + + + +Apache Performance Tuning - Apache HTTP Server + + + + + +
<-
+

Apache Performance Tuning

+
+

Available Languages:  en  | + ko  | + tr 

+
+ + +

Apache 2.x is a general-purpose webserver, designed to + provide a balance of flexibility, portability, and performance. + Although it has not been designed specifically to set benchmark + records, Apache 2.x is capable of high performance in many + real-world situations.

+ +

Compared to Apache 1.3, release 2.x contains many additional + optimizations to increase throughput and scalability. Most of + these improvements are enabled by default. However, there are + compile-time and run-time configuration choices that can + significantly affect performance. This document describes the + options that a server administrator can configure to tune the + performance of an Apache 2.x installation. Some of these + configuration options enable the httpd to better take advantage + of the capabilities of the hardware and OS, while others allow + the administrator to trade functionality for speed.

+ +
+ +
top
+
+

Hardware and Operating System Issues

+ + + +

The single biggest hardware issue affecting webserver + performance is RAM. A webserver should never ever have to swap, + as swapping increases the latency of each request beyond a point + that users consider "fast enough". This causes users to hit + stop and reload, further increasing the load. You can, and + should, control the MaxClients setting so that your server + does not spawn so many children it starts swapping. This procedure + for doing this is simple: determine the size of your average Apache + process, by looking at your process list via a tool such as + top, and divide this into your total available memory, + leaving some room for other processes.

+ +

Beyond that the rest is mundane: get a fast enough CPU, a + fast enough network card, and fast enough disks, where "fast + enough" is something that needs to be determined by + experimentation.

+ +

Operating system choice is largely a matter of local + concerns. But some guidelines that have proven generally + useful are:

+ +
    +
  • +

    Run the latest stable release and patchlevel of the + operating system that you choose. Many OS suppliers have + introduced significant performance improvements to their + TCP stacks and thread libraries in recent years.

    +
  • + +
  • +

    If your OS supports a sendfile(2) system + call, make sure you install the release and/or patches + needed to enable it. (With Linux, for example, this means + using Linux 2.4 or later. For early releases of Solaris 8, + you may need to apply a patch.) On systems where it is + available, sendfile enables Apache 2 to deliver + static content faster and with lower CPU utilization.

    +
  • +
+ +
top
+
+

Run-Time Configuration Issues

+ + + + + +

HostnameLookups and other DNS considerations

+ + + +

Prior to Apache 1.3, HostnameLookups defaulted to On. + This adds latency to every request because it requires a + DNS lookup to complete before the request is finished. In + Apache 1.3 this setting defaults to Off. If you need + to have addresses in your log files resolved to hostnames, use the + logresolve + program that comes with Apache, or one of the numerous log + reporting packages which are available.

+ +

It is recommended that you do this sort of postprocessing of + your log files on some machine other than the production web + server machine, in order that this activity not adversely affect + server performance.

+ +

If you use any Allow + from domain or Deny from domain + directives (i.e., using a hostname, or a domain name, rather than + an IP address) then you will pay for + two DNS lookups (a reverse, followed by a forward lookup + to make sure that the reverse is not being spoofed). For best + performance, therefore, use IP addresses, rather than names, when + using these directives, if possible.

+ +

Note that it's possible to scope the directives, such as + within a <Location /server-status> section. + In this case the DNS lookups are only performed on requests + matching the criteria. Here's an example which disables lookups + except for .html and .cgi files:

+ +

+ HostnameLookups off
+ <Files ~ "\.(html|cgi)$">
+ + HostnameLookups on
+
+ </Files> +

+ +

But even still, if you just need DNS names in some CGIs you + could consider doing the gethostbyname call in the + specific CGIs that need it.

+ + + +

FollowSymLinks and SymLinksIfOwnerMatch

+ + + +

Wherever in your URL-space you do not have an Options + FollowSymLinks, or you do have an Options + SymLinksIfOwnerMatch Apache will have to issue extra + system calls to check up on symlinks. One extra call per + filename component. For example, if you had:

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + Options SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

and a request is made for the URI /index.html. + Then Apache will perform lstat(2) on + /www, /www/htdocs, and + /www/htdocs/index.html. The results of these + lstats are never cached, so they will occur on + every single request. If you really desire the symlinks + security checking you can do something like this:

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + Options FollowSymLinks
+
+ </Directory>
+
+ <Directory /www/htdocs>
+ + Options -FollowSymLinks +SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

This at least avoids the extra checks for the + DocumentRoot path. + Note that you'll need to add similar sections if you + have any Alias or + RewriteRule paths + outside of your document root. For highest performance, + and no symlink protection, set FollowSymLinks + everywhere, and never set SymLinksIfOwnerMatch.

+ + + +

AllowOverride

+ + + +

Wherever in your URL-space you allow overrides (typically + .htaccess files) Apache will attempt to open + .htaccess for each filename component. For + example,

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + AllowOverride all
+
+ </Directory> +

+ +

and a request is made for the URI /index.html. + Then Apache will attempt to open /.htaccess, + /www/.htaccess, and + /www/htdocs/.htaccess. The solutions are similar + to the previous case of Options FollowSymLinks. + For highest performance use AllowOverride None + everywhere in your filesystem.

+ + + +

Negotiation

+ + + +

If at all possible, avoid content-negotiation if you're + really interested in every last ounce of performance. In + practice the benefits of negotiation outweigh the performance + penalties. There's one case where you can speed up the server. + Instead of using a wildcard such as:

+ +

+ DirectoryIndex index +

+ +

Use a complete list of options:

+ +

+ DirectoryIndex index.cgi index.pl index.shtml index.html +

+ +

where you list the most common choice first.

+ +

Also note that explicitly creating a type-map + file provides better performance than using + MultiViews, as the necessary information can be + determined by reading this single file, rather than having to + scan the directory for files.

+ +

If your site needs content negotiation consider using + type-map files, rather than the Options + MultiViews directive to accomplish the negotiation. See the + Content Negotiation + documentation for a full discussion of the methods of negotiation, + and instructions for creating type-map files.

+ + + +

Memory-mapping

+ + + +

In situations where Apache 2.x needs to look at the contents + of a file being delivered--for example, when doing server-side-include + processing--it normally memory-maps the file if the OS supports + some form of mmap(2).

+ +

On some platforms, this memory-mapping improves performance. + However, there are cases where memory-mapping can hurt the performance + or even the stability of the httpd:

+ +
    +
  • +

    On some operating systems, mmap does not scale + as well as read(2) when the number of CPUs increases. + On multiprocessor Solaris servers, for example, Apache 2.x sometimes + delivers server-parsed files faster when mmap is disabled.

    +
  • + +
  • +

    If you memory-map a file located on an NFS-mounted filesystem + and a process on another NFS client machine deletes or truncates + the file, your process may get a bus error the next time it tries + to access the mapped file content.

    +
  • +
+ +

For installations where either of these factors applies, you + should use EnableMMAP off to disable the memory-mapping + of delivered files. (Note: This directive can be overridden on + a per-directory basis.)

+ + + +

Sendfile

+ + + +

In situations where Apache 2.x can ignore the contents of the file + to be delivered -- for example, when serving static file content -- + it normally uses the kernel sendfile support the file if the OS + supports the sendfile(2) operation.

+ +

On most platforms, using sendfile improves performance by eliminating + separate read and send mechanics. However, there are cases where using + sendfile can harm the stability of the httpd:

+ +
    +
  • +

    Some platforms may have broken sendfile support that the build + system did not detect, especially if the binaries were built on + another box and moved to such a machine with broken sendfile support.

    +
  • +
  • +

    With an NFS-mounted files, the kernel may be unable + to reliably serve the network file through it's own cache.

    +
  • +
+ +

For installations where either of these factors applies, you + should use EnableSendfile off to disable sendfile + delivery of file contents. (Note: This directive can be overridden + on a per-directory basis.)

+ + + +

Process Creation

+ + + +

Prior to Apache 1.3 the MinSpareServers, MaxSpareServers, and StartServers settings all had drastic effects on + benchmark results. In particular, Apache required a "ramp-up" + period in order to reach a number of children sufficient to serve + the load being applied. After the initial spawning of + StartServers children, + only one child per second would be created to satisfy the + MinSpareServers + setting. So a server being accessed by 100 simultaneous + clients, using the default StartServers of 5 would take on + the order 95 seconds to spawn enough children to handle + the load. This works fine in practice on real-life servers, + because they aren't restarted frequently. But does really + poorly on benchmarks which might only run for ten minutes.

+ +

The one-per-second rule was implemented in an effort to + avoid swamping the machine with the startup of new children. If + the machine is busy spawning children it can't service + requests. But it has such a drastic effect on the perceived + performance of Apache that it had to be replaced. As of Apache + 1.3, the code will relax the one-per-second rule. It will spawn + one, wait a second, then spawn two, wait a second, then spawn + four, and it will continue exponentially until it is spawning + 32 children per second. It will stop whenever it satisfies the + MinSpareServers + setting.

+ +

This appears to be responsive enough that it's almost + unnecessary to twiddle the MinSpareServers, MaxSpareServers and StartServers knobs. When more than 4 children are + spawned per second, a message will be emitted to the + ErrorLog. If you + see a lot of these errors then consider tuning these settings. + Use the mod_status output as a guide.

+ +

Related to process creation is process death induced by the + MaxRequestsPerChild + setting. By default this is 0, + which means that there is no limit to the number of requests + handled per child. If your configuration currently has this set + to some very low number, such as 30, you may want to bump this + up significantly. If you are running SunOS or an old version of + Solaris, limit this to 10000 or so because of memory leaks.

+ +

When keep-alives are in use, children will be kept busy + doing nothing waiting for more requests on the already open + connection. The default KeepAliveTimeout of 15 + seconds attempts to minimize this effect. The tradeoff here is + between network bandwidth and server resources. In no event + should you raise this above about 60 seconds, as + most of the benefits are lost.

+ + + +
top
+
+

Compile-Time Configuration Issues

+ + + +

Choosing an MPM

+ + + +

Apache 2.x supports pluggable concurrency models, called + Multi-Processing Modules (MPMs). + When building Apache, you must choose an MPM to use. There + are platform-specific MPMs for some platforms: + beos, mpm_netware, + mpmt_os2, and mpm_winnt. For + general Unix-type systems, there are several MPMs from which + to choose. The choice of MPM can affect the speed and scalability + of the httpd:

+ +
    + +
  • The worker MPM uses multiple child + processes with many threads each. Each thread handles + one connection at a time. Worker generally is a good + choice for high-traffic servers because it has a smaller + memory footprint than the prefork MPM.
  • + +
  • The prefork MPM uses multiple child + processes with one thread each. Each process handles + one connection at a time. On many systems, prefork is + comparable in speed to worker, but it uses more memory. + Prefork's threadless design has advantages over worker + in some situations: it can be used with non-thread-safe + third-party modules, and it is easier to debug on platforms + with poor thread debugging support.
  • + +
+ +

For more information on these and other MPMs, please + see the MPM documentation.

+ + + +

Modules

+ + + +

Since memory usage is such an important consideration in + performance, you should attempt to eliminate modules that you are + not actually using. If you have built the modules as DSOs, eliminating modules is a simple + matter of commenting out the associated LoadModule directive for that module. + This allows you to experiment with removing modules, and seeing + if your site still functions in their absense.

+ +

If, on the other hand, you have modules statically linked + into your Apache binary, you will need to recompile Apache in + order to remove unwanted modules.

+ +

An associated question that arises here is, of course, what + modules you need, and which ones you don't. The answer here + will, of course, vary from one web site to another. However, the + minimal list of modules which you can get by with tends + to include mod_mime, mod_dir, + and mod_log_config. mod_log_config is, + of course, optional, as you can run a web site without log + files. This is, however, not recommended.

+ + + +

Atomic Operations

+ + + +

Some modules, such as mod_cache and + recent development builds of the worker MPM, use APR's + atomic API. This API provides atomic operations that can + be used for lightweight thread synchronization.

+ +

By default, APR implements these operations using the + most efficient mechanism available on each target + OS/CPU platform. Many modern CPUs, for example, have + an instruction that does an atomic compare-and-swap (CAS) + operation in hardware. On some platforms, however, APR + defaults to a slower, mutex-based implementation of the + atomic API in order to ensure compatibility with older + CPU models that lack such instructions. If you are + building Apache for one of these platforms, and you plan + to run only on newer CPUs, you can select a faster atomic + implementation at build time by configuring Apache with + the --enable-nonportable-atomics option:

+ +

+ ./buildconf
+ ./configure --with-mpm=worker --enable-nonportable-atomics=yes +

+ +

The --enable-nonportable-atomics option is + relevant for the following platforms:

+ +
    + +
  • Solaris on SPARC
    + By default, APR uses mutex-based atomics on Solaris/SPARC. + If you configure with --enable-nonportable-atomics, + however, APR generates code that uses a SPARC v8plus opcode for + fast hardware compare-and-swap. If you configure Apache with + this option, the atomic operations will be more efficient + (allowing for lower CPU utilization and higher concurrency), + but the resulting executable will run only on UltraSPARC + chips. +
  • + +
  • Linux on x86
    + By default, APR uses mutex-based atomics on Linux. If you + configure with --enable-nonportable-atomics, + however, APR generates code that uses a 486 opcode for fast + hardware compare-and-swap. This will result in more efficient + atomic operations, but the resulting executable will run only + on 486 and later chips (and not on 386). +
  • + +
+ + + +

mod_status and ExtendedStatus On

+ + + +

If you include mod_status and you also set + ExtendedStatus On when building and running + Apache, then on every request Apache will perform two calls to + gettimeofday(2) (or times(2) + depending on your operating system), and (pre-1.3) several + extra calls to time(2). This is all done so that + the status report contains timing indications. For highest + performance, set ExtendedStatus off (which is the + default).

+ + + +

accept Serialization - multiple sockets

+ + + +

Warning:

+

This section has not been fully updated + to take into account changes made in the 2.x version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

This discusses a shortcoming in the Unix socket API. Suppose + your web server uses multiple Listen statements to listen on either multiple + ports or multiple addresses. In order to test each socket + to see if a connection is ready Apache uses + select(2). select(2) indicates that a + socket has zero or at least one connection + waiting on it. Apache's model includes multiple children, and + all the idle ones test for new connections at the same time. A + naive implementation looks something like this (these examples + do not match the code, they're contrived for pedagogical + purposes):

+ +

+ for (;;) {
+ + for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ process the new_connection;
+
+ } +

+ +

But this naive implementation has a serious starvation problem. + Recall that multiple children execute this loop at the same + time, and so multiple children will block at + select when they are in between requests. All + those blocked children will awaken and return from + select when a single request appears on any socket + (the number of children which awaken varies depending on the + operating system and timing issues). They will all then fall + down into the loop and try to accept the + connection. But only one will succeed (assuming there's still + only one connection ready), the rest will be blocked + in accept. This effectively locks those children + into serving requests from that one socket and no other + sockets, and they'll be stuck there until enough new requests + appear on that socket to wake them all up. This starvation + problem was first documented in PR#467. There + are at least two solutions.

+ +

One solution is to make the sockets non-blocking. In this + case the accept won't block the children, and they + will be allowed to continue immediately. But this wastes CPU + time. Suppose you have ten idle children in + select, and one connection arrives. Then nine of + those children will wake up, try to accept the + connection, fail, and loop back into select, + accomplishing nothing. Meanwhile none of those children are + servicing requests that occurred on other sockets until they + get back up to the select again. Overall this + solution does not seem very fruitful unless you have as many + idle CPUs (in a multiprocessor box) as you have idle children, + not a very likely situation.

+ +

Another solution, the one used by Apache, is to serialize + entry into the inner loop. The loop looks like this + (differences highlighted):

+ +

+ for (;;) {
+ + accept_mutex_on ();
+ for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ accept_mutex_off ();
+ process the new_connection;
+
+ } +

+ +

The functions + accept_mutex_on and accept_mutex_off + implement a mutual exclusion semaphore. Only one child can have + the mutex at any time. There are several choices for + implementing these mutexes. The choice is defined in + src/conf.h (pre-1.3) or + src/include/ap_config.h (1.3 or later). Some + architectures do not have any locking choice made, on these + architectures it is unsafe to use multiple + Listen + directives.

+ +

The directive AcceptMutex can be used to + change the selected mutex implementation at run-time.

+ +
+
AcceptMutex flock
+ +
+

This method uses the flock(2) system call to + lock a lock file (located by the LockFile directive).

+
+ +
AcceptMutex fcntl
+ +
+

This method uses the fcntl(2) system call to + lock a lock file (located by the LockFile directive).

+
+ +
AcceptMutex sysvsem
+ +
+

(1.3 or later) This method uses SysV-style semaphores to + implement the mutex. Unfortunately SysV-style semaphores have + some bad side-effects. One is that it's possible Apache will + die without cleaning up the semaphore (see the + ipcs(8) man page). The other is that the + semaphore API allows for a denial of service attack by any + CGIs running under the same uid as the webserver + (i.e., all CGIs, unless you use something like + suexec or cgiwrapper). For these + reasons this method is not used on any architecture except + IRIX (where the previous two are prohibitively expensive + on most IRIX boxes).

+
+ +
AcceptMutex pthread
+ +
+

(1.3 or later) This method uses POSIX mutexes and should + work on any architecture implementing the full POSIX threads + specification, however appears to only work on Solaris (2.5 + or later), and even then only in certain configurations. If + you experiment with this you should watch out for your server + hanging and not responding. Static content only servers may + work just fine.

+
+ +
AcceptMutex posixsem
+ +
+

(2.0 or later) This method uses POSIX semaphores. The + semaphore ownership is not recovered if a thread in the process + holding the mutex segfaults, resulting in a hang of the web + server.

+
+ +
+ +

If your system has another method of serialization which + isn't in the above list then it may be worthwhile adding code + for it to APR.

+ +

Another solution that has been considered but never + implemented is to partially serialize the loop -- that is, let + in a certain number of processes. This would only be of + interest on multiprocessor boxes where it's possible multiple + children could run simultaneously, and the serialization + actually doesn't take advantage of the full bandwidth. This is + a possible area of future investigation, but priority remains + low because highly parallel web servers are not the norm.

+ +

Ideally you should run servers without multiple + Listen + statements if you want the highest performance. + But read on.

+ + + +

accept Serialization - single socket

+ + + +

The above is fine and dandy for multiple socket servers, but + what about single socket servers? In theory they shouldn't + experience any of these same problems because all children can + just block in accept(2) until a connection + arrives, and no starvation results. In practice this hides + almost the same "spinning" behaviour discussed above in the + non-blocking solution. The way that most TCP stacks are + implemented, the kernel actually wakes up all processes blocked + in accept when a single connection arrives. One of + those processes gets the connection and returns to user-space, + the rest spin in the kernel and go back to sleep when they + discover there's no connection for them. This spinning is + hidden from the user-land code, but it's there nonetheless. + This can result in the same load-spiking wasteful behaviour + that a non-blocking solution to the multiple sockets case + can.

+ +

For this reason we have found that many architectures behave + more "nicely" if we serialize even the single socket case. So + this is actually the default in almost all cases. Crude + experiments under Linux (2.0.30 on a dual Pentium pro 166 + w/128Mb RAM) have shown that the serialization of the single + socket case causes less than a 3% decrease in requests per + second over unserialized single-socket. But unserialized + single-socket showed an extra 100ms latency on each request. + This latency is probably a wash on long haul lines, and only an + issue on LANs. If you want to override the single socket + serialization you can define + SINGLE_LISTEN_UNSERIALIZED_ACCEPT and then + single-socket servers will not serialize at all.

+ + + +

Lingering Close

+ + + +

As discussed in + draft-ietf-http-connection-00.txt section 8, in order for + an HTTP server to reliably implement the + protocol it needs to shutdown each direction of the + communication independently (recall that a TCP connection is + bi-directional, each half is independent of the other). This + fact is often overlooked by other servers, but is correctly + implemented in Apache as of 1.2.

+ +

When this feature was added to Apache it caused a flurry of + problems on various versions of Unix because of a + shortsightedness. The TCP specification does not state that the + FIN_WAIT_2 state has a timeout, but it doesn't prohibit it. + On systems without the timeout, Apache 1.2 induces many sockets + stuck forever in the FIN_WAIT_2 state. In many cases this + can be avoided by simply upgrading to the latest TCP/IP patches + supplied by the vendor. In cases where the vendor has never + released patches (i.e., SunOS4 -- although folks with + a source license can patch it themselves) we have decided to + disable this feature.

+ +

There are two ways of accomplishing this. One is the socket + option SO_LINGER. But as fate would have it, this + has never been implemented properly in most TCP/IP stacks. Even + on those stacks with a proper implementation (i.e., + Linux 2.0.31) this method proves to be more expensive (cputime) + than the next solution.

+ +

For the most part, Apache implements this in a function + called lingering_close (in + http_main.c). The function looks roughly like + this:

+ +

+ void lingering_close (int s)
+ {
+ + char junk_buffer[2048];
+
+ /* shutdown the sending side */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ + select (s for reading, 2 second timeout);
+ if (error) break;
+ if (s is ready for reading) {
+ + if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ + break;
+
+ }
+ /* just toss away whatever is here */
+
+ }
+
+ }
+
+ close (s);
+
+ } +

+ +

This naturally adds some expense at the end of a connection, + but it is required for a reliable implementation. As HTTP/1.1 + becomes more prevalent, and all connections are persistent, + this expense will be amortized over more requests. If you want + to play with fire and disable this feature you can define + NO_LINGCLOSE, but this is not recommended at all. + In particular, as HTTP/1.1 pipelined persistent connections + come into use lingering_close is an absolute + necessity (and + pipelined connections are faster, so you want to support + them).

+ + + +

Scoreboard File

+ + + +

Apache's parent and children communicate with each other + through something called the scoreboard. Ideally this should be + implemented in shared memory. For those operating systems that + we either have access to, or have been given detailed ports + for, it typically is implemented using shared memory. The rest + default to using an on-disk file. The on-disk file is not only + slow, but it is unreliable (and less featured). Peruse the + src/main/conf.h file for your architecture and + look for either USE_MMAP_SCOREBOARD or + USE_SHMGET_SCOREBOARD. Defining one of those two + (as well as their companions HAVE_MMAP and + HAVE_SHMGET respectively) enables the supplied + shared memory code. If your system has another type of shared + memory, edit the file src/main/http_main.c and add + the hooks necessary to use it in Apache. (Send us back a patch + too please.)

+ +
Historical note: The Linux port of Apache didn't start to + use shared memory until version 1.2 of Apache. This oversight + resulted in really poor and unreliable behaviour of earlier + versions of Apache on Linux.
+ + + +

DYNAMIC_MODULE_LIMIT

+ + + +

If you have no intention of using dynamically loaded modules + (you probably don't if you're reading this and tuning your + server for every last ounce of performance) then you should add + -DDYNAMIC_MODULE_LIMIT=0 when building your + server. This will save RAM that's allocated only for supporting + dynamically loaded modules.

+ + + +
top
+
+

Appendix: Detailed Analysis of a Trace

+ + + +

Here is a system call trace of Apache 2.0.38 with the worker MPM + on Solaris 8. This trace was collected using:

+ +

+ truss -l -p httpd_child_pid. +

+ +

The -l option tells truss to log the ID of the + LWP (lightweight process--Solaris's form of kernel-level thread) + that invokes each system call.

+ +

Other systems may have different system call tracing utilities + such as strace, ktrace, or par. + They all produce similar output.

+ +

In this trace, a client has requested a 10KB static file + from the httpd. Traces of non-static requests or requests + with content negotiation look wildly different (and quite ugly + in some cases).

+ +
/67:    accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
+/67:    accept(3, 0x00200BEC, 0x00200C0C, 1)            = 9
+ +

In this trace, the listener thread is running within LWP #67.

+ +
Note the lack of accept(2) serialization. On this + particular platform, the worker MPM uses an unserialized accept by + default unless it is listening on multiple ports.
+ +
/65:    lwp_park(0x00000000, 0)                         = 0
+/67:    lwp_unpark(65, 1)                               = 0
+ +

Upon accepting the connection, the listener thread wakes up + a worker thread to do the request processing. In this trace, + the worker thread that handles the request is mapped to LWP #65.

+ +
/65:    getsockname(9, 0x00200BA4, 0x00200BC4, 1)       = 0
+ +

In order to implement virtual hosts, Apache needs to know + the local socket address used to accept the connection. It + is possible to eliminate this call in many situations (such + as when there are no virtual hosts, or when + Listen directives + are used which do not have wildcard addresses). But + no effort has yet been made to do these optimizations.

+ +
/65:    brk(0x002170E8)                                 = 0
+/65:    brk(0x002190E8)                                 = 0
+ +

The brk(2) calls allocate memory from the heap. + It is rare to see these in a system call trace, because the httpd + uses custom memory allocators (apr_pool and + apr_bucket_alloc) for most request processing. + In this trace, the httpd has just been started, so it must + call malloc(3) to get the blocks of raw memory + with which to create the custom memory allocators.

+ +
/65:    fcntl(9, F_GETFL, 0x00000000)                   = 2
+/65:    fstat64(9, 0xFAF7B818)                          = 0
+/65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
+/65:    fstat64(9, 0xFAF7B818)                          = 0
+/65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
+/65:    setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
+/65:    fcntl(9, F_SETFL, 0x00000082)                   = 0
+ +

Next, the worker thread puts the connection to the client (file + descriptor 9) in non-blocking mode. The setsockopt(2) + and getsockopt(2) calls are a side-effect of how + Solaris's libc handles fcntl(2) on sockets.

+ +
/65:    read(9, " G E T   / 1 0 k . h t m".., 8000)     = 97
+ +

The worker thread reads the request from the client.

+ +
/65:    stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
+/65:    open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10
+ +

This httpd has been configured with Options FollowSymLinks + and AllowOverride None. Thus it doesn't need to + lstat(2) each directory in the path leading up to the + requested file, nor check for .htaccess files. + It simply calls stat(2) to verify that the file: + 1) exists, and 2) is a regular file, not a directory.

+ +
/65:    sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C)      = 10269
+ +

In this example, the httpd is able to send the HTTP response + header and the requested file with a single sendfilev(2) + system call. Sendfile semantics vary among operating systems. On some other + systems, it is necessary to do a write(2) or + writev(2) call to send the headers before calling + sendfile(2).

+ +
/65:    write(4, " 1 2 7 . 0 . 0 . 1   -  ".., 78)      = 78
+ +

This write(2) call records the request in the + access log. Note that one thing missing from this trace is a + time(2) call. Unlike Apache 1.3, Apache 2.x uses + gettimeofday(3) to look up the time. On some operating + systems, like Linux or Solaris, gettimeofday has an + optimized implementation that doesn't require as much overhead + as a typical system call.

+ +
/65:    shutdown(9, 1, 1)                               = 0
+/65:    poll(0xFAF7B980, 1, 2000)                       = 1
+/65:    read(9, 0xFAF7BC20, 512)                        = 0
+/65:    close(9)                                        = 0
+ +

The worker thread does a lingering close of the connection.

+ +
/65:    close(10)                                       = 0
+/65:    lwp_park(0x00000000, 0)         (sleeping...)
+ +

Finally the worker thread closes the file that it has just delivered + and blocks until the listener assigns it another connection.

+ +
/67:    accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)
+ +

Meanwhile, the listener thread is able to accept another connection + as soon as it has dispatched this connection to a worker thread (subject + to some flow-control logic in the worker MPM that throttles the listener + if all the available workers are busy). Though it isn't apparent from + this trace, the next accept(2) can (and usually does, under + high load conditions) occur in parallel with the worker thread's handling + of the just-accepted connection.

+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/perf-tuning.html.ko.euc-kr b/rubbos/app/apache2/manual/misc/perf-tuning.html.ko.euc-kr new file mode 100644 index 00000000..b5443b1e --- /dev/null +++ b/rubbos/app/apache2/manual/misc/perf-tuning.html.ko.euc-kr @@ -0,0 +1,978 @@ + + + +ġ - Apache HTTP Server + + + + + +
<-
+

ġ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ġ 2.0 ɰ ðɼ µ + ̴. ġũ + ʾ ġ 2.0 .

+ +

ġ 1.3 ؼ 2.0 ó Ȯ强(scalability) + ̱ ȭ ߴ. ⺻ κ ȭ + Ѵ. ׷ Ͻ Ȥ ɿ + ū ִ. ġ 2.0 ϱ + ڰ ִ ɼ Ѵ.  + ɼ ϵ ü Ȱϵ + ϴ ݸ,  ɼ ӵ Ѵ.

+ +
+ +
top
+
+

ϵ ü ؼ

+ + + +

ɿ ū ִ ޸𸮴. + û ð ڰ " ٰ" ϰ + ø⶧ ϸ ȵȴ. ڴ + ϰ ٽ Ͽ ϰ Ѵ. MaxClients þ Ͽ + ڽ ʵ ؾ + Ѵ. ϴ: top + μ ġ μ ޸ 뷮 + ˾Ƴ, ü 밡 ޸𸮿 ٸ μ + .

+ +

ϴ: CPU, Ʈī, + ũ, ⼭ " " ؼ ؾ + Ѵ.

+ +

ü ˾Ƽ ̴. ׷ Ϲ + ϴٰ Ǹ  ħ ִ:

+ +
    +
  • +

    ü ֽ ġ Ѵ. + ü ۻ ֱ TCP ð ̺귯 + ӵ ߴ.

    +
  • + +
  • +

    ü sendfile(2) ýȣ + Ѵٸ, ̸ ϱ ̳ ġ ġϿ + ȮѴ. ( , 2.4 ̻ Ѵ. + Solaris 8 ʱ ġ ʿϴ.) ϴ ý̶ + ġ 2 sendfile Ͽ CPU + ϸ մ.

    +
  • +
+ +
top
+
+

ؼ

+ + + + + +

HostnameLookups DNS

+ + + +

ġ 1.3 HostnameLookups ⺻ + On̿. û ġ DNS ˻ + ϹǷ û . ġ 1.3 + ⺻ Off Ǿ. α ּҸ + ȣƮ ȯϷ αó α׷ ϳ, + ġ Ե logresolve + α׷ ϶.

+ +

αó ۾ ɿ ǿ ġǷ + ϴ ƴ ٸ ǻͿ α óϱ + ٶ.

+ +

Allow + from domain̳ Deny from domain + þ Ѵٸ (, IP ּҰ ƴ ȣƮ̳ θ + Ѵٸ) ε ߺ- DNS ˻ (˻ Ƿ + Ǿ Ȯϱ ٽ ˻) ؾ Ѵ. ׷Ƿ + ̱ ̷ þ ϸ ̸ IP + ּҸ Ѵ.

+ +

<Location /server-status> + þ ϶. + ǿ ´ û DNS ȸ Ѵ. + .html .cgi ϸ DNS ˻ + ϴ :

+ +

+ HostnameLookups off
+ <Files ~ "\.(html|cgi)$">
+ + HostnameLookups on
+
+ </Files> +

+ +

׷ CGI DNS ʿ ̶, ʿ Ư + CGI gethostbyname ȣ ϵ غ + ִ.

+ + + +

FollowSymLinks SymLinksIfOwnerMatch

+ + + +

URL Options FollowSymLinks + ʰ Options SymLinksIfOwnerMatch + ϸ ġ ɺũ ˻ϱ ýȣ + ѹ ؾ Ѵ. ϸ κи ѹ ȣ + Ѵ. , :

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + Options SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

/index.html URI û ִٰ . + ׷ ġ /www, /www/htdocs, + /www/htdocs/index.html + lstat(2) ȣѴ. lstats + ij ʱ⶧ û Ź + ۾ Ѵ. ¥ ɺũ ˻縦 Ѵٸ + ִ:

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + Options FollowSymLinks
+
+ </Directory>
+
+ <Directory /www/htdocs>
+ + Options -FollowSymLinks +SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

ּ DocumentRoot δ ˻ + ʴ´. DocumentRoot ۿ ִ η Alias RewriteRule + 쿡 ʿϴ. ɺũ + ʰ ְ , + FollowSymLinks ϰ, + SymLinksIfOwnerMatch ȵȴ.

+ + + +

AllowOverride

+ + + +

URL overrides Ѵٸ ( + .htaccess ) ġ ϸ κи + .htaccess õѴ. ,

+ +

+ DocumentRoot /www/htdocs
+ <Directory />
+ + AllowOverride all
+
+ </Directory> +

+ +

/index.html URI û ִٰ . + ġ /.htaccess, /www/.htaccess, + /www/htdocs/.htaccess õѴ. + ذå Options FollowSymLinks + ϴ. ְ Ͻýۿ ؼ ׻ + AllowOverride None Ѵ.

+ + + +

+ + + +

ϰ ¥ 󿡵 ִٸ + ´. ̵ Ϻ ۴. + ִ. ϵī带 ϴ :

+ +

+ DirectoryIndex index +

+ +

Ѵ:

+ +

+ DirectoryIndex index.cgi index.pl index.shtml index.html +

+ +

տ д.

+ +

, 丮 ϵ ã MultiViews + ٴ, ϸ ʿ ִ + type-map + ϶.

+ +

Ʈ ʿϴٸ Options + MultiViews þ ϱ⺸ type-map + ϶. ڼ + type-map ϶.

+ + + +

޸𸮴 (memory-mapping)

+ + + +

, server-side-include óϴ ġ + 2.0 ü mmap(2) + Ѵٸ ޸𸮴Ѵ.

+ +

÷ ޸𸮴 Ѵ. ׷ + ޸𸮴 Ʈ + ġ 찡 ִ:

+ +
    +
  • +

     ü mmap CPU + read(2) ŭ Ȯ强 ʴ. + , μ Solaris ġ 2.0 + mmap ó + Ѵ.

    +
  • + +
  • +

    NFS Ʈ Ͻýۿ ִ ޸𸮴ϴ + ߿ ٸ NFS Ŭ̾Ʈ ִ μ + ų ũ⸦ ̸, μ + ޸𸮴 ϳ bus error ߻ + ִ.

    +
  • +
+ +

ǿ شϸ ϴ ޸𸮴 + ʵ EnableMMAP off ؾ Ѵ. (: + þ 丮 ִ.)

+ + + +

Sendfile

+ + + +

ġ ü sendfile(2) ϸ + Ŀ sendfile Ͽ -- , Ҷ + -- ִ.

+ +

÷ sendfile ϸ read send + ʿ䰡  . ׷ sendfile ϸ + ġԵǴ 찡 ִ:

+ +
    +
  • +

    sendfile ߸Ǿ ý + ߰ ϴ ÷ ִ. Ư ٸ ǻͿ + Ͽ sendfile ߸ ǻͷ + 쿡 ϴ.

    +
  • +
  • +

    Ŀ ڽ ij Ͽ NFS Ʈ + 찡 ִ.

    +
  • +
+ +

ǿ شϸ sendfile ʵ + EnableSendfile off ؾ Ѵ. (: + þ 丮 ִ.)

+ + + +

μ

+ + + +

ġ 1.3 MinSpareServers, MaxSpareServers, StartServers + ġũ ū ƴ. Ư ġ ۾ + ϱ ڽļ ٴٸ "" Ⱓ + ʿߴ. ó StartServers ڽ + , MinSpareServers + ʴ ڽ ϳ . ׷ StartServers ⺻ + 5 Ŭ̾Ʈ 100 ÿ ϸ + ϸ óϱ⿡ ڽ 95ʰ ɷȴ. + ʴ , 10а + ϴ ġũ ſ ڰ ´.

+ +

ʴ Ѱ Ģ ڽ ϸ鼭 + ߴ. ǻͰ ڽ ϴ ٻڸ + û . ׷ Ģ ġ ü + ɿ ǿ ־ Ͽ. ġ 1.3 ʴ Ѱ + Ģ ȭǾ. ڵ ڽ Ѱ , 1 , + ΰ , 1 , װ , ̷ ʴ + ڽ 32 鶧 Ѵ. ڽļ MinSpareServers ٴٸ + ߴѴ.

+ +

ӵ MinSpareServers, MaxSpareServers, StartServers ʿ䰡 . ʿ + ڽ 4 ̻ ϸ ErrorLog Ѵ. ̷ + ̸ ϱ ٶ. + mod_status ̴.

+ +

μ Ͽ MaxRequestsPerChild + μ Ѵ. ⺻ ڽĴ ó û + ٴ 0̴. 30 + ſ ִٸ, ʿ䰡 + ִ. SunOS Solaris Ѵٸ, ޸⶧ + 10000 ϶.

+ +

(keep-alive) Ѵٸ ڽĵ ̹ + ῡ ߰ û ٸ ƹ͵ ʱ⶧ + ٻڴ. KeepAliveTimeout + ⺻ 15 ʴ ̷ ּȭѴ. Ʈ + 뿪 ڿ ° Ѵ. + κ ⶧  쿡 + 60 ̻ ø .

+ + + +
top
+
+

Ͻ ؼ

+ + + +

MPM

+ + + +

ġ 2.x ó + (MPMs)̶ ü ִ ȭ Ѵ. ġ + Ҷ MPM ؾ Ѵ. beos, + mpm_netware, mpmt_os2, + mpm_winnt Ư ÷ + ִ MPM ִ. Ϲ н ý MPM + ߿ ϳ ִ. ӵ + Ȯ强(scalability)  MPM ߳Ŀ ޷ȴ:

+ +
    + +
  • worker MPM ڽ μ + 带 Ѵ. ѹ + Ѵ. Ϲ worker prefork MPM + ޸𸮸 ϹǷ ŷ ϴ.
  • + +
  • prefork MPM 尡 Ѱ ڽ + μ Ѵ. μ ѹ + Ѵ. ýۿ prefork ӵ worker + , ޸𸮸 Ѵ. Ȳ + 带 ʴ prefork worker + : 忡 (thread-safe) + ڰ ְ, + ÷ ִ.
  • + +
+ +

MPM ٸ MPM ڼ MPM ϱ ٶ.

+ + + +

+ + + +

޸ 뷮 ɿ ߿ ̱⶧ + ʴ غ. DSO ߴٸ + ⿡ LoadModule þ ּóϸ + ȴ. ׷ ϰ Ͽ Ʈ ̵ + ϴ 캼 ִ.

+ +

ݴ ġ Ͽ ũִٸ + ʴ ϱ ġ ؾ + Ѵ.

+ +

⼭ 翬  ϰ + ǹ . Ʈ ٸ. ׷ Ƹ + ּ mod_mime, + mod_dir, mod_log_config + ̴. Ʈ α ʿٸ + mod_log_config  ȴ. ׷ õ + ʴ´.

+ + + +

Atomic

+ + + +

mod_cache ֱ + worker MPM APR atomic API Ѵ. API 淮 + ȭ atomic Ѵ.

+ +

⺻ APR ü/CPU ÷ ȿ + Ͽ Ѵ. , ֽ + CPU ϵ atomic compare-and-swap (CAS) + ϴ ɾ ִ. ׷  ÷ APR ̷ + ɾ CPU ȣȯ mutex + ⺻ Ѵ. ̷ ÷ ġ + Ҷ ġ ֽ CPU ȹ̶, + ġ Ҷ --enable-nonportable-atomics + ɼ Ͽ atomic ִ:

+ +

+ ./buildconf
+ ./configure --with-mpm=worker --enable-nonportable-atomics=yes +

+ +

--enable-nonportable-atomics ɼ + ÷ ִ:

+ +
    + +
  • SPARC Solaris
    + ⺻ APR Solaris/SPARC mutex atomic + Ѵ. ׷ Ҷ + --enable-nonportable-atomics ϸ + APR ϵ compare-and-swap SPARC + v8plus ɾ Ѵ. ɼ ϸ atomic + ȿ (CPU ϰ + ȭ ϴ), UltraSPARC + Ĩ ִ. +
  • + +
  • Linux on x86
    + ⺻ APR mutex atomic + Ѵ. ׷ Ҷ + --enable-nonportable-atomics ϸ + APR ϵ compare-and-swap 486 + ɾ Ѵ. ȿ atomic , + 486 ̻ Ĩ (386 ȵȴ) + ִ. +
  • + +
+ + + +

mod_status ExtendedStatus On

+ + + +

ġ Ҷ mod_status ϰ + Ҷ ExtendedStatus On ϸ ġ + û gettimeofday(2)(Ȥ ü + times(2)) ι ȣϰ (1.3 ) + time(2) ߰ ȣѴ. + ۽ð ʿϱ ̴. ֻ + (⺻) ExtendedStatus off Ѵ.

+ + + +

accept ȭ -

+ + + +

:

+

Ʒ ġ 2.0 + ʴ. ȿ , ؼ + ϱ ٶ.

+
+ +

н API Ѵ. Ʈ + Ȥ ּҸ ٸ Listen Ѵٰ . + ˻ϱ ġ + select(2) Ѵ. select(2) + Ͽ ٸ ִ Ȥ ּ + Ѱ ִ ˷ش. ġ ڽ ְ, + ִ ڽ ÿ ο ˻Ѵ. + ϴ ( ڵ忡 ʾҴ. + ϱ 뵵 .):

+ +

+ for (;;) {
+ + for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ process the new_connection;
+
+ } +

+ +

׷ ܼ ɰ (starvation) + ִ. ڽ ÿ ݺ ϸ, + û ٸ select . ̶ +  Ͽ û ϳ ڽ  + ( ڽ ü Ÿֿ̹ ٸ). + ̵ acceptϱ õѴ. ׷ + ( Ḹ ̶) ڽĸ ϰ, + accept . ׷ ڽĵ + û ϵ , ο + û ͼ ڽ ﶧ ִ. + ̷ PR#467 + ó Ǿ. ּ ΰ ذå ִ.

+ +

Ѱ ʵ (non-blocking) + ̴. ڽ accept ص + ʰ, ִ. ׷ CPU ð Ѵ. + select ڽ 10 ְ, + Ѱ Դٰ . ׷ ڽ 9  + acceptϱ õϰ ϸ ƹ + ϵ ʰ ٽ select ݺѴ. ٽ + select ƿ  ڽĵ ٸ Ͽ + û ʴ´. (μ ǻͿ) + ڽ ŭ CPU ִ 幮 찡 ƴ϶ + ذå ƺ ʴ´.

+ +

ٸ ġ ϴ ݺ + ڽĸ 鿩. ݺ (̸ + ):

+ +

+ for (;;) {
+ + accept_mutex_on ();
+ for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ accept_mutex_off ();
+ process the new_connection;
+
+ } +

+ +

accept_mutex_on accept_mutex_off + Լ mutex  + Ѵ. ѹ ڽĸ mutex ִ. + mutex ϴ ̴. (1.3 + ) src/conf.h (1.3 ) + src/include/ap_config.h ǵִ.  + ŰĴ (locking) ʱ⶧, ̷ + ŰĿ Listen þ ϸ + ϴ.

+ +

AcceptMutex þ Ͽ + mutex ִ.

+ +
+
AcceptMutex flock
+ +
+

ױ flock(2) + ýȣ Ѵ ( ġ LockFile þ ).

+
+ +
AcceptMutex fcntl
+ +
+

ױ fcntl(2) + ýȣ Ѵ ( ġ LockFile þ ).

+
+ +
AcceptMutex sysvsem
+ +
+

(1.3 ) SysV  Ͽ + mutex Ѵ. SysV + ۿ ִ. ϳ ġ  + ʰ ִ ̴ (ipcs(8) manpage + ). ٸ ϳ uid ϴ + CGI (, suexec + cgiwrapper ʴ CGI) + API Ͽ 񽺰źΰ ִ + ̴. ̷ IRIX ŰĿ + ʴ´ (κ IRIX ǻͿ + ġ ̴).

+
+ +
AcceptMutex pthread
+ +
+

(1.3 ) POSIX mutex ϱ⶧ + POSIX Ծ ŰĶ + 밡, (2.5 ) Solaris װ͵ Ư + ϴ ϴ. õغٸ + 缭 ϴ Ѵ. + 븸 ϴ ϴ .

+
+ +
AcceptMutex posixsem
+ +
+

(2.0 ) POSIX  Ѵ. + mutex μ 尡 ״´ٸ(segfault) + ȸ ʾƼ .

+
+ +
+ +

ýۿ Ͽ ȭ(serialization) + ִٸ ϴ ڵ带 APR ߰ ġ ִ.

+ +

غ ٸ κ + ݺ ȭϴ ̴. , μ  鿩 + ̴. ڽ ÿ ־ + ȭ ü 뿪 Ȱ ϴ μ + ǻͿ ִ. 캼 κ, + ſ ȭ ʾƼ 켱 .

+ +

ֻ ؼ Listen ʴ + ̴̻. ׷ Ѵ.

+ + + +

accept ȭ - Ѱ

+ + + +

߼ , Ѱ + ? Ҷ ڽ + accept(2) ֱ⶧ ̷л + ߻ ʰ, . ׷ δ + տ ʴ (non-blocking) ߻ϴ + "ȸ(spinning)" ߰ ִ. κ TCP + ϸ Ŀ accept ִ + ڽ 쵵 ִ. μ Ѱ + ڿ ư, Ŀο ȸϿ + ߰ϸ ٽ ܴ. ڿ ڵ忡 + ̷ ȸ , и Ѵ. ׷ ߼ + ʴ ϰ ϸ ̴ ʿ ൿ + Ͼ.

+ +

׷ 츮 ŰĿ Ѱ 쿡 + ȭϸ "" ߰ߴ. ׷ κ + ⺻ ȭ Ѵ. (Ŀ 2.0.30, + 128Mb ޸𸮿 Pentium pro) Ѱ + ȭϸ 쿡 ʴ û 3% ̸ + پ. ׷ ȭ û 100ms + ߻ߴ. Ƹ LAN ߻ϴ + ἱ ̴. Ѱ ȭ + SINGLE_LISTEN_UNSERIALIZED_ACCEPT + Ѵ.

+ + + +

Close (lingering)

+ + + +

+ draft-ietf-http-connection-00.txt 8 ϵ + Ƿ, + ־ Ѵ (TCP ֹ̰, + ̴). ٸ + , ġ 1.2 Ȯ ؿԴ.

+ +

ϰ ġ ߰ н + ߻ߴ. TCP Ծ + FIN_WAIT_2 ŸӾƿ ִٰ ʾ, + ʾҴ. ŸӾƿ ýۿ ġ 1.2 + FIN_WAIT_2 · . + ۻ簡 ϴ ֽ TCP/IP ġ + Ͽ ذ ִ. ׷ ۻ簡 ġ ǥ + ʴ 찡 (, SunOS4 -- ҽ ̼ ִ + ġ ) ֱ⶧ + ʱ ߴ.

+ +

ΰ. ϳ ɼ SO_LINGER + ϴ ̴. ׷ κ TCP/IP + ɼ ùٷ ʾҴ. ùٷ ÿ + (, 2.0.31) + cpu ƸԴ´.

+ +

ġ (http_main.c ִ) + lingering_close Լ Ѵ. Լ + :

+ +

+ void lingering_close (int s)
+ {
+ + char junk_buffer[2048];
+
+ /* shutdown the sending side */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ + select (s for reading, 2 second timeout);
+ if (error) break;
+ if (s is ready for reading) {
+ + if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ + break;
+
+ }
+ /* just toss away whatever is here */
+
+ }
+
+ }
+
+ close (s);
+
+ } +

+ +

ڵ CPU , + ʿϴ. HTTP/1.1 θ + Ѵٸ(persistent), ޴ û + óϸ鼭 ̴. ϰԵ + NO_LINGCLOSE Ͽ + , ʴ´. Ư HTTP/1.1 + (; ¿ ٸ + ʰ û ) + lingering_close ʼ̴ (׸ + ⶧ ϱ ٶ ̴).

+ + + +

Scoreboard

+ + + +

ġ θ ڽ scoreboard + Ѵ. ̻δ scoreboard ޸𸮷 ؾ + Ѵ. 츮 ڰ ش ü ְų + ޸𸮸 Ͽ Ѵ. + ũ ִ Ͽ Ѵ. ũ + ִ ŷڵ (ɵ ). + src/main/conf.h Ͽ ϴ Űĸ + ãƼ USE_MMAP_SCOREBOARD Ȥ + USE_SHMGET_SCOREBOARD ȮѴ. + ϳ ( Բ HAVE_MMAP̳ + HAVE_SHMGET ) ϸ ޸ ڵ带 + Ѵ. ý ٸ ޸𸮸 Ѵٸ + src/main/http_main.c Ͽ ġ + ޸𸮸 ֵ (hook) ߰϶. ( + ġ 츮 ֱ ٶ.)

+ +
: ġ ġ 1.2 + ޸𸮸 ϱ ߴ. ʱ ġ + ŷڵ ̴.
+ + + +

DYNAMIC_MODULE_LIMIT

+ + + +

о ʴ´ٸ ( ̶ + ̱ д´ٸ Ƹ + о ̴), Ҷ + -DDYNAMIC_MODULE_LIMIT=0 ߰Ѵ. ׷ + о̱ Ҵϴ ޸𸮸 Ѵ.

+ + + +
top
+
+

η: ýȣ ڼ мϱ

+ + + +

Solaris 8 worker MPM ġ 2.0.38 + ýȣ (trace)̴. Ʒ ɾ Ͽ + :

+ +

+ truss -l -p httpd_child_pid. +

+ +

-l ɼ ϸ truss ýȣ + ϴ LWP (lightweight process, 淮 μ--Solaris + Ŀμ ) ID Ѵ.

+ +

ٸ ýۿ strace, ktrace, + par ýȣ ִ. + ϴ.

+ +

Ŭ̾Ʈ ũⰡ 10KB ûѴ. + û ʰų ϴ û + ſ ٸ (δ ſ ˾ƺ ).

+ +
/67:    accept(3, 0x00200BEC, 0x00200C0C, 1) (sleeping...)
+/67:    accept(3, 0x00200BEC, 0x00200C0C, 1)            = 9
+ +

(listener) 尡 LWP #67 + ִ.

+ +
accept(2) ȭ ָ϶. + Ʈ ٸʴ ÷ worker MPM + ⺻ ȭ accept Ѵ.
+ +
/65:    lwp_park(0x00000000, 0)                         = 0
+/67:    lwp_unpark(65, 1)                               = 0
+ +

޾Ƶ̰(accept) + worker 带 û óϰ Ѵ. Ʒ Ͽ + û óϴ worker 尡 LWP #65 ִ.

+ +
/65:    getsockname(9, 0x00200BA4, 0x00200BC4, 1)       = 0
+ +

ȣƮ ϱ ġ ޾Ƶ + (local) ּҸ ˾ƾ Ѵ. (ȣƮ + ʰų Listen + þ ϵī ּҸ ) + ȣ ִ. ׷ ̷ ȭ ۾ + ȵִ.

+ +
/65:    brk(0x002170E8)                                 = 0
+/65:    brk(0x002190E8)                                 = 0
+ +

brk(2) ȣ (heap) ޸𸮸 ҴѴ. + κ û ó ü ޸ + Ҵ(apr_pool apr_bucket_alloc) + ϱ⶧ ýȣ Ͽ ýȣ Ⱑ + 幰. Ͽ ڸ ü ޸ Ҵڰ + ޸𸮺 malloc(3) ȣѴ.

+ +
/65:    fcntl(9, F_GETFL, 0x00000000)                   = 2
+/65:    fstat64(9, 0xFAF7B818)                          = 0
+/65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
+/65:    fstat64(9, 0xFAF7B818)                          = 0
+/65:    getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
+/65:    setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
+/65:    fcntl(9, F_SETFL, 0x00000082)                   = 0
+ +

worker Ŭ̾Ʈ (ϱ 9) + (non-blocking) · ٲ۴. setsockopt(2) + getsockopt(2) ȣ Solaris libc Ͽ + fcntl(2)  óϴ ش.

+ +
/65:    read(9, " G E T   / 1 0 k . h t m".., 8000)     = 97
+ +

worker Ŭ̾Ʈ û д´.

+ +
/65:    stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
+/65:    open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10
+ +

Options FollowSymLinks + AllowOverride None̴. ׷ û ϰ + 丮 lstat(2)ϰų + .htaccess ˻ ʿ䰡 . + ˻ϱ, 1) ִ, 2) 丮 ƴ Ϲ, + stat(2) ȣ⸸ ϸ ȴ.

+ +
/65:    sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C)      = 10269
+ +

ѹ sendfilev(2) ýȣ + HTTP û ִ. Sendfile δ + ü ٸ. ٸ ý̶ sendfile(2) + ȣϱ write(2) + writev(2) ȣ Ѵ.

+ +
/65:    write(4, " 1 2 7 . 0 . 0 . 1   -  ".., 78)      = 78
+ +

write(2) ȣ ٷα(access log) û + Ѵ. Ͽ time(2) ȣ ָ϶. + ġ 1.3 ޸ ġ 2.0 ð ˱ + gettimeofday(3) Ѵ. + gettimeofday ȭ Solaris + ü Ϲ ýȣ δ .

+ +
/65:    shutdown(9, 1, 1)                               = 0
+/65:    poll(0xFAF7B980, 1, 2000)                       = 1
+/65:    read(9, 0xFAF7BC20, 512)                        = 0
+/65:    close(9)                                        = 0
+ +

worker ݱ(lingering close)Ѵ.

+ +
/65:    close(10)                                       = 0
+/65:    lwp_park(0x00000000, 0)         (sleeping...)
+ +

worker ݰ, + (listener) 尡 ٸ Ҵ + Ѵ.

+ +
/67:    accept(3, 0x001FEB74, 0x001FEB94, 1) (sleeping...)
+ +

׵ ( worker ۾̸ + 带 ߴ worker MPM 帧 ɿ ) + worker 忡 Ҵڸ ٸ ޾Ƶ ִ. + Ͽ , worker 尡 + óϴ accept(2) (û ſ + ׻) Ͼ ִ.

+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/perf-tuning.html.tr.utf8 b/rubbos/app/apache2/manual/misc/perf-tuning.html.tr.utf8 new file mode 100644 index 00000000..44b6dba2 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/perf-tuning.html.tr.utf8 @@ -0,0 +1,1100 @@ + + + +Apache’de Başarımın Arttırılması - Apache HTTP Sunucusu + + + + + +
<-
+

Apache’de Başarımın Arttırılması

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ + +

Apache 2.x, esneklik, taşınabilirlik ve başarım arasında bir denge + sağlamak üzere tasarlanmış genel amaçlı bir HTTP sunucusudur. Başka + sunucularla kıyaslama denemelerinde öne geçmek üzere tasarlanmamış + olsa da Apache 2.x gerçek yaşamda karşılaşılan pek çok durumda oldukça + yüksek bir başarıma ulaşacak yetenektedir.

+ +

Apache 1.3 ile karşılaştırıldığında 2.x sürümleri toplam veri hızını + ve ölçeklenebilirliği arttırmak için pek çok en iyileme seçeneği + içerir. Bu iyileştirmelerin pek çoğu zaten öntanımlı olarak etkin + olmakla birlikte derleme ve kullanım sırasında başarımı önemli ölçüde + etkileyebilen yapılandırma seçenekleri de mevcuttur. Bu belgede, bir + Apache 2.x kurulumunda sunucu yöneticisinin sunucunun başarımını + arttırmak amacıyla yapılandırma sırasında neler yapabileceğinden + bahsedilmiştir. Bu yapılandırma seçeneklerinden bazıları, httpd’nin + donanımın ve işletim sisteminin olanaklarından daha iyi + yararlanabilmesini sağlarken bir kısmı da daha hızlı bir sunum için + yöneticinin işlevsellikten ödün verebilmesini olanaklı kılar.

+ +
+ +
top
+
+

Donanım ve İşletim Sistemi ile İlgili Konular

+ + + +

HTTP sunucusunun başarımını etkileyen en önemli donanım bellektir + (RAM). Bir HTTP sunucusu asla takaslama yapmamalıdır. Çünkü takaslama, + kullanıcının "yeterince hız" umduğu noktada sunumun gecikmesine sebep + olur. Böyle bir durumda kullanıcılar yüklemeyi durdurup tekrar + başlatma eğilimindedirler; sonuçta yük daha da artar. MaxClients yönergesinin değerini + değiştirerek takaslamaya sebep olabilecek kadar çok çocuk süreç + oluşturulmasını engelleyebilirsiniz ve böyle bir durumda bunu mutlaka + yapmalısınız. Bunun için yapacağınız işlem basittir: top + benzeri bir araç üzerinden çalışan süreçlerinizin bir listesini alıp + Apache süreçlerinizin ortalama büyüklüğünü saptayıp, mevcut bellekten + bir kısmını diğer süreçler için ayırdıktan sonra kalan miktarı bu + değere bölerseniz yönergeye atayacağınız değeri bulmuş olursunuz.

+ +

Donanımın diğer unsurları için kararı siz verin: Daha hızlı işlemci, + daha hızlı ağ kartı, daha hızlı disk; daha hızlının ne kadar hızlı + olacağını deneyimlerinize bağlı olarak tamamen sizin ihtiyaçlarınız + belirler.

+ +

İşletim sistemi seçimi büyük oranda yerel ilgi konusudur. Fakat yine + de, genelde yararlılığı kanıtlanmış bazı kurallar bu seçimde size + yardımcı olabilir:

+ +
    +
  • +

    Seçtiğiniz işletim sisteminin (çekirdeğin) en son kararlı + sürümünü çalıştırın. Bir çok işletim sistemi, son yıllarda TCP + yığıtları ve evre kütüphaneleri ile ilgili belirgin iyileştirmeler + yapmışlar ve yapmaktadırlar.

    +
  • + +
  • +

    İşletim sisteminiz sendfile(2) sistem çağrısını + destekliyorsa bunun etkinleştirilebildiği sürümün kurulu olması + önemlidir. (Örneğin, Linux için bu, Linux 2.4 ve sonraki sürümler + anlamına gelirken, Solaris için Solaris 8’den önceki sürümlerin + yamanması gerektirdiği anlamına gelmektedir.) + sendfile işlevinin desteklendiği sistemlerde Apache 2 + duruk içeriği daha hızlı teslim etmek ve işlemci kullanımını + düşürmek amacıyla bu işlevselliği kullanacaktır.

    +
  • +
+ +
top
+
+

Çalışma Anı Yapılandırması ile İlgili Konular

+ + + + + +

HostnameLookups ve DNS ile ilgili diğer konular

+ + + +

Apache 1.3 öncesinde, HostnameLookups yönergesinin öntanımlı değeri + On idi. İstek yerine getirilmeden önce bir DNS sorgusu + yapılmasını gerektirmesi sebebiyle bu ayarlama her istekte bir + miktar gecikmeye sebep olurdu. Apache 1.3’ten itibaren yönergenin + öntanımlı değeri Off yapılmıştır. Eğer günlük + dosyalarınızda konak isimlerinin bulunmasını isterseniz, Apache ile + birlikte gelen logresolve programını + kullanabileceğiniz gibi günlük raporlarını çözümleyen Apache ile + gelmeyen programlardan herhangi birini de kullanabilirsiniz.

+ +

Günlük dosyaları üzerindeki bu işlemi sunucu makinesi dışında + günlük dosyasının bir kopyası üzerinde yapmanızı öneririz. Aksi + takdirde sunucunuzun başarımı önemli ölçüde etkilenebilir.

+ +

Allow veya + Deny + yönergelerinde IP adresi yerine bir konak veya alan ismi + belirtirseniz, iki DNS sorguluk bir bedel ödersiniz (biri normal, + diğeri IP taklidine karşı ters DNS sorgusu). Başarımı en iyilemek + için bu yönergelerde mümkün olduğunca isim yerine IP adreslerini + kullanınız.

+ +

HostnameLookups + yönergelerinin <Location /server-status> gibi + bölüm yönergelerinin içinde de yer alabileceğini unutmayın. Bu gibi + durumlarda DNS sorguları sadece istek kuralla eşleştiği takdirde + yapılacaktır. Aşağıdaki örnekte .html ve + .cgi dosyalarına yapılan istekler hariç DNS sorguları + iptal edilmektedir:

+ +

+ HostnameLookups off
+ <Files ~ "\.(html|cgi)$">
+ + HostnameLookups on
+
+ </Files> +

+ +

Yine de bazı CGI’lerin DNS isimlerine ihtiyacı olursa bu CGI’lerin + bu ihtiyaçlarına yönelik olarak gethostbyname çağrıları + yapabileceğini gözardı etmeyiniz.

+ + + +

FollowSymLinks ve + SymLinksIfOwnerMatch

+ + + +

URL uzayınızda geçerli olmak üzere bir Options + FollowSymLinks yoksa veya Options + SymLinksIfOwnerMatch yönergeleri varsa, Apache her sembolik + bağın üzerinde bazı sınamalar yapmak için ek bir sistem çağrısından + başka istenen her dosya için de ayrı bir çağrı yapacaktır.

+ +

Örnek:

+ DocumentRoot /siteler/htdocs
+ <Directory />
+ + Options SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

Bu durumda /index.html için bir istek yapıldığında + Apache, /siteler, /siteler/htdocs ve
+ /siteler/htdocs/index.html üzerinde + lstat(2) çağrıları yapacaktır. lstat + sonuçları önbelleğe kaydedilmediğinden bu işlem her istekte + yinelenecektir. Amacınız gerçekten sembolik bağları güvenlik + açısından sınamaksa bunu şöyle yapabilirsiniz:

+ +

+ DocumentRoot /siteler/htdocs
+ <Directory />
+ + Options FollowSymLinks
+
+ </Directory>
+
+ <Directory /sitem/htdocs>
+ + Options -FollowSymLinks +SymLinksIfOwnerMatch
+
+ </Directory> +

+ +

Böylece DocumentRoot altındaki + dosyalar için fazladan bir çağrı yapılmasını engellemiş olursunuz. + Eğer bazı bölümlerde Alias, RewriteRule gibi yönergeler üzerinden belge kök + dizininizin dışında kalan dosya yollarına sahipseniz benzer + işlemleri onlar için de yapmalısınız. Sembolik bağ koruması yapmamak + suretiyle başarımı arttırmak isterseniz, FollowSymLinks + seçeneğini her yerde etkin kılın ve + SymLinksIfOwnerMatch seçeneğini asla + etkinleştirmeyin.

+ + + +

AllowOverride

+ + + +

Genellikle .htaccess dosyaları üzerinden yapıldığı + gibi URL uzayınızda geçersizleştirmelere izin veriyorsanız, Apache + her dosya bileşeni için bu .htaccess dosyalarını açmaya + çalışacaktır.

+ +

Örnek:

+ DocumentRoot /siteler/htdocs
+ <Directory />
+ + AllowOverride all
+
+ </Directory> +

+ +

Bu durumda /index.html sayfasına yapılan bir istek için + Apache, /.htaccess, /siteler/.htaccess ve + /siteler/htdocs/.htaccess dosyalarını açmaya + çalışacaktır. Çözüm Options FollowSymLinks durumunun + benzeridir; başarımı arttırmak için dosya sisteminizin her yerinde + AllowOverride None olsun.

+ + + +

Dil Uzlaşımı

+ + + +

Başarımı son kırıntısına kadar arttırmak istiyorsanız, mümkünse + içerik dili uzlaşımı da yapmayın. Dil uzlaşımından yararlanmak + isterken büyük başarım kayıplarına uğrayabilirsiniz. Böyle bir + durumda sunucunun başarımını arttırmanın tek bir yolu vardır.

+ +

+ DirectoryIndex index +

+ +

Yukarıdaki gibi bir dosya ismi kalıbı kullanmak yerine, aşağıdaki + gibi seçenekleri tam bir liste halinde belirtin:

+ +

+ DirectoryIndex index.cgi index.pl index.shtml index.html +

+ +

Buradaki sıralama öncelik sırasını belirler; yani, + öncelikli olmasını istediğiniz seçeneği listenin başına + yazmalısınız.

+ +

İstenen dosya için MultiViews kullanarak dizini + taratmak yerine, gerekli bilgiyi tek bir dosyadan okutmak suretiyle + başarımı arttırabilirsiniz. Bu amaçla türeşlem + (type-map) dosyaları kullanmanız yeterli olacaktır.

+ +

Sitenizde içerik dili uzlaşımına gerek varsa, bunu Options + MultiViews yönergesi üzerinden değil, türeşlem dosyaları + kullanarak yapmayı deneyin. İçerik dili uzlaşımı ve türeşlem + dosyalarının oluşturulması hakkında daha ayrıntılı bilgi edinmek + için İçerik Uzlaşımı + belgesine bakınız.

+ + + +

Bellek Eşlemleri

+ + + +

Apache’nin SSI sayfalarında olduğu gibi teslim edilecek dosyanın + içeriğine bakma gereği duyduğu durumlarda, eğer işletim sistemi + mmap(2) ve benzerlerini destekliyorsa çekirdek normal + olarak dosyayı belleğe kopyalayacaktır.

+ +

Bazı platformlarda bu belleğe eşleme işlemi başarımı arttırsa da + başarımın veya httpd kararlılığının zora girdiği durumlar + olabilmektedir:

+ +
    +
  • +

    Bazı işletim sistemlerinde işlemci sayısı artışına bağlı + olarak, mmap işlevi read(2) kadar iyi + ölçeklenmemiştir. Örneğin, çok işlemcili Solaris sunucularda + mmap iptal edildiği takdirde içeriği sunucu + tarafından işlenen dosyalar üzerinde bazen daha hızlı işlem + yapılabilmektedir.

    +
  • + +
  • +

    Belleğe kopyalanacak dosya NFS üzerinden bağlanan bir dosya + sistemindeyse ve dosya başka bir NFS istemcisi makine tarafından + silinmiş veya dosyanın boyutu değiştirilmişse sunucunuz dosyaya + tekrar erişmeye çalıştığında bir hata alabilecektir.

    +
  • +
+ +

Böyle durumların olasılık dahilinde olduğu kurulumlarda içeriği + sunucu tarafından işlenecek dosyaların belleğe kopyalanmaması için + yapılandırmanıza EnableMMAP off satırını ekleyiniz. + (Dikkat: Bu yönerge dizin seviyesinde geçersizleştirilebilen + yönergelerdendir.)

+ + + +

sendfile

+ + + +

Apache’nin duruk dosyalarda olduğu gibi teslim edilecek dosyanın + içeriğine bakmadığı durumlarda, eğer işletim sistemi + sendfile(2) desteğine sahipse çekirdek normal olarak bu + desteği kullanacaktır.

+ +

Bazı platformlarda sendfile kullanımı, okuma ve yazma + işlemlerinin ayrı ayrı yapılmamasını sağlasa da + sendfile kullanımının httpd kararlılığını bozduğu bazı + durumlar sözkonusudur:

+ +
    +
  • +

    Bazı platformlar derleme sisteminin saptayamadığı bozuk bir + sendfile desteğine sahip olabilir. Özellikle + derleme işleminin başka bir platformda yapılıp + sendfile desteği bozuk bir makineye kurulum + yapıldığı durumlarda bu desteğin bozuk olduğu + saptanamayacaktır.

    +
  • +
  • +

    Çekirdek, NFS üzerinden erişilen ağ dosyalarını kendi önbelleği + üzerinden gerektiği gibi sunamayabilir.

    +
  • +
+ +

Böyle durumların olasılık dahilinde olduğu kurulumlarda içeriğin + sendfile desteğiyle teslim edilmemesi için + yapılandırmanıza EnableSendfile off satırını ekleyiniz. + (Dikkat: Bu yönerge dizin seviyesinde geçersizleştirilebilen + yönergelerdendir.)

+ + + +

Süreç Oluşturma

+ + + +

Apache 1.3 öncesinde MinSpareServers, MaxSpareServers ve StartServers ayarları, başka sunucularla kıyaslama + denemelerinde olağanüstü kötü sonuçlar alınmasına sebep olmaktaydı. + Özellikle uygulanan yükü karşılamaya yetecek sayıda çocuk süreç + oluşturulması aşamasında Apache’nin elde ettiği ivme bunlardan + biriydi. Başlangıçta StartServers yönergesiyle belli sayıda süreç + oluşturulduktan sonra her saniyede bir tane olmak üzere MinSpareServers sayıda çocuk süreç + oluşturulmaktaydı. Örneğin, aynı anda 100 isteğe yanıt vermek için + StartServers + yönergesinin öntanımlı değeri olarak başta 5 süreç + oluşturulduğundan kalan süreçler için 95 saniye geçmesi gerekirdi. + Sık sık yeniden başlatılmadıklarından dolayı gerçek hayatta + sunucuların başına gelen de buydu. Başka sunucularla kıyaslama + denemelerinde ise işlem sadece on dakika sürmekte ve içler acısı + sonuçlar alınmaktaydı.

+ +

Saniyede bir kuralı, sunucunun yeni çocukları oluşturması sırasında + sistemin aşırı meşgul duruma düşmemesi için alınmış bir önlemdi. + Makine çocuk süreç oluşturmakla meşgul edildiği sürece isteklere + yanıt veremeyecektir. Böylesi bir durum Apache’nin başarımını + kötüleştirmekten başka işe yaramayacaktır. Apache 1.3’te saniyede + bir kuralı biraz esnetildi. Yeni gerçeklenimde artık bir süreç + oluşturduktan bir saniye sonra iki süreç, bir saniye sonra dört + süreç oluşturulmakta ve işlem, saniyede 32 çocuk süreç oluşturulur + duruma gelene kadar böyle ivmelenmektedir. Çocuk süreç oluşturma + işlemi MinSpareServers + değerine ulaşılınca durmaktadır.

+ +

Bu, MinSpareServers, + MaxSpareServers ve + StartServers ayarlarıyla + oynamayı neredeyse gereksiz kılacak kadar iyi sonuçlar verecek gibi + görünmektedir. Saniyede 4 çocuktan fazlası oluşturulmaya + başlandığında hata günlüğüne bazı iletiler düşmeye başlar. Bu + iletilerin sayısı çok artarsa bu ayarlarla oynama vakti gelmiş + demektir. Bunun için mod_status çıktısını bir + kılavuz olarak kullanabilirsiniz.

+ +

Süreç oluşturmayla ilgili olarak süreç ölümü MaxRequestsPerChild değeri ile + sağlanır. Bu değer öntanımlı olarak 0 olup, çocuk süreç + başına istek sayısının sınırsız olduğu anlamına gelir. Eğer + yapılandırmanızda bu değeri 30 gibi çok düşük bir + değere ayarlarsanız bunu hemen kaldırmak zorunda kalabilirsiniz. + Sunucunuzu SunOS veya Solaris’in eski bir sürümü üzerinde + çalıştırıyorsanız bellek kaçaklarına sebep olmamak için bu değeri + 10000 ile sınırlayınız.

+ +

Kalıcı bağlantı özelliğini kullanıyorsanız, çocuk süreçler zaten + açık bağlantılardan istek beklemekte olacaklardır. KeepAliveTimeout yönergesinin öntanımlı + değeri 15 saniye olup bu etkiyi en aza indirmeye yönelik + süredir. Burada ağ band genişliği ile sunucu kaynaklarının kullanımı + arasında bir seçim yapmak söz konusudur. Hiçbir şey umurunuzda + değilse + çoğu ayrıcalığın yitirilmesi pahasına bu değeri rahatça + 60 saniyenin üzerine çıkarabilirsiniz.

+ + +
top
+
+

Derleme Sırasında Yapılandırma ile İlgili Konular

+ + +

MPM Seçimi

+ + +

Apache 2.x, Çok Süreçlilik Modülleri + (MPM) adı verilen eklemlenebilir çok görevlilik modellerini + destekler. Apache’yi derlerken bu MPM’lerden birini seçmeniz + gerekir. MPM’lerden bazıları platformlara özeldir: + beos, mpm_netware, + mpmt_os2 ve mpm_winnt. Unix + benzeri sistemler için ise seçebileceğiniz modül sayısı birden + fazladır. MPM seçiminin httpd’nin hızında ve ölçeklenebilirliğinde + bazı etkileri olabilir:

+ +
    + +
  • worker modülü her biri çok evreli çok sayıda + çocuk süreç kullanımını destekler. Her evre aynı anda tek bir + bağlantıya hizmet sunar. Aynı hizmeti daha az bellek harcayarak + vermesi nedeniyle yüksek trafiğe sahip sunucularda + prefork modülüne göre daha iyi bir seçimdir.
  • + +
  • prefork modülü her biri tek bir evreye sahip + çok sayıda çocuk süreç kullanımını destekler. Her süreç aynı anda + tek bir bağlantıya hizmet sunar. Çoğu sistemde daha hızlı olması + nedeniyle worker modülüne göre daha iyi bir seçim + olarak görünürse de bunu daha fazla bellek kullanarak sağlar. + prefork modülünün evresiz tasarımının + worker modülüne göre bazı yararlı tarafları + vardır: Çok evreli sistemlerde güvenilir olmayan üçüncü parti + modülleri kullanabilir ve evrelerde hata ayıklamanın yetersiz + kaldığı platformlarda hatalarını ayıklamak daha kolaydır.
  • + +
+ +

Bu modüller ve diğerleri hakkında daha ayrıntılı bilgi edinmek için + Çok Süreçlilik Modülleri belgesine + bakınız.

+ + + +

Modüller

+ + + +

Bellek kullanımı başarım konusunda önemli olduğundan gerçekte + kullanmadığınız modülleri elemeye çalışmalısınız. Modülleri birer DSO olarak derlediyseniz LoadModule yönergesinin bulunduğu satırı + açıklama haline getirmeniz modülden kurtulmanız için yeterli + olacaktır. Modülleri bu şekilde kaldırarak onların yokluğunda + sitenizin hala işlevlerini yerine getirdiğini görme şansına da + kavuşmuş olursunuz.

+ +

Ancak, eğer modülleri Apache çalıştırılabilirinin içine + gömmüşseniz istenmeyen modülleri kaldırmak için Apache'yi yeniden + derlemeniz gerekir.

+ +

Bu noktada bir soru akla gelebilir: Hangi modüller gerekli, + hangileri değil? Bu sorunun yanıtı şüphesiz siteden siteye değişir. + Ancak, olmazsa olmaz moüller olarak mod_mime, + mod_dir ve mod_log_config + modüllerini sayabiliriz. Bunlardan mod_log_config + olmadan da bir sitenin çalışabileceğinden hareketle bu modülün + varlığı isteğe bağlı olsa da bu modülü kaldırmanızı önermiyoruz.

+ + + +

Atomik İşlemler

+ + + +

Worker MPM'nin en son geliştirme sürümleri ve + mod_cache gibi bazı modüller APR'nin atomik API'sini + kullanırlar. Bu API, düşük ayarlı evre eşzamanlamasında atomik + işlemler yapar.

+ +

Öntanımlı olarak, APR bu işlemleri hedef işletim sistemi/işlemci + platformunda kullanılabilecek en verimli mekanizmayı kullanarak + gerçekleştirir. Günümüz işlemcilerinin çoğu, örneğin, bir atomik + karşılaştırma ve takas (CAS) işlemini donanımda gerçekleştirmektedir. + Bazı platformlarda APR'nin atomik işlemler için öntanımlı olarak daha + yavaş olan mutekslere dayalı gerçeklenimi kullanmasının sebebi eski + işlemcilerde bu tür makine kodlarının yokluğudur. Apache'yi bu tür + platformalarda günümüz işlemcileriyde çalıştırmayı düşünüyorsanız + Apache'yi derlemek için yapılandırırken en hızlı atomik işlemin + seçilebilmesi için --enable-nonportable-atomics + seçeneğini kullanın:

+ +

+ ./buildconf
+ ./configure --with-mpm=worker --enable-nonportable-atomics=yes +

+ +

--enable-nonportable-atomics seçeneği şu platformlar + için uygundur:

+ +
    + +
  • SPARC üzerinde Solaris
    + APR öntanımlı olarak, SPARC/Solaris üzerinde mutekslere dayalı + atomik işlemleri kullanır. Ancak, + --enable-nonportable-atomics yapılandırmasını + kullanırsanız, donanım üzerinde hızlı karşılaştırma ve takas + için uygun SPARC v8plus kodunu kullanacak şekilde kod üretilir. + Apache'yi bu seçenekle yapılandırırsanız atomik işlemler daha + verimli olacak fakat derlenen Apache çalıştırılabiliri sadece + UltraSPARC kırmığı üzerinde çalışacaktır. +
  • + +
  • x86 üzerinde Linux
    + APR öntanımlı olarak, Linux üzerinde mutekslere dayalı atomik + işlemleri kullanır. Ancak, + --enable-nonportable-atomics yapılandırmasını + kullanırsanız, donanım üzerinde hızlı karşılaştırma ve takas + için uygun 486 kodunu kullanacak şekilde kod üretilir. Apache'yi + bu seçenekle yapılandırırsanız atomik işlemler daha verimli + olacak fakat derlenen Apache çalıştırılabiliri (386 üzerinde + değil) sadece 486 ve sonrası kırmıklarda çalışacaktır. +
  • + +
+ + + +

mod_status ve ExtendedStatus On +

+ + + +

mod_status modülünü derlemiş ve Apache'yi + yapılandırır ve çalıştırırken ExtendedStatus On satırını + da kullanmışsanız Apache her istek üzerinde + gettimeofday(2) (veya işletim sistemine bağlı olarak + time(2)) çağrısından başka (1.3 öncesinde) fazladan + defalarca time(2) çağrıları yapacaktır. Bu çağrılarla + durum raporununun zamanlama bilgilerini içermesi sağlanır. Başarımı + arttırmak için ExtendedStatus off yapın (zaten öntanımlı + böyledir).

+ + + +

accept dizgilemesi ve çok soketli işlem

+ + + +

Uyarı:

+

Bu bölüm, Apache HTTP sunucusunun 2.x sürümlerinde yapılan + değişikliklere göre tamamen güncellenmemiştir. Bazı bilgiler hala + geçerliyse de lütfen dikkatli kullanınız.

+
+ +

Burada Unix soket arayüzü gerçeklenirken ihmal edilen bir durumdan + bahsedeceğiz. HTTP sunucunuzun çok sayıda adresten çok sayıda portu + dinlemek için çok sayıda Listen yönergesi kullanmakta olduğunu varsayalım. Her + soketi çalıştığını görmek için denerken Apache bağlantı için + select(2) kullanacaktır. select(2) çağrısı + bu soketin üzerinde sıfır veya en azından bir + bağlantının beklemekte olduğu anlamına gelir. Apache'nin modeli çok + sayıda çocuk süreç içerir ve boşta olanların tümünde aynı anda yeni + bağlantılar denenebilir. Gerçekte çalışan kod bu olmasa da meramımızı + anlatmak için kodun şöyle bir şey olduğunu varsayabiliriz:

+ +

+ for (;;) {
+ + for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ process the new_connection;
+
+ } +

+ +

Bu özet gerçeklenim bir takım açlık sorunlarına sebep olur. Bu + döngünün çalışması sırasında aynı anda çok sayıda çocuk süreç yeniden + çağrılır ve istekler arasında kalan çoğu çocuk da select + ile engellenir. Engellenen tüm bu çocuklar soketlerden herhangi biri + üzerinde tek bir istek göründüğünde select tarafından + uyandırılıp işleme sokulmak üzere döndürülürler (uyandırılan çocuk + sayısı işletim sistemine ve zamanlama ayarlarına göre değişiklik + gösterir). Bunların hepsi döngüye katılıp bağlantı kabul etmeye + (accept) çalışırlar. Fakat içlerinden yalnız biri + (sadece bir bağlantı isteğinin mevcut olduğu varsayımıyla) bunu + başarabilir. Kalanının bağlantı kabul etmesi (accept) + engellenir. Bu durum, bu çocukları istekleri başka başka soketlerden + değil mecburen tek bir soketten kabul etmeye kilitler ve bu soket + üzerinde yeni bir istek belirip uyandırılana kadar bu durumda + kalırlar. Bu açlık sorunu ilk olarak PR#467 sayılı raporla + belgelenmiştir. Bu sorunun en az iki çözümü vardır.

+ +

Çözümün biri engellenmeyen soket kullanımıdır. Bu durumda + accept çocukları engellemeyecek ve yapılan bir + bağlantının ardından diğer çocuklar durumları değişmeksizin bağlantı + beklemeye devam edeceklerdir. Fakat bu durum işlemci zamanının boşa + harcanmasına sebep olur. Seçilmiş (select) boşta on + çocuğun olduğunu ve bir bağlantı geldiğini varsayalım. Kalan dokuz + çocuk işine devam edip bağlantı kabul etmeyi (accept) + deneyecek, başarızsız olacak, dönecek başa, tekrar seçilecek + (select) ve böyle hiçbir iş yapmadan dönüp duracaktır. Bu + arada hizmet sunmakta olanlar da işlerini bitirdikten sonra bu + döngüdeki yerlerini alacaklardır. Aynı kutunun içinde boşta bir sürü + işlemciniz (çok işlemcili sistemler) yoksa bu çözüm pek verimli + olmayacaktır.

+ +

Diğer çözüm ise Apache tarafından kullanılan çözüm olup, girdiyi + bir iç döngüde sıraya sokmaktır. Döngü aşağıda örneklenmiştir (farklar + vurgulanmıştır):

+ +

+ for (;;) {
+ + accept_mutex_on ();
+ for (;;) {
+ + fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ + FD_SET (i, &accept_fds);
+
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ + if (FD_ISSET (i, &accept_fds)) {
+ + new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+
+ }
+
+ }
+ if (new_connection != -1) break;
+
+ }
+ accept_mutex_off ();
+ process the new_connection;
+
+ } +

+ +

accept_mutex_on ve accept_mutex_off işlevleri bir karşılıklı red + semoforu oluştururlar. Mutekse aynı anda sadece bir çocuk sahip + olabilir. Bu muteksleri gerçeklemek için çeşitli seçenekler vardır. + Seçim, src/conf.h (1.3 öncesi) veya + src/include/ap_config.h (1.3 ve sonrası) dosyasında + tanımlanmıştır. Bazı mimariler bir kilitleme seçeneğine sahip + değildir. Böyle mimarilerde çok sayıda Listen yönergesi kullanmak güvenilir + olmayacaktır.

+ +

AcceptMutex yönergesi, + seçilen muteks gerçeklenimini çalışma anında değiştirmek için + kullanılabilir.

+ +
+
AcceptMutex flock
+ +
+

Bu yöntem, bir kilit dosyasını kilitlemek için + flock(2) sistem çağrısını kullanır (Kilit dosyasının + yeri LockFile + yönergesiyle belirtilir).

+
+ +
AcceptMutex fcntl
+ +
+

Bu yöntem, bir kilit dosyasını kilitlemek için + fcntl(2) sistem çağrısını kullanır (Kilit dosyasının + yeri LockFile + yönergesiyle belirtilir).

+
+ +
AcceptMutex sysvsem
+ +
+

(1.3 ve sonrası) Bu yöntem muteksi gerçeklemek için SysV tarzı + semaforları kullanır. Maalesef, SysV tarzı semaforların bazı yan + etkileri vardır. Bunlardan biri Apache'nin semaforu temizlemeden + ölme ihtimalidir (ipcs(8) kılavuz sayfasına bakınız). + Diğer biri, CGI'lerin sunucu ile aynı kullanıcı kimliğini + kullanmaları nedeniyle semafor arayüzünün hizmet reddi + saldırılarına açık olmasıdır (suexec veya + cgiwrapper gibi bir şeyler kullanmadıkça bütün + CGI'ler için söz konusudur). Bu sebeple bu yöntem IRIX haricinde + hiçbir mimaride kullanılmaz (önceki ikisi çoğu IRIX makine için + elde edilmesi imkansız derecede pahalı olduğundan).

+
+ +
AcceptMutex pthread
+ +
+

(1.3 ve sonrası) Bu yöntem POSIX mutekslerini kullanır ve POSIX + evreleri belirtiminin tamamen gerçeklendiği mimarilerde çalışması + gerekirse de sadece Solaris (2.5 ve sonrası) üzerinde ve sadece + belli yapılandırmalarla çalışmakta gibi görünmektedir. Bunu + denemişseniz sunucunuzun çöktüğünü ve yanıt vermediğini + görmüşsünüzdür. Sadece duruk içerikli sunucular iyi + çalışmaktadır.

+
+ +
AcceptMutex posixsem
+ +
+

(2.0 ve sonrası) Bu yöntem POSIX semaforlarını kullanır. Eğer + işlem sırasında bir evre muteks kaynaklı parçalama arızalarıyla + karşı karşıya kalırsa HTTP sunucusunun çökmesiyle semaforun sahibi + kurtarılamaz.

+
+ +
+ +

Eğer sisteminiz yukarıda bahsedilenler dışında başka bir dizgileme + yöntemi kullanıyorsa bununla ilgili kodun APR'ye eklenmesi girilen + zahmete değecektir.

+ +

Başka bir çözüm daha vardır ancak döngü kısmen dizgilenmeyeceğinden + (yani belli sayıda sürece izin verilemeyeceğinden) asla + gerçeklenmemiştir. Bu sadece, aynı anda çok sayıda çocuk sürecin + çalışabileceği ve dolayısıyla band genişliğinin tüm yönleriyle + kullanılabileceği çok işlemcili sistemlerde ilginç olabilirdi. Bu + gelecekte incelenmeye değer bir konu olmakla beraber çok sayıda HTTP + sunucusunun aynı anda aynı amaca hizmet edecek şekilde çalışması + standart olarak pek mümkün görülmediğinden bu olasılık çok + düşüktür.

+ +

En yüksek başarımı elde etmek için ideal olanı sunucuları + çalıştırırken çok sayıda Listen yönergesi kullanmamaktır. Fakat siz yine de + okumaya devam edin.

+ + + +

accept dizgilemesi - tek soket

+ + + +

Çok soketli sunucular için yukarıda açıklananlar iyi güzel de tek + soketli sunucularda durum ne? Kuramsal olarak, bunların hiçbiriyle bir + sorunları olmaması gerekir. Çünkü yeni bir bağlantı gelene kadar tüm + çocuklar accept(2) ile engellenirler dolayısıyla hiçbir + açlık sorununun ortaya çıkmaması gerekir. Uygulamada ise son + kullanıcıdan gizli olarak, yukarıda engellenmeyen çocuklar çözümünde + bahsedilenle hemen hemen aynı "boşa dönüp durma" davranışı mevcuttur. + Çoğu TCP yığıtı bu yolu gerçeklemiştir. Çekirdek, yeni bir bağlantı + ortaya çıktığında accept ile engellenen tüm süreçleri + uyandırır. Bu süreçlerden bağlantıyı alan kullanıcı bölgesine geçerken + çekirdek içinde döngüde olan diğerleri de yeni bağlantı keşfedilene + kadar uykularına geri dönerler. Bu çekirdek içi döngü, kullanıcı + bölgesindeki kodlara görünür değildir ama bu olmadıkları anlamına + gelmez. Bu durum, çok soketli engellenmeyen çocuklar çözümündeki boşa + döngünün sebep olduğu gereksiz işlemci yükü sorununu içinde + barındırır.

+ +

Bununla birlikte, tek soketli durumda bile bundan daha verimli bir + davranış sergileyen bir çok mimari bulduk. Bu aslında hemen hemen her + durumda öntanımlı olarak böyledir. Linux altında yapılan üstünkörü + denemelerde (128MB bellekli çift Pentium pro 166 işlemcili makinede + Linux 2.0.30) tek sokette dizgilemenin dizgilenmemiş duruma göre + saniyede %3 daha az istekle sonuçlandığı gösterilmiştir. Fakat + dizgilenmemiş tek soket durumunda her istekte 100ms'lik ek bir gecikme + olduğu görülmüştür. Bu gecikmenin sebebi muhtemelen uzun mesafeli + hatlar olup sadece yerel ağlarda söz konusudur. Tek soketli + dizgilemeyi geçersiz kılmak için + SINGLE_LISTEN_UNSERIALIZED_ACCEPT tanımlarsanız tek + soketli sunucularda artık dizgileme yapılmayacaktır.

+ + + +

Kapatmayı zamana yaymak

+ + + +

draft-ietf-http-connection-00.txt taslağının 8. bölümünde + bahsedildiği gibi, bir HTTP sunucusunun protokolü güvenilir + şekilde gerçeklemesi için her iki yöndeki iletişimi + birbirinden bağımsız olarak (iki yönlü bir TCP bağlantısının her + yarısını diğerinden bağımsız olarak) kapatması gerekir. Bu olgu başka + sunucular tarafından çoğunlukla dikkate alınmaz fakat Apache'nin 1.2 + sürümünden beri gerektiği gibi gerçeklenmektedir.

+ +

Bu özellik Apache'ye eklendiğinde Unix'in çeşitli sürümlerinde + uzgörüsüzlükten dolayı bir takım geçici telaş sorunlarına sebep oldu. + TCP belirtimi FIN_WAIT_2 durumunda bir zaman aşımından + bahsetmez ama yasaklamaz da. Zaman aşımı olmayan sistemlerde, Apache + 1.2 çoğu soketin sonsuza kadar FIN_WAIT_2 durumunda + takılıp kalmasına sebep olur. Çoğu durumda, satıcıdan sağlanan en son + TCP/IP yamalarını uygulanarak bu önlenebilir. Satıcının hiçbir yeni + yama dağıtmadığı durumlarda (örneğin, SunOS4 -- bir kaynak lisansı ile + insanlar bunu kendileri yamayabilirse de) bu özelliği devre dışı + bırakmaya karar verdik.

+ +

Bunun üstesinden gelmenin iki yolu vardır. Bunlardan biri + SO_LINGER soket seçeneğidir. Bu işin kaderi buymuş gibi + görünürse de çoğu TCP/IP yığıtında bu gerektiği gibi + gerçeklenmemiştir. Bu yığıtlar üzerinde, bu yöntemin, doğru bir + gerçeklenimle bile (örneğin, Linux 2.0.31) sonraki çözümden daha + pahalı olduğu ortaya çıkmıştır.

+ +

Çoğunlukla, Apache bunu (http_main.c içindeki) + lingering_close adında bir işlevle gerçekler. Bu işlev + kabaca şöyle görünür:

+ +

+ void lingering_close (int s)
+ {
+ + char junk_buffer[2048];
+
+ /* gönderen tarafı kapat */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ + /* s'i okumak için, 2 saniyelik zaman aşımı ile seç */
+ select (s for reading, 2 second timeout);
+ /* Hata oluşmuşsa döngüden çık */
+ if (error) break;
+ /* s okumak için hazırsa */
+ if (s is ready for reading) {
+ + if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ + break;
+
+ }
+ /* geri kalan herşey burada */
+
+ }
+
+ }
+
+ close (s);
+
+ } +

+ +

Bağlantı sonunda bu doğal olarak biraz daha masrafa yol açar, fakat + güvenilir bir gerçeklenim için bu gereklidir. HTTP/1.1'in daha yaygın + kullanılmaya başlanması ve tüm bağlantıların kalıcı hale gelmesiyle bu + gerçeklenim daha fazla istek üzerinden kendi masrafını + karşılayacaktır. Ateşle oynamak ve bu özelliği devre dışı bırakmak + isterseniz NO_LINGCLOSE'u tanımlayabilirsiniz, fakat bu + asla önerilmez. Özellikle, HTTP/1.1'den itibaren boruhatlı kalıcı + bağlantıların lingering_close kullanmaya başlaması mutlak + bir gerekliliktir (ve + boruhatlı bağlantıların daha hızlı olması nedeniyle bu + bağlantıları desteklemek isteyebilirsiniz).

+ + + +

Çetele Dosyası

+ + + +

Apache'nin ana ve alt süreçleri birbirleriyle çetele denen birşey + üzerinden haberleşirler. Bunun en mükemmel şekilde paylaşımlı bellekte + gerçeklenmesi gerekir. Eriştiğimiz veya portlarını ayrıntılı olarak + belirttiğimiz işletim sistemleri için bu, genellikle paylaşımlı bellek + kullanılarak gerçeklenir. Geri kalanlar, öntanımlı olarak bunu bir + disk dosyası kullanarak gerçekler. Bir disk dosyaı yavaş olmanın yanı + sıra güvenilir de değildir (ve daha az özelliğe sahiptir). Mimarinizin + src/main/conf.h dosyasını inceleyin ve + USE_MMAP_SCOREBOARD veya + USE_SHMGET_SCOREBOARD'a bakın. Bu ikisinden birinin (ve + yanı sıra sırasıyla HAVE_MMAP veya + HAVE_SHMGET'in) tanımlanmış olması, sağlanan paylaşımlı + bellek kodunu etkinleştirir. Eğer sisteminiz diğer türdeki paylaşımlı + belleğe sahipse, src/main/http_main.c dosyasını açıp, + Apache'de bu belleği kullanması gereken kanca işlevleri ekleyin (Bize + de bir yama yollayın, lütfen).

+ +
Tarihsel bilgi: Apache'nin Linux uyarlaması, Apache'nin 1.2 + sürümüne kadar paylaşımlı belleği kullanmaya başlamamıştı. Bu kusur, + Apache'nin Linux üzerindeki erken dönem sürümlerinin davranışlarının + zayıf ve güvenilmez olmasına yol açmıştı.
+ + + +

DYNAMIC_MODULE_LIMIT

+ + + +

Devingen olarak yüklenen modülleri kullanmamak niyetindeyseniz + (burayı okuyan ve sunucunuzun başarımını son kırıntısına kadar + arttırmakla ilgilenen biriyseniz bunu düşünmezsiniz), sunucunuzu + derlerken seçenekler arasına -DDYNAMIC_MODULE_LIMIT=0 + seçeneğini de ekleyin. Bu suretle, sadece, devingen olarak yüklenen + modüller için ayrılacak belleği kazanmış olacaksınız.

+ + + +
top
+
+

Ek: Bir çağrı izlemesinin ayrıntılı çözümlemesi

+ + + +

Burada, Solaris 8 üzerinde worker MPM'li Apache 2.0.38'in bir sistem + çağrısı izlenmektedir. Bu izleme şu komutla elde edilmiştir:

+ +

+ truss -l -p httpd_çocuk_pidi. +

+ +

-l seçeneği, truss'a hafif bir sürecin yaptığı her + sistem çağrısını (hafif süreç -- HS -- Solaris'in bir çekirdek seviyesi + evreleme biçimi) günlüğe yazmasını söyler.

+ +

Diğer sistemlerin sistem çağrılarını izleyen farklı araçları vardır + (strace, ktrace, par gibi). + Bunlar da benzer çıktılar üretirler.

+ +

Bu izleme sırasında, bir istemci httpd'den 10 KB'lık duruk bir dosya + talebinde bulunmuştur. Duruk olmayan veya içerik uzlaşımlı isteklerin + izleme kayıtları vahşice (bazı durumlarda epey çirkince) farklı + görünür.

+ +

+ /67: accept(3, 0x00200BEC, 0x00200C0C, 1) (uykuda...)
+ /67: accept(3, 0x00200BEC, 0x00200C0C, 1) = 9 +

+ +

Bu izlemede, dinleyen evre HS #67 içinde çalışmaktadır.

+ +
accept(2) dizgelemesinin olmayışına dikkat edin. + Özellikle bu platformda worker MPM, çok sayıda portu dinlemedikçe, + öntanımlı olarak dizgeleştirilmemiş bir accept çağrısı kullanır.
+ +

+ /65: lwp_park(0x00000000, 0) = 0
+ /67: lwp_unpark(65, 1) = 0 +

+ +

Bağlantının kabul edilmesiyle, dinleyici evre isteği yerine getirmek + üzere bir worker evresini uyandırır. Bu izlemede, isteği yerine getiren + worker evresi HS #65'e aittir.

+ +

+ /65: getsockname(9, 0x00200BA4, 0x00200BC4, 1) = 0 +

+ +

Sanal konakların gerçeklenimi sırasında, Apache'nin, bağlantıları + kabul etmek için kullanılan yerel soket adreslerini bilmesi gerekir. + Çoğu durumda bu çağrıyı bertaraf etmek mümkündür (hiç sanal konağın + olmadığı veya Listen + yönergelerinin mutlak adreslerle kullanıldığı durumlarda). Fakat bu en + iyilemeleri yapmak için henüz bir çaba harcanmamıştır.

+ +

+ /65: brk(0x002170E8) = 0
+ /65: brk(0x002190E8) = 0 +

+ +

brk(2) çağrıları devingen bellekten bellek ayırır. httpd + çoğu isteği yerine getirirken özel bellek ayırıcılar + (apr_pool ve apr_bucket_alloc) kullandığından + bunlar bir sistem çağrısı izlemesinde nadiren görünür. Bu izlemede, + httpd henüz yeni başlatıldığından, özel bellek ayırıcıları oluşturmak + için ham bellek bloklarını ayırmak amacıyla malloc(3) + çağrıları yapması gerekir.

+ +

+/65: fcntl(9, F_GETFL, 0x00000000) = 2
+/65: fstat64(9, 0xFAF7B818) = 0
+/65: getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B910, 2190656) = 0
+/65: fstat64(9, 0xFAF7B818) = 0
+/65: getsockopt(9, 65535, 8192, 0xFAF7B918, 0xFAF7B914, 2190656) = 0
+/65: setsockopt(9, 65535, 8192, 0xFAF7B918, 4, 2190656) = 0
+/65: fcntl(9, F_SETFL, 0x00000082) = 0 +

+ +

Ardından, worker evresi istemciye (dosya tanıtıcısı 9) engellenmeyen + kipte bir bağlantı açar. setsockopt(2) + ve getsockopt(2) çağrıları, Solaris libc'sinin soketler + üzerindeki fcntl(2) çağrısı yanında birer yan etkiden + ibarettirler.

+ +

+ /65: read(9, " G E T / 1 0 k . h t m".., 8000) = 97 +

+ +

Worker evresi istemciden isteği okur.

+ +

+/65: stat("/var/httpd/apache/httpd-8999/htdocs/10k.html", 0xFAF7B978) = 0
+/65: open("/var/httpd/apache/httpd-8999/htdocs/10k.html", O_RDONLY) = 10 +

+ +

Bu httpd Options FollowSymLinks ve AllowOverride + None ile yapılandırılmıştır. Bu bakımdan, ne istenen dosya ile + sonuçlanan yol üzerindeki her dizinde lstat(2) çağrısına ne + de .htaccess dosyalarına bakılmasına gerek vardır. + stat(2) çağrısı basitçe dosya için şunları doğrulamak + amacıyla yapılır: 1) dosya mevcuttur ve 2) bir dizin değil normal bir + dosyadır.

+ +

+ /65: sendfilev(0, 9, 0x00200F90, 2, 0xFAF7B53C) = 10269 +

+ +

Bu örnekte, httpd, istenen dosyayı ve HTTP yanıt başlığını tek bir + sendfilev(2) sistem çağrısı ile göndermektedir. Dosya + gönderim işleminin anlamı sistemden sisteme değişiklik gösterir. Bazı + sistemlerde, sendfile(2) çağrısından önce başlıkları + göndermek için write(2) veya writev(2) + çağrısı yapmak gerekir.

+ +

+ /65: write(4, " 1 2 7 . 0 . 0 . 1 - ".., 78) = 78 +

+ +

Bu write(2) çağrısı isteği erişim günlüğüne kaydeder. Bu + izlemede eksik olan tek şey, time(2) çağrısıdır. Apache + 1.3'ün aksine, Apache 2.x zamana bakmak için + gettimeofday(3) çağırısını kullanır. Linux ve Solaris gibi + bazı işletim sistemleri, gettimeofday işlevinin, sıradan + bir sistem çağrısından daha fazla götürüsü olmayan en iyilenmiş bir + gerçeklenimine sahiptir.

+ +

+ /65: shutdown(9, 1, 1) = 0
+ /65: poll(0xFAF7B980, 1, 2000) = 1
+ /65: read(9, 0xFAF7BC20, 512) = 0
+ /65: close(9) = 0 +

+ +

Burada worker evresi bağlantıyı zamana yaymaktadır.

+ +

+ /65: close(10) = 0
+ /65: lwp_park(0x00000000, 0) (uykuda...) +

+ +

Son olarak, worker evresi teslim edilen dosyayı kapattıktan sonra + dinleyici evre tarafından başka bir bağlantı atanıncaya kadar beklemeye + alınır.

+ +

+ /67: accept(3, 0x001FEB74, 0x001FEB94, 1) (uykuda...) +

+ +

Bu arada, dinleyici evre bağlantıyı bir worker evresine atar atamaz + başka bir bağlantıyı beklemeye başlar (Mevcut tüm evreler meşgulse + dinleyici evreyi baskılayan worker MPM'nin akış denetim şemasına konu + olur). Bu izlemede görünmüyor olsa da sonraki accept(2) + çağrısı, yeni bağlantı kabul eden worker evresine paralel olarak + yapılabilir (aşırı yük durumlarında normal olarak, bu yapılır).

+ +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/relevant_standards.html b/rubbos/app/apache2/manual/misc/relevant_standards.html new file mode 100644 index 00000000..0890a9e4 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/relevant_standards.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: relevant_standards.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: relevant_standards.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/misc/relevant_standards.html.en b/rubbos/app/apache2/manual/misc/relevant_standards.html.en new file mode 100644 index 00000000..2924d461 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/relevant_standards.html.en @@ -0,0 +1,199 @@ + + + +Relevant Standards - Apache HTTP Server + + + + + +
<-
+

Relevant Standards

+
+

Available Languages:  en  | + ko 

+
+ +

This page documents all the relevant standards that the + Apache HTTP Server follows, along with brief descriptions.

+ +

In addition to the information listed below, the following resources + should be consulted:

+ + + +

Notice

+

This document is not yet complete.

+
+ +
+ +
top
+
+

HTTP Recommendations

+ +

Regardless of what modules are compiled and used, Apache as a + basic web server complies with the following IETF recommendations:

+ +
+
RFC 1945 + (Informational)
+ +
The Hypertext Transfer Protocol (HTTP) is an application-level + protocol with the lightness and speed necessary for distributed, + collaborative, hypermedia information systems. This documents + HTTP/1.0.
+ +
RFC 2616 + (Standards Track)
+ +
The Hypertext Transfer Protocol (HTTP) is an + application-level protocol for distributed, collaborative, + hypermedia information systems. This documents HTTP/1.1.
+ +
RFC 2396 + (Standards Track)
+ +
A Uniform Resource Identifier (URI) is a compact string of + characters for identifying an abstract or physical resource.
+
+ +
top
+
+

HTML Recommendations

+ +

Regarding the Hypertext Markup Language, Apache complies with + the following IETF and W3C recommendations:

+ +
+
RFC 2854 + (Informational)
+ +
This document summarizes the history of HTML development, + and defines the "text/html" MIME type by pointing to the relevant + W3C recommendations.
+ +
HTML 4.01 Specification + (Errata) +
+ +
This specification defines the HyperText Markup Language (HTML), + the publishing language of the World Wide Web. This specification + defines HTML 4.01, which is a subversion of HTML 4.
+ +
HTML 3.2 Reference + Specification
+ +
The HyperText Markup Language (HTML) is a simple markup language + used to create hypertext documents that are portable from one + platform to another. HTML documents are SGML documents.
+ +
XHTML 1.1 - + Module-based XHTML + (Errata) +
+ +
This Recommendation defines a new XHTML document type + that is based upon the module framework and modules defined in + Modularization of XHTML.
+ +
XHTML 1.0 The + Extensible HyperText Markup Language (Second Edition) + (Errata) +
+ +
This specification defines the Second Edition of XHTML 1.0, + a reformulation of HTML 4 as an XML 1.0 application, and three + DTDs corresponding to the ones defined by HTML 4.
+
+ +
top
+
+

Authentication

+ +

Concerning the different methods of authentication, Apache + follows the following IETF recommendations:

+ +
+
RFC 2617 + (Draft standard)
+ +
"HTTP/1.0", includes the specification for a Basic + Access Authentication scheme.
+ +
+ +
top
+
+

Language/Country Codes

+ +

The following links document ISO and other language and country + code information:

+ +
+
ISO 639-2
+ +
ISO 639 provides two sets of language codes, one as a two-letter + code set (639-1) and another as a three-letter code set (this part + of ISO 639) for the representation of names of languages.
+ +
+ ISO 3166-1
+ +
These pages document the country names (official short names + in English) in alphabetical order as given in ISO 3166-1 and the + corresponding ISO 3166-1-alpha-2 code elements.
+ +
BCP 47 + (Best Current Practice), + RFC 3066
+ +
This document describes a language tag for use in cases where + it is desired to indicate the language used in an information + object, how to register values for use in this language tag, + and a construct for matching such language tags.
+ +
RFC 3282 + (Standards Track)
+ +
This document defines a "Content-language:" header, for use in + cases where one desires to indicate the language of something that + has RFC 822-like headers, like MIME body parts or Web documents, + and an "Accept-Language:" header for use in cases where one wishes + to indicate one's preferences with regard to language.
+
+ +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/relevant_standards.html.ko.euc-kr b/rubbos/app/apache2/manual/misc/relevant_standards.html.ko.euc-kr new file mode 100644 index 00000000..acbccb9d --- /dev/null +++ b/rubbos/app/apache2/manual/misc/relevant_standards.html.ko.euc-kr @@ -0,0 +1,191 @@ + + + + ǥ - Apache HTTP Server + + + + + +
<-
+

ǥ

+
+

:  en  | + ko 

+
+ +

Բ ġ + ǥ Ѵ.

+ +

Ʒ Ͽ ڷᵵ Ѵ:

+ + + +

+

ʴ.

+
+ +
+ +
top
+
+

HTTP ǰ

+ +

 ϰ ϴ ⺻ + ġ IETF ǰ(recommendation) :

+ +
+
RFC 1945 + (Informational)
+ +
ؽƮ (Hypertext Transfer Protocol, + HTTP) л, , ۸ü ýۿ ʿ + ø̼ (application-level) ̴. + HTTP/1.0 Ѵ.
+ +
RFC 2616 + (Standards Track)
+ +
ؽƮ (Hypertext Transfer Protocol, + HTTP) л, , ۸ü ý ø̼ + ̴. HTTP/1.1 Ѵ.
+ +
RFC 2396 + (Standards Track)
+ +
ǥ ڿ ĺ (Uniform Resource Identifier, URI) + ߻ Ȥ ڿ ĺϱ ª ڿ̴.
+
+ +
top
+
+

HTML ǰ

+ +

ؽƮ ũ (Hypertext Markup Language, + HTML) Ͽ ġ IETF ǰ W3C ǰ :

+ +
+
RFC 2854 + (Informational)
+ +
HTML ߰ ϰ, W3C ǰ + "text/html" MIME type Ѵ.
+ +
HTML 4.01 Ծ + (Errata) +
+ +
Ծ ̵ Ǿ ؽƮ ũ + (Hypertext Markup Language, HTML) Ѵ. + Ծ HTML 4 HTML 4.01 Ѵ.
+ +
HTML 3.2 Ծ
+ +
ؽƮ ũ (Hypertext Markup Language, + HTML) ÷ ؽƮ + ũ ̴. HTML SGML ̱⵵ ϴ.
+ +
XHTML 1.1 - + XHTML + (ǥ) +
+ +
ǰ Modularization of XHTML + ÷ӿũ ο XHTML document type + Ѵ.
+ +
XHTML 1.0 + Ȯ ؽƮ ũ (Extensible HyperText Markup + Language) (Second Edition) + (ǥ) +
+ +
HTML 4 XML 1.0 籸 XHTML 1.0 + ι° HTML 4 شϴ DTD Ѵ.
+
+ +
top
+
+

+ +

ġ IETF ǰ :

+ +
+
RFC 2617 + (Draft standard)
+ +
Basic Access Authentication Ծ "HTTP/1.0".
+ +
+ +
top
+
+

/ ڵ

+ +

Ʒ ũ ISO ٸ / ڵ ִ:

+ +
+
ISO 639-2
+ +
ISO 639 ̸ Ÿ ΰ ڵ带 + Ѵ. ϳ (639-1) ڵ̰ ٸ ϳ + ( ) ڵ̴.
+ +
+ ISO 3166-1
+ +
ISO 3166-1 ISO 3166-1-alpha-2 ڵ忡 + ĺ ( ª ̸) Ѵ.
+ +
BCP 47 + (Best Current Practice), + RFC 3066
+ +
ü  ˸ + ±׿ ±׿ ϴ , + ±׸ ã Ѵ.
+ +
RFC 3282 + (Standards Track)
+ +
MIME κа RFC 822 + ִ  ˸ "Content-language:" + , ȣϴ  Ÿ "Accept-Language:" + Ѵ.
+
+ +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/rewriteguide.html b/rubbos/app/apache2/manual/misc/rewriteguide.html new file mode 100644 index 00000000..e58a64eb --- /dev/null +++ b/rubbos/app/apache2/manual/misc/rewriteguide.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewriteguide.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: rewriteguide.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/misc/rewriteguide.html.en b/rubbos/app/apache2/manual/misc/rewriteguide.html.en new file mode 100644 index 00000000..733f48bd --- /dev/null +++ b/rubbos/app/apache2/manual/misc/rewriteguide.html.en @@ -0,0 +1,2110 @@ + + + +URL Rewriting Guide - Apache HTTP Server + + + + + +
<-
+

URL Rewriting Guide

+
+

Available Languages:  en  | + ko 

+
+ +
+

Originally written by
+ Ralf S. Engelschall <rse@apache.org>
+ December 1997

+
+ +

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.

+ +
+ +
top
+
+

Introduction to mod_rewrite

+ + + +

The Apache module mod_rewrite is a killer + one, i.e. it is a really sophisticated module which provides + a powerful way to do URL manipulations. With it you can do nearly + all types of URL manipulations you ever dreamed about. + The price you have to pay is to accept complexity, because + mod_rewrite's major drawback is that it is + not easy to understand and use for the beginner. And even + Apache experts sometimes discover new aspects where + mod_rewrite can help.

+ +

In other words: With mod_rewrite you either + shoot yourself in the foot the first time and never use it again + or love it for the rest of your life because of its power. + This paper tries to give you a few initial success events to + avoid the first case by presenting already invented solutions + to you.

+ +
top
+
+

Practical Solutions

+ + + +

Here come a lot of practical solutions I've either invented + myself or collected from other people's solutions in the past. + Feel free to learn the black magic of URL rewriting from + these examples.

+ +
ATTENTION: Depending on your server-configuration + it can 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. It + avoid problems.
+ +
top
+
+

URL Layout

+ + + +

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}   !^www\.example\.com [NC]
+RewriteCond %{HTTP_HOST}   !^$
+RewriteCond %{SERVER_PORT} !^80$
+RewriteRule ^/(.*)         http://www.example.com:%{SERVER_PORT}/$1 [L,R]
+
+# 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]
+
+
+
+ + + +

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, it is + perhaps just one entity of a lot of data pools. For instance at + our Intranet sites there are /e/www/ + (the homepage for WWW), /e/sww/ (the homepage for + the Intranet) etc. Now because the data of the DocumentRoot stays at /e/www/ we had + to make sure that all inlined images and other stuff inside this + data pool work for subsequent requests.

+
+ +
Solution:
+ +
+

We redirect the URL / to + /e/www/: +

+ +
+RewriteEngine on
+RewriteRule   ^/$  /e/www/  [R]
+
+ +

Note that this can also be handled using the RedirectMatch directive:

+ +

+ RedirectMatch ^/$ http://example.com/e/www/ +

+
+
+ + + +

Trailing Slash Problem

+ + + +
+
Description:
+ +
+

Every webmaster can sing a song about the problem of + the trailing slash on URLs referencing directories. If they + are missing, the server dumps an error, because if you say + /~quux/foo instead of /~quux/foo/ + then the server searches for a file named + foo. And because this file is a directory it + complains. Actually it tries to fix it itself in most of + the cases, but sometimes this mechanism need to be emulated + by you. For instance after you have done a lot of + complicated URL rewritings to CGI scripts etc.

+
+ +
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]
+
+ +

The crazy and lazy can even do the following in the + top-level .htaccess file of their homedir. + But notice that this creates some processing + overhead.

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteCond    %{REQUEST_FILENAME}  -d
+RewriteRule    ^(.+[^/])$           $1/  [R]
+
+
+
+ + + +

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\
+
+
+
+ + + +

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]
+
+
+
+ + + +

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. +
+
+
+ + + +

NCSA imagemap to Apache mod_imap

+ + + +
+
Description:
+ +
+

When switching from the NCSA webserver to the more + modern Apache webserver a lot of people want a smooth + transition. So they want pages which use their old NCSA + imagemap program to work under Apache with the + modern mod_imap. The problem is that there + are a lot of hyperlinks around which reference the + imagemap program via + /cgi-bin/imagemap/path/to/page.map. Under + Apache this has to read just + /path/to/page.map.

+
+ +
Solution:
+ +
+

We use a global rule to remove the prefix on-the-fly for + all requests:

+ +
+RewriteEngine  on
+RewriteRule    ^/cgi-bin/imagemap(.*)  $1  [PT]
+
+
+
+ + + +

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]
+
+
+
+ + + +

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.

+
+
+ + + +

Extended Redirection

+ + + +
+
Description:
+ +
+

Sometimes we need more control (concerning the + character escaping mechanism) of URLs on redirects. + Usually the Apache kernels URL escape function also + escapes anchors, i.e. URLs like "url#anchor". + You cannot use this directly on redirects with + mod_rewrite because the + uri_escape() function of Apache + would also escape the hash character. + How can we redirect to such a URL?

+
+ +
Solution:
+ +
+

We have to use a kludge by the use of a NPH-CGI script + which does the redirect itself. Because here no escaping + is done (NPH=non-parseable headers). First we introduce a + new URL scheme xredirect: by the following + per-server config-line (should be one of the last rewrite + rules):

+ +
+RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \
+            [T=application/x-httpd-cgi,L]
+
+ +

This forces all URLs prefixed with + xredirect: to be piped through the + nph-xredirect.cgi program. And this program + just looks like:

+ +
+#!/path/to/perl
+##
+##  nph-xredirect.cgi -- NPH/CGI script for extended redirects
+##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
+##
+
+$| = 1;
+$url = $ENV{'PATH_INFO'};
+
+print "HTTP/1.0 302 Moved Temporarily\n";
+print "Server: $ENV{'SERVER_SOFTWARE'}\n";
+print "Location: $url\n";
+print "Content-type: text/html\n";
+print "\n";
+print "<html>\n";
+print "<head>\n";
+print "<title>302 Moved Temporarily (EXTENDED)</title>\n";
+print "</head>\n";
+print "<body>\n";
+print "<h1>Moved Temporarily (EXTENDED)</h1>\n";
+print "The document has moved <a HREF=\"$url\">here</a>.<p>\n";
+print "</body>\n";
+print "</html>\n";
+
+##EOF##
+
+ +

This provides you with the functionality to do + redirects to all URL schemes, i.e. including the one + which are not directly accepted by mod_rewrite. + For instance you can now also redirect to + news:newsgroup via

+ +
+RewriteRule ^anyurl  xredirect:news:newsgroup
+
+ +
Notice: You have not to put [R] or + [R,L] to the above rule because the + xredirect: need to be expanded later + by our special "pipe through" rule above.
+
+
+ + + +

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##
+
+
+
+ + + +

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
+
+
+
+ + + +
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]
+
+
+
+ + + +

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.

+
+
+ + + +

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]
+
+
+
+ + + +

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

+ + + +

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]
+
+
+
+ + + +

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).

+
+
+ + + +
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  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/rewriteguide.html.ko.euc-kr b/rubbos/app/apache2/manual/misc/rewriteguide.html.ko.euc-kr new file mode 100644 index 00000000..694b8f01 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/rewriteguide.html.ko.euc-kr @@ -0,0 +1,2013 @@ + + + +URL ۼ ħ - Apache HTTP Server + + + + + +
<-
+

URL ۼ ħ

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +
+


+ Ralf S. Engelschall <rse@apache.org>
+ 1997 12

+
+ +

mod_rewrite Ѵ. + ڰ ۾ εġԵǴ + URL ذϱؼ  ġ + mod_rewrite ϴ Ѵ. URL + ۼ Ģ Ͽ ذϴ ڼ Ѵ.

+ +
+ +
top
+
+

mod_rewrite Ұ

+ + + +

ġ mod_rewrite ϴ. + , URL ִ ϰ Ƿ ̴. + ؿԴ URL ϴ. ׷ + 밡 ϱ ϴ. mod_rewrite + ִ ʺڰ ϰ ϱ ʴٴ ̴. + ġ mod_rewrite + ο 뵵 ߰Ѵ.

+ +

ٸ : mod_rewrite + ó ԰ ٽ ʰų, Կ ŷǾ + ̴. ù° 츦 + ̹ ˷  ʸ ҰϷ Ѵ.

+ +
top
+
+

ǿ ذå

+ + + +

ų ٸ ǿ + ذå ´. URL ۼ 渶 + ٶ.

+ +
: Ȳ ° + ؾ 찡 ִ. , ߰ + mod_alias, mod_userdir + Ѵٸ [PT] ÷׸ ߰Ѵ. Ȥ + ּ/ȣƮ Ұ ƴ .htaccess + ҿ ˸° Ģ ִ. ϱ + ׻ Ģ  ϴ ϵ ض. ׷ + ִ.
+ +
top
+
+

URL

+ + + +

Ǵ URL

+ + + +
+
Ȳ:
+ +
+

ҽ URL ִ. + ( ϰ ˷ ) Ǵ URL, + Ȥ 뵵 URL ִ. ڰ û +  URL ϴ Ǵ URL + Ѵ.

+
+ +
ذå:
+ +
+

ʴ URL ˵ ġ + ܺ HTTP ̷Ѵ. Ʒ Ģ + /~user Ǵ /u/user + üϰ, /u/user ٸ + ߰Ѵ.

+ +
+RewriteRule   ^/~([^/]+)/?(.*)    /u/$1/$2  [R]
+RewriteRule   ^/([uge])/([^/]+)$  /$1/$2/   [R]
+
+
+
+ + + +

Ǵ ȣƮ

+ + + +
+
Ȳ:
+ +
Ģ Ʈ ִ ٸ ȣƮ + Ư ȣƮ ϵ Ѵ. , + example.com + www.example.com ϵ ϰ + ʹٸ Ģ ִ.
+ +
ذå:
+ +
+
+# 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]
+
+# ׸, 80 Ʈ ϴ Ʈ
+RewriteCond %{HTTP_HOST}   !^fully\.qualified\.domain\.name [NC]
+RewriteCond %{HTTP_HOST}   !^$
+RewriteRule ^/(.*)         http://fully.qualified.domain.name/$1 [L,R]
+
+
+
+ + + +

DocumentRoot ű

+ + + +
+
Ȳ:
+ +
+

DocumentRoot URL + "/" ִ. ׷ ̰ + ڷᰡ ʰ, ڷᰡ ٸ ִ + 찡 ִ. Ʈ Ʈ (ܺθ + Ȩ) /e/www/ (Ʈ + Ȩ) /e/sww/ ִٰ . + DocumentRoot + /e/www/̱⶧, û + Ե ׸ ̰ ; Ѵ.

+
+ +
ذå:
+ +
+

츮 URL / /e/www/ + ̷Ǹ ϸ ȴ. + mod_rewrite ؼ ϴ. + (mod_alias ϴ) URL + Alias պκ + ã´. DocumentRoot + URL պκ̱⶧ Ͽ ̷ + . mod_rewrite ϸ + ¥ ϴ:

+ +
+RewriteEngine on
+RewriteRule   ^/$  /e/www/  [R]
+
+
+
+ + + +

+ + + +
+
Ȳ:
+ +
+

丮 Īϴ URL + ٸ ڴ ȯȣ ̴. ٸ, + /~quux/foo/ /~quux/foo + ϸ foo + ã⶧ ߻Ѵ. 丮̱⶧ + ޾Ƶ ʴ´. κ ڵ + URL ġ, 찡 ִ. + , CGI ũƮ URL ۼ Ŀ + ׷ϴ.

+
+ +
ذå:
+ +
+

̹ ذ ڵ + ߰ϴ ̴. ׸ + ùٷ û ֵ, ܺ ̷ ؾ Ѵ. + ̷ Ѵٸ 丮 Ͽ + URL ϴ ׸ + ûҶ ã . , ܺ ̷ + /~quux/foo/index.html + image.gif ûϸ + /~quux/image.gif ûϰ ȴ!

+ +

׷ ̸ ذϱ Ѵ:

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteRule    ^foo$  foo/  [R]
+
+ +

Ȩ丮 ֻ .htaccess Ͽ + ִ. ׷ óϴµ δ + ȴ.

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteCond    %{REQUEST_FILENAME}  -d
+RewriteRule    ^(.+[^/])$           $1/  [R]
+
+
+
+ + + +

ϰ URL Ŭ

+ + + +
+
Ȳ:
+ +
+

Ʈ ϰ ϰ + URL ʹ. , (ǻ Ͽ + !) URL ! + ̸ οؾ Ѵ: + URL Īϸ ȵȴ. ڵ + Ѵ.

+
+ +
ذå:
+ +
+

, ׷, ü ġ + (л) ܺθʿ ´. ܺθ + ̴

+ +
+user1  server_of_user1
+user2  server_of_user2
+:      :
+
+ +

map.xxx-to-host + Ͽ ߴ. URL + ٸ URL,

+ +
+/u/user/anypath
+/g/group/anypath
+/e/entity/anypath
+
+ +

̷Ѵ

+ +
+http://physical-host/u/user/anypath
+http://physical-host/g/group/anypath
+http://physical-host/e/entity/anypath
+
+ +

Ʒ Ģ Ͽ ۾ Ѵ (server0 + ʿ ׸ ⺻ Ѵ):

+ +
+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\
+
+
+
+ + + +

Ȩ丮 ٸ

+ + + +
+
Ȳ:
+ +
+

ڴ Ȩ丮 ٸ + ذå . + ü ο ϴµ ð + ɸ 쿡 ʿϴ.

+
+ +
ذå:
+ +
+

mod_rewrite ϸ ϴ. + /~user/anypath URL + http://newserver/~user/anypath + ̷ϸ ȴ.

+ +
+RewriteEngine on
+RewriteRule   ^/~(.+)  http://newserver/~$1  [R,L]
+
+
+
+ + + +

Ȩ丮

+ + + +
+
Ȳ:
+ +
+

ڰ õ Ʈ Ȩ丮 + . , ̸ ڸ ù° + 丮 Ȩ丮 д. ׷, + /~foo/anypath + /home/f/foo/.www/anypath̰, + /~bar/anypath + /home/b/bar/.www/anypath̴.

+
+ +
ذå:
+ +
+

ǥð ִ URL ȯϱ + Ģ Ѵ.

+ +
+RewriteEngine on
+RewriteRule   ^/~(([a-z])[a-z0-9]+)(.*)  /home/$2/$1/.www$3
+
+
+
+ + + +

Ͻý 籸

+ + + +
+
Ȳ:
+ +
+

Ƿ ϵھ̴: 丮 + RewriteRules ſ Ͽ ڷ + ü ״ ü ڷḦ ڿ ¡ϵ + Ѵ. : 1992 Ӱ ִ + н Ʈ net.sw + Ƶΰ ־. ̴ ǻͰ ϸ鼭 + ص ð ý ڿ Ʈ ڸ + ؿԱ⶧ ̴. ָ Ʈ + ߰ 丮 Դ:

+ +
+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/
+
+ +

1996 7 Ҹ ִ ̽ + ϱ ޴. "ִ" , ֻ + 丮 CGI ũƮ ʰ, + ϱ ٶٴ ̴. ? Ҹ ߿ + FTPε ֵ ̿⶧ ̳ + CGI õ α Ⱦ.

+
+ +
ذå:
+ +
+

ذå κ : 丮 ؿ + ʿ CGI ũƮ + ʿϴ. ũƮ + /e/netsw/.www/ ξ:

+ +
+-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
+
+ +

DATA/ 丮 Ұ + ִ. net.sw + rdist Ͽ ڵ ´. ι° + κ Ҵ:  ϳ ڿ + URL ϴ°? ڿ DATA/ + 丮 ߰, URL CGI ũƮ ϰ + ʹ. ذå : DocumentRoot + URL /net.sw/ /e/netsw + ۼϱ 丮 Ͽ Ѵ:

+ +
+RewriteRule  ^net.sw$       net.sw/        [R]
+RewriteRule  ^net.sw/(.*)$  e/netsw/$1
+
+ +

ù° Ģ û ؼ + ߴ! ι° Ģ ۾ Ѵ. ׸ 丮 + /e/netsw/.www/.wwwacl + ´:

+ +
+Options       ExecCGI FollowSymLinks Includes MultiViews
+
+RewriteEngine on
+
+#   κ /net.sw/  Ѵ
+RewriteBase   /net.sw/
+
+#   ֻ 丮
+#  cgi ũƮ ۼѴ
+RewriteRule   ^$                       netsw-home.cgi     [L]
+RewriteRule   ^index\.html$            netsw-home.cgi     [L]
+
+#   丮  û 
+#  丮 Ѵ
+RewriteRule   ^.+/(netsw-[^/]+/.+)$    $1                 [L]
+
+#   ۼ ģ
+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]
+
+#  ٸ cgi ũƮ ó
+#  丮 Ҵ
+RewriteRule   !^netsw-lsdir\.cgi.*     -                  [C]
+RewriteRule   (.*)                     netsw-lsdir.cgi/$1
+
+ +

ؼ Ʈ:

+ +
    +
  1. ׹° κп ü ʵ('-') + L (last) ÷װ ָ϶
  2. + +
  3. κп ù° Ģ ! + (not) ڿ C (chain) ÷׸ ָ϶
  4. + +
  5. Ģ Ÿ ش ʴ 츦 + Ƴ ָ϶
  6. +
+
+
+ + + +

NCSA imagemap ġ mod_imap

+ + + +
+
Ȳ:
+ +
+

NCSA ġ + ڿ Űܰ ٶ. ׷ NCSA + imagemap α׷ + ġ mod_imap óϱ ٶ. + imagemap α׷ + /cgi-bin/imagemap/path/to/page.map + ϴ ۸ũ ٴ ̴. ġ + /path/to/page.map û ޾ƾ + Ѵ.

+
+ +
ذå:
+ +
+

û պκ ϴ Ģ + Ѵ:

+ +
+RewriteEngine  on
+RewriteRule    ^/cgi-bin/imagemap(.*)  $1  [PT]
+
+
+
+ + + +

丮 ˻

+ + + +
+
Ȳ:
+ +
+

丮 ãƾ + ִ. MultiViews ٸ + ȵȴ.

+
+ +
ذå:
+ +
+

丮 ã Ģ α׷Ѵ.

+ +
+RewriteEngine on
+
+#    custom/ ã õϰ...
+#   ...ã !
+RewriteCond         /your/docroot/dir1/%{REQUEST_FILENAME}  -f
+RewriteRule  ^(.+)  /your/docroot/dir1/$1  [L]
+
+#   ι° pub/ ã õѴ...
+#   ...ã !
+RewriteCond         /your/docroot/dir2/%{REQUEST_FILENAME}  -f
+RewriteRule  ^(.+)  /your/docroot/dir2/$1  [L]
+
+#   ã ٸ Alias ScriptAlias þ  Ѵ.
+RewriteRule   ^(.+)  -  [PT]
+
+
+
+ + + +

URL ȯ溯 Ѵ

+ + + +
+
Ȳ:
+ +
+

û鰣 ϱ URL + ڵϴ ִ. ׷ ϱ + CGI wrapper ϰ ʴ.

+
+ +
ذå:
+ +
+

ۼ Ģ Ͽ ϰ, + ߿ XSSI CGI ϱ ȯ溯 + Ѵ. ׷ URL /foo/S=java/bar/ + /foo/bar/ ȯǰ STATUS + ȯ溯 "java" Ѵ.

+ +
+RewriteEngine on
+RewriteRule   ^(.*)/S=([^/]+)/(.*)    $1/$3 [E=STATUS:$2]
+
+
+
+ + + +

ȣƮ

+ + + +
+
Ȳ:
+ +
+

ȣƮ ʰ ǻͷ DNS A + ڵ带 Ͽ + www.username.host.domain.com + Ȩ ϰ ʹ.

+
+ +
ذå:
+ +
+

HTTP/1.0 û , Host: HTTP + HTTP/1.1 û Ģ Ͽ + http://www.username.host.com/anypath + /home/username/anypath ۼ + ִ:

+ +
+RewriteEngine on
+RewriteCond   %{HTTP_HOST}                 ^www\.[^.]+\.host\.com$
+RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
+RewriteRule   ^www\.([^.]+)\.host\.com(.*) /home/$1$2
+
+
+
+ + + +

Ȩ丮 ܺ ̷

+ + + +
+
Ȳ:
+ +
+

ourdomain.com ۿ û + Ȩ丮 URL ٸ + www.somewhere.com ٸϱ + ٶ. ȣƮ ҿ Ѵ.

+
+ +
ذå:
+ +
+

ۼ ϸ ȴ:

+ +
+RewriteEngine on
+RewriteCond   %{REMOTE_HOST}  !^.+\.ourdomain\.com$
+RewriteRule   ^(/~.+)         http://www.somewhere.com/$1 [R,L]
+
+
+
+ + + +

URL ٸ ̷

+ + + +
+
Ȳ:
+ +
+

URL ۼ ؼ A ش + B û ̷ϴ + . Perl ۼ ErrorDocument CGI ũƮ + , mod_rewrite ϴ + ִ. ׷ ErrorDocument CGI ũƮ + ϶!

+
+ +
ذå:
+ +
+

ù° + ʴ:

+ +
+RewriteEngine on
+RewriteCond   /your/docroot/%{REQUEST_FILENAME} !-f
+RewriteRule   ^(.+)                             http://webserverB.dom/$1
+
+ +

DocumentRoot ȿ ִ + ϴٴ ̴. ( Ȩ丮 ) + ߰ , ִ:

+ +
+RewriteEngine on
+RewriteCond   %{REQUEST_URI} !-U
+RewriteRule   ^(.+)          http://webserverB.dom/$1
+
+ +

mod_rewrite URL (look-ahead) + Ѵ. ׷ URL ϰ ϴ. ׷ + û û ѹ ϱ⶧ + ɿ ǿ ش. ׷ CPU + Ѵٸ ϶. ǻͰ ٸ ù° ̳ + ErrorDocument + CGI ũƮ ϶.

+
+
+ + + +

Ȯ ̷

+ + + +
+
Ȳ:
+ +
+

̷ϴ URL ʿ䰡 ִ. + ġ URL escape Լ "url#anchor" + URL anchor escapeѴ. ġ + uri_escape() Լ 칰(#) + escapeϹǷ . ׷  ̷ URL + ̷ ֳ?

+
+ +
ذå:
+ +
+

̷ϴ NPH-CGI ũƮ ذå + ʿϴ. escape ʱ⶧̴ (NPH=non-parseable + headers). Ͽ (ۼ Ģ + κп ؾ Ѵ) ο URL scheme + xredirect: Ѵ:

+ +
+RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \
+            [T=application/x-httpd-cgi,L]
+
+ +

׷ xredirect: ϴ URL + nph-xredirect.cgi α׷ ϰ ȴ. + α׷ :

+ +
+#!/path/to/perl
+##
+##  nph-xredirect.cgi -- NPH/CGI script for extended redirects
+##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
+##
+
+$| = 1;
+$url = $ENV{'PATH_INFO'};
+
+print "HTTP/1.0 302 Moved Temporarily\n";
+print "Server: $ENV{'SERVER_SOFTWARE'}\n";
+print "Location: $url\n";
+print "Content-type: text/html\n";
+print "\n";
+print "<html>\n";
+print "<head>\n";
+print "<title>302 Moved Temporarily (EXTENDED)</title>\n";
+print "</head>\n";
+print "<body>\n";
+print "<h1>Moved Temporarily (EXTENDED)</h1>\n";
+print "The document has moved <a HREF=\"$url\">here</a>.<p>\n";
+print "</body>\n";
+print "</html>\n";
+
+##EOF##
+
+ +

׷ mod_rewrite ϴ + URL scheme ̷ ִ. , + news:newsgroup ̷ + ִ

+ +
+RewriteRule ^anyurl  xredirect:news:newsgroup
+
+ +
: Ư "" Ģ Ͽ + xredirect: Ȯؾ ϱ⶧ + Ģ [R]̳ [R,L] ϸ + ȵȴ.
+
+
+ + + +

߰(multiplexer)

+ + + +
+
Ȳ:
+ +
+

http://www.perl.com/CPAN + ִ CPAN (Comprehensive Perl Archive Network) + ƴ°? ּҴ 迡 CPAN ̷ FTP + Ŭ̾Ʈ ִ ̷Ѵ. + ̸ FTP ߰ 񽺶 Ѵ. CPAN CGI ũƮ + , mod_rewrite Ͽ + ϰ ?

+
+ +
ذå:
+ +
+

mod_rewrite 3.0.0 + ̷ǿ "ftp:" scheme + ִ. Ŭ̾Ʈ ֻ RewriteMap + Ͽ ġ ִ. Ģ + ֻ ߰ Ű Ѵ.

+ +
+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##
+
+
+
+ + + +

ð ۼ

+ + + +
+
Ȳ:
+ +
+

ð ٸ ϴ ڴ + Ư ̷ϱ CGI ũƮ + Ѵ. mod_rewriteδ  + ִ°?

+
+ +
ذå:
+ +
+

ۼ ǿ ִ TIME_xxx + ִ. Ư + <STRING, >STRING, + =STRING Ͽ ð ̷ + ִ:

+ +
+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
+
+ +

URL foo.html ûϸ + 07:00-19:00 foo.day.html + ϰ, ð + foo.night.html Ѵ. Ȩ + ϱ ̴...

+
+
+ + + +

YYYY XXXX ȣȯ

+ + + +
+
Ȳ:
+ +
+

.html .phtml + ȯϴ document.YYYY + document.XXXX ȣȯ(backward + compatibility) URL ( ϰ) + ֳ?

+
+ +
ذå:
+ +
+

̸ ⺻̸ ۼ ο Ȯڸ + ִ ˻Ѵ. ִٸ ϸ ϰ, + URL · ۼѴ.

+ + +
+#   .html  
+#   .phtml  ִ 
+#   .html  .phtml 
+#   ۼϴ ȣȯ Ģ
+RewriteEngine on
+RewriteBase   /~quux/
+#   ⺻̸ ã, ãҴٴ  Ѵ
+RewriteRule   ^(.*)\.html$              $1      [C,E=WasHTML:yes]
+#    ִٸ .phtml  ۼѴ
+RewriteCond   %{REQUEST_FILENAME}.phtml -f
+RewriteRule   ^(.*)$ $1.phtml                   [S=1]
+#   ƴϸ տ ã ⺻̸ ǵ
+RewriteCond   %{ENV:WasHTML}            ^yes$
+RewriteRule   ^(.*)$ $1.html
+
+
+
+ + + +
top
+
+

ٷ

+ + + +

(߱)

+ + + +
+
Ȳ:
+ +
+

ֱ foo.html bar.html + ϰ ȣȯ URL ϰ + ʹٰ . ڴ URL Ǿٴ + ġä Ѵ.

+
+ +
ذå:
+ +
+

Ģ URL ο URL + ۼѴ:

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteRule    ^foo\.html$  bar.html
+
+
+
+ + + +

(˸)

+ + + +
+
Ȳ:
+ +
+

ٽ foo.html bar.html + ϰ ȣȯ URL ϰ + ʹٰ . ׷ URL ϸ + ڿ ο URL Ʈ ˷ش. , + ּâ Ѵ.

+
+ +
ذå:
+ +
+

ο URL HTTP ̷ϴ. ׷ + ο URL ̰ ڰ ˰Եȴ:

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteRule    ^foo\.html$  bar.html  [R]
+
+
+
+ + + +

+ + + +
+
Ȳ:
+ +
+

ּ ߿ ֻ ȭ + ؾ 찡 ִ. , ֽ Netscape + Դ ֻ , Lynx Դ + , + Ѵ.

+
+ +
ذå:
+ +
+

ڽ + ʱ⶧ . + HTTP "User-Agent" Ѵ. Ģ HTTP + "User-Agent" "Mozilla/3" ϸ + foo.html foo.NS.html + ۼϰ ۼ ߴѴ. "Lynx" + "Mozilla" 1 Ȥ 2 URL + foo.20.html ȴ. + foo.32.html ޴´. Ʒ Ģ + ۾ Ѵ:

+ +
+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]
+
+
+
+ + + +

̷

+ + + +
+
Ȳ:
+ +
+

ܺ ȣƮ 츮 Ʈ + ִٰ . FTP ܺ + ڷ ֽź纻 ϴ mirror α׷ + ְ, HTTP ۾ ϴ + webcopy α׷ ִ. ׷ + ִ: 纻 α׷ + ֽ ȴ. ؾϴ + ̷ ƴ϶ ڴ. (ܺ ȣƮ + ڷᰡ ŵǸ) ʿҶ ڵ ڷḦ ϴ + ̷ ʿϴ.

+
+ +
ذå:
+ +
+

̸ Proxy Throughput (÷ + [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]
+
+
+
+ + + +

̷

+ + + +
+
Ȳ:
+ +
...
+ +
ذå:
+ +
+
+RewriteEngine on
+RewriteCond   /mirror/of/remotesite/$1           -U
+RewriteRule   ^http://www\.remotesite\.com/(.*)$ /mirror/of/remotesite/$1
+
+
+
+ + + +

ڷḦ Ʈݿ

+ + + +
+
Ȳ:
+ +
+

ڷḦ ȭ ȣϴ () Ʈ + (www2.quux-corp.dom) ϸ鼭, + (ܺ) ͳ (www.quux-corp.dom) + ϴ ó ̰ Ѵ. ܺ û + ڷḦ ´.

+
+ +
ذå:
+ +
+

ȭ ȣϰ ܺ + ڷḦ ְ Ѵ. + Ŷ͸ ȭ Ѵ:

+ +
+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
+
+ +

˸° Ķ. ڷḦ + proxy throughput ûϴ + mod_rewrite Ģ ۼѴ:

+ +
+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]
+
+
+
+ + + +

ε뷱 ( лϱ)

+ + + +
+
Ȳ:
+ +
+

www.foo.com ŷ + www[0-5].foo.com ( 6) лϰ + ʹ.  ϴ°?

+
+ +
ذå:
+ +
+

ſ پ ذ ִ. + DNS ˷ ϰ, + mod_rewrite ϴ 츦 캸:

+ +
    +
  1. + DNS Round-Robin + +

    ε뷱 BIND + DNS round-robin ϴ ̴. + DNS A(address) ڵ忡 + www[0-9].foo.com Ѵ.

    + +
    +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
    +
    + +

    ׸ ׸ ߰Ѵ:

    + +
    +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.
    +
    + +

    ߸ ó , BIND + ǵ ̴. www.foo.com + ã, BIND Ź ݾ + ٲ㰡 www0-www6 ȯѴ. ׷ + Ŭ̾Ʈ лѴ. ׷ DNS + ˻ Ʈ ٸ Ӽ ijǿ + www.foo.com ã Ư + wwwN.foo.com̸ Ŭ̾Ʈ + û鵵 wwwN.foo.com + ⶧ Ϻ ε뷱 ƴ + ϶. ׷ ũ û + лǹǷ ȿ .

    +
  2. + +
  3. + DNS ε뷱 + +

    http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html + ִ lbnamed α׷ Ͽ + DNS ε뷱 ִ. DNS + ε뷱 ϵ Perl + 5 α׷̴.

    +
  4. + +
  5. + Proxy Throughput Round-Robin + +

    mod_rewrite proxy + throughput Ѵ. DNS ׸ + Ͽ www0.foo.com + www.foo.com ϰ Ѵ

    + +
    +www    IN  CNAME   www0.foo.com.
    +
    + +

    ׸ www0.foo.com Ͻ + Ѵ. , URL + Ͻø ٸ 5 (www1-www5) + Ѵ ⸸ Ѵ. ̸ URL + ε뷱 ũƮ lb.pl + Ģ .

    + +
    +RewriteEngine on
    +RewriteMap    lb      prg:/path/to/lb.pl
    +RewriteRule   ^/(.+)$ ${lb:$1}           [P,L]
    +
    + +

    lb.pl ۼѴ:

    + +
    +#!/path/to/perl
    +##
    +##  lb.pl -- ε뷱 ũƮ
    +##
    +
    +$| = 1;
    +
    +$name   = "www";     # ⺻ ȣƮ
    +$first  = 1;         # ù°  (ڽ 0̱ , 0  ʴ´)
    +$last   = 5;         # round-robin  
    +$domain = "foo.dom"; # θ
    +
    +$cnt = 0;
    +while (<STDIN>) {
    +    $cnt = (($cnt+1) % ($last+1-$first));
    +    $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain);
    +    print "http://$server/$_";
    +}
    +
    +##EOF##
    +
    + +
    : Ѱ? + www0.foo.com δ ʴ°? + , δ ȴ. ׷ ܼ proxy throughput + û ϱ⶧ ! SSI, CGI, ePerl + ٸ óѴ. ̰ ٽ̴.
    +
  6. + +
  7. + ϵ/TCP Round-Robin + +

    ϵ ذå ִ. Cisco TCP/IP + ؿ ε뷱 ϴ LocalDirector + Ǵ. δ մܿ ġϴ + ȸμ Ʈ̴. ڱ ϰ + ذå ʿϴٸ ̰ ϶.

    +
  8. +
+
+
+ + + +

ο MIME-type, ο

+ + + +
+
Ȳ:
+ +
+

Ʈ CGI α׷ . ׷ ϱ + ŷ ڰ ʴ´. ġ + MIME-type Action ڵ鷯 ɵ CGI α׷ + Ư URL (Ȯ PATH_INFO + QUERY_STRINGS) α׷ Է + ϴ. , Ȯڰ (secure CGI ٿ) + .scgi cgiwrap + α׷ óϱ ο type Ѵ. + ( ) ϰ URL ϴ + Ȩ丮 /u/user/foo/bar.scgi + URL ̴. cgiwrap + /~user/foo/bar.scgi/ URL + ϱ⶧̴. Ģ ذѴ:

+ +
+RewriteRule ^/[uge]/([^/]+)/\.www/(.+)\.scgi(.*) ...
+... /internal/cgi/user/cgiwrap/~$1/$2.scgi$3  [NS,T=application/x-http-cgi]
+
+ +

ٸ α׷, (URL Ʈ + access.log ϴ) wwwlog + (URL Ʈ Glimpse ϴ) wwwidx + ִٰ . 츮 α׷ ۾ + URL ˷ Ѵ. ׷ ûҶ ׻ + ϱ⶧ ʴ. , + /u/user/foo/ swwidx + α׷ Ѵٸ ũ Ѵ

+ +
+/internal/cgi/user/swwidx?i=/u/user/foo/
+
+ +

ʴ. ũ ġ + CGI ġ ϱ⶧̴. + 籸Ѵٸ ۸ũ ϴµ + ð ɸ ̴.

+
+ +
ذå:
+ +
+

ذå ڵ CGI ϴ ο + Ư URL ̴. Ѵ:

+ +
+RewriteRule   ^/([uge])/([^/]+)(/?.*)/\*  /internal/cgi/user/wwwidx?i=/$1/$2$3/
+RewriteRule   ^/([uge])/([^/]+)(/?.*):log /internal/cgi/user/wwwlog?f=/$1/$2$3
+
+ +

/u/user/foo/ ˻ϴ ũ +

+ +
+HREF="*"
+/u/user/foo/* (???)
+
+ +

ڵȯȴ

+ +
+/internal/cgi/user/wwwidx?i=/u/user/foo/
+
+ +

ũ ڿ :log Ͽ + α CGI α׷ ִ.

+
+
+ + + +

+ + + +
+
Ȳ:
+ +
+

 ڰ 𸣰 ڿ + foo.html foo.cgi + ֳ.

+
+ +
ذå:
+ +
+

URL CGI ũƮ ۼϰ, MIME-type Ͽ + CGI ũƮ ϰ Ѵ. ׷ + /~quux/foo.html ûϸ + /~quux/foo.cgi ϰ ȴ.

+ +
+RewriteEngine  on
+RewriteBase    /~quux/
+RewriteRule    ^foo\.html$  foo.cgi  [T=application/x-httpd-cgi]
+
+
+
+ + + +

+ + + +
+
Ȳ:
+ +
+

Ƿ ̴: , + Ѵ. , ϰ + (Ͻýۿ ״) + ޵, Ѵ. + ׷ (Ȥ cron ۾) ʴ + CGI Ѵ. + Ѵ.

+
+ +
ذå:
+ +
+ Ģ Ѵ: + +
+RewriteCond %{REQUEST_FILENAME}   !-s
+RewriteRule ^page\.html$          page.cgi   [T=application/x-httpd-cgi,L]
+
+ +

page.html ûҶ + page.html ų ũⰡ 0 + page.cgi Ѵ. ⼭ + page.cgi Ϲ CGI ũƮ + STDOUT ϰ, ߰ + page.html Ͽ ´. ѹ + page.html . ڰ + ϰ ʹٸ, ( cron ۾) + page.html ⸸ ϸ ȴ.

+
+
+ + + +

ڵ ħϴ

+ + + +
+
Ȳ:
+ +
+

鶧 ڰ + ڵ ħϴ + 󸶳 ? ҰѰ?

+
+ +
ذå:
+ +
+

ϴ! MIME multipart ɰ NPH , + mod_rewrite URL ɷ ϸ + ȴ. , ο URL : URL + :refresh ߰ϱ⸸ ϸ Ͻýۿ + ħѴ.

+ +
+RewriteRule   ^(/[uge]/[^/]+/?.*):refresh  /internal/cgi/apache/nph-refresh?f=$1
+
+ +

URL ϸ

+ +
+/u/foo/bar/page.html:refresh
+
+ +

URL θ

+ +
+/internal/cgi/apache/nph-refresh?f=/u/foo/bar/page.html
+
+ +

NPH-CGI ũƮ Ҵ. "ڿ + ܵ"̶ ;-) ̰͵ Ѵ.

+ +
+#!/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##
+
+
+
+ + + +

뷮 ȣƮ

+ + + +
+
Ȳ:
+ +
+

ȣƮ  ִٸ ġ <VirtualHost> + Ѵ. ׷ ȣƮ 鰳 ִ + ISP ּ ƴϴ.

+
+ +
ذå:
+ +
+

Ϸ Proxy Throughput + (÷ [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
+##
+    :
+#   ̷ƮҶ  ȣƮ Ѵ.
+UseCanonicalName on
+
+    :
+#   ȣƮ CLF  տ ߰Ѵ
+CustomLog  /path/to/access_log  "%{VHOST}e %h %l %u %t \"%r\" %>s %b"
+    :
+
+#   ּ ۼ  Ѵ
+RewriteEngine on
+
+#     Ѵ: ϳ URL ġ,
+#   ٸ ϳ ȣƮ DocumentRoot
+#   Ѵ.
+RewriteMap    lowercase    int:tolower
+RewriteMap    vhost        txt:/path/to/vhost.map
+
+#    ũ  Ģ Ѱ Ͽ
+#   ȣƮ Ѵ.
+#
+#   1. ȣƮ  ϴ ġ  ʴ´
+RewriteCond   %{REQUEST_URI}  !^/commonurl1/.*
+RewriteCond   %{REQUEST_URI}  !^/commonurl2/.*
+    :
+RewriteCond   %{REQUEST_URI}  !^/commonurlN/.*
+#
+#   2. 츮  ϴ  Host 
+#      ȣƮ ϹǷ
+#      Host  ִ ȮѴ
+RewriteCond   %{HTTP_HOST}  !^$
+#
+#   3. ȣƮ ҹڷ 
+RewriteCond   ${lowercase:%{HTTP_HOST}|NONE}  ^(.+)$
+#
+#   4. vhost.map ȣƮ ã
+#      ϶ Ѵ
+#      ( "NONE" ƴϴ)
+RewriteCond   ${vhost:%1}  ^(/.*)$
+#
+#   5.  URL  ġ ϰ
+#      α׿  ȣƮ  д
+RewriteRule   ^/(.*)$   %1/$1  [E=VHOST:${lowercase:%{HTTP_HOST}}]
+    :
+
+
+
+ + + +
top
+
+

+ + + +

κ

+ + + +
+
Ȳ:
+ +
+

 ϸ Ư ܾ + κ ֳ? "Robot Exclusion Protocol" ׸ + /robots.txt ̷ κ + µ ʴ.

+
+ +
ذå:
+ +
+

(Ƹ 丮  κ ƴٴϸ + δ ū ) /~quux/foo/arc/ + ִ URL źϴ Ģ Ѵ. 츮 Ư + κ ƾ Ѵ. , κ ϴ ȣƮ + δ ϸ, ȣƮ ڵ ƹ + ȴ. User-Agent HTTP Ѵ.

+ +
+RewriteCond %{HTTP_USER_AGENT}   ^NameOfBadRobot.*
+RewriteCond %{REMOTE_ADDR}       ^123\.45\.67\.[8-9]$
+RewriteRule ^/~quux/foo/arc/.+   -   [F]
+
+
+
+ + + +

׸ ۰

+ + + +
+
Ȳ:
+ +
+

http://www.quux-corp.de/~quux/ ִ + GIF ׸ Ѵٰ . ׸ + ־, ٸ ڽ ũ + Ǵ. ʿ δ ǹǷ ʹ.

+
+ +
ذå:
+ +
+

׸ 100% ȣ , ּ + HTTP Referer ִ.

+ +
+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]
+
+
+
+ + + +

ȣƮ ź

+ + + +
+
Ȳ:
+ +
+

 ܺο ȣƮ + ֳ?

+
+ +
ذå:
+ +
+

ġ >= 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]
+
+ +

ġ <= 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
+##
+##  ! ̰ ó   ƴ϶ ̴.
+##        mod_rewrite   Ű/  ؼϱ⶧,
+##         ׸  ڸ ּ "-" ʿϴ.
+##
+
+193.102.180.41 -
+bsdti1.sdm.de  -
+192.76.162.40  -
+
+
+
+ + + +

Ͻ ź

+ + + +
+
Ȳ:
+ +
+

 Ư ȣƮ Ȥ Ư ȣƮ ڰ + ġ Ͻø ϳ?

+
+ +
ذå:
+ +
+

ġ Ҷ Ͽ + mod_rewrite mod_proxy + Ʒ(!) ־ Ѵ. ׷ mod_rewrite + mod_proxy Ҹ. + Ư ȣƮ źϵ Ѵ...

+ +
+RewriteCond %{REMOTE_HOST} ^badhost\.mydomain\.com$
+RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
+
+ +

...׸ user@host źѴ:

+ +
+RewriteCond %{REMOTE_IDENT}@%{REMOTE_HOST}  ^badguy@badhost\.mydomain\.com$
+RewriteRule !^http://[^/.]\.mydomain.com.*  - [F]
+
+
+
+ + + +

Ư

+ + + +
+
Ȱ:
+ +
+

ſ Ư ʿ ִ. + , ̸ ص ˻Ѵ. ̵鿡Ը + (mod_auth Basic Auth + ޸) ٸ Ѵ.

+
+ +
ذå:
+ +
+

ģ ϵ ۼ Ģ Ѵ:

+ +
+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 ȯ(deflector)

+ + + +
+
Ȳ:
+ +
+

"Referer" HTTP ϴ´ + ִ URL ȯ⸦ ִ°?

+
+ +
ذå:
+ +
+

Ģ...

+ +
+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]
+
+ +

... ۼ ʰ Ѵ:

+ +
+##
+##  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/
+
+ +

׷ û ڵ (ʿ "-" + ) (URL ʿ ִ ι° + ƱԸƮ) Ư URL ̷Ѵ.

+
+
+ + + +
top
+
+

Ÿ

+ + + +

ܺ ۼ

+ + + +
+
Ȳ:
+ +
+

FAQ:  ̷ Ǯ ִ°? + mod_rewriteδ ذå Ⱥδ...

+
+ +
ذå:
+ +
+

ܺ RewriteMap ϶. + , α׷ RewriteMap + Ѵ. α׷ ġ Ҷ Ͽ + STDIN û URL ް, ( !) + ( ۼ) URL STDOUT Ѵ.

+ +
+RewriteEngine on
+RewriteMap    quux-map       prg:/path/to/map.quux.pl
+RewriteRule   ^/~quux/(.*)$  /~quux/${quux-map:$1}
+
+ +
+#!/path/to/perl
+
+#   ġ   ʵ
+#    ۸  ʴ´
+$| = 1;
+
+#   stdin پ URL а
+#   stdout ȯ URL Ѵ
+while (<>) {
+    s|^foo/|bar/|;
+    print $_;
+}
+
+ +

ϱ /~quux/foo/... URL + /~quux/bar/... ۼϴ ũƮ + . α׷ ִ. + ׷ Ϲ ڰ ̷ + ִٰ ϴ, ý ڸ + ؾ ϶.

+
+
+ + + +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/security_tips.html b/rubbos/app/apache2/manual/misc/security_tips.html new file mode 100644 index 00000000..893872b5 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/security_tips.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: security_tips.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: security_tips.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: security_tips.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/misc/security_tips.html.en b/rubbos/app/apache2/manual/misc/security_tips.html.en new file mode 100644 index 00000000..560c8259 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/security_tips.html.en @@ -0,0 +1,354 @@ + + + +Security Tips - Apache HTTP Server + + + + + +
<-
+

Security Tips

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

Some hints and tips on security issues in setting up a web server. + Some of the suggestions will be general, others specific to Apache.

+
+ +
top
+
+

Keep up to Date

+ +

The Apache HTTP Server has a good record for security and a + developer community highly concerned about security issues. But + it is inevitable that some problems -- small or large -- will be + discovered in software after it is released. For this reason, it + is crucial to keep aware of updates to the software. If you have + obtained your version of the HTTP Server directly from Apache, we + highly recommend you subscribe to the Apache + HTTP Server Announcements List where you can keep informed of + new releases and security updates. Similar services are available + from most third-party distributors of Apache software.

+ +

Of course, most times that a web server is compromised, it is + not because of problems in the HTTP Server code. Rather, it comes + from problems in add-on code, CGI scripts, or the underlying + Operating System. You must therefore stay aware of problems and + updates with all the software on your system.

+ +
top
+
+

Permissions on ServerRoot Directories

+ + + +

In typical operation, Apache is started by the root user, and it + switches to the user defined by the User directive to serve hits. As is the + case with any command that root executes, you must take care that it is + protected from modification by non-root users. Not only must the files + themselves be writeable only by root, but so must the directories, and + parents of all directories. For example, if you choose to place + ServerRoot in /usr/local/apache then it is suggested that + you create that directory as root, with commands like these:

+ +

+ mkdir /usr/local/apache
+ cd /usr/local/apache
+ mkdir bin conf logs
+ chown 0 . bin conf logs
+ chgrp 0 . bin conf logs
+ chmod 755 . bin conf logs +

+ +

It is assumed that /, /usr, and + /usr/local are only modifiable by root. When you install the + httpd executable, you should ensure that it is + similarly protected:

+ +

+ cp httpd /usr/local/apache/bin
+ chown 0 /usr/local/apache/bin/httpd
+ chgrp 0 /usr/local/apache/bin/httpd
+ chmod 511 /usr/local/apache/bin/httpd +

+ +

You can create an htdocs subdirectory which is modifiable by other + users -- since root never executes any files out of there, and shouldn't + be creating files in there.

+ +

If you allow non-root users to modify any files that root either + executes or writes on then you open your system to root compromises. + For example, someone could replace the httpd binary so + that the next time you start it, it will execute some arbitrary code. If + the logs directory is writeable (by a non-root user), someone could replace + a log file with a symlink to some other system file, and then root + might overwrite that file with arbitrary data. If the log files + themselves are writeable (by a non-root user), then someone may be + able to overwrite the log itself with bogus data.

+ +
top
+
+

Server Side Includes

+ + + +

Server Side Includes (SSI) present a server administrator with + several potential security risks.

+ +

The first risk is the increased load on the server. All + SSI-enabled files have to be parsed by Apache, whether or not + there are any SSI directives included within the files. While this + load increase is minor, in a shared server environment it can become + significant.

+ +

SSI files also pose the same risks that are associated with CGI + scripts in general. Using the exec cmd element, SSI-enabled + files can execute any CGI script or program under the permissions of the + user and group Apache runs as, as configured in + httpd.conf.

+ +

There are ways to enhance the security of SSI files while still + taking advantage of the benefits they provide.

+ +

To isolate the damage a wayward SSI file can cause, a server + administrator can enable suexec as + described in the CGI in General section.

+ +

Enabling SSI for files with .html or .htm + extensions can be dangerous. This is especially true in a shared, or high + traffic, server environment. SSI-enabled files should have a separate + extension, such as the conventional .shtml. This helps keep + server load at a minimum and allows for easier management of risk.

+ +

Another solution is to disable the ability to run scripts and + programs from SSI pages. To do this replace Includes + with IncludesNOEXEC in the Options directive. Note that users may + still use <--#include virtual="..." --> to execute CGI + scripts if these scripts are in directories designated by a ScriptAlias directive.

+ +
top
+
+

CGI in General

+ + + +

First of all, you always have to remember that you must trust the + writers of the CGI scripts/programs or your ability to spot potential + security holes in CGI, whether they were deliberate or accidental. CGI + scripts can run essentially arbitrary commands on your system with the + permissions of the web server user and can therefore be extremely + dangerous if they are not carefully checked.

+ +

All the CGI scripts will run as the same user, so they have potential + to conflict (accidentally or deliberately) with other scripts e.g. User + A hates User B, so he writes a script to trash User B's CGI database. One + program which can be used to allow scripts to run as different users is + suEXEC which is included with Apache as of + 1.2 and is called from special hooks in the Apache server code. Another + popular way of doing this is with + CGIWrap.

+ +
top
+
+

Non Script Aliased CGI

+ + + +

Allowing users to execute CGI scripts in any directory should only be + considered if:

+ +
    +
  • You trust your users not to write scripts which will deliberately + or accidentally expose your system to an attack.
  • +
  • You consider security at your site to be so feeble in other areas, + as to make one more potential hole irrelevant.
  • +
  • You have no users, and nobody ever visits your server.
  • +
+ +
top
+
+

Script Aliased CGI

+ + + +

Limiting CGI to special directories gives the admin control over what + goes into those directories. This is inevitably more secure than non + script aliased CGI, but only if users with write access to the + directories are trusted or the admin is willing to test each + new CGI script/program for potential security holes.

+ +

Most sites choose this option over the non script aliased CGI + approach.

+ +
top
+
+

Other sources of dynamic content

+ + + +

Embedded scripting options which run as part of the server itself, + such as mod_php, mod_perl, mod_tcl, + and mod_python, run under the identity of the server itself + (see the User directive), and + therefore scripts executed by these engines potentially can access + anything the server user can. Some scripting engines may provide + restrictions, but it is better to be safe and assume not.

+ +
top
+
+

Protecting System Settings

+ + + +

To run a really tight ship, you'll want to stop users from setting + up .htaccess files which can override security features + you've configured. Here's one way to do it.

+ +

In the server configuration file, put

+ +

+ <Directory />
+ AllowOverride None
+ </Directory> +

+ +

This prevents the use of .htaccess files in all + directories apart from those specifically enabled.

+ +
top
+
+

Protect Server Files by Default

+ + + +

One aspect of Apache which is occasionally misunderstood is the + feature of default access. That is, unless you take steps to change it, + if the server can find its way to a file through normal URL mapping + rules, it can serve it to clients.

+ +

For instance, consider the following example:

+ +

+ # cd /; ln -s / public_html
+ Accessing http://localhost/~root/ +

+ +

This would allow clients to walk through the entire filesystem. To + work around this, add the following block to your server's + configuration:

+ +

+ <Directory />
+ Order Deny,Allow
+ Deny from all
+ </Directory> +

+ +

This will forbid default access to filesystem locations. Add + appropriate Directory blocks to + allow access only in those areas you wish. For example,

+ +

+ <Directory /usr/users/*/public_html>
+ Order Deny,Allow
+ Allow from all
+ </Directory>
+ <Directory /usr/local/httpd>
+ Order Deny,Allow
+ Allow from all
+ </Directory> +

+ +

Pay particular attention to the interactions of Location and Directory directives; for instance, even + if <Directory /> denies access, a + <Location /> directive might overturn it.

+ +

Also be wary of playing games with the UserDir directive; setting it to + something like ./ would have the same effect, for root, as + the first example above. If you are using Apache 1.3 or above, we strongly + recommend that you include the following line in your server + configuration files:

+ +

+ UserDir disabled root +

+ +
top
+
+

Watching Your Logs

+ + + +

To keep up-to-date with what is actually going on against your server + you have to check the Log Files. Even though + the log files only reports what has already happened, they will give you + some understanding of what attacks is thrown against the server and + allow you to check if the necessary level of security is present.

+ +

A couple of examples:

+ +

+ grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log
+ grep "client denied" error_log | tail -n 10 +

+ +

The first example will list the number of attacks trying to exploit the + Apache Tomcat + Source.JSP Malformed Request Information Disclosure Vulnerability, + the second example will list the ten last denied clients, for example:

+ +

+ [Thu Jul 11 17:18:39 2002] [error] [client foo.bar.com] client denied + by server configuration: /usr/local/apache/htdocs/.htpasswd +

+ +

As you can see, the log files only report what already has happened, so + if the client had been able to access the .htpasswd file you + would have seen something similar to:

+ +

+ foo.bar.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1" +

+ +

in your Access Log. This means + you probably commented out the following in your server configuration + file:

+ +

+ <Files ~ "^\.ht">
+ Order allow,deny
+ Deny from all
+ </Files> +

+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/security_tips.html.ko.euc-kr b/rubbos/app/apache2/manual/misc/security_tips.html.ko.euc-kr new file mode 100644 index 00000000..58c56f14 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/security_tips.html.ko.euc-kr @@ -0,0 +1,345 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

Ҷ Ʈ ̴. +  Ϲ̰,  ġ شϴ ̴.

+
+ +
top
+
+

ֽ ϱ

+ +

ġ + ü ϴ. ׷ ũ ۰ ǥ ߰ߵǴ + . ׷ Ʈ ֽŹ ϴ + ߿ϴ. ġ ٿεߴٸ, + ο Ʈ ˷ִ ġ + ǥ ϸƮ ϱ Ѵ. + ġ Ʈ ϴ ڵ鵵 񽺸 + Ѵ.

+ +

ڵ嶧 ϴ + ʴ. ׺ ߰ ڵ, CGI ũƮ, ü + ϴ 찡 . ׷Ƿ ׻ ϸ + ý Ʈ Ʈؾ Ѵ.

+ +
top
+
+

ServerRoot 丮

+ + + +

root ڰ ġ , û ϱ + User þ + ڷ ȯѴ. root ϴ ɾ ִٸ, + root ̿ ڰ ϵ ؾ Ѵ. + ϵ root ־ ϰ, 丮 丮 + . , ServerRoot /usr/local/apache + Ѵٸ root ڰ 丮 + Ѵ:

+ +

+ mkdir /usr/local/apache
+ cd /usr/local/apache
+ mkdir bin conf logs
+ chown 0 . bin conf logs
+ chgrp 0 . bin conf logs
+ chmod 755 . bin conf logs +

+ +

׷ /, /usr, /usr/local root ִ. + httpd ġҶ ȣؾ Ѵ:

+ +

+ cp httpd /usr/local/apache/bin
+ chown 0 /usr/local/apache/bin/httpd
+ chgrp 0 /usr/local/apache/bin/httpd
+ chmod 511 /usr/local/apache/bin/httpd +

+ +

htdocs 丮 ٸ ڵ ֵ + ִ -- root װ ִ , + ʾƾ Ѵ.

+ +

root ƴ ڰ root ϰų Ⱑ + ִٸ ý root ĥ ִ. + , httpd Ͽٸ Ҷ + ڵ带 ϰ ȴ. logs 丮 (root ƴ + ڿ) Ⱑϴٸ α ٸ ýϷ + ɺũ ɾ root Ͽ ڷḦ  + ִ. α (root ƴ ڿ) Ⱑϴٸ + α׿ ̻ ڷḦ ִ.

+ +
top
+
+

Server Side Includes

+ + + +

Server Side Includes (SSI) ڿ Ȼ  + ̴.

+ +

ù° ϸ ø ̴. ġ Ͽ + SSI þ ִ ο SSI мؾ + Ѵ. ϰ , ϴ + ȯ濡 ɰ ִ.

+ +

, SSI Ϲ CGI ũƮ + . SSI Ͽ "exec cmd" ϸ httpd.conf + ġ ϵ ڿ ׷ CGI + ũƮ α׷ ִ.

+ +

Ȱϸ鼭 SSI Ű + ִ.

+ +

SSI ִ ظ ݸϱ ڴ + Ϲ CGI ϴ + suexec ִ

+ +

.html̳ .htm Ȯڸ SSI Ϸ ϴ ϴ. + Ư ϰų ŷ ȯ濡 + ϴ. SSI Ϲ ϴ .shtml + Ȯڸ Ѵ. ׷ ϸ ּȭϰ + Ҹ ִ.

+ +

ٸ SSI ũƮ α׷ + ϵ ̴. Options þ Includes + IncludesNOEXEC Ѵ. ׷ ũƮ + ScriptAlias þ + 丮 ִٸ <--#include virtual="..." --> + Ͽ CGI ũƮ ϶.

+ +
top
+
+

Ϲ CGI

+ + + +

ᱹ ׻ CGI ũƮ/α׷ ڸ ŷؾ + ϰ, ǰ Ǽ̰ CGI Ȼ ߰ + ־ Ѵ. ⺻ CGI ũƮ + ýۿ  ɾ ֱ⶧ + ְ Ȯ ſ ϴ.

+ +

CGI ũƮ ڷ DZ⶧ ٸ + ũƮ (ǰ Ǽ̰) 浹 ɼ ִ. + , A B ſ ȾϿ, B CGI + ͺ̽ ũƮ ۼ ִ. ġ + 1.2 ԵǾ ġ Ư (hook) + ϴ suEXEC ũƮ + ٸ ڷ ϴ ϳ. ٸ + CGIWrap ִ.

+ +
top
+
+

ScriptAlias CGI

+ + + +

Ҷ ڰ  丮 + CGI ũƮ ϵ ִ:

+ +
    +
  • ǰ Ǽ̰ ڰ ý ݿ Ű + ũƮ ۼ ʴ´ٰ ϴ´.
  • +
  • ý ٸ κ ؼ, + ϳ  ٰ ϴ .
  • +
  • ڰ , Ƹ ƹ 湮ʴ .
  • +
+ +
top
+
+

ScriptAlias CGI

+ + + +

Ư 丮 CGI ֵ ϸ ڴ + ̵ 丮 ִ. scriptalias + CGI Ȯ ϴ. , ŷϴ ڸ 丮 + ְ, ڰ ο CGI ũƮ/α׷ + Ȼ ˻ ̰ ִٸ.

+ +

κ Ʈ scriptalias CGI + Ѵ.

+ +
top
+
+

ϴ ٸ

+ + + +

+ mod_php, mod_perl, mod_tcl, mod_python Ϻη + ϴ Ӻ ũƮ ڷ (User þ ) DZ⶧, + ũƮ ϴ ũƮ ڰ + ִ Ϳ ִ.  ũƮ + , ϴٰ ʴ .

+ +
top
+
+

ý ȣϱ

+ + + +

Ϸ ڰ + .htaccess Ͽ ȱ + ϱ ٶ ̴. ׷ + ִ.

+ +

Ͽ ߰Ѵ

+ +

+ <Directory />
+ AllowOverride None
+ </Directory> +

+ +

׷ 밡ϵ 丮 ϰ + .htaccess .

+ +
top
+
+

⺻ ִ ȣϱ

+ + + +

ġ ⺻ ٿ ߸ ˰ִ. + , Ϲ URL Ģ Ͽ ã + ִٸ, Ư ġ ʴ Ŭ̾Ʈ + 񽺵 ִ.

+ +

, Ʒ :

+ +

+ # cd /; ln -s / public_html
+ http://localhost/~root/ Ѵ +

+ +

׷ Ŭ̾Ʈ ü Ͻý ƴٴ ִ. + ̸ ġ Ѵ:

+ +

+ <Directory />
+ Order Deny,Allow
+ Deny from all
+ </Directory> +

+ +

׷ Ͻý ġ ⺻ źεȴ. + ϴ ֵ Directory ߰Ѵ.

+ +

+ <Directory /usr/users/*/public_html>
+ Order Deny,Allow
+ Allow from all
+ </Directory>
+ <Directory /usr/local/httpd>
+ Order Deny,Allow
+ Allow from all
+ </Directory> +

+ +

Location Directory þ ϴ + Ư Ǹ ←. , <Directory + /> źϴ <Location + /> þ ̸ ִ

+ +

UserDir þ + ϴ 쿡 ϶. þ "./" ϸ + root ڿ ٷ ߻Ѵ. + ġ 1.3 ̻ Ѵٸ Ͽ Ʒ ߰ϱ + Ѵ:

+ +

+ UserDir disabled root +

+ +
top
+
+

α 캸

+ + + +

־ ִ ˷ α Ѵ. α + ̹ Ͼ ϸ ,  ־ + ˷ְ ʿ ŭ Ȯϰ ش.

+ +

:

+ +

+ grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log
+ grep "client denied" error_log | tail -n 10 +

+ +

ù° ߸ + Source.JSP û ˾Ƴ ִ Tomcat + ̿Ϸ Ƚ ˷ְ, ι° + źε ֱ Ŭ̾Ʈ 10 ش:

+ +

+ [Thu Jul 11 17:18:39 2002] [error] [client foo.bar.com] client denied + by server configuration: /usr/local/apache/htdocs/.htpasswd +

+ +

α ̹ ߻ Ǹ Ѵ. + ׷ Ŭ̾Ʈ .htpasswd Ͽ + ־ٸ α + ̴:

+ +

+ foo.bar.com - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1" +

+ +

, Ͽ κ ּó + ̴:

+ +

+ <Files ~ "^\.ht">
+ Order allow,deny
+ Deny from all
+ <Files> +

+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/security_tips.html.tr.utf8 b/rubbos/app/apache2/manual/misc/security_tips.html.tr.utf8 new file mode 100644 index 00000000..7257521f --- /dev/null +++ b/rubbos/app/apache2/manual/misc/security_tips.html.tr.utf8 @@ -0,0 +1,344 @@ + + + +Güvenlik İpuçları - Apache HTTP Sunucusu + + + + + +
<-
+

Güvenlik İpuçları

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ +

Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı + ipuçları. Öneriler kısmen Apache’ye özel kısmen de genel olacaktır.

+
+ +
top
+
+

Güncel Tutma

+ +

Apache HTTP Sunucusu iyi bir güvenlik sicilinin yanında güvenlik + konularıyla oldukça ilgili bir geliştirici topluluğuna sahiptir. Fakat, + bir yazılımın dağıtılmasının ardından küçük ya da büyük bazı sorunların + keşfedilmesi kaçınılmazdır. Bu sebeple, yazılım güncellemelerinden + haberdar olmak oldukça önem kazanır. HTTP sunucunuzu doğrudan + Apache’den temin ediyorsanız yeni sürümler ve güvenlik güncellemeleri + ile ilgili bilgileri tam zamanında alabilmek için Apache + HTTP Sunucusu Duyuru Listesine mutlaka üye olmanızı öneririz. + Apache yazılımının üçüncü parti dağıtımlarını yapanların da buna benzer + hizmetleri vardır.

+ +

Şüphesiz, bir HTTP sunucusu, sunucu kodunda bir sorun olmasa da + tehlike altındadır. Eklenti kodları, CGI betikleri hatta işletim + sisteminden kaynaklanan sorunlar nedeniyle bu ortaya çıkabilir. Bu + bakımdan, sisteminizdeki tüm yazılımların sorunları ve güncellemeleri + hakkında bilgi sahibi olmalısınız.

+ +
top
+
+

ServerRoot Dizinlerinin İzinleri

+ + +

Normalde, Apache root kullanıcı tarafından başlatılır ve hizmetleri + sunarken User yönergesi + tarafından tanımlanan kullanıcının aidiyetinde çalışır. Root tarafından + çalıştırılan komutlarda olduğu gibi, root olmayan kullanıcıların + yapacakları değişikliklerden korunmak konusunda da dikkatli + olmalısınız. Dosyaların sadece root tarafından yazılabilir olmasını + sağlamak yeterli değildir, bu dizinler ve üst dizinler için de + yapılmalıdır. Örneğin, sunucu kök dizininin + /usr/local/apache olmasına karar verdiyseniz, bu dizini + root olarak şöyle oluşturmanız önerilir:

+ +

+ mkdir /usr/local/apache
+ cd /usr/local/apache
+ mkdir bin conf logs
+ chown 0 . bin conf logs
+ chgrp 0 . bin conf logs
+ chmod 755 . bin conf logs +

+ +

/, /usr, /usr/local + dizinlerinde sadece root tarafından değişiklik yapılabileceği kabul + edilir. httpd çalıştırılabilirini kurarken de benzer + bir önlemin alındığından emin olmalısınız:

+ +

+ cp httpd /usr/local/apache/bin
+ chown 0 /usr/local/apache/bin/httpd
+ chgrp 0 /usr/local/apache/bin/httpd
+ chmod 511 /usr/local/apache/bin/httpd +

+ +

Diğer kullanıcıların değişiklik yapabileceği bir dizin olarak bir + htdocs dizini oluşturabilirsiniz. Bu dizine root + tarafından çalıştırılabilecek dosyalar konulmamalı ve burada root + tarafından hiçbir dosya oluşturulmamalıdır.

+ +

Diğer kullanıcılara root tarafından yazılabilen ve çalıştırılabilen + dosyalarda değişiklik yapma hakkını tanırsanız, onlara root + kullanıcısını ele geçirilebilme hakkını da tanımış olursunuz. Örneğin, + biri httpd çalıştırılabilirini zararlı bir programla + değiştirebilir ve o programı tekrar çalıştırdığınız sırada program + yapacağını yapmış olur. Günlükleri kaydettiğiniz dizin herkes + tarafından yazılabilen bir dizin olduğu takdirde, birileri bir günlük + dosyasını bir sistem dosyasına sembolik bağ haline getirerek root + kullanıcısının bu dosyaya ilgisiz şeyler yazmasına sebep olabilir. + Günlüklerin dosyaları herkes tarafından yazılabilir olduğu takdirde ise + birileri dosyaya yanıltıcı veriler girebilir.

+
top
+
+

Sunucu Taraflı İçerik Yerleştirme

+ + +

SSI sayfaları bir sunucu yöneticisi açısından çeşitli olası risklere + kaynaklık edebilir.

+ +

İlk risk, sunucu yükündeki artış olasılığıdır. Tüm SSI sayfaları, SSI + kodu içersin içermesin Apache tarafından çözümlenir. Bu küçük bir artış + gibi görünürse de bir paylaşımlı sunucu ortamında önemli bir yük haline + gelebilir.

+ +

SSI sayfaları, CGI betikleriyle ilgili riskleri de taşır. exec + cmd elemanı kullanılarak bir SSI sayfasından herhangi bir CGI + betiğini veya bir sistem programını Apache’nin aidiyetinde olduğu + kullanıcının yetkisiyle çalıştırmak mümkündür.

+ +

SSI sayfalarının yararlı özelliklerinden yararlanırken güvenliğini de + arttırmanın bazı yolları vardır.

+ +

Sunucu yöneticisi, bir başıbozuk SSI sayfasının sebep olabileceği + zararları bertaraf etmek için CGI Genelinde + bölümünde açıklandığı gibi suexec’i etkin + kılabilir.

+ +

SSI sayfalarını .html veya .htm + uzantılarıyla etkinleştirmek tehlikeli olabilir. Bu özellikle + paylaşımlı ve yüksek trafikli bir sunucu ortamında önemlidir. SSI + sayfalarını normal sayfalardan farklı olarak .shtml gibi + bildik bir uzantıyla etkinleştirmek gerekir. Bu, sunucu yükünü asgari + düzeyde tutmaya ve risk yönetimini kolaylaştırmaya yarar.

+ +

Diğer bir çözüm de SSI sayfalarından betik ve program çalıştırmayı + iptal etmektir. Bu, Options + yönergesine değer olarak Includes yerine + IncludesNOEXEC vererek sağlanır. Ancak, eğer betiklerin + bulunduğu dizinde ScriptAlias + yönergesiyle CGI betiklerinin çalışması mümkün kılınmışsa, + kullanıcıların <--#include virtual="..." --> ile bu + betikleri çalıştırabileceklerine dikkat ediniz.

+ +
top
+
+

CGI Genelinde

+ + +

Herşeyden önce ya CGI betiğini/programını yazanlara ya da kendinizin + CGI'deki güvenlik açıklarını (ister kasıtlı olsun ister tesadüfi) + yakalama becerinize güvenmek zorundasınız. CGI betikleri esasen + sisteminizdeki komutları site kullanıcılarının izinleriyle + çalıştırırlar. Bu bakımdan dikkatle denenmedikleri takdirde oldukça + tehlikeli olabilirler.

+ +

CGI betiklerinin hepsi aynı kullanıcının aidiyetinde çalışırsa diğer + betiklerle aralarında çelişkilerin ortaya çıkması ister istemez + kaçınılmazdır. Örneğin A kullanıcısının B kullanıcısına garezi varsa + bir betik yazıp B’nin CGI veritabanını silebilir. Bu gibi durumların + ortaya çıkmaması için betiklerin farklı kullanıcıların aidiyetlerinde + çalışmasını sağlayan ve 1.2 sürümünden beri Apache ile dağıtılan suEXEC diye bir program vardır. Başka bir yol + da CGIWrap kullanmaktır.

+ +
top
+
+

ScriptAlias’sız CGI

+ + +

Kullanıcıların sitenin her yerinde CGI betiklerini çalıştırmalarına + izin vermek ancak şu koşullarda mümkün olabilir:

+ +
    +
  • Kullanıcılarınızın kasıtlı ya da kasıtsız sistemi saldırıya açık + hale getirecek betikler yazmayacaklarına tam güveniniz vardır.
  • +
  • Sitenizin güvenliği zaten o kadar kötüdür ki, bir delik daha + açılmasının mahzuru yoktur.
  • +
  • Sitenizin sizden başka kullanıcısı yoktur ve sunucunuzu sizden + başka hiç kimsenin ziyaret etmesi mümkün değildir.
  • +
+ +
top
+
+

ScriptAlias’lı CGI

+ + +

CGI’yi belli dizinlerle sınırlamak yöneticiye bu dizinlerde daha iyi + denetim imkanı sağlar. Bu kaçınılmaz olarak ScriptAlias’sız CGI’den çok daha + güvenlidir, ancak bu dizinlere yazma hakkı olan kullanıcılarınız + güvenilir kişiler olması ve site yöneticisinin de olası güvenlik + açıklarına karşı CGI betiklerini ve programlarını denemeye istekli + olması şartıyla.

+ +

Çoğu site yöneticisi ScriptAlias’sız CGI yerine bu + yaklaşımı seçer.

+ +
top
+
+

Devingen içerikli kaynaklar

+ + +

Sunucunun bir parçası gibi çalışan, mod_php, + mod_perl, mod_tcl ve mod_python + gibi gömülü betik çalıştırma seçenekleri sunucuyu çalıştıran + kullanıcının aidiyetinde çalışırlar (User yönergesine bakınız). Bu bakımdan bu betik + yorumlayıcılar tarafından çalıştırılan betikler, sunucu kullanıcısının + eriştiği herşeye erişebilirler. Bazı betik yorumlayıcıların getirdiği + bazı sınırlamalar varsa da bunlara pek güvenmemek, gerekli sınamaları + yine de yapmak gerekir.

+ +
top
+
+

Sistem Ayarlarının Korunması

+ + +

Güvenliği gerçekten sıkı tutmak istiyorsanız, kullanıcılarınızın + yapılandırmanızdaki güvenlik ayarlarını geçersiz kılmak için + .htaccess dosyalarını kullanabilmelerinin de önüne + geçmelisiniz. Bunu yapmanın tek bir yolu vardır.

+ +

Sunucu yapılandırma dosyanıza şunu yerleştirin:

+ +

+ <Directory /> + + AllowOverride None + + </Directory> +

+ +

Böylece, belli dizinlerde özellikle etkinleştirilmedikçe bütün + dizinlerde .htaccess dosyalarının kullanımını engellemiş + olursunuz.

+ +
top
+
+

Sunucu dosyalarının öntanımlı olarak korunması

+ + +

Apache’nin ister istemez yanlış anlaşılan yönlerinden biri öntanımlı erişim özelliğidir. Yani siz aksine bir şeyler yapmadıkça, sunucu normal URL eşleme kurallarını kullanarak bir dosyayı bulabildiği sürece onu istemciye sunacaktır.

+ +

Örneğin, aşağıdaki durumu ele alalım:

+ +

+ # cd /; ln -s / public_html +

+ +

Ve, tarayıcınıza http://localhost/~root/ yazın.

+ +

Böylece, istemcilerin tüm dosya sisteminizi gezmelerine izin vermiş olursunuz. Bu işlemin sonuçlarının önünü almak için sunucu yapılandırma dosyanıza şunları yazın:

+ +

+ <Directory /> + + Order Deny,Allow
+ Deny from all +
+ </Directory> +

+ +

Bu suretle, dosya sisteminize öntanımlı erişimi yasaklamış olursunuz. Erişime izin vermek istediğiniz dizinler için uygun Directory bölümleri eklemeniz yeterli olacaktır. Örnek:

+ +

+ <Directory /usr/users/*/public_html> + + Order Deny,Allow
+ Allow from all +
+ </Directory>
+ <Directory /usr/local/httpd> + + Order Deny,Allow
+ Allow from all +
+ </Directory> +

+ +

Location ve Directory yönergelerinin etkileşimine de özellikle önem vermelisiniz; örneğin <Directory /> erişimi yasaklarken bir <Location /> yönergesi bunu ortadan kaldırabilir.

+ +

UserDir yönergesi de size buna benzer bir oyun oynayabilir; yönergeye ./ atamasını yaparsanız, root kullanıcısı söz konusu olduğunda yukarıda ilk örnekteki durumla karşılaşırız. Apache 1.3 veya üstünü kullanıyorsanız, sunucu yapılandırma dosyanızda aşağıdaki satırın mutlaka bulunmasını öneririz:

+ +

+ UserDir disabled root +

+ +
top
+
+

Günlüklerin İzlenmesi

+ + +

Sunucunuzda olup biteni günü gününe bilmek istiyorsanız günlük dosyalarına bakmalısınız. Günlük dosyaları sadece olup biteni raporlamakla kalmaz, sunucunuza ne tür saldırılar yapıldığını ve güvenlik seviyenizin yeterli olup olmadığını anlamanızı da sağlarlar.

+ +

Bazı örnekler:

+ +

+ grep -c "/jsp/source.jsp?/jsp/ /jsp/source.jsp??" access_log
+ grep "client denied" error_log | tail -n 10 +

+ +

İlk örnek, Apache Tomcat + Source.JSP Bozuk İstek Bilgilerini İfşa Açığını istismar etmeyi deneyen saldırıların sayısını verirken ikinci örnek, reddedilen son on istemciyi listeler; örnek:

+ +

+ [Thu Jul 11 17:18:39 2002] [error] [client falan.filan.dom] client denied + by server configuration: /usr/local/apache/htdocs/.htpasswd +

+ +

Gördüğünüz gibi günlük dosyaları sadece ne olup bittiğini raporlar, bu bakımdan eğer istemci .htpasswd dosyasına erişebiliyorsa erişim günlüğünüzde şuna benzer bir kayıt görürsünüz:

+ +

+ falan.filan.dom - - [12/Jul/2002:01:59:13 +0200] "GET /.htpasswd HTTP/1.1" +

+ +

Bu, sunucu yapılandırma dosyanızda aşağıdaki yapılandırmayı iptal ettiğiniz anlamına gelir:

+ +

+ <Files ~ "^\.ht"> + + Order allow,deny
+ Deny from all +
+ </Files> +

+ +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/misc/tutorials.html b/rubbos/app/apache2/manual/misc/tutorials.html new file mode 100644 index 00000000..e17505c2 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/tutorials.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: tutorials.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/misc/tutorials.html.en b/rubbos/app/apache2/manual/misc/tutorials.html.en new file mode 100644 index 00000000..0b9f2d12 --- /dev/null +++ b/rubbos/app/apache2/manual/misc/tutorials.html.en @@ -0,0 +1,211 @@ + + + +Apache Tutorials - Apache HTTP Server + + + + + +
<-
+

Apache Tutorials

+
+

Available Languages:  en 

+
+ + +

Warning:

+

This document has not been fully updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care.

+
+ +

The following documents give you step-by-step instructions + on how to accomplish common tasks with the Apache HTTP server. + Many of these documents are located at external sites and are + not the work of the Apache Software Foundation. Copyright to + documents on external sites is owned by the authors or their + assignees. Please consult the official Apache + Server documentation to verify what you read on external + sites.

+ +
+ +
top
+
top
+
+

Basic Configuration

+ + + + +
top
+
top
+
+

Logging

+ + + + +
top
+
+

CGI and SSI

+ + + + +
top
+
+

Other Features

+ + + + + +

If you have a pointer to an accurate and well-written + tutorial not included here, please let us know by submitting it + to the Apache Bug + Database.

+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/beos.html b/rubbos/app/apache2/manual/mod/beos.html new file mode 100644 index 00000000..1bb91b93 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/beos.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: beos.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: beos.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: beos.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: beos.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/beos.html.de b/rubbos/app/apache2/manual/mod/beos.html.de new file mode 100644 index 00000000..c7934981 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/beos.html.de @@ -0,0 +1,109 @@ + + + +beos - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-MPM beos

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko 

+
+ + + +
Beschreibung:Dieses Multi-Processing-Modul ist fr BeOS + optimiert.
Status:MPM
Modulbezeichner:mpm_beos_module
Quelltext-Datei:beos.c
+

Zusammenfassung

+ +

Dieses Multi-Processing-Modul (MPM) ist das Standardmodul fr BeOS. + Es benutzt einen einzelnen Steuerprozess welcher Threads fr die + Bedienung der Anfragen erzeugt.

+
+ + +
top
+

MaxRequestsPerThread-Direktive

+ + + + + + + +
Beschreibung:Die maximale Anzahl von Anfragen, die ein einzelner Thread + whrend seiner Lebensdauer bedient.
Syntax:MaxRequestsPerThread Anzahl
Voreinstellung:MaxRequestsPerThread 0
Kontext:Serverkonfiguration
Status:MPM
Modul:beos
+

Die Direktive MaxRequestsPerThread legt die + Anzahl der Anfragen fest, die ein einzelner Server-Thread bedient. Nach + Erreichen der angegebenen Anzahl von Anfragen wird der Thread beendet. + Wird fr MaxRequestsPerThread der Wert + 0 angegeben, wird der Thread niemals beendet.

+ +

Das Setzen von MaxRequestsPerThread auf einen + Wert ungleich null hat zwei Vorteile:

+ +
    +
  • Die Menge des von einem Thread bentigten Speicherplatzes + bei (unvorhergesehenen) Speicherproblemen kann begrenzt werden;
  • + +
  • Threads mit begrenzter Lebensdauer reduzieren die Anzahl + der Threads bei reduzierter Serverlast.
  • +
+ +

Hinweis:

+

Bei KeepAlive-Anfragen wird nur die + erste Anfrage auf das Maximum angerechnet. Das fhrt dazu, dass + die Anzahl der Verbindungen + pro Thread reduziert wird.

+
+ +
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/beos.html.en b/rubbos/app/apache2/manual/mod/beos.html.en new file mode 100644 index 00000000..32c8c1f5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/beos.html.en @@ -0,0 +1,107 @@ + + + +beos - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM beos

+
+

Available Languages:  de  | + en  | + es  | + ko 

+
+ + + +
Description:This Multi-Processing Module is optimized for BeOS.
Status:MPM
ModuleIdentifier:mpm_beos_module
SourceFile:beos.c
+

Summary

+ +

This Multi-Processing Module (MPM) is the default for BeOS. It uses + a single control process which creates threads to handle requests.

+
+ + +
top
+

MaxRequestsPerThread Directive

+ + + + + + + +
Description:Limit on the number of requests that an individual thread +will handle during its life
Syntax:MaxRequestsPerThread number
Default:MaxRequestsPerThread 0
Context:server config
Status:MPM
Module:beos
+

The MaxRequestsPerThread directive sets + the limit on the number of requests that an individual server thread + will handle. After MaxRequestsPerThread + requests, the thread will die. If MaxRequestsPerThread is 0, then the thread + will never expire.

+ +

Setting MaxRequestsPerThread to a + non-zero limit has two beneficial effects:

+ +
    +
  • it limits the amount of memory that a thread can consume + by (accidental) memory leakage;
  • + +
  • by giving threads a finite lifetime, it helps reduce + the number of threads when the server load reduces.
  • +
+ +

Note:

+

For KeepAlive requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of connections + per thread.

+
+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/beos.html.es b/rubbos/app/apache2/manual/mod/beos.html.es new file mode 100644 index 00000000..80c95718 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/beos.html.es @@ -0,0 +1,115 @@ + + + +beos - Servidor HTTP Apache + + + + + + +
<-
+ +
+

MPM de Apache beos

+
+

Idiomas disponibles:  de  | + en  | + es  | + ko 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + + +
Descripcin:Este mdulo de muiltiprocesamiento est +optimizado para BeOS.
Estado:MPM
Identificador de Mdulos:mpm_beos_module
Fichero de Cdigo Fuente:beos.c
+

Resumen de contenidos

+ +

Este mdulo de muiltiprocesamiento (MMP) + es el que usa por defecto para BeOS. Usa un + nico proceso de control que crea hebras para atender las + peticiones.

+
+ + +
top
+

MaxRequestsPerThread Directiva

+ + + + + + + +
Descripcin:Limita el nmero de peticiones que una hebra (thread) puede +atender durante su vida
Sintaxis:MaxRequestsPerThread number
Valor por defecto:MaxRequestsPerThread 0
Contexto:server config
Estado:MPM
Mdulo:beos
+

La directiva MaxRequestsPerThread fija + el nmero mximo de peticiones que una hebra del + servidor puede atender durante su vida. Despues de atender + MaxRequestsPerThread peticiones, la hebra + termina. Si el lmite fijado en MaxRequestsPerThread es 0, entonces la + hebra puede atender peticiones indefinidamente.

+ +

Fijar la directiva MaxRequestsPerThread + a un lmite distinto de cero ofrece dos benefcios + fundamentales:

+ +
    +
  • limita la cantidad de memoria que puede consumir una hebra + si hay una filtracin (accidental) de memoria;
  • + +
  • poniendo un lmite a la vida de las hebras, se ayuda a + reducir el nmero de hebras cuando se reduce la carga de + trabajo en el servidor.
  • +
+ +

Nota:

Para peticiones KeepAlive, solo la primera + peticin se tiene en cuenta para este lmite. De hecho, en este + caso el lmite se impone sobre el nmero mximo + de conexiones por hebra.

+
+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/beos.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/beos.html.ko.euc-kr new file mode 100644 index 00000000..9a03b917 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/beos.html.ko.euc-kr @@ -0,0 +1,105 @@ + + + +beos - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ MPM beos

+
+

:  de  | + en  | + es  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:BeOS ȭ ó .
:MPM
:mpm_beos_module
ҽ:beos.c
+

+ +

ó (MPM) BeOS ⺻ Ѵ. + μ û ó .

+
+ + +
top
+

MaxRequestsPerThread þ

+ + + + + + + +
: 尡 ϴ ó û Ѱ
:MaxRequestsPerThread number
⺻:MaxRequestsPerThread 0
:ּ
:MPM
:beos
+

MaxRequestsPerThread þ + 尡 ó û Ѵ. + MaxRequestsPerThread û ó + ״´. MaxRequestsPerThread + 0̸ 带 ʴ´.

+ +

MaxRequestsPerThread 0 ƴ + ϸ ΰ ִ:

+ +
    +
  • (쿬 ߻) ޸ (memory leakage) + 尡 ޸𸮷 Ѵ;
  • + +
  • Ͽ ϰ Ҷ + δ.
  • +
+ +

:

+

KeepAlive û + ù° û . ׷ þ + ϰ ȴ.

+
+ +
+
+
+

:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/core.html b/rubbos/app/apache2/manual/mod/core.html new file mode 100644 index 00000000..25de2b72 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: core.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: core.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: core.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: core.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: core.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/core.html.de b/rubbos/app/apache2/manual/mod/core.html.de new file mode 100644 index 00000000..48e81964 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html.de @@ -0,0 +1,3422 @@ + + + +core - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-Kernfunktionen

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen Sie die englische Version auf + die neuesten nderungen.
+ +
Beschreibung:Stndig verfgbare Kernfunktionen des Apache HTTP +Servers
Status:Core
+
+ + +
top
+

AcceptPathInfo-Direktive

+ + + + + + + + + +
Beschreibung:Ressourcen lassen angehngte Pfadangaben zu
Syntax:AcceptPathInfo On|Off|Default
Voreinstellung:AcceptPathInfo Default
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Verfgbar ab Apache 2.0.30
+

Die Direktive steuert, ob Anfragen akzeptiert oder + abgewiesen werden, bei denen nach der tatschlichen + Datei (oder einer nicht existierenden Datei in einem existierenden + Verzeichnis) zustzliche Pfadangaben folgen. Die angehngte + Pfadangabe kann Skripten in der Umgebungsvariable PATH_INFO + verfgbar gemacht werden.

+ +

Nehmen wir beispielsweise an, dass /test/ auf ein + Verzeichnis zeigt, welches lediglich eine Datei here.html + enthlt. Dann wird bei Anfragen nach + /test/here.html/more und + /test/nothere.html/more beides Mal /more + als PATH_INFO ermittelt.

+ +

Die drei mglichen Argumente fr die Direktive + AcceptPathInfo sind:

+ +
+
Off
Eine Anfrage wird nur dann akzeptiert, + wenn sie exakt auf ein existierendes Verzeichnis (oder eine Datei) + abgebildet werden kann. Daher wrde eine Anfrage mit einer nach dem + tatschlichen Dateinamen angehngten Pfadangabe, wie + /test/here.html/more im obigen Beispiel, den Fehler + 404 NOT FOUND (Anm.d..: nicht gefunden) + zurckgeben.
+ +
On
+
Eine Anfrage wird akzeptiert, wenn eine vorangestellte Pfadangabe + auf ein existierendes Verzeichnis abgebildet werden kann. Das + obige Beispiel /test/here.html/more wird akzeptiert, + wenn /test/here.html auf eine gltige Datei + zeigt.
+ +
Default
+
Die Behandlung von Anfragen mit angehngten Pfadangaben + wird von dem fr die Anfrage verantwortlichen Handler bestimmt. Der Core-Handler + fr gewhnliche Dateien weist PATH_INFO-Zugriffe + standardmig zurck. Handler, die Skripte bedienen, + wie z.B. cgi-script und + isapi-handler, sind im Allgemeinen darauf + voreingestellt, PATH_INFO zu akzeptieren.
+
+ +

Das eigentliche Ziel von AcceptPathInfo ist es, Ihnen + das berschreiben der Voreinstellung der Handler bezglich + der Akzeptanz oder Ablehnung von PATH_INFO zu erlauben. + Eine solche nderung ist zum Beispiel notwendig, wenn Sie einen + Filter wie INCLUDES verwenden, um Inhalte + abhngig von PATH_INFO zu generieren. Der + Core-Handler wrde die Anfrage normalerweise abweisen. Verwenden + Sie die folgende Konfiguration, um dennoch solch ein Skript zu + ermglichen.

+ +

+ <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ + +
+
top
+

AccessFileName-Direktive

+ + + + + + + +
Beschreibung:Name der dezentralen Konfigurationsdateien
Syntax:AccessFileName Dateiname [Dateiname] ...
Voreinstellung:AccessFileName .htaccess
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Aus dieser Namensliste sucht der Server whrend der + Bearbeitung einer Anfrage in jedem Verzeichnis nach der ersten + existierenden Datei, sofern im betreffenden Verzeichnis dezentrale + Konfigurationsdateien erlaubt sind. + Beispiel:

+ +

+ AccessFileName .acl +

+ +

Vor der Rcksendung des Dokuments + /usr/local/web/index.html wird der Server + /.acl, /usr/.acl, + /usr/local/.acl und /usr/local/web/.acl + einlesen, solange diese nicht mit

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

deaktiviert wurden.

+ +

Siehe auch

+ +
+
top
+

AddDefaultCharset-Direktive

+ + + + + + + + +
Beschreibung:Standard-Charset-Parameter, der bei Antworten vom Content-Type + text/plain oder text/html hinzugefgt wird +
Syntax:AddDefaultCharset On|Off|Zeichenkodierung
Voreinstellung:AddDefaultCharset Off
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Die Direktive gibt einen Standardwert fr den Charset-Paramter des + Medientyps (den Namen einer Zeichencodierung) an, der einer Antwort + genau dann hinzugefgt wird, wenn der Content-Type der Antwort entweder + text/plain oder text/html ist. Dies sollte jedes + mittels META-Element im Datenteil der Antwort angegebene + Charset berschreiben. Das genaue Verhalten hngt jedoch oft von + der Client-Konfiguration des Benutzers ab. Die Einstellung + AddDefaultCharset Off deaktiviert diese Funktionalitt. + AddDefaultCharset On aktiviert die Standard-Zeichenkodierung + iso-8859-1. Jeder andere Wert wird als die zu verwendende + Zeichenkodierung aufgefat, die eines der bei IANA registrierten + Charset-Werte zur Verwendung in MIME-Medientypen sein sollte. Zum + Beispiel:

+ +

+ AddDefaultCharset utf-8 +

+ +

AddDefaultCharset sollte nur verwendet werden, + wenn von allen Textressourcen, fr die es gilt, bekannt ist, dass sie + in dieser Zeichkodierung vorliegen, oder wenn es zu unbequem ist, ihre + Zeichenkodierung indivuell zu benennen. Ein solches Beispiel ist das + Hinzufgen des Charset-Parameters zu Ressourcen, die generierte + Inhalte enthalten. Ein Beispiel sind CGI-Skript-Altlasten, die aufgrund von + in die Ausgabe integrierten Daten, die durch den Benutzer bermittelt + wurden, gegen Cross-Site-Scripting-Angriffe verwundbar sind. Eine bessere + Lsung wre jedoch, diese Skripte zu korrigieren (oder zu + lschen), da die Angabe einer Standard-Zeichencodierung keine + Anwender schtzt, die in ihrem Browser die Funktion zur + automatischen Erkennung der Zeichenkodierung aktiviert haben.

+ +

Siehe auch

+ +
+
top
+

AddOutputFilterByType-Direktive

+ + + + + + + + +
Beschreibung:einen Ausgabefilter einem bestimmten MIME-Type +zuordnen
Syntax:AddOutputFilterByType Filter[;Filter...] +MIME-Type [MIME-Type] ...
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Verfgbar ab Apache 2.0.33
+

Die Direktive aktiviert fr eine Anfrage abhngig vom + MIME-Type der Antwort einen bestimmten Ausgabe-Filter.

+ +

Das folgende Beispiel verwendet den Filter DEFLATE, + der von mod_deflate angeboten wird. Er komprimiert + jede Ausgabe, die als text/html oder text/plain + gekennzeichnet ist, (gleichgltig, ob statisch oder dynamisch) + bevor sie an den Client gesendet wird.

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

Wenn Sie den Inhalt von mehr als einem Filter verarbeiten lassen + wollen, dann mssen deren Namen durch Semikolons voneinander + getrennt werden. Es ist ebenfalls mglich, eine + AddOutputFilterByType-Direktive fr + jeden von diesen Filtern zu verwenden.

+ +

Die folgende Konfiguration sorgt dafr, dass alle + Skriptausgaben, die als text/html gekennzeichnet + sind, zuerst vom INCLUDES-Filter und dann vom + DEFLATE-Filter verarbeitet werden.

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

Hinweis:

+

Die Aktivierung von Filtern mittels + AddOutputFilterByType kann in einigen + Fllen ganz oder teilweise fehlschlagen. Beispielsweise + werden keine Filter angewendet, wenn der MIME-Type nicht bestimmt + werden kann und auf die Einstellung der DefaultType-Anweisung zurckfllt, + selbst wenn die DefaultType-Einstellung die gleiche ist.

+ +

Wenn Sie jedoch sicherstellen wollen, dass der Filter + angewendet wird, sollten Sie den Content-Type z.B. mit + AddType oder + ForceType der Ressource + explizit zuordnen. Das Setzen des Content-Types innerhalb + eines (nicht-nph) CGI-Skriptes funktioniert ebenfalls + zuverlssig.

+ +

Die Typ-gebundenen Ausgabefilter werden niemals auf + Proxy-Anfragen angewendet.

+
+ +

Siehe auch

+ +
+
top
+

AllowEncodedSlashes-Direktive

+ + + + + + + + +
Beschreibung:Legt fest, ob kodierte Pfadtrennzeichen in URLs durchgereicht +werden drfen
Syntax:AllowEncodedSlashes On|Off
Voreinstellung:AllowEncodedSlashes Off
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
Kompatibilitt:Verfgbar ab Apache 2.0.46
+

Die AllowEncodedSlashes-Direktive erlaubt die + Verwendung von URLs, welche kodierte Pfadtrennzeichen (%2F + fr / und auf entsprechenden Systemen zustzlich + %5C fr \) enthalten. Normalerweise werden + derartige URLs mit einem 404-Fehler (Nicht gefunden) abgewiesen.

+ +

AllowEncodedSlashes On ist + vor allem in Verbindung mit PATH_INFO hilfreich.

+ +

Anmerkung

+

Das Erlauben von Schrgstrichen impliziert nicht deren + Dekodierung. Vorkommen von %2F oder %5C + (nur auf entsprechenden Systemen) werden unverndert in der + ansonsten dekodierten URL belassen.

+
+ +

Siehe auch

+ +
+
top
+

AllowOverride-Direktive

+ + + + + + + +
Beschreibung:Direktiven-Typen, die in .htaccess-Dateien +erlaubt sind.
Syntax:AllowOverride All|None|Direktiven-Typ +[Direktiven-Typ] ...
Voreinstellung:AllowOverride All
Kontext:Verzeichnis
Status:Core
Modul:core
+

Wenn der Server eine .htaccess-Datei (wie durch + AccessFileName definiert) + findet, muss er wissen, welche in der Datei angegebenen Direktiven + frhere Konfigurationsanweisungen berschreiben + drfen.

+ +

Nun in <Directory>-Abschnitten verfgbar

+ AllowOverride ist nur in <Directory>-Abschnitten + gltig, die ohne regulre Ausdrke definiert wurden, nicht + in <Location>-, + <DirectoryMatch>- oder + <Files>-Abschnitten. +
+ +

Wenn diese Anweisung auf None gesetzt wird, dann + werden .htaccess-Dateien komplett + ignoriert. In diesem Fall wird der Server nicht einmal versuchen, + die .htaccess-Dateien im Dateisystem zu lesen.

+ +

Wenn diese Anweisung auf All gesetzt wird, dann + ist jede Direktive in den .htaccess-Dateien erlaubt, + die den Kontext + .htaccess besitzt.

+ +

Der Direktiven-Typ kann eine der folgenden + Anweisungsgruppen sein.

+ +
+
AuthConfig
+ +
+ Erlaubt die Verwendung von Autorisierungs-Anweisungen (AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, AuthUserFile, Require usw.).
+ +
FileInfo
+ +
+ Erlaubt die Verwendung von Direktiven zur Steuerung der + Dokumenttypen (DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, und + mod_mime-Direktiven Add* und Remove* + usw.).
+ +
Indexes
+ +
+ Erlaubt die Verwendung von Direktiven zur Steuerung von + Verzeichnisindizes (AddDescription, + AddIcon, AddIconByEncoding, + AddIconByType, + DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName + usw.).
+ +
Limit
+ +
+ Erlaubt die Verwendung von Direktiven zur Steuerung des + Zugriffs von Hosts (Allow, Deny und Order).
+ +
Options
+ +
+ Erlaubt die Verwendung von Direktiven zur Steuerung spezieller + Verzeichniseigenschaften (Options + und XBitHack).
+
+ +

Beispiel:

+ +

+ AllowOverride AuthConfig Indexes +

+ +

Im obigen Beispiel erzeugen alle Direktiven einen internal server + error (Anm.d..: (Server-interner Fehler)), die weder der + Gruppe AuthConfig noch der Gruppe Indexes + angehren.

+ +

Siehe auch

+ +
+
top
+

AuthName-Direktive

+ + + + + + + +
Beschreibung:Autorisierungsbereich zur Verwendung in der +HTTP-Authentisierung
Syntax:AuthName auth-Bereich
Kontext:Verzeichnis, .htaccess
AllowOverride:AuthConfig
Status:Core
Modul:core
+

Die Direktive legt den Namen des Autorisierungsbereiches + (Anm.d..: Der Autorisierungsbereich wird auch Realm genannt.) + fr ein Verzeichnis fest. Dieser Realm wird dem Client mitgeteilt, + damit der Anwender wei, welchen Benutzernamen und welches Passwort + er zu bermitteln hat. AuthName akzeptiert ein + Argument. Falls der Name des Realm Leerzeichen enthlt, muss er in + Anfhrungszeichen eingeschlossen werden. Um zu funktionieren, muss + die Anweisung von den Direktiven AuthType und Require sowie von + Direktiven wie AuthUserFile + und AuthGroupFile + begleitet werden.

+ +

Beispiel:

+ +

+ AuthName "Top Secret" +

+ +

Die AuthName bergebene Zeichenkette ist das, + was in dem von den meisten Browsern angebotenen Passwort-Dialog + angezeigt wird.

+ +

Siehe auch

+ +
+
top
+

AuthType-Direktive

+ + + + + + + +
Beschreibung:Art der Authentisierung
Syntax:AuthType Basic|Digest
Kontext:Verzeichnis, .htaccess
AllowOverride:AuthConfig
Status:Core
Modul:core
+

Die Direktive whlt die Art der Benutzer-Authentisierung + fr ein Verzeichnis aus. Derzeit sind lediglich Basic + und Digest implementiert. + Um zu funktionieren, muss die Anweisung von den Direktiven AuthName und Require sowie von + Direktiven wie AuthUserFile + und AuthGroupFile + begleitet werden.

+ +

Siehe auch

+ +
+
top
+

CGIMapExtension-Direktive

+ + + + + + + + +
Beschreibung:Technik zur Bestimmung des Interpreters fr +CGI-Skripte
Syntax:CGIMapExtension CGI-Pfad .Endung
Kontext:Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:ausschlielich NetWare
+

Die Direktive wird zur Steuerung verwendet, wie Apache + den Interpreter ermittelt, der zur Ausfhrung von + CGI-Skripten verwendet wird. Beispielsweise bestimmt die Angabe + von CGIMapExtension sys:\foo.nlm .foo, dass + alle CGI-Scripte mit der Endung .foo an den + FOO-Interpreter bergeben werden.

+ +
+
top
+

ContentDigest-Direktive

+ + + + + + + + +
Beschreibung:Aktiviert die Generierung von Content-MD5 +HTTP-Response-Headern
Syntax:ContentDigest On|Off
Voreinstellung:ContentDigest Off
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:Options
Status:Core
Modul:core
+

Die Direktive aktiviert die Generierung von + Content-MD5-Headern, wie sie in RFC1864 bzw. RFC2068 + definiert sind.

+ +

MD5 ist ein Algorithmus zur Berechnung eines "Datenextrakts" + (zuweilen "Fingerabdruck" genannt) (Anm.d..: Der "Datenextrakt" wird im + Englischen als "message digest" oder "fingerprint" bezeichnet.) + aus beliebig langen Daten. Es gilt als zuverlssig, dass + Vernderungen an den Daten sich in Vernderungen des + Extrakts wiederspiegeln.

+ +

Der Content-MD5-Header bietet eine + End-to-End-Integrittsprfung (MIC) (Anm.d..: MIC steht fr + "message integrity check".) des Daten-Inhalts. Ein Proxy oder + Client kann diesen Header prfen, um zufllige Vernderungen + des Entity-Inhalts bei der bertragung festzustellen. + Beispielheader:

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

Beachten Sie bitte, dass dies Performanceprobleme auf Ihrem + System verursachen kann, da der Extrakt bei jeder Anfrage + berechnet wird (der Wert wird nicht zwischengespeichert).

+ +

Content-MD5 wird nur fr Dokumente gesendet, + die von core bedient werden, nicht jedoch bei + Modulen. SSI-Dokumente, CGI-Skript-Ausgaben und Byte-Range-Antworten + besitzen diesen Header beispielsweise nicht.

+ +
+
top
+

DefaultType-Direktive

+ + + + + + + + +
Beschreibung:MIME-Content-Type, der gesendet wird, wenn der Server den Typ +nicht auf andere Weise ermitteln kann.
Syntax:DefaultType MIME-Type
Voreinstellung:DefaultType text/plain
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Es kann vorkommen, dass der Server ein Dokument ausliefern muss, + dessen Typ er nicht mit Hilfe seiner MIME-Type-Zuordnungen bestimmen + kann.

+ +

Der Server muss den Client ber den Content-Type des + Dokumentes informieren. Daher verwendet er im Falle eines + unbekannten Typs die DefaultType-Einstellung. + Zum Beispiel:

+ +

+ DefaultType image/gif +

+ +

wre angemessen fr ein Verzeichnis, das viele GIF-Bilder + enthlt, deren Dateinamen nicht Endung .gif + besitzen.

+ +

Beachten Sie bitte, dass die Direktive anders als ForceType lediglich den Standard-MIME-Type + bestimmt. Alle anderen MIME-Type-Definitionen, einschlielich + Dateierweiterungen, die den Medien-Typ anzeigen knnen, + berschreiben diese Voreinstellung.

+ +
+
top
+

<Directory>-Direktive

+ + + + + + +
Beschreibung:Umschliet eine Gruppe von Direktiven, die nur auf +das genannte Verzeichnis des Dateisystems und Unterverzeichnisse angewendet +werden
Syntax:<Directory Verzeichnispfad> +... </Directory>
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

<Directory> und + </Directory> werden dazu verwendet, eine Gruppe + von Direktiven zusammenzufassen, die nur fr das genannte + Verzeichnis und dessen Unterverzeichnisse gelten. Jede Direktive, + die im Verzeichnis-Kontext erlaubt ist, kann verwendet werden. + Verzeichnispfad ist entweder der vollstndige Pfad zu + einem Verzeichnis oder eine Zeichenkette mit Platzhaltern wie sie von der + Unix-Shell zum Abgleich verwendet werden. In einer Zeichenkette + mit Platzhaltern (Anm.d..: sogenannte wild-cards) entspricht + ? einem einzelnen Zeichen und * einer + Zeichenkette beliebiger Lnge. Sie knnen auch auch + []-Zeichenbereiche verwenden. Keiner der Platzhalter + entspricht dem Zeichen "/". Daher passt <Directory + /*/public_html> nicht auf /home/user/public_html, + <Directory /home/*/public_html> jedoch tut es. + Beispiel:

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

Seien Sie vorsichtig mit den Verzeichnispfad-Argumenten. + Sie mssen buchstblich mit dem Dateisystempfad + bereinstimmen, den der Apache fr den Zugriff auf die + Dateien verwendet. Direktiven, die fr ein bestimmtes + Verzeichnis gelten, gelten nicht fr Dateien in dem Verzeichnis, + auf die ber einen anderen Pfad zugegriffen wird, wie z.B. + ber verschiedene symbolische Links.

+
+ +

Erweiterte regulre Ausdrcke knnen ebenfalls + verwendet werden, indem das Zeichen ~ hinzugefgt + wird. Beispielsweise wrde

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

auf Verzeichnisse in /www/ passen, die aus drei + Zahlen bestehen.

+ +

Wenn mehrere <Directory>-Abschnitte + (ohne regulre Ausdrcke) auf ein Verzeichnis (oder + ein ihm bergeordnetes Verzeichnis) passen, welches ein Dokument + enthlt, dann werden die Direktiven der Reihe nach, angefangen + beim krzesten passenden Muster, vermischt mit den Direktiven + aus den .htaccess-Dateien, angewendet. + Beispiel:

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

Beim Zugriff auf das Dokument /home/web/dir/doc.html + sind die einzelnen Schritte:

+ +
    +
  • Wende die Direktive AllowOverride None an + (deaktiviere .htaccess-Dateien).
  • + +
  • Wende die Direktive AllowOverride FileInfo + (auf das Verzeichnis /home) an.
  • + +
  • Wende jede FileInfo-Direktive aus + /home/.htaccess, /home/web/.htaccess und + /home/web/dir/.htaccess der Reihe nach an.
  • +
+ +

Regulre Ausdrcke werden solange nicht bercksichtigt, + bis alle normalen Abschnitte angewendet wurden. Anschlieend + werden alle regulren Ausdrcke in der Reihenfolge + geprft, in der sie in der Konfigurationsdatei auftauchen. + Beispielsweise wird bei

+ +

+ <Directory ~ abc$>
+ + # ... hier die Direktiven ...
+
+ </Directory> +

+ +

der Abschnitt mit dem regulren Ausdruck nicht + bercksichtigt, bis alle normalen + <Directory>-Abschnitte und + .htaccess-Dateien angewendet wurden. Dann erst wird + der regulre Ausdruck mit /home/abc/public_html/abc + abgeglichen und der entsprechende <Directory>-Abschnitt angewendet.

+ +

Beachten Sie bitte, dass der vom Apache voreingestellte + Zugriff fr <Directory /> + Allow from All ist. Das bedeutet, dass der Apache + jede Datei ausliefert, die durch eine URL abgebildet wird. Es wird + empfohlen, dass Sie dies durch einen Block wie

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

ndern und anschlieend fr + Verzeichnisse berschreiben, die Sie verfgbar machen + wollen. Fr weitere Einzelheiten lesen Sie bitte + die Seite zu den Sicherheitshinweisen.

+ +

Die Verzeichnisabschnitte erscheinen in der Datei + httpd.conf. <Directory>-Direktiven drfen nicht + ineinander verschachtelt werden oder innerhalb von <Limit>- oder <LimitExcept>-Abschnitten auftauchen.

+ +

Siehe auch

+ +
+
top
+

<DirectoryMatch>-Direktive

+ + + + + + +
Beschreibung:Umschliet eine Gruppe von Direktiven, die auf + Verzeichnisse des Dateisystems und ihre Unterverzeichnisse abgebildet + werden, welche auf einen regulren Ausdruck passen
Syntax:<DirectoryMatch regex> +... </DirectoryMatch>
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

<DirectoryMatch> und + </DirectoryMatch> werden dazu verwendet, eine + Gruppe von Direktiven zusammenzufassen, die nur fr das + genannte Verzeichnis und dessen Unterverzeichnisse gelten, genauso + wie bei <Directory>. + Als Argument dient jedoch ein regulrer Ausdruck. + Beispielsweise wrde

+ +

+ <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> +

+ +

auf Verzeichnisse in /www/ passen, die aus drei + Zeichen bestehen.

+ +

Siehe auch

+ +
+
top
+

DocumentRoot-Direktive

+ + + + + + + +
Beschreibung:Verzeichnis, welches den Haupt-Dokumentenbaum bildet, der im +Web sichtbar ist.
Syntax:DocumentRoot Verzeichnis
Voreinstellung:DocumentRoot /usr/local/apache/htdocs
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Direktive setzt das Verzeichnis, von dem aus + httpd Dateien ausliefert. Sofern nicht eine Direktive + wie Alias greift, hngt + der Server Pfade aus der angeforderten URL an das Wurzelverzeichnis + an, um den Pfad zum Dokument zu bilden. Beispiel:

+ +

+ DocumentRoot /usr/web +

+ +

Damit bezieht sich ein Zugriff auf + http://www.my.host.com/index.html auf + /usr/web/index.html.

+ +

DocumentRoot sollte ohne einen + Schrgstrich am Ende angegeben werden.

+ +

Siehe auch

+ +
+
top
+

EnableMMAP-Direktive

+ + + + + + + + +
Beschreibung:Verwende Memory-Mapping, um Dateien whrend der +Auslieferung zu lesen
Syntax:EnableMMAP On|Off
Voreinstellung:EnableMMAP On
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Die Direktive steuert, ob httpd Memory-Mapping + verwenden darf, wenn er whrend der Auslieferung den Inhalt einer + Datei lesen muss. Wenn die Bearbeitung einer Anfrage es erfordert, + auf die Daten in einer Datei zuzugreifen -- zum Beispiel bei der + Auslieferung einer mittels mod_include serverseitig + analysierten Datei --, dann verwendet der Apache standardmig + Memory-Mapping fr diese Datei, sofern das Betriebssystem es + untersttzt.

+ +

Memory-Mapping bedeutet zuweilen eine Performanceverbesserung. + In einigen Umgebungen ist es jedoch besser, Memory-Mapping zu + deaktivieren, um Problemen whrend des Betriebs vorzubeugen:

+ +
    +
  • Bei einigen Multiprozessorsystemen kann Memory-Mapping die + Performance von httpd reduzieren.
  • +
  • Bei einem per NFS eingebundenen DocumentRoot kann httpd mit + einem Speicherzugriffsfehler (Anm.d..: ein so genannter "segmentation + fault") abstrzen, wenn eine Datei gelscht oder + gekrzt wird, whrend httpd sie im Speicher + abbildet.
  • +
+ +

Bei Serverkonfigurationen, die fr dieses Problem + anfllig sind, sollten Sie das Memory-Mapping fr + auszuliefernde Dateien deaktivieren, indem Sie schreiben:

+ +

+ EnableMMAP Off +

+ +

Bei per NFS eingebundenen Dateien kann diese Funktion + explizit fr die strenden Dateien deaktiviert werden, + indem Sie angeben:

+ +

+ <Directory "/pfad-zu-den-nfs-dateien"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile-Direktive

+ + + + + + + + + +
Beschreibung:Verwende die sendfile-Untersttzung des Kernels, um +Dateien an den Client auszuliefern
Syntax:EnableSendfile On|Off
Voreinstellung:EnableSendfile On
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Verfgbar ab Apache Version 2.0.44
+

Die Direktive steuert, ob httpd die + sendfile-Untersttzung des Kernels verwenden kann, um + Dateiinhalte an den Client zu bermitteln. Wenn die Bearbeitung + einer Anfrage keinen Zugriff auf die Daten in der Datei erfordert -- + zum Beispiel bei der Auslieferung einer statischen Datei -- und das + Betriebssystem es untersttzt, verwendet der Apache + standardmig sendfile, um den Dateiinhalt zu + bertragen, ohne die Datei jemals zu lesen.

+ +

Der sendfile-Mechanismus vermeidet getrennte Lese- und + Sendeoperationen sowie Puffer-Zuweisungen. Bei einigen Plattformen bzw. + Dateisystemen deaktivieren Sie diese Funktion jedoch besser, um Probleme + whrend des Betriebs zu vermeiden:

+ +
    +
  • Einige Plattformen besitzen u.U. eine fehlerhafte + sendfile-Untersttzung, die das Erstellungssystem nicht erkennt, + insbesondere wenn die Binrdateien auf einem anderen Rechner erstellt + und auf eine solche Maschine mit fehlerhafter sendfile-Untersttzung + bertragen wurden.
  • +
  • Bei einem ber das Netzwerk eingebundenen DocumentRoot (z.B. NFS oder SMB) ist der + Kernel mglicherweise nicht in der Lage, die Netzwerkdatei + ber seinen eigenen Cache zu bedienen.
  • +
  • Unter Linux lst die Verwendung von sendfile + in Verbindung mit bestimmten Netzwerkkarten und IPv6 + TCP-Checksummenfehler aus.
  • +
+ +

Bei Serverkonfigurationen, die fr dieses Problam + anfllig sind, sollten die diese Funktion deaktivieren, indem + Sie schreiben:

+ +

+ EnableSendfile Off +

+ +

Bei per NFS oder SMB eingebundenen Dateien kann diese Funktion + explizit fr die strenden Dateien deaktiviert werden, indem + Sie angeben:

+ +

+ <Directory "/pfad-zu-den-nfs-dateien"> + + EnableSendfile Off + + </Directory> +

+ +
+
top
+

ErrorDocument-Direktive

+ + + + + + + + +
Beschreibung:Das, was der Server im Fehlerfall an den Client +zurckgibt
Syntax:ErrorDocument Fehlercode Dokument
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Die Syntax der Anfhrungszeichen bei Textnachrichten hat +sich im Apache 2.0 gendert
+

Im Falle eines Problems oder Fehlers kann der Apache + konfiguriert werden, eine der vier Aktionen auszufhren:

+ +
    +
  1. Ausgabe einer einfachen, hartkodierten Fehlermeldung
  2. + +
  3. Ausgabe einer angepassten Meldung
  4. + +
  5. Umleitung zu einem lokalen URL-Pfad der das + Problem bzw. den Fehler behandelt
  6. + +
  7. Umleitung zu einer externen URL, die das Problem + bzw. den Fehler behandelt
  8. +
+ +

Die erste Option ist Voreinstellung, whrend die Optionen + 2 bis 4 ber die Direktive ErrorDocument + eingestellt werden, welcher der HTTP-Statuscode und eine + URL oder Nachricht folgen. Abhngig vom Problem bzw. Fehler bietet + der Apache manchmal zustzliche Informationen an.

+ +

URLs knnen bei lokalen Webpfaden mit einem Schrgstrich + (/) beginnen (relativ zum DocumentRoot-Verzeichnis) oder eine vollstndige URL + bilden, die der Client auflsen kann. Alternativ kann eine + Nachricht fr die Anzeige im Browser angeboten werden. Beispiel:

+ +

+ ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/falsche_urls.pl
+ ErrorDocument 401 /info_zur_anmeldung.html
+ ErrorDocument 403 "Der Zugriff ist nicht erlaubt." +

+ +

Auerdem kann auch der Spezialwert default verwendet + werden, um die schlichte, im Apache hartkodierte Nachricht anzugeben. + Whrend es normalerweise nicht bentigt wird, stellt + default die einfache, hartkodierte Nachricht des Apache + bei Konfigurationen wieder her, bei denen andernfalls eine bestehende + ErrorDocument-Anweisung bernommen + wrde.

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

Wenn Sie eine ErrorDocument-Anweisung + angeben, die auf eine entfernte URL weist (d.h. irgendetwas mit der + Methode http davor), beachten Sie bitte, dass der Apache + eine Umleitung zum Client sendet, um diesem mitzuteilen, wo das + Dokument zu finden ist, auch wenn das Dokument letztlich wieder zum + gleichen Server fhrt. Das hat mehrere Auswirkungen. Die + wichtigste ist, dass der Client nicht den Original-Statuscode + erhlt sondern statt dessen einen Umleitungs-Statuscode. Dies + wiederum kann Web-Robots und andere Clients verwirren, die den + Statuscode dazu verwenden, herauszufinden ob eine URL gltig ist. + Wenn Sie eine entfernte URL in einer Anweisung + ErrorDocument 401 verwenden, wird der Client + darber hinaus nicht wissen, dass er den Benutzer zur Eingabe + eines Passwortes auffordern muss, da er den Statuscode 401 nicht + erhlt. Deshalb mssen Sie sich auf ein lokales + Dokument beziehen, wenn Sie eine Anweisung ErrorDocument + 401 verwenden.

+ +

Der Microsoft Internet Explorer (MSIE) ignoriert + standardmig serverseitig generierte Fehlermeldungen, wenn + sie "zu kurz" sind und ersetzt sie durch eigene "freundliche" + Fehlermeldungen. Die Gre variiert abhngig von der + Art des Fehlers, im Allgemeinen zeigt der MSIE jedoch den + serverseitig generierten Fehler, anstatt ihn zu verstecken, wenn Ihr + Fehlerdokument grer als 512 Bytes ist. Weitere Informationen + sind im Artikel Q294807 in der Microsoft Knowledgebase verfgbar.

+ +

Obwohl die meisten Fehlermeldungen berschrieben werden + knnen, werden unter bestimmten Umstnden die internen + Meldungen ungeachtet der Einstellung der ErrorDocument-Direktive verwendet. Insbesondere bei + einer fehlerhaften Anfrage werden der normale Bearbeitungsprozess sofort + beendet und die interne Meldung zurckgegeben. Das ist notwendig, um + Sicherheitsprobleme zu vermeiden, die auf Grund fehlerhafter Anfragen + entstehen.

+ +

In Versionen vor 2.0 wurden Meldungen durch ein einzelnes + vorangestelltes Anfhrungszeichen (") erkannt.

+ +

Siehe auch

+ +
+
top
+

ErrorLog-Direktive

+ + + + + + + +
Beschreibung:Ablageort, an dem der Server Fehler protokolliert
Syntax: ErrorLog Dateiname|syslog[:facility]
Voreinstellung:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and + OS/2)
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Direktive ErrorLog bestimmt den Namen + der Datei, in welcher der Server alle auftretenden Fehler protokolliert + werden. Wenn Dateiname nicht absolut ist, wird er relativ zu + ServerRoot betrachtet.

+ +

Beispiel

+ ErrorLog /var/log/httpd/error_log +

+ +

Wenn der Dateiname mit einem senkrechten Strich (|, + engl.: Pipe) beginnt, wird angenommen, dass es sich um einen Befehl + handelt, der ausgefhrt wird, um das Fehlerprotokolls zu + verarbeiten.

+ +

Beispiel

+ ErrorLog "|/usr/local/bin/httpd_errors" +

+ +

Die Verwendung von syslog anstelle eines Dateinamens + aktiviert die Protokollierung mittels syslogd(8), sofern das System + es untersttzt. Als Voreinstellung wird der syslog-Typ (syslog + facility) local7 verwendet, Sie knnen dies jedoch + auch berschreiben, indem Sie die Syntax + syslog:facility verwenden, wobei + facility einer der Namen sein kann, die blicherweise + in syslog(1) dokumentiert sind.

+ +

Beispiel

+ ErrorLog syslog:user +

+ +

SICHERHEITSHINWEIS: Lesen Sie das Dokument Sicherheitshinweise + zu Einzelheiten darber, warum Ihre Sicherheit gefhrdet + sein kann, wenn das Verzeichnis, in dem die Log-Dateien gespeichert + werden, fr jemand anderen, als den Benutzer, der den Server + gestartet hat, beschreibbar ist.

+ +

Anmerkung

+

Bei der Eingabe eines Dateipfads auf nicht-Unix-Plattformen sollte + darauf geachtet werden, nur (Vorwrts-)Schrgstriche zu + verwenden, auch wenn die Plattform rckwrts gerichtete + Schrgstriche (Backslashes) erlaubt. Im Allgemeinen ist es eine gute + Idee, innerhalb der Konfigurationsdateien immer + Vorwrts-Schrgstriche zu verwenden.

+
+ +

Siehe auch

+ +
+
top
+

FileETag-Direktive

+ + + + + + + + +
Beschreibung:Dateiattribute, die zur Erstellung des HTTP-Response-Headers +ETag verwendet werden
Syntax:FileETag Komponente ...
Voreinstellung:FileETag INode MTime Size
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Wenn dem Dokument eine Datei zugrundeliegt, bestimmt die Direktive + FileETag die Dateiattribute, die zur Erstellung + des HTTP-Response-Headers ETag (Entity-Tag) verwendet + werden. (Der Wert von ETag wird bei der Cache-Verwaltung + zur Einsparung von Netzwerk-Bandbreite benutzt.) Im Apache 1.3.22 und + frher wurde der ETag-Wert stets aus + der I-Node, der Gre und dem Datum der letzten + nderung (mtime) der Datei gebildet. Die Direktive + FileETag erlaubt es Ihnen, zu bestimmen, + welche dieser Eigenschaften -- falls berhaupt -- verwendet + werden sollen. Die gltigen Schlsselworte lauten:

+ +
+
INode
+
Die I-Node-Nummer wird in die Berechnung mit einbezogen
+
MTime
+
Datum und Uhrzeit der letzten nderung werden mit einbezogen
+
Size
+
Die Anzahl der Bytes in der Datei wird mit einbezogen
+
All
+
Alle verfgbaren Angaben werden verwendet. Die ist + gleichbedeutend mit: +

FileETag INode MTime Size

+
None
+
Es wird keine ETag-Angabe in die Antwort eingefgt, + wenn dem Dokument eine Datei zugrundeliegt.
+
+ +

Den Schlsselwrtern INode, MTime + und Size kann entweder ein + oder ein + - vorangestellt werden, was die nderung einer + Vorgabe erlaubt, die von einem greren Umfeld + geerbt wurde. Jedes Schlselwort ohne ein solches Prfix + hebt die ererbte Einstellung sofort und vollstndig auf.

+ +

Wenn die Konfiguration fr ein Verzeichnis + FileETag INode MTime Size enthlt + und die eines Unterverzeichnisses FileETag -INode, + dann ist die Einstellung fr das Unterverzeichnis (die an + jedes Unter-Unterverzeichnis weitervererbt wird, welches dies nicht + berschreibt) quivalent mit + FileETag MTime Size.

+ +
+
top
+

<Files>-Direktive

+ + + + + + + +
Beschreibung:Enthlt Direktiven, die sich nur auf passende Dateinamen +beziehen
Syntax:<Files Dateiname> ... </Files>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Die Direktive <Files> + begrenzt die Reichweite der enthaltenen Anweisungen auf Dateinamen. + Sie ist vergleichbar mit den Direktiven <Directory> und <Location>. Sie muss eine + passende </Files>-Anweisung besitzen. + Die innerhalb dieses Abschnittes angegebenen Direktiven werden auf + jedes Objekt mit einem Basisnamen (letzte Komponente des Dateinamens) + angewendet, der auf die angegebenen Dateinamen passt. <Files>-Container werden, nachdem die + <Directory>-Container + und .htaccess-Dateien gelesen sind, jedoch vor den + <Location>-Containern, + in der Reihenfolge ihres Auftretens ausgefhrt. Beachten Sie, dass + <Files>-Anweisungen innerhalb von + <Directory>-Containern + auftreten knnen, um den Teil des Dateisystems einzuschrnken, + den sie betreffen.

+ +

Das Argument Dateiname kann einen Dateinamen oder eine + Zeichenkette mit Platzhaltern enthalten, wobei ? auf ein + einzelnes Zeichen passt und * auf eine beliebige Folge von + Zeichen. Erweiterte regulre Ausdrcke knnen ebenfalls + verwendet werden, indem das Zeichen ~ hinzugefgt wird. + Beispielsweise wrde

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

auf die gebruchlichsten Grafikformate im Internet passen. + <FilesMatch> wird + jedoch bevorzugt.

+ +

Beachten Sie bitte, dass die <Files>-Container anders als <Directory>- und <Location>-Container innerhalb + von .htaccess-Dateien verwendet werden knnen. + Dies erlaubt den Anwendern auf Dateiebene die Kontrolle ber ihre + eigenen Dateien.

+ +

Siehe auch

+ +
+
top
+

<FilesMatch>-Direktive

+ + + + + + + +
Beschreibung:Enthlt Direktiven, die fr Dateinamen gelten, die + auf einen regulren Ausdruck passen
Syntax:<FilesMatch regex> ... </FilesMatch>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Die Direktive <FilesMatch> + begrenzt wie die Direktive <Files> die enthaltenen Anweisungen auf + Dateinamen. Sie akzeptiert jedoch regulre Ausdrcke. + Beispielsweise wrde

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

auf die gebruchlichsten Grafikformate im Internet passen.

+ +

Siehe auch

+ +
+
top
+

ForceType-Direktive

+ + + + + + + + +
Beschreibung:Erzwingt die Auslieferung aller passendenden Dateien mit dem +angegebenen MIME-Content-Type
Syntax:ForceType MIME-Type|None
Kontext:Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Wurde im Apache 2.0 in den Core verschoben
+

Wenn sie innerhalb einer .htaccess-Datei, eines + <Directory>-, + <Location>- + <Files>-Containers + angegeben wird, erzwingt die Direktive die Auslieferung aller + entsprechenden Dateien mit dem Content-Type, der durch + MIME-Type definiert wurde. Wenn Sie zum Beispiel ein + Verzeichnis voller GIF-Dateien haben, die Sie nicht alle durch + .gif kennzeichnen wollen, knnen Sie angeben:

+ +

+ ForceType image/gif +

+ +

Beachten Sie bitte, dass die Direktive anders als DefaultType alle MIME-Type-Zuordnungen + berschreibt, einschlielich Dateiendungen, die einen + Medientyp bezeichnen knnten.

+ +

Sie knnen jede ForceType-Angabe + durch die Verwendung des Wertes None berschreiben:

+ +

+ # erzwinge image/gif fr alle Dateien:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # hier jedoch normale MIME-Type-Zuordnungen:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups-Direktive

+ + + + + + + +
Beschreibung:Aktiviert DNS-Lookups auf Client-IP-Adressen
Syntax:HostnameLookups On|Off|Double
Voreinstellung:HostnameLookups Off
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis
Status:Core
Modul:core
+

Diese Direktive aktiviert die DNS-Abfrage (Anm.d..: ein sogenannter + DNS-Lookup), so dass Hostnamen protokolliert (und in + REMOTE_HOST an CGIs/SSIs bergeben) werden knnnen. + Der Wert Double bezieht sich auf ein + Double-Reverse-DNS-Lookup. D.h. nachdem ein Reverse-Lookup + durchgefhrt wurde, wird dann auf dem Ergebnis ein + Forward-Lookup ausgefhrt. Wenigstens eine der IP-Adressen + aus dem Forward-Lookup muss der Originaladresse entsprechen. + (In der "tcpwrappers"-Terminologie wird dies PARANOID + genannt.)

+ +

Unabhngig von der Einstellung wird ein Double-Reverse-Lookup + durchgefhrt, wenn mod_access zur Zugriffskontrolle + per Hostnamen eingesetzt wird. Dies ist aus Sicherheitsgrnden + notwendig. Beachten Sie, dass das Ergebnis dieses + Double-Reverse-Lookups nicht generell verfgbar ist, solange Sie + nicht HostnameLookups Double setzen. Wenn beispielsweise + nur HostnameLookups On angegeben ist und eine Anfrage + fr ein Objekt erfolgt, welches durch Hostnamen-Beschrnkungen + geschtzt ist, dann wird CGIs nur das Ergebnis des + Singel-Reverse-Lookups in REMOTE_HOST bergeben, + egal ob das Doble-Reverse-Lookup fehlschlug oder nicht.

+ +

Die Voreinstellung ist Off, um Netzwerktraffic bei den + Angeboten einzusparen, die nicht tatschlich Reverse-Lookups + bentigen. Es ist auch fr die Endanwender besser, da sie nicht + die zustzliche Wartezeit ertragen mssen, die ein Lookup mit + sich bringt. Hoch frequentierte Angebote sollten diese Direktive auf + Offlassen. Das Hilfsprogramm logresolve, das standardmig in das + Unterverzeichnis bin Ihres Installationsverzeichnisses + kompiliert wird, kann dazu verwendet werden, um offline Hostnamen von + protokollierten IP-Adressen nachzuschlagen.

+ +
+
top
+

IdentityCheck-Direktive

+ + + + + + + +
Beschreibung:Ermglicht die Protokollierung der Identitt des +entfernten Anwenders nach RFC1413
Syntax:IdentityCheck On|Off
Voreinstellung:IdentityCheck Off
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis
Status:Core
Modul:core
+

Die Direktive ermglicht die RFC1413-konforme Protokollierung des + entfernten Benutzernamens fr jede Verbindung, bei der auf der + Client-Maschine identd oder etwas hnliches luft. Die + Information wird im Zugriffsprotokoll festgehalten.

+ +

Der Information sollte auer fr eine rudimentre + Benutzerverfolgung in keinster Weise vertraut werden.

+ +

Beachten Sie bitte, dass dies betrchtliche Zeitprobleme + beim Zugriff auf Ihren Server verursachen kann, da fr jede Anfrage + eine solche Rckfrage durchgefhrt werden muss. Wenn + Firewalls beteiligt sind, kann unter Umstnden jede Rckfrage + fehlschlagen und weitere 30 Sekunden Wartezeit zu jedem Hit + zufgen. Daher ist dies im Allgemeinen bei ffentlichen + Servern, die im Internet erreichbar sind, nicht besonders sinnvoll.

+ +
+
top
+

<IfDefine>-Direktive

+ + + + + + + +
Beschreibung:Schliet Direktiven ein, die nur ausgefhrt werden, +wenn eine Testbedingung beim Start wahr ist
Syntax:<IfDefine [!]Parametername> ... + </IfDefine>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Der Container <IfDefine Test>...</IfDefine> + wird dazu verwendet, Direktiven als bedingt zu kennzeichnen. + Die Direktiven innerhalb eines <IfDefine>-Abschnittes werden nur ausgefhrt, + wenn Test wahr ist. Ist Test falsch, wird alles + zwischen der Start- und Endemarkierung ignoriert.

+ +

In der <IfDefine>-Anweisung kann + Test eine von zwei Formen annehmen:

+ +
    +
  • Parametername
  • + +
  • !Parametername
  • +
+ +

Im ersten Fall werden die Direktiven zwischen der Start- und + Endemarkierung nur ausgefhrt, wenn der Parameter namens + Parametername definiert ist. Die zweite Form kehrt den + Test um und fhrt die Direktiven nur dann aus, wenn + Parametername nicht definiert ist.

+ +

Das Argument Parametername ist ein sogenanntes + "Define", das beim beim Start des Servers in der + httpd-Befehlszeile durch + -DParameter angegeben wird.

+ +

<IfDefine>-Container knnen + ineinander verschachtelt werden, um einfache Multi-Parameter-Tests + zu implementieren. Beispiel:

+ +

+ httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +

+ +
+
top
+

<IfModule>-Direktive

+ + + + + + + +
Beschreibung:Schliet Direktiven ein, die abhngig vom +Vorhandensein oder Fehlen eines speziellen Moduls ausgefhrt +werden
Syntax:<IfModule [!]Modulname> ... + </IfModule>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Der Container <IfModule + Test>...</IfModule> wird dazu verwendet, + Direktiven als abhngig von dem Vorhandensein eines speziellen + Moduls zu kennzeichnen. Die Direktiven innerhalb eines <IfModule>-Abschnitts werden nur + ausgefhrt, wenn Test wahr ist. Ist Test + falsch, wird alles zwischen der Start- und Endemarkierung ignoriert.

+ +

In der <IfModule>-Anweisung + kann Test eine von zwei Formen annehmen:

+ +
    +
  • Modulname
  • + +
  • !Modulname
  • +
+ +

Im ersten Fall werden die Direktiven zwischen der Start- und + Endemarkierung nur ausgefhrt, das Modul namens + Modulname im Apache enthalten ist -- entweder einkompiliert + oder mittels LoadModule + dynamisch geladen. Die zweite Form dreht den Test um und fhrt die + Direktiven nur aus, wenn Modulname nicht + enthalten ist.

+ +

Das Argument Modulname ist der Dateiname des Moduls zum + Zeitpunkt seiner Kompilierung, z.B. mod_rewrite.c. + Wenn ein Modul aus mehreren Quelltext-Dateien besteht, verwenden Sie den + Namen der Datei, welche die Zeichenfolge + STANDARD20_MODULE_STUFF enthlt.

+ +

<IfModule>-Container knnen + inneinander verschachtelt werden, um einfache Multi-Modul-Tests + durchzufhren.

+ +

Dieser Container sollte verwendet werden, wenn Sie eine + Konfigurationsdatei bentigen, die unabhngig davon funktioniert, + ob ein bestimmtes Modul verfgbar ist oder nicht. Normalerweise + ist es nicht notwendig, Direktiven in <IfModule>-Containern unterzubringen.

+ +
+
top
+

Include-Direktive

+ + + + + + + +
Beschreibung:Fgt andere Konfigurationsdateien innerhalb der +Server-Konfigurationsdatei ein
Syntax:Include Dateiname|Verzeichnis
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis
Status:Core
Modul:core
Kompatibilitt:Die Platzhalter-Suche ist verfgbar seit +2.0.41
+

Die Direktive erlaubt das Einfgen anderer Konfigurationsdateien + in die Konfigurationsdatei des Servers.

+ +

Shell-typische (fnmatch()) Platzhlaterzeichen knnen + dazu verwendet werden, mehrere Dateien auf einmal in alphabetischer + Reihenfolge einzufgen. Wenn Include + darber hinaus auf ein Verzeichnis anstatt auf eine Datei zeigt, + liest der Apache alle Dateien in diesem Verzeichnis und allen + Unterverzeichnissen ein. Das Einfgen ganzer Verzeichnisse ist + jedoch nicht empfehlenswert, da temporre Dateien sehr leicht + versehentlich in einem Verzeichnis zurckgelassen werden, was + httpd scheitern lassen kann.

+ +

Der angegebene Dateiname kann ein absoluter Pfad sein oder relativ zum + ServerRoot-Verzeichnis angegeben + werden.

+ +

Beispiele:

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

Oder Sie geben Pfade relativ zu Ihrem ServerRoot-Verzeichnis an:

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ +

Der Aufruf von apachectl configtest liefert eine Liste + der Dateien, die whrend des Konfigurations-Tests verarbeitet + werden:

+ +

+ root@host# apachectl configtest
+ Processing config file: /usr/local/apache2/conf/ssl.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
+ Syntax OK +

+ +

Siehe auch

+ +
+
top
+

KeepAlive-Direktive

+ + + + + + + +
Beschreibung:Aktiviert persistente HTTP-Verbindungen
Syntax:KeepAlive On|Off
Voreinstellung:KeepAlive On
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Keep-Alive-Erweiterung von HTTP/1.0 und die + HTTP/1.1-Funktionalitt persistenter Verbindungen untersttzt + langlebige HTTP-Sitzungen, die es erlauben, mehrere Anfragen ber + die gleich TCP-Verbindung zu senden. In einigen Fllen wurde eine + Beschleunigung der Wartezeiten von beinahe 50% fr HTML-Dokumente + mit vielen Bildern festgestellt. Um Keep-Alive-Verbindungen zu aktivieren, + setzen Sie KeepAlive On.

+ +

Bei HTTP/1.0-Clients werden Keep-Alive-Verbindungen nur dann verwendet, + wenn sie vom Client eigens angefordert werden. Desweiteren knnen + Keep-Alive-Verbindungen bei einem HTTP/1.0-Client nur dann verwendet + werden, wenn die Lnge des Inhalts im Voraus bekannt ist. Dies + impliziert, dass dynamische Inhalte wie CGI-Ausgaben, SSI-Seiten und + servergenerierte Verzeichnisauflistungen im Allgemeinen keine + Keep-Alive-Verbindungen mit HTTP/1.0-Clients verwenden. Bei + HTTP/1.1-Clients sind Keep-Alive-Verbindungen Voreinstellung, solange + nichts anderes angegeben ist. Wenn der Client es anfordert, wird + Chunked-Encoding verwendet, um Inhalte mit unbekannter Lnge + ber persistente Verbindungen zu senden.

+ +

Siehe auch

+ +
+
top
+

KeepAliveTimeout-Direktive

+ + + + + + + +
Beschreibung:Zeitspanne, die der Server whrend persistenter Verbindungen +auf nachfolgende Anfragen wartet
Syntax:KeepAliveTimeout Sekunden
Voreinstellung:KeepAliveTimeout 15
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Dies legt die Anzahl der Sekunden fest, die der Apache auf weitere + Anfragen wartet, bevor er die Verbindung schliet. Nachdem einmal + eine Anfrage entgegen genommen wurde, wird die durch die Direktive + Timeout festgelegte Auszeit + angewendet.

+ +

Auf stark belasteten Servern kann ein hoher + KeepAliveTimeout-Wert zu Durchsatzminderungen + fhren. Je hher die Auszeit angegeben ist, desto lnger + ist der Apache damit beschftigt, auf unttige Clients zu + warten.

+ +
+
top
+

<Limit>-Direktive

+ + + + + + + +
Beschreibung:Beschrnkt die eingeschlossenen Zugriffskontrollen auf +bestimmte HTTP-Methoden
Syntax:<Limit Methode [Methode] ... > ... + </Limit>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Zugriffskontrollen gelten normalerweise fr alle + Zugriffsmethoden, was normalerweise auch das gewnschte Verhalten ist. + Im Allgemeinen sollten Zugriffskontrollen nicht in einen + <Limit>-Container gepackt + werden.

+ +

Der Sinn der Direktive <Limit> + ist es, den Effekt der Zugriffskontrollen auf die angegebenen + HTTP-Methoden zu beschrnken. Bei allen anderen Methoden haben + die in der <Limit>-Gruppe + enthaltenen Zugriffsbeschrnkungen keine Wirkung. + Im folgenden Beispiel gilt die Zugriffskontrolle nur fr die + Methoden POST, PUT und DELETE. + Alle anderen Methoden bleiben ungeschtzt:

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

Sie knnen eine oder mehrere der folgenden Methoden angeben: + GET, POST, PUT, DELETE, + CONNECT, OPTIONS, + PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, + LOCK und UNLOCK. Die Methodennamen + unterscheiden zwischen Gro- und Kleinschreibung. Wenn + GET verwendet wird, sind HEAD-Anfragen + ebenfalls eingeschrnkt. Die TRACE-Methode kann nicht + limitiert werden.

+ +
+ Bei Zugriffsbeschrnkungen ist ein <LimitExcept>-Abschnitt stets einem + <Limit>-Abschnitt + vorzuziehen, da ein <LimitExcept>-Abschnitt vor allen mglichen + Methoden schtzt.
+ + +
+
top
+

<LimitExcept>-Direktive

+ + + + + + + +
Beschreibung:Beschrnkt Zugriffskontrollen auf alle HTTP-Methoden +auer den genannten
Syntax:<LimitExcept Methode [Methode] ... > ... + </LimitExcept>
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

<LimitExcept> und + </LimitExcept> werden dazu verwendet, eine Gruppe + von Anweisungen zur Zugriffskontrolle zusammenzufassen, die dann auf + jede HTTP-Methode angewendet werden, die nicht + als Argument angegeben ist. D.h. dies ist das Gegenteil des + <Limit>-Containers + und kann zur Steuerung von Standard- und nicht-Standard-/unbekannten + Methoden verwendet werden. Fr weitere Einzelheiten lesen Sie bitte + die Beschreibung zu <Limit>.

+ +

Beispiel:

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion-Direktive

+ + + + + + + + +
Beschreibung:Bestimmt die maximale Anzahl interner Umleitungen und + verschachtelter Unteranfragen
Syntax:LimitInternalRecursion Zahl [Zahl]
Voreinstellung:LimitInternalRecursion 10
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
Kompatibilitt:Verfgbar ab Apache 2.0.47
+

Eine interne Umleitung erfolgt beispielsweise, wenn die Direktive + Action verwendet wird, welche + die Originalanfrage intern zu einem CGI-Skript weiterleitet. Eine + Unteranfrage (Anm.d..: engl. Subrequest) ist ein Mechanismus des + Apache, um herauszufinden, was bei einer URI geschehen wrde, wre + sie angefordert worden. mod_dir z.B. verwendet + Unteranfragen, um nach den Dateien zu suchen, die in der DirectoryIndex-Anweisung aufgefhrt + sind.

+ +

LimitInternalRecursion bewahrt den Server vor + einem Absturz, wenn er in eine Endlosschleife aus internen Umleitungen + oder Unteranfragen hineinluft. Derartige Schleifen werden + gewhnlich durch Fehlkonfiguration verursacht.

+ +

Die Direktive setzt zwei verschiedene Begrenzungen, welche je Anfrage + ausgewertet werden. Die erste Zahl bestimmt die maximale + Anzahl der Umleitungen, die aufeinander folgen drfen. Die zweite + Zahl legt fest, wie tief Unteranfragen ineinander + verschachtelt werden drfen. Wenn Sie lediglich eine Zahl + angeben, wird sie beiden Begrenzungen zugewiesen.

+ +

Beispiel

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody-Direktive

+ + + + + + + + +
Beschreibung:Begrenzt die Gesamtgre des vom Client gesendeten +HTTP-Request-Body
Syntax:LimitRequestBody Bytes
Voreinstellung:LimitRequestBody 0
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Die Direktive gibt die Anzahl der Bytes zwischen 0 + (unbegrenzt) und 2147483647 (2GB) an, die im Request-Body (Datenteil der + Anfrage) erlaubt sind.

+ +

Die Direktive LimitRequestBody erlaubt es dem + Benutzer, die Gre des HTTP-Request-Bodys in dem Kontext zu + begrenzen, in dem die Anweisung angegeben ist (Server, pro Verzeichnis, + pro Datei oder pro Adresse). Wenn die Anfrage des Clients dieses Limit + berschreitet, gibt der Server einen Fehler zurck anstatt die + Anfrage zu bearbeiten. Die Gre des Datenteils einer Anfrage + kann sehr stark variieren, abhngig von der Art der Ressource und + den fr diese Ressource erlaubten Methoden. CGI-Skripte verwenden + den Datenteil blicherweise zum Empfang von Formulardaten. Wird + die PUT-Methode angewendet, dann muss der Wert mindestens + so gro sein wie irgendeine Darstellungsform, die der Server + fr diese Ressource akzeptieren soll.

+ +

Die Direktive gibt dem Serveradministrator eine grere + Kontrolle gegenber abnormalem Verhalten von Clients, was bei der + Vermeidung einiger Formen von Denial-of-Service-Attacken hilfreich + sein kann.

+ +

Wenn Sie beispielsweise das Hochladen von Dateien zu einer bestimmten + Adresse erlauben, aber die Gre der hochgeladenen Dateien + auf 100K beschrnken wollen, knnen Sie die folgende Anweisung + verwenden:

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields-Direktive

+ + + + + + + +
Beschreibung:Begrenzt die Anzahl der HTTP-Request-Header, die vom Client +entgegengenommen werden
Syntax:LimitRequestFields Anzahl
Voreinstellung:LimitRequestFields 100
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Anzahl ist ein Integer-Wert (eine positive Ganzzahl) + zwischen 0 (unbegrenzt) und 32767. Die Voreinstellung wird durch die + Konstante DEFAULT_LIMIT_REQUEST_FIELDS (100 + bei der Auslieferung) zur Kompilierungszeit gesetzt.

+ +

Die Direktive LimitRequestFields erlaubt es + dem Serveradministrator, die maximale Anzahl der in einem HTTP-Request + erlaubten HTTP-Request-Header zu verndern. Fr den Server + muss dieser Wert grer sein als die Anzahl der Headerzeilen, + die ein normaler Client senden knnte. Die Anzahl der Request-Header, + die ein gewhnlicher Client verwendet, berschreitet selten 20 + Zeilen. Allerdings kann dies zwischen den verschiedenen + Client-Ausfhrungen variieren, oft abhngig vom Ausma, + mit dem der Anwender die genaue Content-Negotiation-Untersttzung + seines Browsers konfiguriert hat. Optionale HTTP-Erweiterungen + uern sich oft in Form von HTTP-Headern.

+ +

Die Direktive gibt dem Serveradministrator eine grere + Kontrolle gegenber abnormalem Verhalten von Clients, was bei der + Vermeidung einiger Formen von Denial-of-Service-Attacken hilfreich + sein kann. Der Wert sollte erhht werden, wenn normale Clients + eine Fehlermeldung vom Server erhalten, die besagt, dass mit der Anfrage + zu viele Headerzeilen gesendet wurden.

+ +

Beispiel:

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize-Direktive

+ + + + + + + +
Beschreibung:Begrenzt die Lnge des vom Client gesendeten +HTTP-Request-Headers
Syntax:LimitRequestFieldsize Bytes
Voreinstellung:LimitRequestFieldsize 8190
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Die Direktive gibt die Anzahl der Bytes an, die in einem + HTTP-Header erlaubt sind.

+ +

Die Direktive LimitRequestFieldsize erlaubt es + dem Serveradministrator, die maximale Gre eines + HTTP-Request-Headers zu verringern oder erhhen. Fr den Server + muss der Wert gro genug sein, um eine beliebige Headerzeile einer + normalen Client-Anfrage vorzuhalten. Die Gre variiert stark + zwischen den verschiedenen Client-Ausfhrungen, oft abhngig vom + Ausma, mit dem der Anwender die genaue + Content-Negotiation-Untersttzung seines Browsers konfiguriert hat. + SPNEGO-Authentisierungs-Header knnen bis zu 12392 Bytes lang + sein.

+ +

Die Direktive gibt dem Serveradministrator eine grere + Kontrolle gegenber abnormalem Verhalten von Clients, was bei der + Vermeidung einiger Formen von Denial-of-Service-Attacken hilfreich + sein kann.

+ +

Beispiel:

+ +

+ LimitRequestFieldSize 4094 +

+ +
Unter normalen Umstnden sollte die Voreinstellung nicht + verndert werden.
+ +
Sie bentigen mindestens Apache 2.0.53, um das Limit + ber den einkompilierten Wert von DEFAULT_LIMIT_REQUEST_FIELDSIZE + hinaus zu setzen (8190 bei der Auslieferung).
+ +
+
top
+

LimitRequestLine-Direktive

+ + + + + + + +
Beschreibung:Begrenzt die Lnge der vom Client entgegengenommenen +HTTP-Anfragezeile
Syntax:LimitRequestLine Bytes
Voreinstellung:LimitRequestLine 8190
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Die Direktive legt die Anzahl der Bytes zwischen 0 und + dem Wert der zur Kompilierungszeit definierten Konstante + DEFAULT_LIMIT_REQUEST_LINE (8190 bei der + Auslieferung) fest, die in der HTTP-Anfragezeile erlaubt sind.

+ +

Die Direktive LimitRequestLine erlaubt es dem + Serveradministrator, die maximale Gre der + HTTP-Anfragezeile auf einen Wert unterhalb der normalen, im Server + einkompilierten Gre des Eingabepuffers zu verringern. Da + die Anfragezeile aus der HTTP-Methode, der URI und der Protokollversion + besteht, bedeutet die LimitRequestLine-Direktive + eine Beschrnkung der Lnge der fr eine Anfrage an den + Server erlaubten Anfrage-URI. Fr den Server muss der Wert gro + genug sein, um jeden seiner Ressourcennamen vorzuhalten, + einschlielich aller Informationen, die im Query-String einer + GET-Anfrage bergeben werden knnen.

+ +

Die Direktive gibt dem Serveradministrator eine grere + Kontrolle gegenber abnormalem Verhalten von Clients, was bei der + Vermeidung einiger Formen von Denial-of-Service-Attacken hilfreich + sein kann.

+ +

Beispiel:

+ +

+ LimitRequestLine 4094 +

+ +
Unter normalen Umstnden sollte die Voreinstellung nicht + verndert werden.
+ +
+
top
+

LimitXMLRequestBody-Direktive

+ + + + + + + + +
Beschreibung:Begrenzt die Gre eines XML-basierten +Request-Bodys
Syntax:LimitXMLRequestBody Bytes
Voreinstellung:LimitXMLRequestBody 1000000
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Dies gibt die Grenze fr die maximale Gre (in Bytes) + des XML-basierten Request-Bodys an. Der Wert 0 deaktiviert + diese Prfung.

+ +

Beispiel:

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location>-Direktive

+ + + + + + +
Beschreibung:Wendet die enthaltenen Direktiven nur auf die entsprechenden +URLs an
Syntax:<Location + URL-Pfad|URL> ... </Location>
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Direktive <Location> + begrenzt die Reichweite der enthaltenen Anweisungen auf URLs. + Sie ist der Direktive <Directory> hnlich und startet einen + Abschnitt, der mit der Anweisung </Location> + abgeschlossen wird. <Location>-Container werden, nachdem die + <Directory>-Container + und .htaccess-Dateien gelesen wurden, und nach den + <Files>-Containern, in + der Reihenfolge ausgefhrt, in der sie in der Konfigurationsdatei + erscheinen.

+ +

<Location>-Abschnitte operieren + vollstndig auerhalb des Dateisystems. Dies hat mehrere + Konsequenzen. An Wichtigsten, <Location>-Anweisungen sollten nicht dafr + verwendet werden, den Zugriff zu Teilen des Dateisystems zu steuern. Da + mehrere unterschiedliche URLs auf die gleiche Stelle des Dateisystems + zeigen knnen, knnte eine solche Zugriffskontrolle u.U. + umgangen werden.

+ +

Wann sollte<Location> verwendet werden

+ +

Verwenden Sie <Location>, um + Anweisungen auf Inhalte anzuwenden, die auerhalb des Dateisystems + abgelegt sind. Benutzen Sie <Directory> und <Files> fr Inhalte, die + innerhalb des Dateisystems abgelegt sind. Eine Ausnahme bildet + <Location />, welches ein einfacher Weg ist, um eine + Konfiguration auf den gesamten Server anzuwenden.

+
+ +

Fr alle nicht-Proxy-Anfragen ist die entsprechende URL + ein URL-Pfad in der Form /path/. Es drfen weder ein + Schema, noch ein Hostname, noch ein Port, noch ein Query-String einbezogen + werden. Fr Proxy-Anfragen hat die Vergleichs-URL die Form + schema://servername/path. Das Prfix muss angegeben + werden.

+ +

Die URL kann Platzhalter verwenden. In einer Zeichenfolge mit + Platzhaltern entspricht ? einem einzelnen Zeichen und + *einer beliebigen Zeichenfolge.

+ +

Erweiterte regulre Ausdrcke knnen ebenfalls + verwendet werden, indem das Zeichen ~ hinzugefgt + wird. Beispielsweise wrde

+ +

+ <Location ~ "/(extra|special)/data"> +

+ +

auf URLs passen, welche die Zeichenfolge /extra/data + oder /special/data enthalten. Die Direktive <LocationMatch> verhlt sich + genauso wie <Location> mit + regulren Ausdrcken.

+ +

Die Funktionalitt von <Location> ist insbesondere dann ntzlich, + wenn sie mit der SetHandler-Direktive + kombiniert wird. Um zum Beispiel Statusabfragen zu aktivieren, sie aber + nur von Browsern aus foo.com zuzulassen, knnten Sie + schreiben:

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .foo.com
+
+ </Location> +

+ +

Anmerkung zu / (Schrgstrich, Slash)

+

Das Slash-Zeichen hat eine besondere Bedeutung, je nachdem, wo es + in der URL erscheint. Manche werden sein Verhalten vom Dateisystem + gewohnt sein, wo mehrere aufeinanderfolgende Schrgstriche + hufig zu einem Schrgstrich zusammengefat werden + (d.h. /home///foo ist das gleiche wie + /home/foo). Im URL-Raum ist dies nicht notwendigerweise + genauso. Bei der Direktive <LocationMatch> und der <Location>-Version mit regulren Ausdrcken + mssen Sie explizit mehrere Schrgstriche angeben, wenn Sie + genau dies beabsichtigen.

+ +

Beispielsweise wrde <LocationMatch ^/abc> + auf die angeforderte URL /abc passen, nicht aber auf + //abc. Die Direktive <Location> (ohne regulre Ausdrcke) verhlt + sich hnlich, wenn sie fr Proxy-Anfragen verwendet wird. + Wenn <Location> (ohne + regulre Ausdrcke) jedoch fr nicht-Proxy-Anfragen + verwendet wird, werden stillscheigend mehrere Schrchstriche mit + mit einem einzigen Schrgstrich gleichgesetzt. Geben Sie + beispielsweise <Location /abc/def> an und die + Anfrage lautet auf /abc//def, dann greift die Anweisung.

+
+ +

Siehe auch

+ +
+
top
+

<LocationMatch>-Direktive

+ + + + + + +
Beschreibung:Wendet die enthaltenen Direktiven nur auf URLs an, die auf +regulre Ausdrcke passen
Syntax:<LocationMatch + regex> ... </LocationMatch>
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Direktive <LocationMatch> + begrenzt die Reichweite der enthaltenen Anweisungen in der gleichen Weise + wie <Location> auf URLs. + Sie verwendet jedoch regulre Ausdrcke als Argument anstelle + einer einfachen Zeichenkette. Beispielsweise wrde

+ +

+ <LocationMatch "/(extra|special)/data"> +

+ +

auf URLs passen, welche die Zeichenfolge /extra/data + oder /special/data enthalten.

+ +

Siehe auch

+ +
+
top
+

LogLevel-Direktive

+ + + + + + + +
Beschreibung:Steuert die Ausfhrlichkeit des Fehlerprotokolls
Syntax:LogLevel Level
Voreinstellung:LogLevel warn
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

LogLevel stellt die Ausfhrlichkeit + der Nachrichten ein, die im Fehlerprotokoll aufgezeichnet werden (siehe + Direktive ErrorLog). Die folgenden, + nach absteigender Aussagekraft sortierten Level sind + verfgbar:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Level Beschreibung Beispiel
emerg Notfall - das System ist unbenutzbar."Child cannot open lock file. Exiting" + (Anm.d..: "Kindprozess kann die Lock-Datei nicht ffnen. + Beende Programm")
alert Manahmen mssen unverzglich ergriffen + werden."getpwuid: couldn't determine user name from uid" + (Anm.d..: "getpwuid: kann keinen Benutzernamen aus der UID + ermitteln")
crit Kritischer Zustand."socket: Failed to get a socket, exiting child" + (Anm.d..: "socket: Socket-Zuweisung fehlgeschlagen, beende + Kindprozess")
error Fehlerbedingung."Premature end of script headers" + (Anm.d..: "Vorzeitiges Ende der Skript-Header")
warn Warnung."child process 1234 did not exit, sending another SIGHUP" + (Anm.d..: "Kindprozess 1234 nicht beendet, sende ein weiteres + SIGHUP")
notice Normaler, aber signifikanter Zustand."httpd: caught SIGBUS, attempting to dump core in ..." + (Anm.d..: "httpd: SIGBUS empfangen, versuche Speicherabbild nach ... + zu schreiben")
info Information."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..." + (Anm.d..: "Server scheint beschftigt zu sein, + (mglicherweise mssen Sie StartServers oder + Min/MaxSpareServers erhhen)")
debug Debug-Level-Nachrichten"Opening config file ..." + (Anm.d..: "ffne Konfigurationsdatei ...")
+ +

Geben Sie einen bestimmten Level an, denn werden Nachrichten von + allen hheren Leveln ebenso angezeigt. Z.B.: Wenn + LogLevel info eingestellt ist, dann werden Nachrichten der + Log-Level notice und warn ebenso eingetragen.

+ +

Es wird empfohlen, mindestens den Level crit zu + verwenden.

+ +

Beispiel:

+ +

+ LogLevel notice +

+ +

Hinweis

+

Beim Protokollieren in eine regulre Datei knnen + Nachrichten des Levels notice nicht unterdrckt + werden und werden daher immer protokolliert. Dies trifft allerdings + nicht zu wenn mittels syslog protokolliert wird.

+
+ +
+
top
+

MaxKeepAliveRequests-Direktive

+ + + + + + + +
Beschreibung:Anzahl der Anfragen, die bei einer persistenten Verbindung +zulssig sind
Syntax:MaxKeepAliveRequests Anzahl
Voreinstellung:MaxKeepAliveRequests 100
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

Die Direktive MaxKeepAliveRequests + begrenzt die Anzahl der Anfragen, die pro Verbindung zulssig sind, + wenn KeepAlive eingeschaltet ist. + Bei der Einstellung 0 sind unbegrenzt viele Anfragen + erlaubt. Wir empfehlen fr diese Einstellung einen hohen Wert + fr eine maximale Serverleistung.

+ +

Beispiel:

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost-Direktive

+ + + + + + +
Beschreibung:Bestimmt eine IP-Adresse fr den Betrieb namensbasierter +virtueller Hosts
Syntax:NameVirtualHost Adresse[:Port]
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Die Direktive NameVirtualHost ist erforderlich, + wenn Sie namensbasierte virtuelle Hosts + konfigurieren mchten.

+ +

Obwohl Adresse eine Hostname sein kann, wird empfohlen, + dass Sie stets eine IP-Adresse verwenden, z.B.:

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

Mit der NameVirtualHost-Anweisung geben Sie + die IP-Adresse an, unter der der Server Anfragen fr + namensbasierte virtuelle Hosts entgegennimmt. Das ist blicherweise + die Adresse, zu der die Namen Ihrer namensbasierten virtuellen Hosts + aufgelst werden. Falls eine Firewall oder ein anderer Proxy die + Anfrage in Empfang nimmt und Sie zu einer weiteren IP-Adresse des Servers + weiterleitet, mssen Sie die IP-Adresse der physikalischen + Schnittstelle der Maschine angeben, welche die Anfragen bedient. + Wenn Sie mehrere namensbasierte Hosts an verschiedenen Adressen + betreiben, wiederholen Sie einfach die Anweisung fr jede + Adresse.

+ +

Anmerkung

+

Beachten Sie, dass der "Hauptserver" und jeder + _default_-Server niemals bei einer + Anfrage an einer NameVirtualHost-IP-Adresse + bedient wird (es sei denn, Sie geben aus irgendwelchen Grnden + NameVirtualHost an, definieren dann aber keine + VirtualHosts fr diese Adresse).

+
+ +

Optional knnen Sie die Nummer eines Ports angeben, an dem + namensbasierte virtuelle Hosts verwendet werden sollen. Beispiel:

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

IPv6-Adressen mssen, wie im folgenden Beispiel angegeben, in + eckige Klammern eingeschlossen werden:

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ +

Um an allen Schnittstellen Anfragen zu empfangen, knnen Sie + * als Argument verwenden.

+ +

+ NameVirtualHost * +

+ +

Argument der Direktive <VirtualHost>

+

Beachten Sie, dass das Argument der <VirtualHost>-Anweisung exakt auf das Argument + der NameVirtualHost-Anweisung passen muss.

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+

+
+ +

Siehe auch

+ +
+
top
+

Options-Direktive

+ + + + + + + + +
Beschreibung:Definiert, welche Eigenschaften oder Funktionen in einem +bestimmten Verzeichnis verfgbar sind
Syntax:Options + [+|-]Option [[+|-]Option] ...
Voreinstellung:Options All
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:Options
Status:Core
Modul:core
+

Die Direktive Options steuert, welche + Eigenschaften bzw. Funktionen in einem bestimmten Verzeichnis + verfgbar sind.

+ +

Option kann auf None gesetzt werden, wobei + keine der besonderen Eigenschaften verfgbar sind, oder auf eines + oder mehrere der folgenden:

+ +
+
All
+ +
Alle Optionen auer MultiViews. Dies ist + die Voreinstellung.
+ +
ExecCGI
+ +
Die Ausfhrung von CGI-Skripten, welche mod_cgi + verwenden, ist erlaubt.
+ +
FollowSymLinks
+ +
Der Server folgt symbolischen Links in diesem Verzeichnis. +
+

Auch wenn der Server symbolischen Links folgt, bedeutet dies + nicht, dass der zum Abgleich gegen <Directory>-Abschnitte verwendete Pfadname + wechselt.

+

Beachten Sie auch, dass diese Option innerhalb eines + <Location>-Abschnitts + ignoriert wird.

+
+ +
Includes
+ +
+ Server Side Includes, die von mod_include bereitgestellt + werden, sind erlaubt.
+ +
IncludesNOEXEC
+ +
Server Side Includes sind erlaubt, #exec cmd + und #exec cgi sind jedoch deaktiviert. Es ist aber noch + mglich, CGI-Skripte aus + ScriptAlias-Verzeichnissen mittels + #include virtual einzubinden.
+ +
Indexes
+ +
Wenn eine URL, die auf ein Verzeichnis zeigt, in dem sich keine durch + DirectoryIndex definierte + Indexdatei (z.B. index.html) befindet, dann liefert + mod_autoindex eine formatierte Auflistung des + Verzeichnisses zurck.
+ +
MultiViews
+ +
"MultiViews" sind bei der Verwendung von + mod_negotiation erlaubt (siehe Content-Negotiation).
+ +
SymLinksIfOwnerMatch
+ +
Der Server folgt nur symbolischen Links, bei denen die Zieldatei + bzw. das Zielverzeichnis der gleichen Benutzerkennung gehrt, wie + der Link. +

Anmerkung

Diese Option wird innerhalb eines + <Location>-Abschnitts + ignoriert.
+
+ +

Wenn mehrere Options auf ein Verzeichnis + angewandt werden knnen, dann wird normalerweise die + spezifischste (Anm.d..: Gemeint ist die zuletzt + ausgefhrte Option.) verwendet und alle anderen werden + ignoriert; die Optionen werden nicht vermischt. (Siehe auch Wie Abschnitte zusammengefhrt + werden..) Wenn jedoch allen Optionen der + Options-Anweisung eines der Zeichen + + oder - vorangestellt wird, werden die Optionen + zusammengemischt. Jede Option mit vorangestelltem + wird + zu den momentan gltigen Optionen hinzugefgt und jede Option + mit vorangestelltem - wird aus den derzeit gltigen + Optionen entfernt.

+ +

Warnung

+

Die Verwendung von Options, bei der einzelne + Optionen mit + oder - und Optionen ohne diese + Prfixe vermischt werden, ist ungltig und fhrt + hufig zu unerwarteten Ergebnissen.

+
+ +

So wird zum Beispiel ohne die Zeichen + und + -

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

fr das Verzeichnis /web/docs/spec wird jetzt + lediglich Includes gesetzt. Wenn die zweite + Options-Anweisung jedoch +- + und --Zeichen verwenden wrde,

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

dann wrden die Optionen FollowSymLinks und + Includes fr das Verzeichnis /web/docs/spec + gesetzt.

+ +

Anmerkung

+

Die Verwendung von -IncludesNOEXEC oder + -Includes deaktiviert Server Side Includes unabhngig + von der vorigen Einstellung vollstndig.

+
+ +

Die Voreinstellung ist All, sofern keine anderen Angaben + gemacht wurden.

+ +
+
top
+

Require-Direktive

+ + + + + + + +
Beschreibung:Whlt die authentisierten Benutzer aus, die auf eine +Ressource zugreifen knnen
Syntax:Require Name [Name] ...
Kontext:Verzeichnis, .htaccess
AllowOverride:AuthConfig
Status:Core
Modul:core
+

Die Direktive whlt aus, welche authentisierten Benutzer auf eine + Ressource zugreifen drfen. Folgende Syntax ist erlaubt:

+ +
+
Require user User-ID [User-ID] + ...
+
Nur die genannten Benutzer drfen auf die Ressource + zugreifen.
+ +
Require group Gruppenname [Gruppenname] + ...
+
Nur Benutzer der genannten Gruppen drfen auf die + Ressource zugreifen.
+ +
Require valid-user
+
Alle gltigen Benutzer drfen auf die Ressource + zugreifen.
+
+ +

Require muss von den Direktiven + AuthName und AuthType sowie Direktiven wie + AuthUserFile + und AuthGroupFile + (zur Definition von Benutzern und Gruppen) begleitet werden, um + korrekt zu funktionieren. Beispiel:

+ +

+ AuthType Basic
+ AuthName "Geschtzte Ressource"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

Zugriffskontrollen, die in dieser Form angewandt werden, gelten + fr alle Methoden. Dies ist normalerweise + gewnscht. Wenn Sie Zugriffskontrollen nur auf bestimmte + Methoden anwenden mchten, whrend andere Methoden + ungeschtzt bleiben, dann mssen Sie die + Require-Anweisung innerhalb eines + <Limit>-Abschnitts + platzieren.

+ +

Siehe auch

+ +
+
top
+

RLimitCPU-Direktive

+ + + + + + + + +
Beschreibung:Begrenzt den CPU-Verbrauch von Prozessen, die von +Apache-Kindprozessen gestartet wurden
Syntax:RLimitCPU Sekunden|max [Sekunden|max]
Voreinstellung:unbestimmt; verwendet die Voreinstellung des Systems
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Akzeptiert einen oder zwei Parameter. Der erste Paramater setzt eine + weiche Ressourcenbegrenzung fr alle Prozesse, der zweite Parameter + setzt die Maximalgrenze fr die Ressourcennutzung. Jeder der + Parameter kann eine Zahl oder max sein. max + zeigt dem Server an, dass das vom Betriebssystem erlaubte Maximum + verwendet werden soll. Das Anheben der maximal erlaubten Ressourcennutzung + erfordert, dass der Server als root luft, zumindest in + der anfnglichen Startphase.

+ +

Dies wird auf Prozesse angewendet, die von Anfragen bearbeitenden + Apache-Kindprozessen abgespalten werden, nicht auf die + Apache-Kindprozesse selbst. Das beinhaltet CGI-Skripte und + SSI-exec-Befehle, nicht jedoch Prozesse, die vom Apache-Elternprozess + abgespalten werden, wie z.B. Protokollierung.

+ +

CPU-Ressourcenbegrenzung wird in Sekunden pro Prozess + ausgedrckt.

+ +

Siehe auch

+ +
+
top
+

RLimitMEM-Direktive

+ + + + + + + + +
Beschreibung:Begrenzt den Speicherverbrauch von Prozessen, die von +Apache-Kindprozessen gestartet wurden
Syntax:RLimitMEM Bytes|max [Bytes|max]
Voreinstellung:unbestimmt; verwendet die Voreinstellung des Systems
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Akzeptiert einen oder zwei Parameter. Der erste Paramater setzt eine + weiche Ressourcenbegrenzung fr alle Prozesse, der zweite Parameter + setzt die Maximalgrenze fr die Ressourcennutzung. Jeder der + Parameter kann eine Zahl oder max sein. max + zeigt dem Server an, dass das vom Betriebssystem erlaubte Maximum + verwendet werden soll. Das Anheben der maximal erlaubten Ressourcennutzung + erfordert, dass der Server als root luft, zumindest in + der anfnglichen Startphase.

+ +

Dies wird auf Prozesse angewendet, die von Anfragen bearbeitenden + Apache-Kindprozessen abgespalten werden, nicht auf die + Apache-Kindprozesse selbst. Das beinhaltet CGI-Skripte und + SSI-exec-Befehle, nicht jedoch Prozesse, die vom Apache-Elternprozess + abgespalten werden, wie z.B. Protokollierung.

+ +

Die Begrenzung des Speicherverbrauchs wird in Bytes pro Prozess + ausgedrckt.

+ +

Siehe auch

+ +
+
top
+

RLimitNPROC-Direktive

+ + + + + + + + +
Beschreibung:Begrenzt die Anzahl der Prozesse, die von Prozessen gestartet +werden knnen, der ihrerseits von Apache-Kinprozessen gestartet +wurden
Syntax:RLimitNPROC Zahl|max [Zahl|max]
Voreinstellung:unbestimmt; verwendet die Voreinstellung des Systems
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Akzeptiert einen oder zwei Parameter. Der erste Paramater setzt eine + weiche Ressourcenbegrenzung fr alle Prozesse, der zweite Parameter + setzt die Maximalgrenze fr die Ressourcennutzung. Jeder der + Parameter kann eine Zahl oder max sein. max + zeigt dem Server an, dass das vom Betriebssystem erlaubte Maximum + verwendet werden soll. Das Anheben der maximal erlaubten Ressourcennutzung + erfordert, dass der Server als root luft, zumindest in + der anfnglichen Startphase.

+ +

Dies wird auf Prozesse angewendet, die von Anfragen bearbeitenden + Apache-Kindprozessen abgespalten werden, nicht auf die + Apache-Kindprozesse selbst. Dies beinhaltet CGI-Skripte und + SSI-exec-Befehle, nicht jedoch Prozesse, die vom Apache-Elternprozess + abgespalten werden, wie z.B. Protokollierung.

+ +

Prozessbegrenzungen steuern die Anzahl der Prozesse pro Benutzer.

+ +

Anmerkung

+

Wenn CGI-Prozesse nicht unter anderen Benutzerkennungen als der + User-ID des Webservers laufen, dann beschrnkt diese Direktive + die Anzahl der Prozesse, die der Server selbst erstellen kann. + Kennzeichen einer solchen Situation sind + cannot fork-Meldungen + (Anm.d..: kann nicht abspalten) in der + Datei error_log.

+
+ +

Siehe auch

+ +
+
top
+

Satisfy-Direktive

+ + + + + + + + + +
Beschreibung:Zusammenspiel von rechnerbasierter Zugriffskontrolle und +Benutzerauthentisierung
Syntax:Satisfy Any|All
Voreinstellung:Satisfy All
Kontext:Verzeichnis, .htaccess
AllowOverride:AuthConfig
Status:Core
Modul:core
Kompatibilitt:Wird seit Version 2.0.51 von <Limit> und <LimitExcept> beeinflusst
+

Verfahrensweise fr den Zugriff, falls sowohl Allow als auch Require verwendet werden. Der Parameter kann + entweder All oder Any sein. Die Direktive ist + nur dann ntzlich, wenn der Zugriff zu einem bestimmten Bereich + durch Benutzername/Passwort und Clientrechner-Adressen + eingeschrnkt ist. In diesem Fall verlangt die Voreinstellung + (All), dass der Client die Adressbeschrnkung passiert + und eine gltige Benutzerkennung und ein gltiges + Passwort bermittelt. Mit der Auswahl Any wird dem + Client der Zugriff erlaubt, wenn er entweder die Rechner-Beschnkung + passiert oder einen gltigen Benutzernamen und ein gltiges + Passwort bermittelt. Dies kann verwendet werden, um einen Bereich + mit einem Passwort zu schtzen, jedoch Clients von bestimmten + Adressen ohne Abfrage des Passwortes zuzulassen.

+ +

Wenn Sie beispielsweise mchten, dass Personen aus Ihrem + privaten Netzwerk unbechnkten Zugriff zu Teilen Ihres + Webangebots haben, jedoch verlangen, dass Personen auerhalb + Ihres privaten Netzwerks ein Passwort bergeben mssen, + knnen Sie eine Konfiguration hnlich der folgenden + verwenden:

+ +

+ Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +

+ +

Seit Version 2.0.51 knnen + Satisfy-Anweisungen durch <Limit>- und <LimitExcept>-Abschnitte auf bestimmte Methoden + beschrnkt werden.

+ +

Siehe auch

+ +
+
top
+

ScriptInterpreterSource-Direktive

+ + + + + + + + + +
Beschreibung:Methode zur Ermittlung des Interpreters von +CGI-Skripten
Syntax:ScriptInterpreterSource Registry|Registry-Strict|Script
Voreinstellung:ScriptInterpreterSource Script
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:ausschlielich Win32; Die Option + Registry-Strict ist verfgbar seit Apache +2.0.
+

Die Direktive steuert, wie der Apache den Interpreter zur Ausfhrung + von CGI-Skripten bestimmt. Die Voreinstellung ist Script. Dies + veranlat den Apache, den Interpreter zu verwenden, auf den die + Shebang-Zeile (erste Zeile, beginnt mit #!) im Skript zeigt. + Auf Win32-Systemen sieht diese Zeile blicherweise so aus:

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

oder, wenn perl im Pfad (Umgebungsvariable + PATH) liegt, einfach:

+ +

+ #!perl +

+ +

Die Einstellung ScriptInterpreterSource Registry + veranlat eine Suche in HKEY_CLASSES_ROOT der + Windows-Registrierungsdatenbank und verwendet die Endung der Skript-Datei + (z.B. .pl) als Suchargument. Der durch den Unterschlssel + Shell\ExecCGI\Command oder, falls dieser nicht existiert, + Shell\Open\Command definierte Befehl wird zum ffnen der + Skript-Datei verwendet. Wenn die Registrierungsschlsel nicht gefunden + werden, dann verwendet der Apache die Option Script.

+ +

Sicherheit

+

Seien Sie vorsichtig, wenn Sie ScriptInterpreterSource + Registry bei Verzeichnissen verwenden, auf die eine ScriptAlias-Anweisung zeigt, denn der + Apache wird versuchen, jede Datei innerhalb des + Verzeichnisses auszufhren. Die Einstellung Registry + kann unerwnschte Programmaufrufe bei Dateien verursachen, die + blicherweise nicht ausgefhrt werden. Auf den meisten + Windows-Systemen beispielsweise startet der voreingestellte + ffnen-Befehl fr .htm-Dateien den Microsoft + Internet Explorer, so dass jede HTTP-Anfrage nach einer existierenden + .htm-Datei im Skript-Verzeichnis den Browser auf dem Server + im Hintergrund starten wrde. Dies ist leichte Art und Weise, Ihr + System binnen etwa einer Minute zum Absturz zu bringen.

+
+ +

Die seit Apache 2.0 neue Option Registry-Strict + macht das gleiche wie Registry, verwendet jedoch nur den + Unterschlssel Shell\ExecCGI\Command. Der Schlssel + ExecCGI ist gewhnlich nicht voreingestellt. Er muss + manuell in der Windows-Registrierungsdatenbank eingerichtet werden und + verhindert dann versehentlicht Programmaufrufe auf Ihrem System.

+ +
+
top
+

ServerAdmin-Direktive

+ + + + + + +
Beschreibung:E-Mail-Adresse, die der Server in Fehlermeldungen einfgt, +welche an den Client gesendet werden
Syntax:ServerAdmin E-Mail-Adresse
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
+

ServerAdmin legt die E-Mail-Adresse fest, + die der Server in jede Fehlermeldung einfgt, die er an den + Client zurckschickt.

+ +

Es kann sich lohnen, hierfr eine reservierte Adresse + anzugeben, z.B.

+ +

+ ServerAdmin www-admin@foo.example.com +

+ +

da Anwender nicht unbedingt erwhnen, dass sie vom Server + sprechen!

+ +
+
top
+

ServerAlias-Direktive

+ + + + + + +
Beschreibung:Alternativer Name fr einen Host, der verwendet wird, wenn +Anfragen einem namensbasierten virtuellen Host zugeordnet werden
Syntax:ServerAlias Hostname [Hostname] ...
Kontext:Virtual Host
Status:Core
Modul:core
+

Die Direktive ServerAlias bestimmt die + alternativen Namen eines Hosts zur Verwendung mit namensbasierten virtuellen Hosts.

+ +

+ <VirtualHost *>
+ ServerName server.domain.com
+ ServerAlias server server2.domain.com server2
+ # ...
+ </VirtualHost> +

+ +

Siehe auch

+ +
+
top
+

ServerName-Direktive

+ + + + + + + +
Beschreibung:Rechnername und Port, die der Server dazu verwendet, sich +selbst zu identifizieren
Syntax:ServerName +voll-qualifizierter-Domainname[:port]
Kontext:Serverkonfiguration, Virtual Host
Status:Core
Modul:core
Kompatibilitt:Diese Direktive lst in Version 2.0 die + Funktionalitt der Direktive Port aus + Version 1.3 ab.
+

Die Direktive ServerName bestimmt den + Rechnernamen und Port, den der Server dazu verwendet, sich selbst + zu identifizieren. Diese werden bei der Erstellung von Umleitungs-URLs + bentigt. Wenn beispielsweise der Name der Maschine, die den Webserver + beherbergt, simple.example.com lautet, die Maschine jedoch + auch einen DNS-Alias www.example.com besitzt und Sie den + Webserver so identifizieren mchten, sollten Sie die folgende + Anweisung verwenden:

+ +

+ ServerName www.example.com:80 +

+ +

Wenn kein ServerName angegeben wurde, + dann versucht der Server den Rechnernamen mittels eines Reverse-Lookup + herzuleiten. Wenn kein Post in der ServerName-Anweisung angegeben wurde, dann + verwendet der Server den Port der eingegangenen Anfrage. Fr eine + optimale Zuverlssigkeit und Berechenbarkeit sollten Sie einen + eindeutigen Rechnernamen und Port angeben, in dem Sie die Direktive + ServerName verwenden.

+ +

Wenn Sie namensbasierte + virtuelle Hosts verwenden, gibt ServerName + innerhalb eines <VirtualHost>-Abschnitts an, welcher + Hostname im Host:-Header der Anfrage auftauchen muss, + damit sie diesem virtuellen Host zugeordnet wird.

+ +

Lesen Sie bitte die Beschreibung der Direktive UseCanonicalName fr Einstellungen, die + bestimmen, ob selbstreferenzierende URLs (z.B. vom Modul + mod_dir) auf den angegebenen Port zeigen oder auf die + Portnummern die in der Anfrage des Clients angegeben ist.

+ +

Siehe auch

+ +
+
top
+

ServerPath-Direktive

+ + + + + + +
Beschreibung:Veralteter URL-Pfad fr einen namensbasierten +virtuellen Host, auf den von einem inkompatiblen Browser zugegriffen +wird
Syntax:ServerPath URL-Pfad
Kontext:Virtual Host
Status:Core
Modul:core
+

Die Direktive ServerPath legt den + veralteten (Anm.d..: Gemeint ist eigentlich "Altlast" aufgrund + antiquierter Clients.) URL-Pfad eines Hosts zur Verwendung mit + namensbasierten virtuellen Hosts fest.

+ +

Siehe auch

+ +
+
top
+

ServerRoot-Direktive

+ + + + + + + +
Beschreibung:Basisverzeichnis der Serverinstallation
Syntax:ServerRoot Verzeichnis
Voreinstellung:ServerRoot /usr/local/apache
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Die Direktive ServerRoot bestimmt das + Verzeichnis, in dem der Server installiert ist. blicherweise + enthlt es die Unterverzeichnisse conf/ und + logs/. Relative Pfadangaben anderer Direktiven (wie z.B. + Include oder LoadModule) werden relativ zu diesem + Verzeichnis betrachtet.

+ +

Beispiel

+ ServerRoot /home/httpd +

+ +

Siehe auch

+ +
+
top
+

ServerSignature-Direktive

+ + + + + + + + +
Beschreibung:Konfiguriert die Fuzeile von servergenerierten +Dokumenten
Syntax:ServerSignature On|Off|EMail
Voreinstellung:ServerSignature Off
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:All
Status:Core
Modul:core
+

Die Direktive ServerSignature ermglicht + die Gestaltung einer unter servergenerierten Dokumenten (z.B. + Fehlerdokumente, FTP-Verzeichnislisten von mod_proxy, + mod_info-Ausgaben, ...) angefgten + Fuzeile. Ein mglicher Grund fr die Aktivierung einer + solchen Fuzeile ist, dass der Anwender bei einer Kette von + Proxy-Servern oft keine Mglichkeit hat, zu erkennen, welcher der + verketteten Server gegenwrtig die zurckgegebene Fehlermeldung + produziert hat.

+ +

Die (Vor-)Einstellung Off unterdrckt die + Fuzeile (und ist damit kompatibel zum Verhalten des Apache 1.2 und + frher). Die Einstellung On fgt schlicht eine + Zeile mit der Versionsnummer des Servers und dem Servernamen (ServerName) des bedienenden virtuellen Hosts an. + Die Einstellung EMail erstellt zustzlich einen + "mailto:"-Verweis zum Serveradministrator (ServerAdmin) des referenzierten Dokuments.

+ +

Ab Version 2.0.44 werden die Details der angegebenen Versionsnummer des + Servers von der Direktive ServerTokens kontrolliert.

+ +

Siehe auch

+ +
+
top
+

ServerTokens-Direktive

+ + + + + + + +
Beschreibung:Konfiguriert den HTTP-Response-Header +Server
Syntax:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Voreinstellung:ServerTokens Full
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

die Direktive steuert, ob der Response-Header Server, + der an den Client zurckgesendet wird, eine Beschreibung des + allgemeinen Betriesbsystemtyps des Servers wie auch Informationen + ber einkompilierte Module enthlt.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Der Server sendet (z.B.): Server: + Apache
+ +
ServerTokens Major
+ +
Der Server sendet (z.B.): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Der Server sendet (z.B.): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Der Server sendet (z.B.): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Der Server sendet (z.B.): Server: Apache/2.0.41 + (Unix)
+ +
ServerTokens Full (oder nicht angegeben)
+ +
Der Server sendet (z.B.): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Diese Einstellung gilt fr den gesamten Server und kann nicht + auf Virtual-Host-Basis aktiviert oder deaktiviert werden.

+ +

Ab Version 2.0.44 steuert diese Direktive auch die Informationen, die + durch die Direktive ServerSignature + angeboten werden.

+ +

Siehe auch

+ +
+
top
+

SetHandler-Direktive

+ + + + + + + + +
Beschreibung:Erzwingt die Verarbeitung aller passenden Dateien durch +einen Handler
Syntax:SetHandler Handlername|None
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
Kompatibilitt:Seit Apache 2.0 im Core
+

Wenn die Direktive innerhalb einer .htaccess-Datei + oder in einem <Directory>- oder + <Location>-Abschnitt + angegeben wird, erzwingt sie, dass alle entsprechenden Dateien von dem + durch Handlername angegebenen Handler analysiert werden. Wenn Sie + beispielsweise ein Verzeichnis haben, dessen Dateien unabhngig von + der Endung gnzlich als Image-Maps interpretiert werden sollen, + knnen Sie folgendes in eine .htaccess-Datei in + dem Verzeichnis schreiben:

+ +

+ SetHandler imap-file +

+ +

Noch ein Beispiel: wenn Sie den Server immer, wenn die URL + http://servername/status aufgerufen wird, einen + Statusbericht anzeigen lassen mchten, dann knnen + Sie folgendes in die httpd.conf schreiben:

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+

Sie knnen eine zuvor definierte + SetHandler-Anweisung aufheben, indem Sie den Wert + None verwenden.

+ +

Siehe auch

+ +
+
top
+

SetInputFilter-Direktive

+ + + + + + + +
Beschreibung:Bestimmt die Filter, die Client-Anfragen und POST-Eingaben +verarbeiten
Syntax:SetInputFilter Filter[;Filter...]
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Die Direktive SetInputFilter bestimmt den oder + die Filter, die Client-Anfragen und POST-Eingaben verarbeiten, wenn + sie vom Server empfangen werden. Diese gelten zustzlich zu + anderweitig definierten Filtern, einschlielich denen der Direktive + AddInputFilter.

+ +

Wenn mehr als ein Filter angegeben wird, dann mssen diese + durch Semikolon voneinander getrennt in der Reihenfolge angegeben werden, + in der sie die Daten verarbeiten sollen.

+ +

Siehe auch

+ +
+
top
+

SetOutputFilter-Direktive

+ + + + + + + +
Beschreibung:Bestimmt die Filter, die Antworten des Servers verarbeiten
Syntax:SetOutputFilter Filter[;Filter...]
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis, .htaccess
AllowOverride:FileInfo
Status:Core
Modul:core
+

Die Direktive SetOutputFilter bestimmt + die Filter, die Antworten des Servers verarbeiten, bevor sie an den + Client gesendet werden. Diese gelten zustzlich zu anderweitig + definierten Filtern, einschlielich denen der Direktive + AddOutputFilter.

+ +

Die folgende Konfiguration verarbeitet zum Beispiel alle Dateien + im Verzeichnis /www/data als Server Side Includes.

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

Wenn mehr als ein Filter angegeben wird, dann mssen diese + durch Semikolon voneinander getrennt in der Reihenfolge angegeben werden, + in der sie die Daten verarbeiten sollen.

+ +

Siehe auch

+ +
+
top
+

TimeOut-Direktive

+ + + + + + + +
Beschreibung:Zeitspanne, die der Server auf verschiedene Ereignisse wartet, +bevor er die Anfrage abbricht
Syntax:TimeOut Sekunden
Voreinstellung:TimeOut 300
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

Die Direktive TimeOut definiert derzeit die + Zeitspanne, die der Apache auf drei Dinge wartet:

+ +
    +
  1. Die gesamte Zeispanne, die bentigt wird, um eine GET-Anfrage + zu empfangen.
  2. + +
  3. Die Zeitspanne zwischen dem Empfang von TCP-Paketen einer + POST- oder PUT-Anfrage.
  4. + +
  5. Die Zeitspanne zwischen ACKs bei der bermittlung der + TCP-Pakete der Antwort.
  6. +
+ +

Wir haben vor, diese Zeitspannen in Zukunft separat konfigurierbar zu + machen. Vor Version 1.2 war der Zeitgeber auf 1200 voreingestellt, wurde + dann aber auf 300 herabgesetzt, was immer noch weit mehr ist, als in den + meisten Situationen bentigt wird. Die Voreinstellung wurde nicht + weiter herabgesetzt, da gelegentlich noch Stellen im Code existieren + knnen, wo der Zeitgeber nicht zurckgesetzt wird, wenn ein + Paket verschickt wird.

+ +
+
top
+

TraceEnable-Direktive

+ + + + + + + + +
Beschreibung:Legt das Serververhalten bei TRACE-Anfragen +fest
Syntax:TraceEnable [on|off|extended]
Voreinstellung:TraceEnable on
Kontext:Serverkonfiguration
Status:Core
Modul:core
Kompatibilitt:Seit den Versionen 1.3.34 und 2.0.55
+

Diese Direktive berschreibt das Verhalten bei TRACE + sowohl fr den Hauptserver als auch fr + mod_proxy. Die Voreinstellung TraceEnable on + erlaubt TRACE-Anfragen gem RFC 2616, welcher + das Mitschicken von Request-Bodies verbietet. TraceEnable off + veranlasst den Hauptserver und mod_proxy, dem + Client mit dem Fehler 405 (Methode nicht erlaubt) + antworten.

+ +

Mit Hilfe der nicht konformen Direktive TraceEnable + extended knnen Request-Bodies zugelassen werden. Das ist + allerdings ausschlielich fr Test- und Diagnosezwecke gedacht. + Der Hauptserver (als Ursprungsserver) (Anm.d..: damit ist der + Normalbetrieb und nicht der Einsatz als Proxy-Server gemeint) + limitiert den Request-Body auf 64K (plus 8K fr die Chunk-Header, + wenn Transfer-Encoding: chunked verwendet wird) und + reflektiert den vollen Headersatz sowie alle Chunk-Header in seiner + Antwort. Im Betrieb als Proxyserver wird der Request-Body nicht auf + 64K begrenzt.

+ +
+
top
+

UseCanonicalName-Direktive

+ + + + + + + +
Beschreibung:Bestimmt, wie der Server seinen eigenen Namen und Port +ermittelt
Syntax:UseCanonicalName On|Off|DNS
Voreinstellung:UseCanonicalName On
Kontext:Serverkonfiguration, Virtual Host, Verzeichnis
Status:Core
Modul:core
+

In vielen Situationen muss der Apache eine + selbstreferenzierende URL -- d.h. eine URL, die auf den selben + Server zurck verweist -- zusammenbauen. Bei UseCanonicalName + On verwendet der Apache den Hostnamen und Port, der in der + ServerName-Anweisung angegeben ist, + um den kanonischen Namen des Servers zu erstellen. Dieser Name wird in + allen selbstreferenzierenden URLs sowie in CGI-Skripten fr die + Werte von SERVER_NAME und SERVER_PORT + verwendet.

+ +

Bei UseCanonicalName Off bildet der Apache + selbstreferenzierende URLs, indem er den vom Client bermittelten + Hostnamen und Port verwendet, sofern diese vorhanden sind (andernfalls + wird der kanonische Name, wie oben beschrieben, benutzt). Die Werte + sind die gleichen, die zur Anwendung von namensbasierten virtuellen Hosts + verwendet werden, und sie sind mit den gleichen Clients verfgbar + (Anm.d..: , die auch in der Lage sind, auf namensbasierte virtuelle Hosts + zuzugreifen, d.h. einen Host-Header mitschicken). + Die CGI-Variablen SERVER_NAME und SERVER_PORT + werden ebenfalls aus den vom Client angeboten Werten erstellt.

+ +

Ein Intranet-Server, auf den Anwender mit kurzen Namen wie + www zugreifen, ist ein Beispiel, wo dies sinnvoll sein kann. + Sie werden bemerken, dass der Apache den Benutzer auf + http://www.domain.com/splat/ umleitet, wenn dieser einen + Kurznamen und eine URL, die einem Verzeichnis entspricht, ohne + abschlieenden Schrgstrich eingibt, wie z.B. + http://www/splat. Wenn Sie Authentisierung aktiviert haben, + bewirkt dies, dass der Benutzer sich zweimal identifizieren muss + (einmal fr www und noch einmal fr + www.domain.com -- lesen Sie fr weitere Informationen die + FAQ zu diesem Thema). Wenn UseCanonicalName + jedoch auf Off gesetzt ist, denn wird der Apache zu + http://www/splat/ umleiten.

+ +

Es existiert noch eine dritte Option, UseCanonicalName DNS, + die fr den Betrieb von IP-basierten Massen-Virtual-Hosts gedacht ist, + um antiquierte Clients zu untersttzen, die keinen + Host:-Header bereit stellen. Um selbstreferenzierende + URLs zu ermitteln, fhrt der Apache bei dieser Option ein + Reverse-DNS-Lookup auf die IP-Adresse des Servers aus, zu der der Client + Verbindung aufgenommen hat.

+ +

Warnung

+

Wenn CGI-Skripte Vermutungen aufgrund des Wertes von + SERVER_NAME anstellen, knnen sie durch diese + Option fehlschlagen. Clients steht es im Wesentlichen frei, einen Wert + fr den Hostnamen anzugeben, wie er will. Wenn das + CGI-Skript SERVER_NAME jedoch lediglich dazu verwendet, + selbstreferenzierende URLs zu erstellen, sollte das gerade noch + in Ordnung sein.

+
+ +

Siehe auch

+ +
+
top
+

<VirtualHost>-Direktive

+ + + + + + +
Beschreibung:Enthlt Direktiven, die nur auf bestimmte Hostnamen oder +IP-Adressen angewendet werden
Syntax:<VirtualHost + Adresse[:Port] [Adresse[:Port]] + ...> ... </VirtualHost>
Kontext:Serverkonfiguration
Status:Core
Modul:core
+

<VirtualHost> und + </VirtualHost> werden dazu verwendet, eine Gruppe + von Direktiven zusammenzufassen, die nur auf einen bestimmten virtuellen + Host angewendet werden. Jede Direktive, die im Virtual-Host-Kontext + zulssig ist, kann verwendet werden. Wenn der Server eine Anfrage + fr ein bestimmtes Dokument eines bestimmten virtuellen Hosts + empfngt, dann benutzt er die im + <VirtualHost>-Container enthaltenen + Konfigurationsanweisungen. Adresse kann sein:

+ +
    +
  • Die IP-Adresse des virtuellen Hosts.
  • + +
  • Ein voll qualifizierter Domainname fr die IP-Adresse des + virtuellen Hosts.
  • + +
  • Das Zeichen *, welches nur in Kombination mit + NameVirtualHost * verwendet wird, um allen IP-Adressen + zu entsprechen.
  • + +
  • Die Zeichenkette _default_, die nur mit IP-basierten + virtuellen Hosts verwendet wird, um nicht zugewiesene IP-Adressen + aufzufangen.
  • +
+ +

Beispiel

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.foo.com
+ DocumentRoot /www/docs/host.foo.com
+ ServerName host.foo.com
+ ErrorLog logs/host.foo.com-error_log
+ TransferLog logs/host.foo.com-access_log
+
+ </VirtualHost> +

+ +

IPv6-Adressen mssen in eckigen Klammern angegeben werden, da die + optionale Portnummer sonst nicht erkannt werden kann. Hier ein + IPv6-Beispiel:

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+
+ </VirtualHost> +

+ +

Jeder virtuelle Host muss einer anderen IP-Adresse, einem anderen Port + oder einem anderen Hostnamen fr den Server entsprechen. Im ersten + Fall muss die Servermaschine so eingerichtet sein, dass sie IP-Pakete + fr mehrere Adressen akzeptiert. (Wenn der Rechner nicht mehrere + Netzwerkkarten besitzt, kann dies mit dem Befehl ifconfig + alias durchgefhrt werden -- sofern Ihr Betriebssystem das + untersttzt).

+ +

Anmerkung

+

Die Verwendung von <VirtualHost> + beeinflusst nicht, an welchen Adressen der Apache + lauscht. Sie mssen mit Listen sicherstellen, dass der Apache + an der richtigen Adresse lauscht.

+
+ +

Bei der Verwendung IP-basierter virtueller Hosts kann der spezielle + Name _default_ benutzt werden. In diesem Fall weist + der Apache jede IP-Adresse diesem virtuellen Host zu, die nicht explizit in + einem anderen virtuellen Host angegeben ist. Falls kein virtueller Host + _default_ angegeben ist, wird die "Hauptserver"-Konfiguration, + die aus allen Definitionen auerhalb der Virtual-Host-Abschnitte + besteht, fr nicht passende IPs verwendet. (Beachten Sie jedoch, + dass eine IP-Adresse die zu einer NameVirtualHost-Anweisung passt, weder den + "Hauptserver" noch den virtuellen Host _default_ verwendet. + Lesen Sie fr weitere Details die Dokumentation zu namensbasierten virtuellen Hosts.)

+ +

Sie knnen einen speziellen :Port angeben, + um den entsprechenden Port zu wechseln. Falls nicht angegeben, wird + er auf den gleichen Port voreingestellt, wie die letzte + Listen-Anweisung des + Hauptservers. Sie knnen auch :* angeben, um alle + Ports dieser Adresse zu akzeptieren. (Dies wird zusammen mit + _default_ empfohlen.)

+ +

Sicherheit

+

Lesen Sie das Dokument Sicherheitshinweise fr + Details, warum Ihre Sicherheit gefhrdet sein kann, wenn das + Verzeichnis, in dem Protokolldateien gespeichert werden, fr + jemanden anderes als den Benutzer beschreibbar ist, der den Server + gestartet hat.

+
+ +

Siehe auch

+ +
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/core.html.en b/rubbos/app/apache2/manual/mod/core.html.en new file mode 100644 index 00000000..5b417797 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html.en @@ -0,0 +1,3250 @@ + + + +core - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Core Features

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ +
Description:Core Apache HTTP Server features that are always +available
Status:Core
+
+ + +
top
+

AcceptPathInfo Directive

+ + + + + + + + + +
Description:Resources accept trailing pathname information
Syntax:AcceptPathInfo On|Off|Default
Default:AcceptPathInfo Default
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Available in Apache 2.0.30 and later
+ +

This directive controls whether requests that contain trailing + pathname information that follows an actual filename (or + non-existent file in an existing directory) will be accepted or + rejected. The trailing pathname information can be made + available to scripts in the PATH_INFO environment + variable.

+ +

For example, assume the location /test/ points to + a directory that contains only the single file + here.html. Then requests for + /test/here.html/more and + /test/nothere.html/more both collect + /more as PATH_INFO.

+ +

The three possible arguments for the + AcceptPathInfo directive are:

+
+
Off
A request will only be accepted if it + maps to a literal path that exists. Therefore a request with + trailing pathname information after the true filename such as + /test/here.html/more in the above example will return + a 404 NOT FOUND error.
+ +
On
A request will be accepted if a + leading path component maps to a file that exists. The above + example /test/here.html/more will be accepted if + /test/here.html maps to a valid file.
+ +
Default
The treatment of requests with + trailing pathname information is determined by the handler responsible for the request. + The core handler for normal files defaults to rejecting + PATH_INFO requests. Handlers that serve scripts, such as cgi-script and isapi-handler, generally accept + PATH_INFO by default.
+
+ +

The primary purpose of the AcceptPathInfo + directive is to allow you to override the handler's choice of + accepting or rejecting PATH_INFO. This override is required, + for example, when you use a filter, such + as INCLUDES, to generate content + based on PATH_INFO. The core handler would usually reject + the request, so you can use the following configuration to enable + such a script:

+ +

+ <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ + +
+
top
+

AccessFileName Directive

+ + + + + + + +
Description:Name of the distributed configuration file
Syntax:AccessFileName filename [filename] ...
Default:AccessFileName .htaccess
Context:server config, virtual host
Status:Core
Module:core
+

While processing a request the server looks for + the first existing configuration file from this list of names in + every directory of the path to the document, if distributed + configuration files are enabled for that + directory. For example:

+ +

+ AccessFileName .acl +

+ +

before returning the document + /usr/local/web/index.html, the server will read + /.acl, /usr/.acl, + /usr/local/.acl and /usr/local/web/.acl + for directives, unless they have been disabled with

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

See also

+ +
+
top
+

AddDefaultCharset Directive

+ + + + + + + + +
Description:Default charset parameter to be added when a response +content-type is text/plain or text/html
Syntax:AddDefaultCharset On|Off|charset
Default:AddDefaultCharset Off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

This directive specifies a default value for the media type + charset parameter (the name of a character encoding) to be added + to a response if and only if the response's content-type is either + text/plain or text/html. This should override + any charset specified in the body of the response via a META + element, though the exact behavior is often dependent on the user's client + configuration. A setting of AddDefaultCharset Off + disables this functionality. AddDefaultCharset On enables + a default charset of iso-8859-1. Any other value is assumed + to be the charset to be used, which should be one of the + IANA registered + charset values for use in MIME media types. + For example:

+ +

+ AddDefaultCharset utf-8 +

+ +

AddDefaultCharset should only be used when all + of the text resources to which it applies are known to be in that + character encoding and it is too inconvenient to label their charset + individually. One such example is to add the charset parameter + to resources containing generated content, such as legacy CGI + scripts, that might be vulnerable to cross-site scripting attacks + due to user-provided data being included in the output. Note, however, + that a better solution is to just fix (or delete) those scripts, since + setting a default charset does not protect users that have enabled + the "auto-detect character encoding" feature on their browser.

+ +

See also

+ +
+
top
+

AddOutputFilterByType Directive

+ + + + + + + + +
Description:assigns an output filter to a particular MIME-type
Syntax:AddOutputFilterByType filter[;filter...] +MIME-type [MIME-type] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Available in Apache 2.0.33 and later
+

This directive activates a particular output filter for a request depending on the + response MIME-type.

+ +

The following example uses the DEFLATE filter, which + is provided by mod_deflate. It will compress all + output (either static or dynamic) which is labeled as + text/html or text/plain before it is sent + to the client.

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

If you want the content to be processed by more than one filter, their + names have to be separated by semicolons. It's also possible to use one + AddOutputFilterByType directive for each of + these filters.

+ +

The configuration below causes all script output labeled as + text/html to be processed at first by the + INCLUDES filter and then by the DEFLATE + filter.

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

Note

+

Enabling filters with AddOutputFilterByType + may fail partially or completely in some cases. For example, no + filters are applied if the MIME-type could not be determined and falls + back to the DefaultType setting, + even if the DefaultType is the + same.

+ +

However, if you want to make sure, that the filters will be + applied, assign the content type to a resource explicitly, for + example with AddType or + ForceType. Setting the + content type within a (non-nph) CGI script is also safe.

+ +

The by-type output filters are never applied on proxy requests.

+
+ +

See also

+ +
+
top
+

AllowEncodedSlashes Directive

+ + + + + + + + +
Description:Determines whether encoded path separators in URLs are allowed to +be passed through
Syntax:AllowEncodedSlashes On|Off
Default:AllowEncodedSlashes Off
Context:server config, virtual host
Status:Core
Module:core
Compatibility:Available in Apache 2.0.46 and later
+

The AllowEncodedSlashes directive allows URLs + which contain encoded path separators (%2F for / + and additionally %5C for \ on according systems) + to be used. Normally such URLs are refused with a 404 (Not found) error.

+ +

Turning AllowEncodedSlashes On is + mostly useful when used in conjunction with PATH_INFO.

+ +

Note

+

Allowing encoded slashes does not imply decoding. + Occurrences of %2F or %5C (only on + according systems) will be left as such in the otherwise decoded URL + string.

+
+ +

See also

+ +
+
top
+

AllowOverride Directive

+ + + + + + + +
Description:Types of directives that are allowed in +.htaccess files
Syntax:AllowOverride All|None|directive-type +[directive-type] ...
Default:AllowOverride All
Context:directory
Status:Core
Module:core
+

When the server finds an .htaccess file (as + specified by AccessFileName) + it needs to know which directives declared in that file can override + earlier configuration directives.

+ +

Only available in <Directory> sections

+ AllowOverride is valid only in + <Directory> + sections specified without regular expressions, not in <Location>, <DirectoryMatch> or + <Files> sections. +
+ +

When this directive is set to None, then + .htaccess files are completely ignored. + In this case, the server will not even attempt to read + .htaccess files in the filesystem.

+ +

When this directive is set to All, then any + directive which has the .htaccess Context is allowed in + .htaccess files.

+ +

The directive-type can be one of the following + groupings of directives.

+ +
+
AuthConfig
+ +
+ + Allow use of the authorization directives (AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, AuthUserFile, Require, etc.).
+ +
FileInfo
+ +
+ Allow use of the directives controlling document types (DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, and + mod_mime Add* and Remove* + directives, etc.).
+ +
Indexes
+ +
+ Allow use of the directives controlling directory indexing + (AddDescription, + AddIcon, AddIconByEncoding, + AddIconByType, + DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, + etc.).
+ +
Limit
+ +
+ Allow use of the directives controlling host access (Allow, Deny and Order).
+ +
Options
+ +
+ Allow use of the directives controlling specific directory + features (Options and + XBitHack).
+
+ +

Example:

+ +

+ AllowOverride AuthConfig Indexes +

+ +

In the example above all directives that are neither in the group + AuthConfig nor Indexes cause an internal + server error.

+ +

See also

+ +
+
top
+

AuthName Directive

+ + + + + + + +
Description:Authorization realm for use in HTTP +authentication
Syntax:AuthName auth-domain
Context:directory, .htaccess
Override:AuthConfig
Status:Core
Module:core
+

This directive sets the name of the authorization realm for a + directory. This realm is given to the client so that the user + knows which username and password to send. + AuthName takes a single argument; if the + realm name contains spaces, it must be enclosed in quotation + marks. It must be accompanied by AuthType and Require directives, and directives such + as AuthUserFile and + AuthGroupFile to + work.

+ +

For example:

+ +

+ AuthName "Top Secret" +

+ +

The string provided for the AuthName is what will + appear in the password dialog provided by most browsers.

+ +

See also

+ +
+
top
+

AuthType Directive

+ + + + + + + +
Description:Type of user authentication
Syntax:AuthType Basic|Digest
Context:directory, .htaccess
Override:AuthConfig
Status:Core
Module:core
+

This directive selects the type of user authentication for a + directory. Only Basic and Digest are + currently implemented. + + It must be accompanied by AuthName and Require directives, and directives such + as AuthUserFile and + AuthGroupFile to + work.

+ +

See also

+ +
+
top
+

CGIMapExtension Directive

+ + + + + + + + +
Description:Technique for locating the interpreter for CGI +scripts
Syntax:CGIMapExtension cgi-path .extension
Context:directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:NetWare only
+

This directive is used to control how Apache finds the + interpreter used to run CGI scripts. For example, setting + CGIMapExtension sys:\foo.nlm .foo will + cause all CGI script files with a .foo extension to + be passed to the FOO interpreter.

+ +
+
top
+

ContentDigest Directive

+ + + + + + + + +
Description:Enables the generation of Content-MD5 HTTP Response +headers
Syntax:ContentDigest On|Off
Default:ContentDigest Off
Context:server config, virtual host, directory, .htaccess
Override:Options
Status:Core
Module:core
+

This directive enables the generation of + Content-MD5 headers as defined in RFC1864 + respectively RFC2068.

+ +

MD5 is an algorithm for computing a "message digest" + (sometimes called "fingerprint") of arbitrary-length data, with + a high degree of confidence that any alterations in the data + will be reflected in alterations in the message digest.

+ +

The Content-MD5 header provides an end-to-end + message integrity check (MIC) of the entity-body. A proxy or + client may check this header for detecting accidental + modification of the entity-body in transit. Example header:

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

Note that this can cause performance problems on your server + since the message digest is computed on every request (the + values are not cached).

+ +

Content-MD5 is only sent for documents served + by the core, and not by any module. For example, + SSI documents, output from CGI scripts, and byte range responses + do not have this header.

+ +
+
top
+

DefaultType Directive

+ + + + + + + + +
Description:MIME content-type that will be sent if the +server cannot determine a type in any other way
Syntax:DefaultType MIME-type
Default:DefaultType text/plain
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

There will be times when the server is asked to provide a + document whose type cannot be determined by its MIME types + mappings.

+ +

The server must inform the client of the content-type of the + document, so in the event of an unknown type it uses the + DefaultType. For example:

+ +

+ DefaultType image/gif +

+ +

would be appropriate for a directory which contained many GIF + images with filenames missing the .gif extension.

+ +

Note that unlike ForceType, this directive only + provides the default mime-type. All other mime-type definitions, + including filename extensions, that might identify the media type + will override this default.

+ +
+
top
+

<Directory> Directive

+ + + + + + +
Description:Enclose a group of directives that apply only to the +named file-system directory and sub-directories
Syntax:<Directory directory-path> +... </Directory>
Context:server config, virtual host
Status:Core
Module:core
+

<Directory> and + </Directory> are used to enclose a group of + directives that will apply only to the named directory and + sub-directories of that directory. Any directive that is allowed + in a directory context may be used. Directory-path is + either the full path to a directory, or a wild-card string using + Unix shell-style matching. In a wild-card string, ? matches + any single character, and * matches any sequences of + characters. You may also use [] character ranges. None + of the wildcards match a `/' character, so <Directory + /*/public_html> will not match + /home/user/public_html, but <Directory + /home/*/public_html> will match. Example:

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

Be careful with the directory-path arguments: + They have to literally match the filesystem path which Apache uses + to access the files. Directives applied to a particular + <Directory> will not apply to files accessed from + that same directory via a different path, such as via different symbolic + links.

+
+ +

Extended regular + expressions can also be used, with the addition of the + ~ character. For example:

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

would match directories in /www/ that consisted of + three numbers.

+ +

If multiple (non-regular expression) <Directory> sections + match the directory (or one of its parents) containing a document, + then the directives are applied in the order of shortest match + first, interspersed with the directives from the .htaccess files. For example, + with

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

for access to the document /home/web/dir/doc.html + the steps are:

+ +
    +
  • Apply directive AllowOverride None + (disabling .htaccess files).
  • + +
  • Apply directive AllowOverride FileInfo (for + directory /home).
  • + +
  • Apply any FileInfo directives in + /home/.htaccess, /home/web/.htaccess and + /home/web/dir/.htaccess in that order.
  • +
+ +

Regular expressions are not considered until after all of the + normal sections have been applied. Then all of the regular + expressions are tested in the order they appeared in the + configuration file. For example, with

+ +

+ <Directory ~ abc$>
+ + # ... directives here ...
+
+ </Directory> +

+ +

the regular expression section won't be considered until after + all normal <Directory>s and + .htaccess files have been applied. Then the regular + expression will match on /home/abc/public_html/abc and + the corresponding <Directory> will + be applied.

+ +

Note that the default Apache access for + <Directory /> is Allow from All. + This means that Apache will serve any file mapped from an URL. It is + recommended that you change this with a block such + as

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

and then override this for directories you + want accessible. See the Security Tips page for more + details.

+ +

The directory sections occur in the httpd.conf file. + <Directory> directives + cannot nest, and cannot appear in a <Limit> or <LimitExcept> section.

+ +

See also

+ +
+
top
+

<DirectoryMatch> Directive

+ + + + + + +
Description:Enclose directives that apply to +file-system directories matching a regular expression and their +subdirectories
Syntax:<DirectoryMatch regex> +... </DirectoryMatch>
Context:server config, virtual host
Status:Core
Module:core
+

<DirectoryMatch> and + </DirectoryMatch> are used to enclose a group + of directives which will apply only to the named directory and + sub-directories of that directory, the same as <Directory>. However, it + takes as an argument a regular expression. For example:

+ +

+ <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> +

+ +

would match directories in /www/ that consisted of three + numbers.

+ +

See also

+ +
+
top
+

DocumentRoot Directive

+ + + + + + + +
Description:Directory that forms the main document tree visible +from the web
Syntax:DocumentRoot directory-path
Default:DocumentRoot /usr/local/apache/htdocs
Context:server config, virtual host
Status:Core
Module:core
+

This directive sets the directory from which httpd + will serve files. Unless matched by a directive like Alias, the server appends the + path from the requested URL to the document root to make the + path to the document. Example:

+ +

+ DocumentRoot /usr/web +

+ +

then an access to + http://www.my.host.com/index.html refers to + /usr/web/index.html.

+ +

The DocumentRoot should be specified without + a trailing slash.

+ +

See also

+ +
+
top
+

EnableMMAP Directive

+ + + + + + + + +
Description:Use memory-mapping to read files during delivery
Syntax:EnableMMAP On|Off
Default:EnableMMAP On
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

This directive controls whether the httpd may use + memory-mapping if it needs to read the contents of a file during + delivery. By default, when the handling of a request requires + access to the data within a file -- for example, when delivering a + server-parsed file using mod_include -- Apache + memory-maps the file if the OS supports it.

+ +

This memory-mapping sometimes yields a performance improvement. + But in some environments, it is better to disable the memory-mapping + to prevent operational problems:

+ +
    +
  • On some multiprocessor systems, memory-mapping can reduce the + performance of the httpd.
  • +
  • With an NFS-mounted DocumentRoot, + the httpd may crash due to a segmentation fault if a file + is deleted or truncated while the httpd has it + memory-mapped.
  • +
+ +

For server configurations that are vulnerable to these problems, + you should disable memory-mapping of delivered files by specifying:

+ +

+ EnableMMAP Off +

+ +

For NFS mounted files, this feature may be disabled explicitly for + the offending files by specifying:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile Directive

+ + + + + + + + + +
Description:Use the kernel sendfile support to deliver files to the client
Syntax:EnableSendfile On|Off
Default:EnableSendfile On
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Available in version 2.0.44 and later
+

This directive controls whether httpd may use the + sendfile support from the kernel to transmit file contents to the client. + By default, when the handling of a request requires no access + to the data within a file -- for example, when delivering a + static file -- Apache uses sendfile to deliver the file contents + without ever reading the file if the OS supports it.

+ +

This sendfile mechanism avoids separate read and send operations, + and buffer allocations. But on some platforms or within some + filesystems, it is better to disable this feature to avoid + operational problems:

+ +
    +
  • Some platforms may have broken sendfile support that the build + system did not detect, especially if the binaries were built on + another box and moved to such a machine with broken sendfile + support.
  • +
  • On Linux the use of sendfile triggers TCP-checksum + offloading bugs on certain networking cards when using IPv6.
  • +
  • With a network-mounted DocumentRoot (e.g., NFS or SMB), + the kernel may be unable to serve the network file through + its own cache.
  • +
+ +

For server configurations that are vulnerable to these problems, + you should disable this feature by specifying:

+ +

+ EnableSendfile Off +

+ +

For NFS or SMB mounted files, this feature may be disabled explicitly + for the offending files by specifying:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableSendfile Off + + </Directory> +

+ +
+
top
+

ErrorDocument Directive

+ + + + + + + + +
Description:What the server will return to the client +in case of an error
Syntax:ErrorDocument error-code document
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Quoting syntax for text messages is different in Apache +2.0
+

In the event of a problem or error, Apache can be configured + to do one of four things,

+ +
    +
  1. output a simple hardcoded error message
  2. + +
  3. output a customized message
  4. + +
  5. redirect to a local URL-path to handle the + problem/error
  6. + +
  7. redirect to an external URL to handle the + problem/error
  8. +
+ +

The first option is the default, while options 2-4 are + configured using the ErrorDocument + directive, which is followed by the HTTP response code and a URL + or a message. Apache will sometimes offer additional information + regarding the problem/error.

+ +

URLs can begin with a slash (/) for local web-paths (relative + to the DocumentRoot), or be a + full URL which the client can resolve. Alternatively, a message + can be provided to be displayed by the browser. Examples:

+ +

+ ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Sorry can't allow you access today" +

+ +

Additionally, the special value default can be used + to specify Apache's simple hardcoded message. While not required + under normal circumstances, default will restore + Apache's simple hardcoded message for configurations that would + otherwise inherit an existing ErrorDocument.

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

Note that when you specify an ErrorDocument + that points to a remote URL (ie. anything with a method such as + http in front of it), Apache will send a redirect to the + client to tell it where to find the document, even if the + document ends up being on the same server. This has several + implications, the most important being that the client will not + receive the original error status code, but instead will + receive a redirect status code. This in turn can confuse web + robots and other clients which try to determine if a URL is + valid using the status code. In addition, if you use a remote + URL in an ErrorDocument 401, the client will not + know to prompt the user for a password since it will not + receive the 401 status code. Therefore, if you use an + ErrorDocument 401 directive then it must refer to a local + document.

+ +

Microsoft Internet Explorer (MSIE) will by default ignore + server-generated error messages when they are "too small" and substitute + its own "friendly" error messages. The size threshold varies depending on + the type of error, but in general, if you make your error document + greater than 512 bytes, then MSIE will show the server-generated + error rather than masking it. More information is available in + Microsoft Knowledge Base article Q294807.

+ +

Although most error messages can be overriden, there are certain + circumstances where the internal messages are used regardless of the + setting of ErrorDocument. In + particular, if a malformed request is detected, normal request processing + will be immediately halted and the internal error message returned. + This is necessary to guard against security problems caused by + bad requests.

+ +

If you are using mod_proxy, you may wish to enable + ProxyErrorOverride so that you can provide + custom error messages on behalf of your Origin servers. If you don't enable ProxyErrorOverride, + Apache will not generate custom error documents for proxied content.

+ +

Prior to version 2.0, messages were indicated by prefixing + them with a single unmatched double quote character.

+ +

See also

+ +
+
top
+

ErrorLog Directive

+ + + + + + + +
Description:Location where the server will log errors
Syntax: ErrorLog file-path|syslog[:facility]
Default:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)
Context:server config, virtual host
Status:Core
Module:core
+

The ErrorLog directive sets the name of + the file to which the server will log any errors it encounters. If + the file-path is not absolute then it is assumed to be + relative to the ServerRoot.

+ +

Example

+ ErrorLog /var/log/httpd/error_log +

+ +

If the file-path + begins with a pipe (|) then it is assumed to be a command to spawn + to handle the error log.

+ +

Example

+ ErrorLog "|/usr/local/bin/httpd_errors" +

+ +

Using syslog instead of a filename enables logging + via syslogd(8) if the system supports it. The default is to use + syslog facility local7, but you can override this by + using the syslog:facility syntax where + facility can be one of the names usually documented in + syslog(1).

+ +

Example

+ ErrorLog syslog:user +

+ +

SECURITY: See the security tips + document for details on why your security could be compromised + if the directory where log files are stored is writable by + anyone other than the user that starts the server.

+

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 + use forward slashes throughout the configuration files.

+
+ +

See also

+ +
+
top
+

FileETag Directive

+ + + + + + + + +
Description:File attributes used to create the ETag +HTTP response header
Syntax:FileETag component ...
Default:FileETag INode MTime Size
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

+ The FileETag directive configures the file + attributes that are used to create the ETag (entity + tag) response header field when the document is based on a file. + (The ETag value is used in cache management to save + network bandwidth.) In Apache 1.3.22 and earlier, the + ETag value was always formed + from the file's inode, size, and last-modified time (mtime). The + FileETag directive allows you to choose + which of these -- if any -- should be used. The recognized keywords are: +

+ +
+
INode
+
The file's i-node number will be included in the calculation
+
MTime
+
The date and time the file was last modified will be included
+
Size
+
The number of bytes in the file will be included
+
All
+
All available fields will be used. This is equivalent to: +

FileETag INode MTime Size

+
None
+
If a document is file-based, no ETag field will be + included in the response
+
+ +

The INode, MTime, and Size + keywords may be prefixed with either + or -, + which allow changes to be made to the default setting inherited + from a broader scope. Any keyword appearing without such a prefix + immediately and completely cancels the inherited setting.

+ +

If a directory's configuration includes + FileETag INode MTime Size, and a + subdirectory's includes FileETag -INode, + the setting for that subdirectory (which will be inherited by + any sub-subdirectories that don't override it) will be equivalent to + FileETag MTime Size.

+ +
+
top
+

<Files> Directive

+ + + + + + + +
Description:Contains directives that apply to matched +filenames
Syntax:<Files filename> ... </Files>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

The <Files> directive + limits the scope of the enclosed directives by filename. It is comparable + to the <Directory> + and <Location> + directives. It should be matched with a </Files> + directive. The directives given within this section will be applied to + any object with a basename (last component of filename) matching the + specified filename. <Files> + sections are processed in the order they appear in the + configuration file, after the <Directory> sections and + .htaccess files are read, but before <Location> sections. Note + that <Files> can be nested + inside <Directory> sections to restrict the + portion of the filesystem they apply to.

+ +

The filename argument should include a filename, or + a wild-card string, where ? matches any single character, + and * matches any sequences of characters. Extended regular + expressions can also be used, with the addition of the + ~ character. For example:

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

would match most common Internet graphics formats. <FilesMatch> is preferred, + however.

+ +

Note that unlike <Directory> and <Location> sections, <Files> sections can be used inside + .htaccess files. This allows users to control access to + their own files, at a file-by-file level.

+ + +

See also

+ +
+
top
+

<FilesMatch> Directive

+ + + + + + + +
Description:Contains directives that apply to regular-expression matched +filenames
Syntax:<FilesMatch regex> ... </FilesMatch>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

The <FilesMatch> directive + limits the scope of the enclosed directives by filename, just as the + <Files> directive + does. However, it accepts a regular expression. For example:

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

would match most common Internet graphics formats.

+ +

See also

+ +
+
top
+

ForceType Directive

+ + + + + + + + +
Description:Forces all matching files to be served with the specified +MIME content-type
Syntax:ForceType MIME-type|None
Context:directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Moved to the core in Apache 2.0
+

When placed into an .htaccess file or a + <Directory>, or + <Location> or + <Files> + section, this directive forces all matching files to be served + with the content type identification given by + MIME-type. For example, if you had a directory full of + GIF files, but did not want to label them all with .gif, + you might want to use:

+ +

+ ForceType image/gif +

+ +

Note that unlike DefaultType, + this directive overrides all mime-type associations, including + filename extensions, that might identify the media type.

+ +

You can override any ForceType setting + by using the value of None:

+ +

+ # force all files to be image/gif:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # but normal mime-type associations here:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups Directive

+ + + + + + + +
Description:Enables DNS lookups on client IP addresses
Syntax:HostnameLookups On|Off|Double
Default:HostnameLookups Off
Context:server config, virtual host, directory
Status:Core
Module:core
+

This directive enables DNS lookups so that host names can be + logged (and passed to CGIs/SSIs in REMOTE_HOST). + The value Double refers to doing double-reverse + DNS lookup. That is, after a reverse lookup is performed, a forward + lookup is then performed on that result. At least one of the IP + addresses in the forward lookup must match the original + address. (In "tcpwrappers" terminology this is called + PARANOID.)

+ +

Regardless of the setting, when mod_access is + used for controlling access by hostname, a double reverse lookup + will be performed. This is necessary for security. Note that the + result of this double-reverse isn't generally available unless you + set HostnameLookups Double. For example, if only + HostnameLookups On and a request is made to an object + that is protected by hostname restrictions, regardless of whether + the double-reverse fails or not, CGIs will still be passed the + single-reverse result in REMOTE_HOST.

+ +

The default is Off in order to save the network + traffic for those sites that don't truly need the reverse + lookups done. It is also better for the end users because they + don't have to suffer the extra latency that a lookup entails. + Heavily loaded sites should leave this directive + Off, since DNS lookups can take considerable + amounts of time. The utility logresolve, compiled by + default to the bin subdirectory of your installation + directory, can be used to look up host names from logged IP addresses + offline.

+ +
+
top
+

IdentityCheck Directive

+ + + + + + + +
Description:Enables logging of the RFC1413 identity of the remote +user
Syntax:IdentityCheck On|Off
Default:IdentityCheck Off
Context:server config, virtual host, directory
Status:Core
Module:core
+

This directive enables RFC1413-compliant logging of the + remote user name for each connection, where the client machine + runs identd or something similar. This information is logged in + the access log.

+ +

The information should not be trusted in any way except for + rudimentary usage tracking.

+ +

Note that this can cause serious latency problems accessing + your server since every request requires one of these lookups + to be performed. When firewalls are involved each lookup might + possibly fail and add 30 seconds of latency to each hit. So in + general this is not very useful on public servers accessible + from the Internet.

+ +
+
top
+

<IfDefine> Directive

+ + + + + + + +
Description:Encloses directives that will be processed only +if a test is true at startup
Syntax:<IfDefine [!]parameter-name> ... + </IfDefine>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

The <IfDefine test>...</IfDefine> + section is used to mark directives that are conditional. The + directives within an <IfDefine> + section are only processed if the test is true. If + test is false, everything between the start and end markers is + ignored.

+ +

The test in the <IfDefine> section directive can be one of two forms:

+ +
    +
  • parameter-name
  • + +
  • !parameter-name
  • +
+ +

In the former case, the directives between the start and end + markers are only processed if the parameter named + parameter-name is defined. The second format reverses + the test, and only processes the directives if + parameter-name is not defined.

+ +

The parameter-name argument is a define as given on + the httpd command line via -Dparameter- + , at the time the server was started.

+ +

<IfDefine> sections are + nest-able, which can be used to implement simple + multiple-parameter tests. Example:

+ +

+ httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +

+ +
+
top
+

<IfModule> Directive

+ + + + + + + +
Description:Encloses directives that are processed conditional on the +presence or absence of a specific module
Syntax:<IfModule [!]module-name> ... + </IfModule>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

The <IfModule test>...</IfModule> + section is used to mark directives that are conditional on the presence of + a specific module. The directives within an <IfModule> section are only processed if the test + is true. If test is false, everything between the start and + end markers is ignored.

+ +

The test in the <IfModule> section directive can be one of two forms:

+ +
    +
  • module name
  • + +
  • !module name
  • +
+ +

In the former case, the directives between the start and end + markers are only processed if the module named module + name is included in Apache -- either compiled in or + dynamically loaded using LoadModule. The second format reverses the test, + and only processes the directives if module name is + not included.

+ +

The module name argument is the file name of the + module, at the time it was compiled. For example, + mod_rewrite.c. If a module consists of several + source files, use the name of the file containing the string + STANDARD20_MODULE_STUFF.

+ +

<IfModule> sections are + nest-able, which can be used to implement simple multiple-module + tests.

+ +
This section should only be used if you need to have one + configuration file that works whether or not a specific module + is available. In normal operation, directives need not be + placed in <IfModule> + sections.
+ +
+
top
+

Include Directive

+ + + + + + + +
Description:Includes other configuration files from within +the server configuration files
Syntax:Include file-path|directory-path
Context:server config, virtual host, directory
Status:Core
Module:core
Compatibility:Wildcard matching available in 2.0.41 and later
+

This directive allows inclusion of other configuration files + from within the server configuration files.

+ +

Shell-style (fnmatch()) wildcard characters can be used to + include several files at once, in alphabetical order. In + addition, if Include points to a directory, + rather than a file, Apache will read all files in that directory + and any subdirectory. But including entire directories is not + recommended, because it is easy to accidentally leave temporary + files in a directory that can cause httpd to + fail.

+ +

The file path specified may be an absolute path, or may be relative + to the ServerRoot directory.

+ +

Examples:

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

Or, providing paths relative to your ServerRoot directory:

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ +

See also

+ +
+
top
+

KeepAlive Directive

+ + + + + + + +
Description:Enables HTTP persistent connections
Syntax:KeepAlive On|Off
Default:KeepAlive On
Context:server config, virtual host
Status:Core
Module:core
+

The Keep-Alive extension to HTTP/1.0 and the persistent + connection feature of HTTP/1.1 provide long-lived HTTP sessions + which allow multiple requests to be sent over the same TCP + connection. In some cases this has been shown to result in an + almost 50% speedup in latency times for HTML documents with + many images. To enable Keep-Alive connections, set + KeepAlive On.

+ +

For HTTP/1.0 clients, Keep-Alive connections will only be + used if they are specifically requested by a client. In + addition, a Keep-Alive connection with an HTTP/1.0 client can + only be used when the length of the content is known in + advance. This implies that dynamic content such as CGI output, + SSI pages, and server-generated directory listings will + generally not use Keep-Alive connections to HTTP/1.0 clients. + For HTTP/1.1 clients, persistent connections are the default + unless otherwise specified. If the client requests it, chunked + encoding will be used in order to send content of unknown + length over persistent connections.

+ +

See also

+ +
+
top
+

KeepAliveTimeout Directive

+ + + + + + + +
Description:Amount of time the server will wait for subsequent +requests on a persistent connection
Syntax:KeepAliveTimeout seconds
Default:KeepAliveTimeout 15
Context:server config, virtual host
Status:Core
Module:core
+

The number of seconds Apache will wait for a subsequent + request before closing the connection. Once a request has been + received, the timeout value specified by the + Timeout directive applies.

+ +

Setting KeepAliveTimeout to a high value + may cause performance problems in heavily loaded servers. The + higher the timeout, the more server processes will be kept + occupied waiting on connections with idle clients.

+ +

In a name-based virtual host context, the value of the first + defined virtual host (the default host) in a set of NameVirtualHost will be used. + The other values will be ignored.

+ +
+
top
+

<Limit> Directive

+ + + + + + + +
Description:Restrict enclosed access controls to only certain HTTP +methods
Syntax:<Limit method [method] ... > ... + </Limit>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

Access controls are normally effective for + all access methods, and this is the usual + desired behavior. In the general case, access control + directives should not be placed within a + <Limit> section.

+ +

The purpose of the <Limit> + directive is to restrict the effect of the access controls to the + nominated HTTP methods. For all other methods, the access + restrictions that are enclosed in the <Limit> bracket will have no + effect. The following example applies the access control + only to the methods POST, PUT, and + DELETE, leaving all other methods unprotected:

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

The method names listed can be one or more of: GET, + POST, PUT, DELETE, + CONNECT, OPTIONS, + PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, + LOCK, and UNLOCK. The method name is + case-sensitive. If GET is used it will also + restrict HEAD requests. The TRACE method + cannot be limited.

+ +
A <LimitExcept> section should always be + used in preference to a <Limit> section when restricting access, + since a <LimitExcept> section provides protection + against arbitrary methods.
+ + +
+
top
+

<LimitExcept> Directive

+ + + + + + + +
Description:Restrict access controls to all HTTP methods +except the named ones
Syntax:<LimitExcept method [method] ... > ... + </LimitExcept>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

<LimitExcept> and + </LimitExcept> are used to enclose + a group of access control directives which will then apply to any + HTTP access method not listed in the arguments; + i.e., it is the opposite of a <Limit> section and can be used to control + both standard and nonstandard/unrecognized methods. See the + documentation for <Limit> for more details.

+ +

For example:

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion Directive

+ + + + + + + + +
Description:Determine maximum number of internal redirects and nested +subrequests
Syntax:LimitInternalRecursion number [number]
Default:LimitInternalRecursion 10
Context:server config, virtual host
Status:Core
Module:core
Compatibility:Available in Apache 2.0.47 and later
+

An internal redirect happens, for example, when using the Action directive, which internally + redirects the original request to a CGI script. A subrequest is Apache's + mechanism to find out what would happen for some URI if it were requested. + For example, mod_dir uses subrequests to look for the + files listed in the DirectoryIndex + directive.

+ +

LimitInternalRecursion prevents the server + from crashing when entering an infinite loop of internal redirects or + subrequests. Such loops are usually caused by misconfigurations.

+ +

The directive stores two different limits, which are evaluated on + per-request basis. The first number is the maximum number of + internal redirects, that may follow each other. The second number + determines, how deep subrequests may be nested. If you specify only one + number, it will be assigned to both limits.

+ +

Example

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody Directive

+ + + + + + + + +
Description:Restricts the total size of the HTTP request body sent +from the client
Syntax:LimitRequestBody bytes
Default:LimitRequestBody 0
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

This directive specifies the number of bytes from 0 + (meaning unlimited) to 2147483647 (2GB) that are allowed in a + request body.

+ +

The LimitRequestBody directive allows + the user to set a limit on the allowed size of an HTTP request + message body within the context in which the directive is given + (server, per-directory, per-file or per-location). If the client + request exceeds that limit, the server will return an error + response instead of servicing the request. The size of a normal + request message body will vary greatly depending on the nature of + the resource and the methods allowed on that resource. CGI scripts + typically use the message body for retrieving form information. + Implementations of the PUT method will require + a value at least as large as any representation that the server + wishes to accept for that resource.

+ +

This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service + attacks.

+ +

If, for example, you are permitting file upload to a particular + location, and wish to limit the size of the uploaded file to 100K, + you might use the following directive:

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields Directive

+ + + + + + + +
Description:Limits the number of HTTP request header fields that +will be accepted from the client
Syntax:LimitRequestFields number
Default:LimitRequestFields 100
Context:server config
Status:Core
Module:core
+

Number is an integer from 0 (meaning unlimited) to + 32767. The default value is defined by the compile-time + constant DEFAULT_LIMIT_REQUEST_FIELDS (100 as + distributed).

+ +

The LimitRequestFields directive allows + the server administrator to modify the limit on the number of + request header fields allowed in an HTTP request. A server needs + this value to be larger than the number of fields that a normal + client request might include. The number of request header fields + used by a client rarely exceeds 20, but this may vary among + different client implementations, often depending upon the extent + to which a user has configured their browser to support detailed + content negotiation. Optional HTTP extensions are often expressed + using request header fields.

+ +

This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks. + The value should be increased if normal clients see an error + response from the server that indicates too many fields were + sent in the request.

+ +

For example:

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize Directive

+ + + + + + + +
Description:Limits the size of the HTTP request header allowed from the +client
Syntax:LimitRequestFieldsize bytes
Default:LimitRequestFieldsize 8190
Context:server config
Status:Core
Module:core
+

This directive specifies the number of bytes + that will be allowed in an HTTP request header.

+ +

The LimitRequestFieldSize directive + allows the server administrator to reduce or increase the limit + on the allowed size of an HTTP request header field. A server + needs this value to be large enough to hold any one header field + from a normal client request. The size of a normal request header + field will vary greatly among different client implementations, + often depending upon the extent to which a user has configured + their browser to support detailed content negotiation. SPNEGO + authentication headers can be up to 12392 bytes.

+ +

This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks.

+ +

For example:

+ +

+ LimitRequestFieldSize 4094 +

+ +
Under normal conditions, the value should not be changed from + the default.
+ +
Apache 2.0.53 or higher is required for increasing the + limit above the compiled-in value of DEFAULT_LIMIT_REQUEST_FIELDSIZE + (8190 as distributed). +
+ + +
+
top
+

LimitRequestLine Directive

+ + + + + + + +
Description:Limit the size of the HTTP request line that will be accepted +from the client
Syntax:LimitRequestLine bytes
Default:LimitRequestLine 8190
Context:server config
Status:Core
Module:core
+

This directive sets the number of bytes from 0 to + the value of the compile-time constant + DEFAULT_LIMIT_REQUEST_LINE (8190 as distributed) + that will be allowed on the HTTP request-line.

+ +

The LimitRequestLine directive allows + the server administrator to reduce the limit on the allowed size + of a client's HTTP request-line below the normal input buffer size + compiled with the server. Since the request-line consists of the + HTTP method, URI, and protocol version, the + LimitRequestLine directive places a + restriction on the length of a request-URI allowed for a request + on the server. A server needs this value to be large enough to + hold any of its resource names, including any information that + might be passed in the query part of a GET request.

+ +

This directive gives the server administrator greater + control over abnormal client request behavior, which may be + useful for avoiding some forms of denial-of-service attacks.

+ +

For example:

+ +

+ LimitRequestLine 4094 +

+ +
Under normal conditions, the value should not be changed from + the default.
+ +
+
top
+

LimitXMLRequestBody Directive

+ + + + + + + + +
Description:Limits the size of an XML-based request body
Syntax:LimitXMLRequestBody bytes
Default:LimitXMLRequestBody 1000000
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

Limit (in bytes) on maximum size of an XML-based request + body. A value of 0 will disable any checking.

+ +

Example:

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location> Directive

+ + + + + + +
Description:Applies the enclosed directives only to matching +URLs
Syntax:<Location + URL-path|URL> ... </Location>
Context:server config, virtual host
Status:Core
Module:core
+

The <Location> directive + limits the scope of the enclosed directives by URL. It is similar to the + <Directory> + directive, and starts a subsection which is terminated with a + </Location> directive. <Location> sections are processed in the + order they appear in the configuration file, after the <Directory> sections and + .htaccess files are read, and after the <Files> sections.

+ +

<Location> sections operate + completely outside the filesystem. This has several consequences. + Most importantly, <Location> + directives should not be used to control access to filesystem + locations. Since several different URLs may map to the same + filesystem location, such access controls may by circumvented.

+ +

When to use <Location>

+ +

Use <Location> to apply + directives to content that lives outside the filesystem. For + content that lives in the filesystem, use <Directory> and <Files>. An exception is + <Location />, which is an easy way to + apply a configuration to the entire server.

+
+ +

For all origin (non-proxy) requests, the URL to be matched is a + URL-path of the form /path/. No scheme, hostname, + port, or query string may be included. For proxy requests, the + URL to be matched is of the form + scheme://servername/path, and you must include the + prefix.

+ +

The URL may use wildcards. In a wild-card string, ? matches + any single character, and * matches any sequences of + characters.

+ +

Extended regular + expressions can also be used, with the addition of the + ~ character. For example:

+ +

+ <Location ~ "/(extra|special)/data"> +

+ +

would match URLs that contained the substring /extra/data + or /special/data. The directive <LocationMatch> behaves + identical to the regex version of <Location>.

+ +

The <Location> + functionality is especially useful when combined with the + SetHandler + directive. For example, to enable status requests, but allow them + only from browsers at foo.com, you might use:

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .foo.com
+
+ </Location> +

+ +

Note about / (slash)

+

The slash character has special meaning depending on where in a + URL it appears. People may be used to its behavior in the filesystem + where multiple adjacent slashes are frequently collapsed to a single + slash (i.e., /home///foo is the same as + /home/foo). In URL-space this is not necessarily true. + The <LocationMatch> + directive and the regex version of <Location> require you to explicitly specify multiple + slashes if that is your intention.

+ +

For example, <LocationMatch ^/abc> would match + the request URL /abc but not the request URL + //abc. The (non-regex) <Location> directive behaves similarly when used for + proxy requests. But when (non-regex) <Location> is used for non-proxy requests it will + implicitly match multiple slashes with a single slash. For example, + if you specify <Location /abc/def> and the + request is to /abc//def then it will match.

+
+ +

See also

+ +
+
top
+

<LocationMatch> Directive

+ + + + + + +
Description:Applies the enclosed directives only to regular-expression +matching URLs
Syntax:<LocationMatch + regex> ... </LocationMatch>
Context:server config, virtual host
Status:Core
Module:core
+

The <LocationMatch> directive + limits the scope of the enclosed directives by URL, in an identical manner + to <Location>. However, + it takes a regular expression as an argument instead of a simple + string. For example:

+ +

+ <LocationMatch "/(extra|special)/data"> +

+ +

would match URLs that contained the substring /extra/data + or /special/data.

+ +

See also

+ +
+
top
+

LogLevel Directive

+ + + + + + + +
Description:Controls the verbosity of the ErrorLog
Syntax:LogLevel level
Default:LogLevel warn
Context:server config, virtual host
Status:Core
Module:core
+

LogLevel adjusts the verbosity of the + messages recorded in the error logs (see ErrorLog directive). The following + levels are available, in order of decreasing + significance:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Level Description Example
emerg Emergencies - system is unusable."Child cannot open lock file. Exiting"
alert Action must be taken immediately."getpwuid: couldn't determine user name from uid"
crit Critical Conditions."socket: Failed to get a socket, exiting child"
error Error conditions."Premature end of script headers"
warn Warning conditions."child process 1234 did not exit, sending another + SIGHUP"
notice Normal but significant condition."httpd: caught SIGBUS, attempting to dump core in + ..."
info Informational."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."
debug Debug-level messages"Opening config file ..."
+ +

When a particular level is specified, messages from all + other levels of higher significance will be reported as well. + E.g., when LogLevel info is specified, + then messages with log levels of notice and + warn will also be posted.

+ +

Using a level of at least crit is + recommended.

+ +

For example:

+ +

+ LogLevel notice +

+ +

Note

+

When logging to a regular file messages of the level + notice cannot be suppressed and thus are always + logged. However, this doesn't apply when logging is done + using syslog.

+
+ +
+
top
+

MaxKeepAliveRequests Directive

+ + + + + + + +
Description:Number of requests allowed on a persistent +connection
Syntax:MaxKeepAliveRequests number
Default:MaxKeepAliveRequests 100
Context:server config, virtual host
Status:Core
Module:core
+

The MaxKeepAliveRequests directive + limits the number of requests allowed per connection when + KeepAlive is on. If it is + set to 0, unlimited requests will be allowed. We + recommend that this setting be kept to a high value for maximum + server performance.

+ +

For example:

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost Directive

+ + + + + + +
Description:Designates an IP address for name-virtual +hosting
Syntax:NameVirtualHost addr[:port]
Context:server config
Status:Core
Module:core
+

The NameVirtualHost directive is a + required directive if you want to configure name-based virtual hosts.

+ +

Although addr can be hostname it is recommended + that you always use an IP address, e.g.

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

With the NameVirtualHost directive you + specify the IP address on which the server will receive requests + for the name-based virtual hosts. This will usually be the address + to which your name-based virtual host names resolve. In cases + where a firewall or other proxy receives the requests and forwards + them on a different IP address to the server, you must specify the + IP address of the physical interface on the machine which will be + servicing the requests. If you have multiple name-based hosts on + multiple addresses, repeat the directive for each address.

+ +

Note

+

Note, that the "main server" and any _default_ servers + will never be served for a request to a + NameVirtualHost IP address (unless for some + reason you specify NameVirtualHost but then + don't define any VirtualHosts for that + address).

+
+ +

Optionally you can specify a port number on which the + name-based virtual hosts should be used, e.g.

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

IPv6 addresses must be enclosed in square brackets, as shown + in the following example:

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ +

To receive requests on all interfaces, you can use an argument of + *

+ +

+ NameVirtualHost * +

+ +

Argument to <VirtualHost> + directive

+

Note that the argument to the <VirtualHost> directive must + exactly match the argument to the NameVirtualHost directive.

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+

+
+ +

See also

+ +
+
top
+

Options Directive

+ + + + + + + + +
Description:Configures what features are available in a particular +directory
Syntax:Options + [+|-]option [[+|-]option] ...
Default:Options All
Context:server config, virtual host, directory, .htaccess
Override:Options
Status:Core
Module:core
+

The Options directive controls which + server features are available in a particular directory.

+ +

option can be set to None, in which + case none of the extra features are enabled, or one or more of + the following:

+ +
+
All
+ +
All options except for MultiViews. This is the default + setting.
+ +
ExecCGI
+ +
+ Execution of CGI scripts using mod_cgi + is permitted.
+ +
FollowSymLinks
+ +
+ + The server will follow symbolic links in this directory. +
+

Even though the server follows the symlink it does not + change the pathname used to match against <Directory> sections.

+

Note also, that this option gets ignored if set + inside a <Location> + section.

+
+ +
Includes
+ +
+ Server-side includes provided by mod_include + are permitted.
+ +
IncludesNOEXEC
+ +
+ + Server-side includes are permitted, but the #exec + cmd and #exec cgi are disabled. It is still + possible to #include virtual CGI scripts from + ScriptAliased + directories.
+ +
Indexes
+ +
+ If a URL which maps to a directory is requested, and there + is no DirectoryIndex + (e.g., index.html) in that directory, then + mod_autoindex will return a formatted listing + of the directory.
+ +
MultiViews
+ +
+ Content negotiated + "MultiViews" are allowed using + mod_negotiation.
+ +
SymLinksIfOwnerMatch
+ +
The server will only follow symbolic links for which the + target file or directory is owned by the same user id as the + link. + +

Note

This option gets ignored if + set inside a <Location> section.
+
+
+ +

Normally, if multiple Options could + apply to a directory, then the most specific one is used and + others are ignored; the options are not merged. (See how sections are merged.) + However if all the options on the + Options directive are preceded by a + + or - symbol, the options are + merged. Any options preceded by a + are added to the + options currently in force, and any options preceded by a + - are removed from the options currently in + force.

+ +

Warning

+

Mixing Options with a + or + - with those without is not valid syntax, and is likely + to cause unexpected results.

+
+ +

For example, without any + and - symbols:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

then only Includes will be set for the + /web/docs/spec directory. However if the second + Options directive uses the + and + - symbols:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

then the options FollowSymLinks and + Includes are set for the /web/docs/spec + directory.

+ +

Note

+

Using -IncludesNOEXEC or + -Includes disables server-side includes completely + regardless of the previous setting.

+
+ +

The default in the absence of any other settings is + All.

+ +
+
top
+

Require Directive

+ + + + + + + +
Description:Selects which authenticated users can access +a resource
Syntax:Require entity-name [entity-name] ...
Context:directory, .htaccess
Override:AuthConfig
Status:Core
Module:core
+

This directive selects which authenticated users can access + a resource. The allowed syntaxes are:

+ +
+
Require user userid [userid] + ...
+
Only the named users can access the resource.
+ +
Require group group-name [group-name] + ...
+
Only users in the named groups can access the resource.
+ +
Require valid-user
+
All valid users can access the resource.
+
+ +

Require must be accompanied by + AuthName and AuthType directives, and directives such + as AuthUserFile + and AuthGroupFile (to + define users and groups) in order to work correctly. Example:

+ +

+ AuthType Basic
+ AuthName "Restricted Resource"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

Access controls which are applied in this way are effective for + all methods. This is what is normally + desired. If you wish to apply access controls only to + specific methods, while leaving other methods unprotected, then + place the Require statement into a + <Limit> + section.

+ +

See also

+ +
+
top
+

RLimitCPU Directive

+ + + + + + + + +
Description:Limits the CPU consumption of processes launched +by Apache children
Syntax:RLimitCPU seconds|max [seconds|max]
Default:Unset; uses operating system defaults
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or max to indicate to the server that the limit should + be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.

+ +

This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.

+ +

CPU resource limits are expressed in seconds per + process.

+ +

See also

+ +
+
top
+

RLimitMEM Directive

+ + + + + + + + +
Description:Limits the memory consumption of processes launched +by Apache children
Syntax:RLimitMEM bytes|max [bytes|max]
Default:Unset; uses operating system defaults
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or max to indicate to the server that the limit should + be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.

+ +

This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.

+ +

Memory resource limits are expressed in bytes per + process.

+ +

See also

+ +
+
top
+

RLimitNPROC Directive

+ + + + + + + + +
Description:Limits the number of processes that can be launched by +processes launched by Apache children
Syntax:RLimitNPROC number|max [number|max]
Default:Unset; uses operating system defaults
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

Takes 1 or 2 parameters. The first parameter sets the soft + resource limit for all processes and the second parameter sets + the maximum resource limit. Either parameter can be a number, + or max to indicate to the server that the limit + should be set to the maximum allowed by the operating system + configuration. Raising the maximum resource limit requires that + the server is running as root, or in the initial startup + phase.

+ +

This applies to processes forked off from Apache children + servicing requests, not the Apache children themselves. This + includes CGI scripts and SSI exec commands, but not any + processes forked off from the Apache parent such as piped + logs.

+ +

Process limits control the number of processes per user.

+ +

Note

+

If CGI processes are not running + under user ids other than the web server user id, this directive + will limit the number of processes that the server itself can + create. Evidence of this situation will be indicated by + cannot fork messages in the + error_log.

+
+ +

See also

+ +
+
top
+

Satisfy Directive

+ + + + + + + + + +
Description:Interaction between host-level access control and +user authentication
Syntax:Satisfy Any|All
Default:Satisfy All
Context:directory, .htaccess
Override:AuthConfig
Status:Core
Module:core
Compatibility:Influenced by <Limit> and <LimitExcept> in version 2.0.51 and +later
+

Access policy if both Allow and Require used. The parameter can be + either All or Any. This directive is only + useful if access to a particular area is being restricted by both + username/password and client host address. In this case + the default behavior (All) is to require that the client + passes the address access restriction and enters a valid + username and password. With the Any option the client will be + granted access if they either pass the host restriction or enter a + valid username and password. This can be used to password restrict + an area, but to let clients from particular addresses in without + prompting for a password.

+ +

For example, if you wanted to let people on your network have + unrestricted access to a portion of your website, but require that + people outside of your network provide a password, you could use a + configuration similar to the following:

+ +

+ Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +

+ +

Since version 2.0.51 Satisfy directives can + be restricted to particular methods by <Limit> and <LimitExcept> sections.

+ +

See also

+ +
+
top
+

ScriptInterpreterSource Directive

+ + + + + + + + + +
Description:Technique for locating the interpreter for CGI +scripts
Syntax:ScriptInterpreterSource Registry|Registry-Strict|Script
Default:ScriptInterpreterSource Script
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Win32 only; +option Registry-Strict is available in Apache 2.0 and +later
+

This directive is used to control how Apache finds the + interpreter used to run CGI scripts. The default setting is + Script. This causes Apache to use the interpreter pointed to + by the shebang line (first line, starting with #!) in the + script. On Win32 systems this line usually looks like:

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

or, if perl is in the PATH, simply:

+ +

+ #!perl +

+ +

Setting ScriptInterpreterSource Registry will + cause the Windows Registry tree HKEY_CLASSES_ROOT to be + searched using the script file extension (e.g., .pl) as a + search key. The command defined by the registry subkey + Shell\ExecCGI\Command or, if it does not exist, by the subkey + Shell\Open\Command is used to open the script file. If the + registry keys cannot be found, Apache falls back to the behavior of the + Script option.

+ +

Security

+

Be careful when using ScriptInterpreterSource + Registry with ScriptAlias'ed directories, because + Apache will try to execute every file within this + directory. The Registry setting may cause undesired + program calls on files which are typically not executed. For + example, the default open command on .htm files on + most Windows systems will execute Microsoft Internet Explorer, so + any HTTP request for an .htm file existing within the + script directory would start the browser in the background on the + server. This is a good way to crash your system within a minute or + so.

+
+ +

The option Registry-Strict which is new in Apache + 2.0 does the same thing as Registry but uses only the + subkey Shell\ExecCGI\Command. The + ExecCGI key is not a common one. It must be + configured manually in the windows registry and hence prevents + accidental program calls on your system.

+ +
+
top
+

ServerAdmin Directive

+ + + + + + +
Description:Email address that the server includes in error +messages sent to the client
Syntax:ServerAdmin email-address
Context:server config, virtual host
Status:Core
Module:core
+

The ServerAdmin sets the e-mail address + that the server includes in any error messages it returns to the + client.

+ +

It may be worth setting up a dedicated address for this, e.g.

+ +

+ ServerAdmin www-admin@foo.example.com +

+

as users do not always mention that they are talking about the + server!

+ +
+
top
+

ServerAlias Directive

+ + + + + + +
Description:Alternate names for a host used when matching requests +to name-virtual hosts
Syntax:ServerAlias hostname [hostname] ...
Context:virtual host
Status:Core
Module:core
+

The ServerAlias directive sets the + alternate names for a host, for use with name-based virtual hosts.

+ +

+ <VirtualHost *>
+ ServerName server.domain.com
+ ServerAlias server server2.domain.com server2
+ # ...
+ </VirtualHost> +

+ +

See also

+ +
+
top
+

ServerName Directive

+ + + + + + + +
Description:Hostname and port that the server uses to identify +itself
Syntax:ServerName fully-qualified-domain-name[:port]
Context:server config, virtual host
Status:Core
Module:core
Compatibility:In version 2.0, this + directive supersedes the functionality of the Port + directive from version 1.3.
+

The ServerName directive sets the hostname and + port that the server uses to identify itself. This is used when + creating redirection URLs. For example, if the name of the + machine hosting the web server is simple.example.com, + but the machine also has the DNS alias www.example.com + and you wish the web server to be so identified, the following + directive should be used:

+ +

+ ServerName www.example.com:80 +

+ +

If no ServerName is specified, then the + server attempts to deduce the hostname by performing a reverse + lookup on the IP address. If no port is specified in the + ServerName, then the server will use the port + from the incoming + request. For optimal reliability and predictability, you should + specify an explicit hostname and port using the + ServerName directive.

+ +

If you are using name-based virtual hosts, + the ServerName inside a + <VirtualHost> + section specifies what hostname must appear in the request's + Host: header to match this virtual host.

+ +

See the description of the + UseCanonicalName directive for + settings which determine whether self-referential URL's (e.g., by the + mod_dir module) will refer to the + specified port, or to the port number given in the client's request. +

+ +

See also

+ +
+
top
+

ServerPath Directive

+ + + + + + +
Description:Legacy URL pathname for a name-based virtual host that +is accessed by an incompatible browser
Syntax:ServerPath URL-path
Context:virtual host
Status:Core
Module:core
+

The ServerPath directive sets the legacy + URL pathname for a host, for use with name-based virtual hosts.

+ +

See also

+ +
+
top
+

ServerRoot Directive

+ + + + + + + +
Description:Base directory for the server installation
Syntax:ServerRoot directory-path
Default:ServerRoot /usr/local/apache
Context:server config
Status:Core
Module:core
+

The ServerRoot directive sets the + directory in which the server lives. Typically it will contain the + subdirectories conf/ and logs/. Relative + paths in other configuration directives (such as Include or LoadModule, for example) are taken as + relative to this directory.

+ +

Example

+ ServerRoot /home/httpd +

+ + +

See also

+ +
+
top
+

ServerSignature Directive

+ + + + + + + + +
Description:Configures the footer on server-generated documents
Syntax:ServerSignature On|Off|EMail
Default:ServerSignature Off
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Core
Module:core
+

The ServerSignature directive allows the + configuration of a trailing footer line under server-generated + documents (error messages, mod_proxy ftp directory + listings, mod_info output, ...). The reason why you + would want to enable such a footer line is that in a chain of proxies, + the user often has no possibility to tell which of the chained servers + actually produced a returned error message.

+ +

The Off + setting, which is the default, suppresses the footer line (and is + therefore compatible with the behavior of Apache-1.2 and + below). The On setting simply adds a line with the + server version number and ServerName of the serving virtual host, + and the EMail setting additionally creates a + "mailto:" reference to the ServerAdmin of the referenced + document.

+ +

After version 2.0.44, the details of the server version number + presented are controlled by the ServerTokens directive.

+ +

See also

+ +
+
top
+

ServerTokens Directive

+ + + + + + + +
Description:Configures the Server HTTP response +header
Syntax:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Default:ServerTokens Full
Context:server config
Status:Core
Module:core
+

This directive controls whether Server response + header field which is sent back to clients includes a + description of the generic OS-type of the server as well as + information about compiled-in modules.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Server sends (e.g.): Server: + Apache
+ +
ServerTokens Major
+ +
Server sends (e.g.): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Server sends (e.g.): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Server sends (e.g.): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Server sends (e.g.): Server: Apache/2.0.41 + (Unix)
+ +
ServerTokens Full (or not specified)
+ +
Server sends (e.g.): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis.

+ +

After version 2.0.44, this directive also controls the + information presented by the ServerSignature directive.

+ +

See also

+ +
+
top
+

SetHandler Directive

+ + + + + + + + +
Description:Forces all matching files to be processed by a +handler
Syntax:SetHandler handler-name|None
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
Compatibility:Moved into the core in Apache 2.0
+

When placed into an .htaccess file or a + <Directory> or + <Location> + section, this directive forces all matching files to be parsed + through the handler given by + handler-name. For example, if you had a directory you + wanted to be parsed entirely as imagemap rule files, regardless + of extension, you might put the following into an + .htaccess file in that directory:

+ +

+ SetHandler imap-file +

+ +

Another example: if you wanted to have the server display a + status report whenever a URL of + http://servername/status was called, you might put + the following into httpd.conf:

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+ +

You can override an earlier defined SetHandler + directive by using the value None.

+ +

See also

+ +
+
top
+

SetInputFilter Directive

+ + + + + + + +
Description:Sets the filters that will process client requests and POST +input
Syntax:SetInputFilter filter[;filter...]
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

The SetInputFilter directive sets the + filter or filters which will process client requests and POST + input when they are received by the server. This is in addition to + any filters defined elsewhere, including the + AddInputFilter + directive.

+ +

If more than one filter is specified, they must be separated + by semicolons in the order in which they should process the + content.

+ +

See also

+ +
+
top
+

SetOutputFilter Directive

+ + + + + + + +
Description:Sets the filters that will process responses from the +server
Syntax:SetOutputFilter filter[;filter...]
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Core
Module:core
+

The SetOutputFilter directive sets the filters + which will process responses from the server before they are + sent to the client. This is in addition to any filters defined + elsewhere, including the + AddOutputFilter + directive.

+ +

For example, the following configuration will process all files + in the /www/data/ directory for server-side + includes.

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

If more than one filter is specified, they must be separated + by semicolons in the order in which they should process the + content.

+ +

See also

+ +
+
top
+

TimeOut Directive

+ + + + + + + +
Description:Amount of time the server will wait for +certain events before failing a request
Syntax:TimeOut seconds
Default:TimeOut 300
Context:server config, virtual host
Status:Core
Module:core
+

The TimeOut directive currently defines + the amount of time Apache will wait for three things:

+ +
    +
  1. The total amount of time it takes to receive a GET + request.
  2. + +
  3. The amount of time between receipt of TCP packets on a + POST or PUT request.
  4. + +
  5. The amount of time between ACKs on transmissions of TCP + packets in responses.
  6. +
+ +

We plan on making these separately configurable at some point + down the road. The timer used to default to 1200 before 1.2, + but has been lowered to 300 which is still far more than + necessary in most situations. It is not set any lower by + default because there may still be odd places in the code where + the timer is not reset when a packet is sent.

+ +
+
top
+

TraceEnable Directive

+ + + + + + + + +
Description:Determines the behaviour on TRACE +requests
Syntax:TraceEnable [on|off|extended]
Default:TraceEnable on
Context:server config
Status:Core
Module:core
Compatibility:Available in Apache 1.3.34, 2.0.55 and later
+

This directive overrides the behavior of TRACE for both + the core server and mod_proxy. The default + TraceEnable on permits TRACE requests per + RFC 2616, which disallows any request body to accompany the request. + TraceEnable off causes the core server and + mod_proxy to return a 405 (Method not + allowed) error to the client.

+ +

Finally, for testing and diagnostic purposes only, request + bodies may be allowed using the non-compliant TraceEnable + extended directive. The core (as an origin server) will + restrict the request body to 64k (plus 8k for chunk headers if + Transfer-Encoding: chunked is used). The core will + reflect the full headers and all chunk headers with the response + body. As a proxy server, the request body is not restricted to 64k.

+ +
+
top
+

UseCanonicalName Directive

+ + + + + + + +
Description:Configures how the server determines its own name and +port
Syntax:UseCanonicalName On|Off|DNS
Default:UseCanonicalName On
Context:server config, virtual host, directory
Status:Core
Module:core
+

In many situations Apache must construct a self-referential + URL -- that is, a URL that refers back to the same server. With + UseCanonicalName On Apache will use the hostname and port + specified in the ServerName + directive to construct the canonical name for the server. This name + is used in all self-referential URLs, and for the values of + SERVER_NAME and SERVER_PORT in CGIs.

+ +

With UseCanonicalName Off Apache will form + self-referential URLs using the hostname and port supplied by + the client if any are supplied (otherwise it will use the + canonical name, as defined above). These values are the same + that are used to implement name based virtual hosts, + and are available with the same clients. The CGI variables + SERVER_NAME and SERVER_PORT will be + constructed from the client supplied values as well.

+ +

An example where this may be useful is on an intranet server + where you have users connecting to the machine using short + names such as www. You'll notice that if the users + type a shortname, and a URL which is a directory, such as + http://www/splat, without the trailing + slash then Apache will redirect them to + http://www.domain.com/splat/. If you have + authentication enabled, this will cause the user to have to + authenticate twice (once for www and once again + for www.domain.com -- see the + FAQ on this subject for more information). But if + UseCanonicalName is set Off, then + Apache will redirect to http://www/splat/.

+ +

There is a third option, UseCanonicalName DNS, + which is intended for use with mass IP-based virtual hosting to + support ancient clients that do not provide a + Host: header. With this option Apache does a + reverse DNS lookup on the server IP address that the client + connected to in order to work out self-referential URLs.

+ +

Warning

+

If CGIs make assumptions about the values of SERVER_NAME + they may be broken by this option. The client is essentially free + to give whatever value they want as a hostname. But if the CGI is + only using SERVER_NAME to construct self-referential URLs + then it should be just fine.

+
+ +

See also

+ +
+
top
+

<VirtualHost> Directive

+ + + + + + +
Description:Contains directives that apply only to a specific +hostname or IP address
Syntax:<VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>
Context:server config
Status:Core
Module:core
+

<VirtualHost> and + </VirtualHost> are used to enclose a group of + directives that will apply only to a particular virtual host. Any + directive that is allowed in a virtual host context may be + used. When the server receives a request for a document on a + particular virtual host, it uses the configuration directives + enclosed in the <VirtualHost> + section. Addr can be:

+ +
    +
  • The IP address of the virtual host;
  • + +
  • A fully qualified domain name for the IP address of the + virtual host;
  • + +
  • The character *, which is used only in combination with + NameVirtualHost * to match all IP addresses; or
  • + +
  • The string _default_, which is used only + with IP virtual hosting to catch unmatched IP addresses.
  • +
+ +

Example

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.foo.com
+ DocumentRoot /www/docs/host.foo.com
+ ServerName host.foo.com
+ ErrorLog logs/host.foo.com-error_log
+ TransferLog logs/host.foo.com-access_log
+
+ </VirtualHost> +

+ + +

IPv6 addresses must be specified in square brackets because + the optional port number could not be determined otherwise. An + IPv6 example is shown below:

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+
+ </VirtualHost> +

+ +

Each Virtual Host must correspond to a different IP address, + different port number or a different host name for the server, + in the former case the server machine must be configured to + accept IP packets for multiple addresses. (If the machine does + not have multiple network interfaces, then this can be + accomplished with the ifconfig alias command -- if + your OS supports it).

+ +

Note

+

The use of <VirtualHost> does + not affect what addresses Apache listens on. You + may need to ensure that Apache is listening on the correct addresses + using Listen.

+
+ +

When using IP-based virtual hosting, the special name + _default_ can be specified in + which case this virtual host will match any IP address that is + not explicitly listed in another virtual host. In the absence + of any _default_ virtual host the "main" server config, + consisting of all those definitions outside any VirtualHost + section, is used when no IP-match occurs. (But note that any IP + address that matches a NameVirtualHost directive will use neither + the "main" server config nor the _default_ virtual host. + See the name-based virtual hosting + documentation for further details.)

+ +

You can specify a :port to change the port that is + matched. If unspecified then it defaults to the same port as the + most recent Listen + statement of the main server. You may also specify :* + to match all ports on that address. (This is recommended when used + with _default_.)

+ +

Security

+

See the security tips + document for details on why your security could be compromised if the + directory where log files are stored is writable by anyone other + than the user that starts the server.

+
+ +

See also

+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/core.html.es b/rubbos/app/apache2/manual/mod/core.html.es new file mode 100644 index 00000000..517aafac --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html.es @@ -0,0 +1,3421 @@ + + + +core - Servidor HTTP Apache + + + + + + +
<-
+ +
+

Funcionalidad Bsica de Apache

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +
Descripcin:Funcionalidades bsicas del servidor HTTP Apache que +estn siempre presentes
Estado:Core
+
+ + +
top
+

AcceptPathInfo Directiva

+ + + + + + + + + +
Descripcin:Especifica si los recursos aceptan informacin de +path aadida (trailing pathname information)
Sintaxis:AcceptPathInfo On|Off|Default
Valor por defecto:AcceptPathInfo Default
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Disponible en la versiones de Apache 2.0.30 y posteriores
+ +

Esta directiva controla si las peticiones que contienen + informacin de path aadida (trailing pathname + information) a continuacin de un nombre de fichero existente + (o no existente en un directorio que s existe) sern + aceptadas o rechazadas. La informacin de path aadida + (trailing pathname information) puede pasarse a los scripts en la + variable de entorno PATH_INFO.

+ +

Por ejemplo, suponga que la ubicacin /test/ + se refiere a un directorio que contiene un nico fichero: + here.html. Entonces, tanto las peticiones a + /test/here.html/more como las peticiones a + /test/nothere.html/more toman /more como + PATH_INFO.

+ +

Los tres argumentos que puede tomar la directiva + AcceptPathInfo son:

+
+
Off
Una peticin ser aceptada + solamente si se refiere literalmente a una ruta que existe. Por + tanto, una peticin con informacin de path aadida + (trailing pathname information) despus de un nombre de + fichero que existe, del tipo /test/here.html/more + como en el ejemplo de arriba, devolver el mensaje de error + 404 NOT FOUND.
+ +
On
Una peticin ser aceptada + si la componente anterior a la informacin de path + aadida (trailing pathname information) se refiere a un + fichero que existe. El ejemplo de arriba + /test/here.html/more ser aceptado si + /test/here.html se refiere a un fichero + vlido.
+ +
Default
El tratamiento de las peticiones + con informacin de path aadida (trailing pathname + information) est determinado por el handler responsable de la + peticin. El handler bsico para ficheros normales + rechaza por defecto las peticiones de PATH_INFO. Los + handlers que sirven scripts, como cgi-script e isapi-handler, generalmente aceptan + PATH_INFO por defecto.
+
+ +

El propsito principal de la directiva + AcceptPathInfo es permitirle hacer prevalecer su + propio criterio sobre el del handler acerca de si se debe aceptar + o rechazar PATH_INFO. Esto es necesario por ejemplo, + cuando use un filtro, como INCLUDES, para generar contenido + basado en PATH_INFO. El handler bsico + rechazara normalmente la peticin. Puede usar la + siguiente configuracin para activar dicho script:

+ +

+ <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ + +
+
top
+

AccessFileName Directiva

+ + + + + + + +
Descripcin:Nombre del fichero de configuracin distribuida
Sintaxis:AccessFileName filename [filename] ...
Valor por defecto:AccessFileName .htaccess
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

Durante el procesamiento de una peticin el servidor busca + el primer fichero de configuracin de esta lista de nombres + en cada directorio de la ruta del documento, siempre y cuando los + ficheros de configuracin distribuida estn activados para ese directorio. Por + ejemplo:

+ +

+ AccessFileName .acl +

+ +

Antes de devolver el documento + /usr/local/web/index.html, el servidor leer + /.acl, /usr/.acl, + /usr/local/.acl y /usr/local/web/.acl + buscando directivas, a menos que hayan sido desactivados con

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

Consulte tambin

+ +
+
top
+

AddDefaultCharset Directiva

+ + + + + + + + +
Descripcin:Parmetro del conjunto de caracteres que se +aade cuando el tipo de contenido de una respuesta es +text/plain o text/html
Sintaxis:AddDefaultCharset On|Off|charset
Valor por defecto:AddDefaultCharset Off
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

Esta directiva especifica un valor por defecto para el + parmetro del conjunto de caracteres que se aade + aade si solo si el tipo de contenido de una respuesta es + text/plain o text/html. EL valor + pecificado en esta directiva no prevalecer si cualquier otro + conjunto de caracteres es especificado en el cuerpo del documento + por medio de una etiqueta META, aunque a menudo, el + comportamiento exacto est determinado por la + configuracin del cliente. Si se especifica + AddDefaultCharset Off, se desactiva esta + funcionalidad. AddDefaultCharset On activa el uso del + conjunto de caracteres por defecto interno de Apache, + iso-8859-1. Cualquier otro valor se asume que es el + charset a usar, que ser uno los registrados + por la IANA como tipos MIME. Por ejemplo:

+ +

+ AddDefaultCharset utf-8 +

+ +

AddDefaultCharset debe ser usada solo + cuando todos los recursos de texto a los que se aplican se saben + que usan un determiando conjunto de caracteres (character + encoding) y no es conveniente etiquetar los documentos + individualmente. Un ejemplo es su uso en recursos que contienen + contenido generado, como CGIs antiguos, que puede ser vulnerables + a ataques debidos a que se incluye en el resultado datos + suministrados por el usuario. Tenga en cuenta, sin embargo, que + una mejor solucin es simplemente modificar (o borrar) esos + scripts, porque especificar un conjunto de caracteres por defecto + no protege a los usuarios que tengan activada en su navegador la + opcin "auto-detect character encoding".

+ +

Consulte tambin

+ +
+
top
+

AddOutputFilterByType Directiva

+ + + + + + + + +
Descripcin:Asigna un filtro de +salida a un tipo MIME en particular
Sintaxis:AddOutputFilterByType filter[;filter...] +MIME-type [MIME-type] ...
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Disponible en las +versiones de Apache 2.0.33 y posteriores
+

Esta directiva activa un filtro de + salida en particular para las peticiones en funcin del tipo + MIME de la respuesta.

+ +

El siguiente ejemplo usa el filtro DEFLATE, del + mdulo mod_deflate. Este filtro comprime la + parte de la respuesta de la peticin (ya sea esttica o + dinmica) que est etiquetada como + text/html o text/plain antes de ser + enviada al cliente.

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

Si quiere que los contenidos sean procesados por ms de un + filtro, debe separar sus nombres con puntos y comas + (;). Tambn es posible usar la directiva + AddOutputFilterByType para cada uno de los + filtros.

+ +

La configuracin que se muestra ms abajo hace que + todos los scripts etiquetados como text/html sean + procesados primero por el filtro INCLUDES y + posteriormente por el filtro DEFLATE.

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

Nota

Activar filtros con la + directiva AddOutputFilterByType puede no + funcionar parcial o totalmente. Por ejemplo, no se aplica + ningn filtro si es posible determinar el tipo MIME y se + aplica en su lugar DefaultType, incluso si el DefaultType es el mismo.

+ +

Si quiere estar seguro de que se apliquen los filtros, asigne + el tipo de contenido a un recurso explcitamente, por ejemplo + con la directiva AddType o con ForceType. Determinar el tipo de + contenido dentro de un script CGI (que no sea del tipo nph) + tambin es seguro.

+ +

Los filtros de salida por tipo no se aplican nunca en + peticiones proxy.

+
+ +

Consulte tambin

+ +
+
top
+

AllowEncodedSlashes Directiva

+ + + + + + + + +
Descripcin:Determina si se acepta el uso de separadores de +ubicacin codificados en las URLs
Sintaxis:AllowEncodedSlashes On|Off
Valor por defecto:AllowEncodedSlashes Off
Contexto:server config, virtual host
Estado:Core
Mdulo:core
Compatibilidad:Disponible en las versines de Apache 2.0.46 y posteriores
+

La directiva AllowEncodedSlashes + perimite usar URLs que contienen separadores de ubicacin + codificados (%2F para / y + %5C para \ en funcin del + sistema). Normalmente, tales URLs se rechazan y se devuelve un + mensaje de error 404 (Not found).

+ +

Especificar el valor On en la directiva + AllowEncodedSlashes es til sobre todo + cuando se usa junto con PATH_INFO.

+ +

Nota

Permitir barras codificadas + no implica su decodificado. La aparicin + de %2F o %5C (segn el sistemas + de que se trate) se dejar como tal en la cadena de + caracteres que conforma la de otra manera URL decodificada.

+
+ +

Consulte tambin

+ +
+
top
+

AllowOverride Directiva

+ + + + + + + +
Descripcin:Tipos de directivas que cuyo uso est permitido en los ficheros .htaccess
Sintaxis:AllowOverride All|None|directive-type +[directive-type] ...
Valor por defecto:AllowOverride All
Contexto:directory
Estado:Core
Mdulo:core
+

Cuando el servidor encuentra un fichero .htaccess + (como se explica en la directiva AccessFileName) es necesario saber que + directivas presentes en ese fichero pueden prevalecer sobre + las directivas de configuracin previas.

+ +

Solamente disponible en las secciones + <Directory>

+ + AllowOverride puede usarse solo en las + secciones <Directory> especificadas sin expresiones + regulares, nunca en las secciones <Location>, <DirectoryMatch> o <Files>. +
+ +

Cuando el valor de esta directiva es None, + entonces los ficheros .htaccess son + ignorados completamente. En ese caso, el servidor ni siquiera + intentar leer los archivos .htaccess + existentes.

+ +

Cuando el valor especificado en esta directiva es + All, entonces cualquier directiva que tenga Context .htaccess puede ser + usada en los ficheros .htaccess.

+ +

El tipo de directiva puede ser uno de los siguientes + grupos de directivas.

+ +
+
AuthConfig
+ +
+ + Permite usar directivas de autentificacin (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc.).
+ +
FileInfo
+ +
+ Permite usar directivas que controlan los tipos de documento + (DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, y + mod_mime las directivas Add* y Remove*, + etc.).
+ +
Indexes
+ +
+ Permite el uso de directivas que controlan el indexado de + directorios (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, + etc.).
+ +
Limit
+ +
+ Permite el uso de directivas que controlan el acceso al host + (Allow, Deny y Order).
+ +
Options
+ +
+ Permite usar directivas que controlan funcionalidades + especficas de directorios (Options y XBitHack).
+
+ +

Ejemplo:

+ +

+ AllowOverride AuthConfig Indexes +

+ +

En el ejemplo de arriba todas las directivas que no estn + en el grupo AuthConfig ni en el grupo + Indexes provocan un error interno del servidor.

+ +

Consulte tambin

+ +
+
top
+

AuthName Directiva

+ + + + + + + +
Descripcin:Ambito de autorizacin para su uso en +autentificacin HTTP
Sintaxis:AuthName auth-domain
Contexto:directory, .htaccess
Prevalece sobre:AuthConfig
Estado:Core
Mdulo:core
+

Esta directiva especifica el nombre de dominio que se muestra + al solicitar autorizacin para acceder a un directorio. Este + nombre de dominio se muestra al cliente para que el usuario sepa + qu nombre de usuario y contrasea ha de introducir. + AuthName toma solamente un argumento; si + el nombre de dominio contiene algn espacio, debe escribirse + entre comillas. Para que funcione correctamente, esta directiva + debe usarse junto con las directivas AuthType y Require, y con directivas como + AuthUserFile y + AuthGroupFile.

+ +

Por ejemplo:

+ +

+ AuthName "Top Secret" +

+ +

La cadena de caracteres que se especifique como valor de + AuthName ser lo que aparecer en el cuadro + de dilogo de acceso de la mayora de los + navegadores.

+ +

Consulte tambin

+ +
+
top
+

AuthType Directiva

+ + + + + + + +
Descripcin:Tipo de autentificacin de usuarios
Sintaxis:AuthType Basic|Digest
Contexto:directory, .htaccess
Prevalece sobre:AuthConfig
Estado:Core
Mdulo:core
+

Esta directiva selecciona el tipo de autentificacin de + usuarios que usar para un directorio. Actualmente solamente + estn implementadas las opciones Basic y + Digest. + + Para que funcione correctamente, esta directiva tiene que ir + acompaada por las directivas AuthName y Require, y de directivas como + AuthUserFile y + AuthGroupFile.

+ +

Consulte tambin

+ +
+
top
+

CGIMapExtension Directiva

+ + + + + + + + +
Descripcin:Tcnica para localizar +un intrprete de scripts CGI
Sintaxis:CGIMapExtension cgi-path +.extension
Contexto:directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Solamente NetWare
+

Esta directiva se usa para controlar la forma en que Apache + encuentra el intrprete para ejecutar scripts CGI. Por + ejemplo, si usa CGIMapExtension sys:\foo.nlm .foo, + todos los scripts CGI con extensin .foo se + pasarn al intrprete FOO.

+ +
+
top
+

ContentDigest Directiva

+ + + + + + + + +
Descripcin:Activa la generacin de cabeceras de respuesta HTTP +Content-MD5
Sintaxis:ContentDigest On|Off
Valor por defecto:ContentDigest Off
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Options
Estado:Core
Mdulo:core
+

Esta directiva permite la generacin de cabeceras + Content-MD5 segn se definen en RFC1864 y + RFC2068.

+ +

MD5 es un algoritmo que genera una cadena de caracteres + ("message digest", a veces llamado "huella dactilar") a partir de + unos datos de longitud arbitraria. La forma en que funciona este + algoritmo hace que con casi toda seguridad, si se producen + alteraciones en los datos originales, el "message digest" generado + tambin ser diferente.

+ +

La cabecera Content-MD5 es una forma de comprobar + la integridad de un mensaje de principio a fin (MIC) para los + mensajes HTTP (entity-body). Un proxy o un cliente pueden + comprobar esta cabecera para detectar modificaciones accidentales + en el mensaje HTTP (entity-body) en trnsito. Cabecera de + ejemplo:

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

Tenga en cuenta que el uso de esta directiva puede provocar un + menor rendimiento de su servidor porque el "message digest" se + genera en cada peticin (los valores no se guardan).

+ +

La cebecera Content-MD5 se enva solamente + cuando un documento es servido por core. Si el + documento es servido con cuaquier otro mdulo, no se + enva. Por ejemplo, los documentos SSI, las salidas de + scripts CGI, y las respuesta parciales (byte range responses) no + tienen esta cabecera.

+ +
+
top
+

DefaultType Directiva

+ + + + + + + + +
Descripcin:Tipo de contenido MIME por defecto que usar el servidor si no +puede determinar el tipo MIME en concreto del documento a servir
Sintaxis:DefaultType MIME-type
Valor por defecto:DefaultType text/plain
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

Hay veces en las que se pide al servidor que devuelva un + documento cuyo tipo MIME no puede determinar.

+ +

El servidor tiene que informar al cliente del tipo de contenido + del documento. En el caso de que se trate de un tipo desconocido, + se usa el tipo DefaultType. Por ejemplo:

+ +

+ DefaultType image/gif +

+ +

sera apropiado para un directorio que contenga muchas + imagenes tipo GIF cuyos nombres de fichero no tengan la + extensin .gif.

+ +

Tenga en cuenta que a diferencia de ForceType, esta directiva solamente + indica el tipo MIME por defecto. El resto de definiciones de tipos + MIME, incluidas las extensiones de fichero, que pueden identificar + el tipo MIME de que se trata prevalecen sobre esta opcin por + defecto.

+ +
+
top
+

<Directory> Directiva

+ + + + + + +
Descripcin:Engloba a un grupo de directivas +que se aplicarn solamente al directorio del sistema de ficheros +especificado y a sus subdirectorios
Sintaxis:<Directory directory-path> +... </Directory>
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

Las directivas <Directory> + y </Directory> se usan para englobar un grupo + de directivas que se aplicarn solamente al directorio + especificado y a sus subdirectorios. Puede incluir a cualquier + directiva cuyo uso est permitido en un contexto + <directory>. Directory-path puede ser tanto la + ruta completa a un directorio, como una cadena de caracteres + comodn que use las reglas de equivalencia de los shells de + Unix. En una cadena de caracteres comodn, el carcter + ? equivale a cualquier carcter individual, y + * equivale a cualquier secuencia de + caracteres. Tambin puede usar [] para expresar + rangos de caracteres. Ninguno de los caracteres comodn + equivale al carcter `/', de modo que <Directory + /*/public_html> no equivale a + /home/user/public_html, pero s a + <Directory /home/*/public_html>. Ejemplo:

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

Tenga especial cuidado con los argumentos de + directory-path: tienen que equivaler literalmente a + la ruta del sistema de ficheros que Apache usa para acceder a + los ficheros. Las directivas aplicadas a un + <Directory> en particular no se + aplicarn a los ficheros de ese mismo directorio pero que + sean accedidos mediante una ruta diferente, como por ejemplo + mediante enlaces simblicos diferentes.

+
+ +

Tambin pueden usar expresiones regulares extendidas, + aadiendo el carcter ~. Por ejemplo:

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

equivaldra a los directorios en /www/ cuyo + nombres consistan en tres nmeros.

+ +

Si varias (expresiones no regulares) secciones <Directory> equivalen al directorio (o a + uno de los directorios de los que es subdirectorio) que contiene + un documento, entonces las directivas se aplican segn el + criterio de la ruta equivalente ms corta, junto con las + directivas de los archivos .htaccess. Por ejemplo, con

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

para acceder al documento /home/web/dir/doc.html + los pasos son:

+ +
    +
  • Se aplica la directiva AllowOverride None + (desactivando los ficheros .htaccess).
  • + +
  • Se aplica la directiva AllowOverride FileInfo + (para el directorio /home).
  • + +
  • Se aplica cualquier directiva FileInfo en + /home/.htaccess, /home/web/.htaccess y + /home/web/dir/.htaccess por ese orden.
  • +
+ +

Las expresiones regulares no se tienen en cuenta hasta que + todas las secciones normales hayan sido aplicadas. En ese momento + todas se evalan las expresiones regulares en el orden en que + aparecen en el fichero de configuracin. Por ejemplo, con

+ +

+ <Directory ~ abc$>
+ + # ... directivas aqu ...
+
+ </Directory> +

+ +

la seccin de expresiones regulares no ser + considerada hasta despus de que todas las directivas + <Directory> y los ficheros + .htaccess hayan sido aplicados. Solamente entonces + las expresiones regulares que tengan una equivalencia con + /home/abc/public_html/abc y la correspondiente + directiva <Directory> + sern aplicadas.

+ +

Tenga en cuenta que por defecto el acceso de Apache a + <Directory /> es Allow from All. + Esto significa que Apache servir cualquier fichero que se + corresponda con una URL. Se recomienda que modifique este + comportamiento con un bloque del siguiente tipo

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

y haga prevalecer una configuracin diferente para + los solamente para los directorios que usted quiera que + sean accesibles. Consulte la seccin Consejos de seguridad para + obtener ms informacin.

+ +

Las secciones "directory" se usan en el archivo + httpd.conf. Las directivas <Directory> no pueden anidarse, y no + pueden aparecer en una seccin de tipo <Limit> o <LimitExcept>.

+ +

Consulte tambin

+ +
+
top
+

<DirectoryMatch> Directiva

+ + + + + + +
Descripcin:Incluye las directivas que se +aplican a los directorios y subdirectorios del sistema de ficheros que +equivalen a una expresin regular
Sintaxis:<DirectoryMatch regex> +... </DirectoryMatch>
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

<DirectoryMatch> y + </DirectoryMatch> se usan para englobar a un + grupo de directivas que se aplicarn solamente al directorio + (y los subdirectorios de ste) especificado, al igual que + <Directory>. Sin + embargo, en ese caso la directiva toma como argumento una + expresin regular. Por ejemplo:

+ +

+ <DirectoryMatch "^/www/.(.+)?[0-9]{3}"> +

+ +

equivaldr a los directorios en /www/ cuyo nombre + consista en tres nmeros.

+ +

Consulte tambin

+ +
+
top
+

DocumentRoot Directiva

+ + + + + + + +
Descripcin:Directorio principal que contiene la estructura de +directorios visible desde la web
Sintaxis:DocumentRoot directory-path
Valor por defecto:DocumentRoot /usr/local/apache/htdocs
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

Esta directiva especifica el directorio desde el cul + httpd servir los ficheros. A menos que + especifique alguna otra equivalencia mediante una directiva + Alias, el servidor + aade la ruta de la URL solicitada a este directorio para + construir la ruta del documento a servir. Ejemplo:

+ +

+ DocumentRoot /usr/web +

+ +

esto quiere decir que una peticin de acceso a + http://www.my.host.com/index.html se refiere a + /usr/web/index.html en el sistema de ficheros.

+ +

El directorio que especifique en + DocumentRoot debe escribirlo sin barra al + final.

+ +

Consulte tambin

+ +
+
top
+

EnableMMAP Directiva

+ + + + + + + + +
Descripcin:Permite el uso de mapeo de memoria para leer archivos mientras se +sirven
Sintaxis:EnableMMAP On|Off
Valor por defecto:EnableMMAP On
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

Esta directiva controla si httpd puede usar + mapeo de memoria en caso de ser necesario para leer los contenidos + de un archivo al servirlo. Por defecto, cuando el tratamiento de + una peticin requiere acceder a los datos dentro de un + fichero -- por ejemplo, cuando se sirve un fichero analizado + sintcticamente por el servidor con el mdulo + mod_include -- Apache mapea en memoria el archivo + si el sistema operativo soporta esa operacin.

+ +

El mapeo de memoria supone a veces una mejora en el + rendimiento. Sin embargo, en ciertos entornos, es mejor desactivar + el mapeo de memoria para evitar problemas operacionales:

+ +
    +
  • En algunos sistemas con ms de un procesador, el mapeo de + memoria puede reducir el rendimiento de + httpd.
  • Con un DocumentRoot montado en NFS, + httpd podra abortar su ejecucin + debido a un fallo de segmentacin si el fichero se borra o se + trunca mientras que httpd lo tiene mapeado en + memoria.
  • +
+ +

Para configuraciones del servidor que son sensibles a estos + problemas, debe desactivar el uso del mapeo en memoria + especificando:

+ +

+ EnableMMAP Off +

+ +

Para ficheros montados en NFS, puede desactivar esta + funcionalidad explcitamente para los archivos implicados + especificando:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile Directiva

+ + + + + + + + + +
Descripcin:Permite el uso del soporte de sendfile del kernel para servir ficheros @@@@@ Use the kernel sendfile support to deliver files to the client @@@@@
Sintaxis:EnableSendfile On|Off
Valor por defecto:EnableSendfile On
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Disponible en las versiones de Apache 2.0.44 y +posteriores
+

Esta directiva controla si httpd puede usar + el soporte de sendfile del kernel para transmitir contenidos de + ficheros al cliente. Por defecto, cuando se est procesando + una peticin que no requiere acceso a los datos de un fichero + -- por ejemplo, cuando se sirve un fichero esttico -- Apache + usa sendfile para servir los contenidos del fichero directamente a + la red, sin leer el fichero si el sistema operativo lo + permite.

+ +

El mecanismo sendfile evita operaciones separadas de lectura y + envo, y reservas de buffer. Sin embargo, en algunas + plataformas o en algunos sistemas de ficheros, es mejor desactivar + esa funcionalidad para evitar problemas operacionales:

+ +
    +
  • En algunas plataformas puede que el soporte de sendfile no + funcione porque al compilar Apache no se detect + correctamente, especialmente si los binarios fueron construidos en + una mquina y despus se han trasladado a otra cuando el + soporte para sendfile ya no funcionaba.
  • + +
  • En Linux, el uso de send file provoca fallos de + comprobacin de TCP_checksum en ciertas tarjetas de red que + usan IPv6
  • + +
  • Si DocumentRoot est + montado en red (por ejemplo, NFS o SMB), el kernel puede que no + sea capaz de servir el fichero de red a travs de su + cache.
  • +
+ +

Para configuraciones del servidor que son sensibles a estos + problemas, debe desactivar esta funcionalidad especificando:

+ +

+ EnableSendfile Off +

+ +

Para archivos montados en NFS o SMB, esta funcionalidad puede + ser desactivada explcitamente para los ficheros que puedan + ocasionar problemas mediante:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableSendfile Off + + </Directory> +

+ +
+
top
+

ErrorDocument Directiva

+ + + + + + + + +
Descripcin:Es lo que el servidor devuelve al cliente si se produce +algn error
Sintaxis:ErrorDocument error-code +document
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:El uso de las comillas +(") en los mensajes de texto es diferente en Apache +2.0
+

En el caso de que aparezca un problema o error, puede + configurar Apache para hacer una de las siguientes cuatro + cosas,

+ +
    +
  1. devolver un mensaje de error estndar
  2. + +
  3. devolver un mensaje de error personalizado
  4. + +
  5. redireccionar la peticin a una ruta-URL + local
  6. + +
  7. redireccionar la peticin a una URL externa
  8. +
+ +

La primera opcin es la que se usa por defecto, mientras + que el resto se pueden configurar usando la directiva + ErrorDocument, la cual ha de seguirse del + cdigo de respuesta HTTP y una URL o un mensaje. Apache + ofrece a veces otra informacin adicional sobre el problema o + error.

+ +

Las URLs pueden empezar por una barra (/) para URLs locales, o + pueden ser una URL completa que el cliente pueda + resolver. Tambin se puede hacer que el nevagador despliegue + un mensaje. Ejemplos:

+ +

+ ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Lo sentimos no podemos permitirle el acceso a esta pgina hoy" +

+ +

Adicionalmente, el valor especial default puede + ser usado para que Apache use los mensajes literales que trae por + defecto. Aunque bajo circunstancias normales no es necesario, + default restaura los mensajes literales de Apache en + configuraciones que de otra manera heredan una directiva + ErrorDocument ya existente.

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

Tenga en cuenta que si usted especifica en + ErrorDocument un contenido que apunta a una + URL remota (por ejemplo, cualquier cosa que empiece por + http), Apache redireccionar al cliente, incluso + si al final, el documento al que redirecciona est en el + mismo servidor. Esto tiene varias implicaciones, la ms + importante es que el cliente no recibir el cdigo de + error original, sino que en su lugar recibir el cdigo + de estado del redireccionamiento. Esto puede confundir a los + robots web y otros clientes que tratan de determinar si una URL es + vlida usando el cdigo de estado. Adems, si usa + una URL remota en un ErrorDocument 401, el cliente no + sabr pedir contraseas al usuario porque no + recibir el cdigo de estado 401. Por tanto, si + usa una directiva ErrorDocument 401 entonces + debe referirse a un documento local.

+ +

Microsoft Internet Explorer (MSIE) ignorar por defecto + los mensajes de error generados por el servidor cuando sean + "demasiado pequeos" y los sustituir por mensajes de + error propios. El tamao se considera pequeo segn + el tipo de error de que se trate, pero en general, si su mensaje + de error es de ms de 512 bytes, MSIE mostrar en + mensaje del error generado por el servidor y no el suyo. Puede + encontrar ms informacin sobre este asunto en el + artculo de la Base de Datos de Conocimiento de Microsoft Q294807.

+ +

En las versiones de Apache anteriores a la 2.0, los mensajes se + indicaban aadiendoles dobles comillas (") al principio que + no se cerraban al final del mensaje.

+ +

Consulte tambin

+ +
+
top
+

ErrorLog Directiva

+ + + + + + + +
Descripcin:Ubicacin del fichero en +el que se almacenan los mensajes de error
Sintaxis: ErrorLog file-path|syslog[:facility]
Valor por defecto:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows y OS/2)
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

La directiva ErrorLog determina el + nombre del fichero en el cual el servidor almacenar los + mensajes de error en caso de que ocurra alguno. Si el + file-path no es absoluto, entonces se asume que es + relativo al valor especificado en la directiva ServerRoot.

+ +

Ejemplo

+ ErrorLog /var/log/httpd/error_log +

+ +

Si el file-path empieza con un barra vertical (|) + entonces se asume que es un comando para procesar el registro de + errores (error_log).

+ +

Ejemplo

+ ErrorLog "|/usr/local/bin/httpd_errors" +

+ +

Usar syslog en lugar de un nombre de fichero + permite almanecer los mesajes mediante syslogd(8) si el sistema lo + soporta. Por defecto se usa la utilidad de syslog + local7, pero puede cambiar esto usando + syslog:facility donde facility + es cualquiera de los nombres normalmente documentados en + syslog(1).

+ +

Ejemplo

+ ErrorLog syslog:user +

+ +

SEGURIDAD: Consulte la seccin consejos sobre + seguridad para obtener ms informacin sobre cmo se + compromete la seguridad de su sistema si sobre el directorio en + que se almacenan los ficheros log tiene permisos cualquier usuario + que no sea nicamente el que arranca el servidor.

+ +

Nota

Cuando se especifica una ruta a un fichero + en una plataforma que no es Unix, hay que tener cuidado de usar + solo barras (/) aunque el sistema permita barras invertidas + (\). En general, lo mejor es usar siempre barras / en los ficheros + de configuracin.

+
+ +

Consulte tambin

+ +
+
top
+

FileETag Directiva

+ + + + + + + + +
Descripcin:Atributos de fichero usados para crear la ETAG de la +cabecera de respuesta HTTP
Sintaxis:FileETag component ...
Valor por defecto:FileETag INode MTime Size
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

+ La directiva FileETag configura los + atributos de fichero que se usan para crear la ETag + (etiqueta de entidad) del campo cabecera de respuesta cuando el + documento est basado en un fichero. (El valor de + ETag se usa en la gestin de cache para ahorrar + ancho de banda.) En Apache 1.3.22 y en versiones anteriores, el + valor de ETag se formaba siempre a partir + del inodo del fichero, su tamao y la hora y la fecha en que + se modific por ltima vez (mtime). La directiva + FileETag permite elegir cul de esos + elementos quiere usar -- si es que se quiere usar alguno. Las + palabras clave reconocidas son: +

+ +
+
INode
+
Para incluir el nmero de inodo en el clculo
+
MTime
+
Para incluir en el clculo la hora y la fecha en que el + fichero fue modificado por ltima vez
+
Size
+
Para incluir en el clculo el nmero de bytes que ocupa el fichero
+
All
+
Para incluir en el clculo todos los campos disponibles. Esto es + equivalente a: +

FileETag INode MTime Size

+
None
+
Si el documento est basado en un fichero, ningn campo + ETag ser incluido en la respuesta
+
+ +

Las palabras clave INode, MTime, y + Size pueden ir precedidas por + o + -, lo cual permite hacer cambios en la configuracin + heredada de un mbito ms amplio. Cualquier palabra clave que + aparezca sin un prefijo cancela inmediatamente la configuracin + heredada.

+ +

Si la configuracin para un directorio incluye + FileETag INode MTime Size, y la de un subdirectorio + incluye FileETag -INode, la configuracin para + ese subdirectorio (que ser heredada por cualquier + subdirectorio que no tenga un configuracin propia) ser + equivalente a FileETag MTime Size.

+ +
+
top
+

<Files> Directiva

+ + + + + + + +
Descripcin:Contiene directivas que se aplican a los ficheros cuyos +nombres coincidan con los que se especifiquen
Sintaxis:<Files filename> ... </Files>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:All
Estado:Core
Mdulo:core
+

La directiva <Files> limita el mbito de aplicacin de las directivas que incluye segn el nombre de los ficheros. Es + comparable a <Directory> y <Location>. Debe cerrarse con </Files>. Las directivas usadas en + esta seccin se aplicarn a cualquier objeto con un nombre base + (ltimo componente del nombre de fichero) que coincida con el nombre de fichero especificado. Las + secciones <Files> se + procesan en el orden en que aparecen en el fichero de + configuracin, despus de las secciones <Directory> y de leer los + ficheros .htaccess, pero antes de las secciones + <Location>. Tenga en cuenta que las directivas <Files> + pueden anidarse dentro de las secciones <Directory> para restringir la parte del + sistema de ficheros a la que se aplican.

+ +

El argumento filename puede incluir un nombre de + fichero, o una cadena de carcteres comodn, donde ? + equivale a cualquier carcter individual, y * + equivale a cualquier secuencia de caracteres. Tambin pueden + usarse expresiones regulares extendidas, con la ventaja de que + tambien se puede usar el carcter ~. Por + ejemplo:

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

equivaldra a la mayora de los formatos grficos de + Internet. No obstante, es mejor usar <FilesMatch>.

+ +

Tenga en cuenta que a diferencia de las secciones <Directory> y <Location>, las secciones + <Files> pueden usarse dentro + de los ficheros .htaccess. Esto permite a los + usuarios controlar el acceso a sus propios archivos, a un nivel de + fichero a fichero.

+ + +

Consulte tambin

+ +
+
top
+

<FilesMatch> Directiva

+ + + + + + + +
Descripcin:Contiene las directivas que se aplican a los ficheros +cuyos nombres equivalen a las expresiones regulares que se especifiquen
Sintaxis:<FilesMatch regex> ... </FilesMatch>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

La directiva <FilesMatch> + limita el rango de las directivas incluidas segn el nombre de los + ficheros, como hace la directiva <Files>. Sin embargo, acepta + expresiones regulares. Por ejemplo:

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

equivaldra a la mayora de los formatos grficos de Internet.

+ +

Consulte tambin

+ +
+
top
+

ForceType Directiva

+ + + + + + + + +
Descripcin:Hace que todos los ficheros cuyos nombres tengan una equivalencia con con lo que se especifique sean +servidos como contenido del tipo MIME que se establezca
Sintaxis:ForceType MIME-type|None
Contexto:directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Perteneciente al ncleo del servidor a partir de la +versin de Apache 2.0
+

Cuando se usa en un fichero .htaccess o en una + seccin <Directory>, <Location> o <Files>, esta directiva hace que todos los + ficheros cuyos nombres guarden una equivalencia con lo + especificado sean servidos como contenido + MIME-type. Por ejemplo, si tiene un directorio lleno de + ficheros GIF, pero no quiere etiquetarlos con .gif, + puede usar:

+ +

+ ForceType image/gif +

+ +

Tenga en cuenta que a diferencia de DefaultType, esta directiva prevalece sobre + todas las asociaciones de tipo MIME, incluidas las extensiones de + nombre de fichero que puedan identificar de qu tipo es un fichero.

+ +

Puede hacer que ForceType no prevalezca sobre el resto de directivas usando el valor None:

+ +

+ # forzar a todos los tipos de fichero a ser tratados como imagen/gif:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # pero permitir la asociacin de tipos MIME normal aqu:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups Directiva

+ + + + + + + +
Descripcin:Activa la resolucin de +DNS de las direcciones IP de los clientes
Sintaxis:HostnameLookups On|Off|Double
Valor por defecto:HostnameLookups Off
Contexto:server config, virtual host, directory
Estado:Core
Mdulo:core
+

Esta directiva activa la resolucin de DNS de manera que + los nombres de host puedan ser guardados en los archivos log (y + pasados a CGIs/SSIs en REMOTE_HOST). El valor + Double se refiere a hacer una busqueda de DNSs + inversa doble. Esto es, despus de hacer una busqueda + inversa, se hace una busqueda normal posteriormente sobre ese + resultado. Al menos una de las direcciones IP en la bsqueda + posterior debe equivaler a la direccin IP original. (En + terminologa de "tcpwrappers" se llama + PARANOID.)

+ +

Independientemente de lo que se especifique, cuando + mod_access se usa para controlar el acceso por + nombre de host, se har una consulta inversa doble. Esto se + hace por seguridad. Tenga en cuenta que el resultado de una + busqueda inversa doble no est disponible generalmente a no + ser que especifique HostnameLookups Double. Por + ejemplo, si especifica solo HostnameLookups On y se + hace una peticin a un objeto protegido por restricciones de + nombre de host, independientemente de si la consulta inversa doble + falla o no, el resultado de la consulta inversa simple se + pasar a los CGIs en REMOTE_HOST.

+ +

El valor por defecto es Off para ahorrar + trfico de red en aquellos sitios web que realmente no + necesitan hacer bsquedas inversas dobles. Tambin es + mejor para los usuarios finales porque no tienen que sufrir el + retardo adicional que introducen las bsquedas. Los sitios + web con mucha carga deben usar en esta directiva el valor + Off, porque las bsquedas de DNSs pueden + consumir una cantidad de tiempo considerable. La utilidad + logresolve, compilada por defecto en el + subdirectorio bin de su directorio de + instalacin, puede usarse ms tarde para buscar nombres + de host en direcciones IP que estn en los logs cuando no + est en lnea.

+ +
+
top
+

IdentityCheck Directiva

+ + + + + + + +
Descripcin:Activa que se registre en los archivos log la entidad RFC1413 del usuario remoto
Sintaxis:IdentityCheck On|Off
Valor por defecto:IdentityCheck Off
Contexto:server config, virtual host, directory
Estado:Core
Mdulo:core
+

Esta directiva permite el almacenamiento en logs, segn se + especifica en el RFC1413, del nombre de usuario remoto para casda + conexin cuando la mquina del cliente corra + "identd" o un programa similar. Esta informacin se + registra en el log de acceso.

+ +

La informacin que se registra con este procedimiento no + debe ser considerada como fiable excepto para controles + rudimentarios.

+ +

Tenga en cuenta que esto puede provocar serios problemas de + retardo en los accesos a su servidor porque para cada + peticin hay que ejecutar una consulta de este tipo. Cuando + hay firewalls involucrados, cada bsqueda puede probablemente + fallar y aadir 30 segundos de retardo cada vez que se + intenta un acceso. De modo que en general, su uso no es muy + til en servidores pblicos accesibles desde + Internet.

+ +
+
top
+

<IfDefine> Directiva

+ + + + + + + +
Descripcin:Engloba directivas que sern procesadas solo si se +cumple una determinada condicin al iniciar el servidor
Sintaxis:<IfDefine [!]parameter-name> ... + </IfDefine>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:All
Estado:Core
Mdulo:core
+

La seccin <IfDefine + test>...</IfDefine> se usa para marcar + directivas que son condicionales. Las directivas que hay dentro de + una seccin <IfDefine> se + procesan solo si test devuelve un resultado + positivo. Si el test produce un resultado negativo, + todo lo que haya entre los marcadores de comienzo y final + ser ignorado.

+ +

El test en la seccin de directivas <IfDefine> puede tomar una de las + siguientes dos formas:

+ +
    +
  • parameter-name
  • + +
  • !parameter-name
  • +
+ +

En el primer caso, las directivas entre los marcadores de + comienzo y final se procesan solo si el parmetro llamado + parameter-name est definido. El segundo formato + hace lo contrario, y procesa las directivas solo si + parameter-name no est + definido.

+ +

El argumento parameter-name se define cuando se + ejecuta httpd por la lnea de comandos con la opcin + -Dparameter, al iniciar el servidor.

+ +

Las secciones <IfDefine> + son anidables, lo cual puede usarse para implementar tests + simples con varios parmetros. Ejemplo:

+ +

+ httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +

+ +
+
top
+

<IfModule> Directiva

+ + + + + + + +
Descripcin:Engloba directivas que se procesan de forma condicional +segn est presente o ausente un mdulo especfico
Sintaxis:<IfModule [!]module-name> ... + </IfModule>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

La seccin <IfModule + test>...</IfModule> se usa para marcar + las directivas que se aplican si est presente un mdulo + especfico. Las directivas dentro de una seccin <IfModule> solo se procesan si el + test produce un resultado positivo. Si el test da falso, todo + lo que haya entre los marcadores de inicio y final es + ignorado.

+ +

El test de las secciones <IfModule> puede tomar una de las siguientes + formas:

+ +
    +
  • module name
  • + +
  • !module name
  • +
+ +

En el primer caso, las directivas entre los marcadores de + comienzo y final son procesados solo si el mdulo llamado + module name est incluido en Apache -- ya sea + porque est compilado en el servidor o porque est + cargado dinmicamente usando LoadModule. El segundo formato hace lo contrario, y + solo se procesan las directivas si el mdulo module + name no est incluido.

+ +

El argumento module name es el nombre del fichero del + mdulo en el momento en que fue compilado. Por ejemplo, + mod_rewrite.c. Si un mdulo consiste en varios + archivos fuente, use el nombre del fichero que contenga la cadena + de caracteres STANDARD20_MODULE_STUFF.

+ +

Las secciones <IfModule> + son anidables, lo cual puede usarse para implementar tests simples + con varios mdulos.

+ +
Esta seccin debe usarse solo si necesita tener un + fichero de configuracin que funcione tanto si est como + si no est un determinado mdulo disponible. En + condiciones normales, no es necesario usar directivas en + secciones <IfModule>.
+ +
+
top
+

Include Directiva

+ + + + + + + +
Descripcin:Incluye otros ficheros de configuracin dentro de +los ficheros de configuracin del servidor
Sintaxis:Include file-path|directory-path
Contexto:server config, virtual host, directory
Estado:Core
Mdulo:core
Compatibilidad:Se pueden usar caracteres comodn para encontrar +equivalencias en las versiones de Apache 2.0.41 y posteriores
+

Esta directiva permite la inclusin de otros ficheros de + configuracin dentro de los ficheros de configuracin del + servidor.

+ +

Los caracteres comodn de tipo shell (fnmatch()) + pueden usarse para incluir varios ficheros de una vez por orden + alfabtico. Adems, si Include apunta a un + directorio, en lugar de a un fichero, Apache leer todos los + ficheros en ese directorio y sus subdirectorios. Sin embargo, no se + recomienda incluir subdirectorios enteros, porque es fcil dejar + accidentalmente ficheros temporales en un directorio y esto + provocar que httpd aborte.

+ +

La ruta del fichero especificada puede ser absoluta, o relativa + a un directorio respecto al valor especificado en ServerRoot.

+ +

Ejemplos:

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

O especificando rutas relativas al directorio ServerRoot:

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ +

Si ejecuta apachectl configtest le aparecer + una lista con los ficheros que estn siendo procesados + durante la comprobacin de la configuracin:

+ +

+ root@host# apachectl configtest
+ Processing config file: /usr/local/apache2/conf/ssl.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
+ Syntax OK +

+ +

Consulte tambin

+ +
+
top
+

KeepAlive Directiva

+ + + + + + + +
Descripcin:Permite que se establezcan conexiones HTTP +persistentes
Sintaxis:KeepAlive On|Off
Valor por defecto:KeepAlive On
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

La extensin Keep-Alive de HTTP/1.0 y la funcionalidad de + conexin persistente de HTTP/1.1 facilitan la posibilidad de + que se establezcan sesiones HTTP de larga duracin que + permiten que se puedan enviar mltiples peticiones sobre la + misma conexin TCP. En algunos casos, esto tiene como + resultado una reduccin de casi el 50% en los tiempos de + retardo en el caso de documentos con muchas imgenes. Para + activar las conexiones Keep-Alive, especifique KeepAlive + On.

+ +

Para clientes HTTP/1.0, las conexiones Keep-Alive se + usarn solo si el cliente lo solicita + especficamente. Adems, una conexin Keep-Alive + con un cliente HTTP/1.0 puede usarse solo cuando el tamao + del contenido es conocido con antelacin. Esto implica que el + contenido dinmico, como puede ser el resultado de un CGI, + pginas SSI y listados de directorios generados por el + servidor, no usarn por lo general conexiones Keep-Alive para + clientes HTTP/1.0. Para clientes HTTP/1.1, las conexiones + persistentes son las que se usan por defecto a no ser que se + especifique lo contrario. Si el cliente lo solicita, se usar + @@@@@ chunked encoding @@@@@ para enviar contenido de tamao + desconocido sobre conexiones persistentes.

+ +

Consulte tambin

+ +
+
top
+

KeepAliveTimeout Directiva

+ + + + + + + +
Descripcin:Tiempo que el servidor esperar peticiones subsiguientes +en conexiones persistentes
Sintaxis:KeepAliveTimeout seconds
Valor por defecto:KeepAliveTimeout 15
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

Es el tiempo en segundos que Apache esperar peticiones + subsiguientes antes de cerrar una conexin persistente. Una + vez que una peticin ha sido recibida, se aplica el valor + especificado en la directiva Timeout para cerrar la + conexin.

+ +

Espeficificar un valor alto para + KeepAliveTimeout puede provocar un menor + rendimiento en servidores con mucha carga. Cuanto mayor sea el + valor de timeout, mayor ser el nmero de procesos del + servidor se mantendrn ocupados esperando en conexiones con + clientes no activos.

+ +
+
top
+

<Limit> Directiva

+ + + + + + + +
Descripcin:Restringe la aplicacin de los controles de acceso incluidos a solo ciertos mtodos HTTP
Sintaxis:<Limit method [method] ... > ... + </Limit>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

Los controles de acceso se aplican normalmente a + todos los mtodos de acceso, y este es el + comportamiento que se busca casi siempre. En general, las + directivas de control de acceso no deben estar dentro de una + seccin <Limit>.

+ +

El propsito <Limit> + es restringir el efecto de los controles de acceso a los + mtodos HTTP que se especifiquen. Para los dems + mtodos, las restricciones de acceso que estn incluidas + en <Limit> no + tendrn efecto. Los siguientes ejemplos aplican el + control de acceso solo a los mtodos POST, + PUT, y DELETE, no afectando al resto de + mtodos:

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

Los mtodos incluidos en la lista pueden ser uno o + ms de los siguientes: GET, + POST, PUT, DELETE, + CONNECT, OPTIONS, PATCH, + PROPFIND, PROPPATCH, MKCOL, + COPY, MOVE, LOCK, y + UNLOCK. Los nombres de los mtodos + distinguen maysculas de minsculas. Si usa + GET tambin se restringirn las peticiones + HEAD. El mtodo TRACE no puede + limitarse.

+ +
Es mejor usar una seccin <LimitExcept> en lugar de + una seccin <Limit> cuando se quiere restringir el + acceso, porque una seccin <LimitExcept> protege contra mtodos + arbitrarios.
+ + +
+
top
+

<LimitExcept> Directiva

+ + + + + + + +
Descripcin:Restringe los controles de acceso a todos los mtodos +HTTP excepto a los que se especifiquen
Sintaxis:<LimitExcept method [method] ... > + ... </LimitExcept>
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

<LimitExcept> y + </LimitExcept> se usan para englobar un grupo + de directivas de control de acceso que se aplicarn a + cualquier mtodo de acceso HTTP no + especificado en los argumentos; es lo contrario a lo + que hace una seccin <Limit> y puede usarse para controlar + tanto mtodos estndar como no estndar o + mtodos no reconocidos. Consulte la documentacin de + <Limit> para + ms detalles.

+ +

Por ejemplo:

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion Directiva

+ + + + + + + + +
Descripcin:Determina el nmero mximo de redirecciones internas y +subpeticiones anidadas
Sintaxis:LimitInternalRecursion number [number]
Valor por defecto:LimitInternalRecursion 10
Contexto:server config, virtual host
Estado:Core
Mdulo:core
Compatibilidad:Disponible en las versiones Apache 2.0.47 y posteriores
+

Una redireccin interna ocurre, por ejemplo, cuando se usa + la directiva Action, + la cual internamente redirige la peticin original a un + script CGI. Una subpeticin es un mecanismo de Apache para + saber qu ocurrira si se produjera una peticin a + una URI. Por ejemplo, mod_dir usa subpeticiones + para buscar archivos especificados en la directiva DirectoryIndex.

+ +

LimitInternalRecursion hace que el + servidor no sufra un error irrecuperable cuando entra en un ciclo + infinito de redirecciones internas o subpeticiones. Tales ciclos + se producen normalmente por errores de configuracin.

+ +

La directiva guarda dos lmites diferentes, los cuales se + evalan en para cada peticin. El primer + nmero es el nmero mximo de + redirecciones internas, que pueden producirse una detrs de + otra. El segundo nmero determina, la profundidad + a la que subpeticiones pueden anidarse. Si especifica solo un + nmero, se asignar a ambos lmites.

+ +

Ejemplo

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody Directiva

+ + + + + + + + +
Descripcin:Restringe el tamao total del cuerpo de las peticiones +HTTP enviadas desde el cliente
Sintaxis:LimitRequestBody bytes
Valor por defecto:LimitRequestBody 0
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

Esta directiva especifica el nmero de bytes + desde 0 (que significa sin lmite) hasta 2147483647 (2GB) que + se permite que tenga el cuerpo de una peticin.

+ +

La directiva LimitRequestBody permite al + usuario especificar un lmite al tamao del cuerpo del + mensaje de las peticiones dentro del contexto en el que la + directiva aparece (server, per-directory, per-file o + per-location). Si la peticin del cliente excede ese + lmite, el servidor devolver una respuesta de error en + lugar de servir la peticin. El tamao del cuerpo del + mensaje de una peticin normal vara mucho en + funcin de la naturaleza del recurso y los mtodos + permitidos para ese recurso. Los scripts CGI usan normamente el + cuerpo del mensaje para acceder la informacin de formularios + HTML. Las implementaciones del mtodo PUT + requerirn un valor al menos del mismo tamao que + cualquier representacin que el servidor desee aceptar para + ese recurso.

+ +

Esta directiva le da al administrador del servidor un mayor + control sobre el comportamiento anormal de peticiones de clientes, + lo cual puede ser til para evitar algunos tipos de ataques de + denegacin de servicio.

+ +

Si, por ejemplo, permite que se suban archivos a una ubicacin + en concreto, y quiere limitar el tamao de los ficheros que se + suban a 100K, puede usar la siguiente directiva:

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields Directiva

+ + + + + + + +
Descripcin:Limita el nmero de campos de la cabecera de las +peticiones HTTP del cliente que sern aceptadas
Sintaxis:LimitRequestFields number
Valor por defecto:LimitRequestFields 100
Contexto:server config
Estado:Core
Mdulo:core
+

Number es un entero entre 0 (sin lmite) hasta + 32767. El valor por defecto se define por la constante + DEFAULT_LIMIT_REQUEST_FIELDS al compilar (y es de 100 + campos para la cabecera).

+ +

La directiva LimitRequestFields permite + al administrador del servidor modificar el lmite del + nmero de campos de la cabecera permitidos en una + peticin HTTP. Este valor tiene que ser mayor que el + nmero de campos que tiene la cabecera de una peticin + normal de un cliente. El nmero de campos de la cabecera de + una peticin usados por un cliente raramente pasa de 20, pero + esto puede variar segn las diferentes implementaciones, a + menudo dependiendo incluso de la configuracin que un usuario + haya hecho de su navegador para soportar negociacin de + contenidos detallada. Las extensiones opcionales de HTTP se + expresan muchas veces usando campos de cabecera de + peticin.

+ +

Esta directiva le da al administrador del servidor un mayor + control sobre el comportamiento anormal de peticiones de clientes, + lo cual puede ser til para evitar algunos tipos de ataques + de denegacin de servicio. Debe incrementar el valor que se + especifica en esta directiva si a los clientes normales les llegan + mensajes de error que indican que se han enviado demasiados campos + de cabecera en la peticin.

+ +

Por ejemplo:

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize Directiva

+ + + + + + + +
Descripcin:Limita el tamao permitido de las cabeceras de las peticiones HTTP de los clientes
Sintaxis:LimitRequestFieldsize bytes
Valor por defecto:LimitRequestFieldsize 8190
Contexto:server config
Estado:Core
Mdulo:core
+

Esta directiva especifica el nmero de bytes + desde 0 hasta el valor de la constante definida al compilar + DEFAULT_LIMIT_REQUEST_FIELDSIZE (8190 por defecto) + que ser permitido para una cabecera de las peticiones + HTTP.

+ +

La directiva LimitRequestFieldSize + permite al administrador del servidor reducir el lmite del + tamao permitido de una cabecera de las peticiones HTTP por + debajo del tamao del buffer de entrada compilado en el + servidor. Este valor tiene que ser lo suficientemente grande para + que no quede por debajo del tamao normal de una cabecera de + peticin de un cliente. El tamao de una cabecera de una + peticin vara mucho en funcin de la + implementacin del cliente, a menudo depende incluso de la + configuracin del navegador que haya hecho el usuario para + soportar negociacin de contenido detallada.

+ +

Esta directiva le da al administrador del servidor un mayor + control sobre el comportamiento anormal de peticiones de clientes, + lo cual puede ser til para evitar algunos tipos de ataques de + denegacin de servicio.

+ +

Por ejemplo:

+ +

+ LimitRequestFieldSize 4094 +

+ +
En condiciones normales, no debe modificarse el valor que + viene por defecto.
+ + +
+
top
+

LimitRequestLine Directiva

+ + + + + + + +
Descripcin:Limita el tamao la lnea de peticin HTTP que ser +aceptada
Sintaxis:LimitRequestLine bytes
Valor por defecto:LimitRequestLine 8190
Contexto:server config
Estado:Core
Mdulo:core
+

Esta directiva especifica el nmero de bytes de + 0 hasta el valor de la constante definida al compilar + DEFAULT_LIMIT_REQUEST_LINE ( @@@@ 8190 as distributed @@@@ ) que + se permitir para la lnea de peticin HTTP.

+ +

La directiva LimitRequestLine permite al + administrador del servidor reducir el lmite de tamao + permitido de la lnea de peticin de las peticiones HTTP + de los clientes por debajo del tamao del buffer de entrada + compilado con el servidor. Como la lnea de peticin + consiste en el mtodo HTTP, la URI y la versin del + protocolo, la directiva LimitRequestLine + impone una restriccin en la longitud de la URI de la + peticin permitida por el servidor. Este valor tiene que ser + lo suficientemente grande como para que admita el tamao de + sus nombres de recurso, incluida la informacin que puede + ser pasada como parte de consulta de una peticin + GET.

+ +

Esta directiva le da al administrador del servidor un mayor + control sobre el comportamiento anormal de peticiones de clientes, + lo cual puede ser til para evitar algunos tipos de ataques de + denegacin de servicio.

+ +

Por ejemplo:

+ +

+ LimitRequestLine 4094 +

+ +
En condiciones normales, no debe modificarse el valor que + viene por defecto.
+ +
+
top
+

LimitXMLRequestBody Directiva

+ + + + + + + + +
Descripcin:Limita el tamao del cuerpo de una peticin XML
Sintaxis:LimitXMLRequestBody bytes
Valor por defecto:LimitXMLRequestBody 1000000
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:All
Estado:Core
Mdulo:core
+

Lmite (en bytes) o tamao mximo del cuerpo de una peticin + basada en XML. Si se especifica el valor 0 se + desactiva este control.

+ +

Ejemplo:

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location> Directiva

+ + + + + + +
Descripcin:Aplica las directivas que contiene solo a las URLs que tengan una equivalencia con los valores que se especifiquen
Sintaxis:<Location + URL-path|URL> ... </Location>
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

Una seccin <Location> + aplica las directivas que contiene segn la URL de que se + trate. Es parecida a la directiva <Directory>, y tiene que terminar con una + directiva </Location>. Las secciones <Location> se procesan en el orden en que + aparecen en el fichero de configuracin, despus de leer + las secciones <Directory> y los ficheros + .htaccess, y despus de las secciones <Files>.

+ +

Las secciones <Location> + operan completamente fuera del sistema de ficheros. Esto tiene + varias consecuencias. La ms importante, es que las + directivas <Location> no deben + usarse para controlar el acceso a ubicaciones del sistema de + ficheros. Como diferentes URLs pueden corresponderse con una misma + ubicacin de un sistema de ficheros, tales controles de + acceso pueden ser burlados.

+ +

Cundo usar <Location>

+ +

Use <Location> para aplicar + las directivas que va a incluir a contenido que est fuera + del sistema de ficheros. Para el contenido que est en el + sistema de ficheros, use <Directory> y <Files>. Una excepcin a esto es el + uso de <Location />, que es un modo fcil + de aplicar una configuracin a un servidor entero.

+
+ +

Para todas las peticiones que no provengan de servidores proxy, + la URL de la que se buscan equivalencias es una ruta URL de la + forma /path/. Ningn esquema, nombre de host, + puerto o cadena de consulta puede incluirse. Para peticiones + provenientes de servidores proxy, la URL de la que se buscan + euivalencias es de la forma scheme://servername/path, + y debe incluir el prefijo.

+ +

La URL puede usar caracteres comodn. En una cadena de + caracteres comodn, ? equivale a cualquier + carcter, y * equivale a cualquier secuencia de + caracteres.

+ +

Tambin pueden usarse expresiones regulares extendidas, + con el carcter adicional ~. Por ejemplo:

+ +

+ <Location ~ "/(extra|special)/data"> +

+ +

equivaldr a las URLs que contengan la subcadena + /extra/data o /special/data. La + directiva <LocationMatch> se comporta de igual modo + que la versin de regex de <Location>.

+ +

El uso de <Location> es + especialmente til cuando se combina con la directiva + SetHandler. Por ejemplo, para + permitir peticiones de status, pero solo de navegadores que + intenten acceder a foo.com, puede usar:

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .foo.com
+
+ </Location> +

+ +

Comentarios sobre la barra : /

El + carcter de la barra tiene un significado especial + dependiendo del lugar donde aparece en una URL. Los usuarios + puede estar no estar acostumbrada a que la barra tenga distintos + significados, por ejemplo, en los sistemas de ficheros, varias + barras consecutivas tienen el mismo significado que una sola + barra (por ejemplo, /home///foo es lo mismo que + /home/foo). Para las URL's esto no se cumple. La + directiva <LocationMatch> y la versin de + regex de <Location> + requieren que se especifiquen explcitamente mltiples + barras solo si esa es su intencin.

+ +

Por ejemplo, <LocationMatch ^/abc> + podra equivaler a la peticin de la URL + /abc pero no a la peticin de la URL + //abc. La directiva (no regex) <Location> se comporta de manera similar cuando se + usa para peticiones provenientes de servidores proxy. Sin + embargo, cuando la directiva (no regex) <Location> se usa para peticiones no + provenientes de servidores proxy, a efectos de encontrar + equivalencias, mltiples barras equivaldrn a una + sola. Por ejemplo, si especifica <Location + /abc/def> y la peticin es a + /abc//def se producir equivalencia.

+
+ +

Consulte tambin

+ +
+
top
+

<LocationMatch> Directiva

+ + + + + + +
Descripcin:Aplica las directiva que incluye solo a las URLs que tengan equivalencia con alguna de las expresiones regulares que se especifiquen
Sintaxis:<LocationMatch + regex> ... </LocationMatch>
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

La directiva <LocationMatch> limita la aplicacin + de las directivas que incluye a URLs que tengan equivalencia con + alguna de las expresiones regulares que se especifican, de manera + idntica a como lo hace <Location>. Sin embargo, toma las + expresiones regulares como argumentos en lugar de como una cadena + de caracteres. Por ejemplo:

+ +

+ <LocationMatch "/(extra|special)/data"> +

+ +

equivaldra a las URLs que contengan la subcadena + /extra/data /special/data.

+ +

Consulte tambin

+ +
+
top
+

LogLevel Directiva

+ + + + + + + +
Descripcin:Controla la extensin de los mensajes que se almacenan +en el ErrorLog
Sintaxis:LogLevel level
Valor por defecto:LogLevel warn
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

LogLevel especifica el nivel al que se + detallan los errores que se almacenan en los logs de errores + (consulte la directiva ErrorLog). Los niveles + (levels) disponibles son, por orden decreciente:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Level Description Example
emerg Emergencias - sistema inutilizable."Un proceso hijo no puede abrir el fichero de lock (lock + file). El programa va a terminar"
alert Debe hacer algo inmediatamente."getpwuid: no pudo determinar el nombre de usuario a partir del uid"
crit Condiciones crticas."socket: No se encontr un socket adecuado, el proceso hijo va a terminar"
error Condiciones de error."Final prematuro de la cabecera del script""
warn Condiciones de advertencia."el proceso hijo 1234 no ha terminado, enviando otra vez + SIGHUP"
notice Condicin normal, pero significativa."httpd: interceptada seal SIGBUS, intentando hacer + un volcado de memoria en ..."
info Informacin."El servidor parece estar ocupado, (puede que necesite incrementar + StartServers, o Min/MaxSpareServers)..."
debug Mensajes de nivel debug"Abriendo el fichero de configuracin ..."
+ +

Cuando se especifica un determinado nivel, se escriben en el + log tambin los mensajes de todos los dems niveles por + encima. Por ejemplo, cuando se especifica LogLevel + info, tambin se escribirn en el log los + mensajes de los niveles notice y + warn.

+ +

Se recomienda usar, al menos, el nivel crit.

+ +

Por ejemplo:

+ +

+ LogLevel notice +

+ +

Nota

Cuando el fichero log es un fichero + normal y se escriben en el mensajes de nivel + notice, estos mensajes no podrn ser + borrados. Sin embargo, esto no se aplica cuando se usa + syslog.

+
+ +
+
top
+

MaxKeepAliveRequests Directiva

+ + + + + + + +
Descripcin:Nmero de peticiones permitidas en una conexin +persistente
Sintaxis:MaxKeepAliveRequests number
Valor por defecto:MaxKeepAliveRequests 100
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

La directiva MaxKeepAliveRequests limita + el nmero de peticiones permitidas por conexin cuando + KeepAlive est + activado. Si se especifica el valor 0, el nmero + de peticiones permitidas es ilimitado. Se recomienda que en esta + directiva se especifique un valor alto para obtener el mximo + rendimiento del servidor.

+ +

Por ejemplo:

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost Directiva

+ + + + + + +
Descripcin:Designa una direccin IP para usar hosting virtual basado en nombres
Sintaxis:NameVirtualHost addr[:port]
Contexto:server config
Estado:Core
Mdulo:core
+

Es necesario usar la directiva + NameVirtualHost es necesario usarla si + quiere configurar hosts virtuales basados en + nombres.

+ +

Aunque addr puede ser un nombre de host, se + recomienda que use siempre una direccin IP, por ejemplo:

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

Con la directiva NameVirtualHost se + especifica la direccin IP en la cual el servidor + recibir las peticiones para los hosts virtuales basados en + nombres. Bsta ser normalmente la direccin a la cual su + host virtual basado en nombres se resuelve. En los casos en que en + las peticiones las recibe un firewall (cortafuegos) o un proxy y + las redirige a una direccin IP diferente del servidor, debe + especificar la direccin IP del adaptador de red fsico + de la mquina que servir las peticiones. Si tiene + mltiples hosts basados en nombres o mltiples + direcciones, repita la directiva para cada direccin.

+ +

Nota

+

Tenga en cuenta, que el "servidor principal" y cualquier + servidor _default_ nunca + servirn una peticin a un direccin IP + NameVirtualHost (a menos que por alguna + razn use NameVirtualHost pero no + especifique ningn VirtualHost para + esa direccin).

+
+ +

De manera opcional puede especificar un nmero de puerto en + el que debe usarse el host virtual basado en el nombre, por + ejemplo

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

Las direcciones IPv6 deben escribirse entre corchetes, como se + muestra en el siguiente ejemplo:

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ +

Para recibir peticiones en todas las interfaces de red, puede + usar * como argumento

+ +

+ NameVirtualHost * +

+ +

Argumento de la directiva <VirtualHost>

+

Tenga en cuenta que el argumento de la directiva <VirtualHost> debe coincidir + exactamente con el de la directiva NameVirtualHost.

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+

+
+ +

Consulte tambin

+ +
+
top
+

Options Directiva

+ + + + + + + + +
Descripcin:Configura las funcionalidades disponibles en un directorio en particular
Sintaxis:Options + [+|-]option [[+|-]option] ...
Valor por defecto:Options All
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Options
Estado:Core
Mdulo:core
+

La directiva Options controla qu + funcionalidades del servidor estn disponibles en un + directorio en particular.

+ +

En option puede especificar None, en + cuyo caso ninguna funcionalidad adicional estar activada, o + puede especificar una o ms de las siguientes opciones:

+ +
+
All
+ +
Todas las opciones excepto MultiViews. Este es + el valor por defecto.
+ +
ExecCGI
+ +
Se permite la ejecucin de scripts CGI usando + mod_cgi.
+ +
FollowSymLinks
+ +
+ + El servidor seguir los enlaces simblicos en este + directorio +
+

Aunque el servidor siga los enlaces simblicos, eso + no cambia la ruta usada para encontrar equivalencias en + las secciones <Directory>.

Tenga en cuenta + tambin que esta opcin es ignorada si est + dentro de una seccin <Location>.

+ +
Includes
+ +
+ Permite el uso de Server-side includes, del mdulo mod_include.
+ +
IncludesNOEXEC
+ +
+ + Permite el uso de Server-side includes, pero #exec cmd + y #exec cgi son desactivados. Aunque es posible + #include virtual (incluir de forma virtual) scripts + CGI desde directorios especificados con ScriptAlias.
+ +
Indexes
+ +
+ Si se produce una peticin a una URL que se corresponde con un directorio, + y no hay DirectoryIndex + (por ejemplo, index.html) en ese directorio, + entonces mod_autoindex devolver una lista con + los contenidos del directorio.
+ +
MultiViews
+ +
+ Se permiten "MultiViews" de contenido negociado + "MultiViews" usando mod_negotiation.
+ +
SymLinksIfOwnerMatch
+ +
El servidor seguir los enlaces simblicos en los que el + fichero o directorio final pertenezca al mismo usuario que el + enlace. + +

Nota

Esta opcin es ignorada si se pone + dentro de una seccin <Location>.
+
+
+ +

Normalmente, si se pueden aplicar mltiples + Options a un directorio, entonces la + ms especfica se aplica y las dems se ignoran; + las opciones no se fusionan. (Consulte cmo se fusionan las + secciones.) Sin embargo, si todas las opciones en la + directiva Options van precedidas de un + smbolo + o -, las opciones se + fusionan. Cualquier opcin precedida de un + se + aade a las opciones en ese momento activas, y las opciones + precedidas de un - se quitan de las activas en ese + momento.

+ +

Por ejemplo, sin ningn smbolo + o + -:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

entoces solo Includes tendr efecto para el + directorio /web/docs/spec. Sin embargo, si la segunda + directiva Options usara un smbolo + + y otro -:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

entonces las opciones FollowSymLinks e + Includes estarn activas para el directorio + /web/docs/spec.

+ + +

Nota

+

El uso de -IncludesNOEXEC o -Includes + desactiva server-side includes completamente independientemente + de la configuracin anterior.

+
+ +

El comportamiento por defecto en ausencia de ninguna + configuracin es All.

+ +
+
top
+

Require Directiva

+ + + + + + + +
Descripcin:Selecciona qu usuarios autentificados pueden acceder a +un recurso
Sintaxis:Require entity-name [entity-name] ...
Contexto:directory, .htaccess
Prevalece sobre:AuthConfig
Estado:Core
Mdulo:core
+

Esta directiva selecciona qu usuarios autentificados pueden + acceder a un recurso. La sintaxis a usar es:

+ +
+
Require user userid [userid] + ...
+
Solo los usuarios mencionados pueden acceder al + recurso.
+ +
Require group group-name [group-name] + ...
+
Solo los usuarios pertenecientes a los grupos mencionados + pueden acceder al recurso.
+ +
Require valid-user
+
Todos los usarios pueden acceder al recurso.
+
+ +

Require debe ser usada de forma conjunta + con las directivas AuthName, + AuthType, y con directivas + como AuthUserFile y + AuthGroupFile (para + definir usuarios y grupos) para funcionar + correctamente. Ejemplo:

+ +

+ AuthType Basic
+ AuthName "Restricted Resource"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

Los controles de acceso que se aplican de esta manera son + efectivos para todos los + mtodos. Esto es lo que normalmente se + quiere. Si quiere aplicar controles de acceso solo a + mtodos especficos, mientras se dejan otros + mtodos sin proteccin, use la directiva + Require en una seccin <Limit>.

+ +

Consulte tambin

+ +
+
top
+

RLimitCPU Directiva

+ + + + + + + + +
Descripcin:Limita el consumo de tiempo de CPU que pueden hacer proceses creados +por procesos hijo de Apache
Sintaxis:RLimitCPU seconds|max [seconds|max]
Valor por defecto:Unset; usa el valor por defecto del sistema operativo
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

Toma 1 2 parmetros. El primer parmetro + se refiere al lmite flexible de recursos para todos los + procesos y el segundo parmetro especifica el lmite + mximo de recursos. Cada uno de los parmetros puede ser + un nmero, max para indicarle al servidor que + el lmite debe fijarse al mximo permitido por la + configuracin del sistema operativo. Para elevar el + lmite mximo de recursos es necesario que se est + ejecutando el servidor como ususario root, o estar en + la fase inicial del arranque.

+ +

Esto se aplica a procesos nacidos de procesos hijo de Apache + que estn sirviendo peticiones, no a los procesos hijo de + Apache propiamente dichos. Esto incluye a los scripts CGI y a los + comandos de ejecucin SSI, pero no a procesos nacidos del + proceso padre Apache tales como ficheros de registro + redireccionados (piped logs).

+ +

Los lmites de consumo de tiempo de la CPU se expresan en + segundos por proceso.

+ +

Consulte tambin

+ +
+
top
+

RLimitMEM Directiva

+ + + + + + + + +
Descripcin:Limita el consumo de memoria que pueden hacer procesos creados por procesos hijo de Apache
Sintaxis:RLimitMEM bytes|max [bytes|max]
Valor por defecto:Unset; usa el valor por defecto del sistema operativo
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

Toma 1 2 parmetros. El primer parmetro + especifica el lmite flexible de recursos para todos los + procesos y el segundo parmetro especifica el lmite + mximo de recursos. Cada uno de los parmetros puede ser + un nmero, max para indicarle al servidor que + el lmite debe fijarse al mximo permitido por la + configuracin del sistema operativo. Para elevar el + lmite mximo de recursos es necesario que se est + ejecutando el servidor como ususario root, o estar en + la fase inicial del arranque.

+ +

Esto se aplica a procesos nacidos de procesos hijo de Apache + que estn sirviendo peticiones, no a los procesos hijo de + Apache propiamente dichos. Esto incluye a los scripts CGI y a los + comandos de ejecucin SSI, pero no a procesos nacidos del + proceso padre Apache tales como ficheros de registro + redireccionados (piped logs).

+ +

Los lmites de consumo de memoria se expresan en bytes por + proceso.

+ +

Consulte tambin

+ +
+
top
+

RLimitNPROC Directiva

+ + + + + + + + +
Descripcin:Limita el nmero de procesos que pueden crearse por parte de +procesos creados por procesos hijo de Apache
Sintaxis:RLimitNPROC number|max [number|max]
Valor por defecto:Unset; usa el valor por defecto del sistema operativo
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:Todas
Estado:Core
Mdulo:core
+

Toma 1 2 parmetros. El primer parmetro + especifica el lmite flexible de recursos para todos los + procesos y el segundo parmetro especifica el lmite + mximo de recursos. Cada uno de los parmetros puede ser + un nmero, max para indicarle al servidor que + el lmite debe fijarse al mximo permitido por la + configuracin del sistema operativo. Para elevar el + lmite mximo de recursos es necesario que se est + ejecutando el servidor como usuario root, o estar en + la fase inicial del arranque.

+ +

Esto se aplica a procesos nacidos de la divisin de + procesos hijo de Apache que estn sirviendo peticiones, no a + los procesos hijo de Apache propiamente dichos. Esto incluye a los + scripts CGI y a los comandos de ejecucin SSI, pero no a procesos + nacidos de la divisin del proceso padre Apache tales como + ficheros de registro + redireccionados (piped logs).

+ +

Limita el nmero de procesos por usuario.

+ +

Nota

Si los procesos CGI + no estn siendo ejecutados por + identificadores de usuario diferentes del identificador de + usuario que est ejecutando el servidor web, esta directiva + limitar el nmero de procesos que el servidor puede + crear. Como resultado de esta situacin, en el + error_log aparecern mensajes del tipo + cannot fork.

+
+ +

Consulte tambin

+ +
+
top
+

Satisfy Directiva

+ + + + + + + + + +
Descripcin:Interaccin entre el control de acceso basado en host +y la autentificacin de usuarios
Sintaxis:Satisfy Any|All
Valor por defecto:Satisfy All
Contexto:directory, .htaccess
Prevalece sobre:AuthConfig
Estado:Core
Mdulo:core
Compatibilidad:Influenciada por <Limit> y <LimitExcept> en las versiones de Apache 2.0.51 y +posteriores
+

Especifica la poltica de acceso a seguir cuando se usan tanto + Allow como Require. El parmetro puede ser + All o Any. Esta directiva es solo til + si se va restringir el acceso a un rea concreta con un nombre de + usuario/contrasea y direccin del cliente. En este caso + el comportamiento por defecto (All) es para requerir + que el cliente pase la restriccin referente a la direccin + e introduzca un nombre de usuario y contrasea + vlidos. Con la opcin Any el cliente podr acceder + si cumple la restriccin referente a la direccin o si introduce un + nombre de usuario y contraseas vlidos. Esto puede usarse para + restringir el acceso a una zona con una contrasea, pero permitir + a los clientes de algunas direcciones en concreto que accedan sin + tener que introducir contrasea alguna.

+ +

Por ejemplo, si quiere permitir que todo el mundo tenga acceso + total a su intranet o a una parte de si sitio web, pero requerir que + los visitantes de fuera de su intranet introduzcan una + contrasea, puede usar una configuracin similar a la + siguiente:

+ +

+ Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +

+ +

A partir de la versin de Apache 2.0.51, puede limitarse + la aplicacin de las directivas + Satisfy a determinados mtodos en + particular mediante secciones <Limit> y <LimitExcept>.

+ + + +

Consulte tambin

+ +
+
top
+

ScriptInterpreterSource Directiva

+ + + + + + + + + +
Descripcin:Tcnica para ubicar el intrprete de scripts CGI's
Sintaxis:ScriptInterpreterSource Registry|Registry-Strict|Script
Valor por defecto:ScriptInterpreterSource Script
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Solo sistemas Windows; la opci +Registry-Strict est disponible en las versiones de +Apache 2.0 y posteriores
+

Esta directiva se usa para controlar la manera que Apache + encuentra el intrprete usado para ejecutar scripts CGI. La + configuracin por defecto es Script. Esto hace que + Apache use el intrprete que aparece en la primera lnea, la que + empieza por #!) en el script. En los sistemas Win32 + esta lnea tiene un aspecto similar a:

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

o, si perl est en el PATH, + simplemente:

+ +

+ #!perl +

+ +

Usar ScriptInterpreterSource Registry har + que se busque en el Registro de Windows, en + HKEY_CLASSES_ROOT con la extensin del fichero + de script (por ejemplo, .pl) como clave de + bsqueda. El comando definido por la subclave del registro de + Windows Shell\ExecCGI\Command o, si esta no existe, + por la subclave Shell\Open\Command se usa para abrir + el script. Si no se encuentra ningn resutlado, Apache + recurre al comportamiento de la opcin + Script.

+ +

Seguridad

Tenga cuidado + cuando use ScriptInterpreterSource Registry con + ScriptAlias para + directorios, porque Apache intentar ejecutar + cada fichero dentro de ese directorio. Lo + especificado en Registry puede causar llamadas + indeseadas a programas que normalmente no se ejecutan. Por + ejemplo, el programa por defecto para abrir ficheros + .htm en la mayora de los sistemas Windows es + Microsoft Internet Explorer, entonces cualquier peticin HTTP + de un fichero .htm que exista dentro del script del + directorio har que el ejecute de fondo el navegador en el + servidor. Con esto el servidor se bloquear en ms o + menos un minuto.

+
+ +

La opcin Registry-Strict que es nueva en + Apache 2.0 hace lo mismo que Registry pero usa solo + la subclave Shell\ExecCGI\Command. La clave + ExecCGI no es de uso comn. Debe ser configurada + manualmente en el registro de Windows y por tanto previene la + ejecucin accidental de procesos en su sistema.

+ +
+
top
+

ServerAdmin Directiva

+ + + + + + +
Descripcin:Direccin de email que el servidor incluye en los +mensajes de error que se envan al cliente
Sintaxis:ServerAdmin email-address
Contexto:server config, virtual host
Estado:Core
Mdulo:core
+

ServerAdmin especifica la direccin de + e-mail que el servidor incluye en cualquier mensaje de error que + enva al cliente.

+ +

Sera conveniente tener una direccin de email solo para esto, por ejemplo

+ +

+ ServerAdmin www-admin@foo.example.com +

+

ya que los usuarios no siempre mencionan que estn hablando + del servidor!

+ +
+
top
+

ServerAlias Directiva

+ + + + + + +
Descripcin:Nombres alternativos usados para un host cuando se +intentan encontrar equivalencias a hosts virtuales basados en el +nombre
Sintaxis:ServerAlias hostname [hostname] ...
Contexto:virtual host
Estado:Core
Mdulo:core
+

ServerAlias especifica los nombres + alternativos para un host, para usarlo con hosts virtuales basados en el + nombre.

+ +

+ <VirtualHost *>
+ ServerName example.com
+ ServerAlias example.com server2
+ # ...
+ </VirtualHost> +

+ +

Consulte tambin

+ +
+
top
+

ServerName Directiva

+ + + + + + + +
Descripcin:Nombre de host y nmero de puerto que el servidor usa +para identificarse
Sintaxis:ServerName fully-qualified-domain-name[:port]
Contexto:server config, virtual host
Estado:Core
Mdulo:core
Compatibilidad:En la versin 2.0, esta directiva sustituye la + funcionalidad de la direciva Port de la + versin 1.3.
+

La directiva ServerName especifica el + nombre de host y el puerto que usa el servidor para + identificarse. Esto se usa cuando se hace redireccin de URLs. Por + ejemplo, si el nombre de la maquina del servidor web es + simple.example.com, pero el la maquina tambin tiene + el alias DNS www.example.com y quiere que el servidor + web se identifique as, debe usar la siguiente directiva:

+ +

+ ServerName www.example.com:80 +

+ +

Si no especifa ServerName, entonces el + servidor intentar deducir en nombre de host haciendo una + busqueda reversa en la direccin IP. Si no se especifica + ningn puerto en ServerName, entonces + el servidor usar el puerto para las peticiones + entrantes. Para disfrutar de la mxima fiabilidad y + predictibilidad, debe especificar explicitamente un nombre de host + y un puerto usando la directiva + ServerName.

+ +

Si est usando hosts + virtuales basados en el nombre, la directiva + ServerName dentro de una seccin <VirtualHost> especifica + qu nombre de host debe aparecer en la cabecera de peticin + Host: para coincidir con ese host virtual.

+ +

Consulte la descripcin de la directiva UseCanonicalName para configuraciones + que determinan si URLs autoreferenciadas (por ejemplo, por el + mdulo mod_dir module) se referirn al puerto + especificado, o al nmero de puerto dado en la peticin del + cliente. +

+ +

Consulte tambin

+ +
+
top
+

ServerPath Directiva

+ + + + + + +
Descripcin:URL que se usar para hosts virtuales basados en +nombre que son accedidos con un navegador incompatible
Sintaxis:ServerPath URL-path
Contexto:virtual host
Estado:Core
Mdulo:core
+

The ServerPath directive sets the legacy + URL pathname for a host, for use with name-based virtual hosts.

+ +

Consulte tambin

+ +
+
top
+

ServerRoot Directiva

+ + + + + + + +
Descripcin:Directorio base de la instalacin del servidor
Sintaxis:ServerRoot directory-path
Valor por defecto:ServerRoot /usr/local/apache
Contexto:server config
Estado:Core
Mdulo:core
+

La directiva ServerRoot especifica el + directorio en el que ha sido instalado el servidor. Normalmente + contendr los subdirectorios conf/ y + logs/. Las rutas que se especifican en otras + directivas (por ejemplo en Include o LoadModule) se toman como relativas a + este directorio.

+ +

Example

+ ServerRoot /home/httpd +

+ + +

Consulte tambin

+ +
+
top
+

ServerSignature Directiva

+ + + + + + + + +
Descripcin:Configura el pie de pgina en documentos generados +por el servidor
Sintaxis:ServerSignature On|Off|EMail
Valor por defecto:ServerSignature Off
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:All
Estado:Core
Mdulo:core
+

La directiva ServerSignature permite la + configuracin de un pie de pgina que se + aadir a documentos generados por el sevidor (mensajes + de error, listado de directorios generados por + mod_proxy, salida de + mod_info...). La razn por la que puede no + querer aadir este pie de pgina, es que en una cadena + de proxies, el usuario a menudo no tiene posibilidad de establecer + cual de los servidores encadenados ha retornado un mensaje de + error.

+ +

Esta directiva usa por defecto el valor Off, que + suprime la generacin del pie de pgina (y por tanto, es + compatible con el comportamiento de Apache 1.2 y las versiones + anteriores). Si usa el valor On simplemte se + aade una lnea con el nmero de versin y el + valor de ServerName para el + host virtual que est respondiendo la peticin, y el + valor EMail crea las referencias adicionales + "mailto:" a lo especificado en la directiva ServerAdmin.

+ +

En las versiones 2.0.44 y posteriores, los detalles del nmero + de la versin del servidor son controlados por la directiva + ServerTokens.

+ +

Consulte tambin

+ +
+
top
+

ServerTokens Directiva

+ + + + + + + +
Descripcin:Configura la cabecera de respuesta HTTP +Server
Sintaxis:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Valor por defecto:ServerTokens Full
Contexto:server config
Estado:Core
Mdulo:core
+

Esta directiva controla si el campo Server de las + cabeceras de las respuestas que se envan de vuelta a los clientes + incluye una descripcin del sistema operativo genrico del + servidor as como informacin sobre los modulos compilados en el + servidor.

+ +
+
ServerTokens Prod[uctOnly]
+ +
El servidor enva (por ejemplo): Server: + Apache
+ +
ServerTokens Major
+ +
El servidor enva (por ejemplo): Server: + Apache/2
+ +
ServerTokens Minor
+ +
El servidor enva (por ejemplo): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
El servidor enva (por ejemplo): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
El servidor enva (por ejemplo): Server: Apache/2.0.41 + (Unix)
+ +
ServerTokens Full (or not specified)
+ +
El servidor enva (por ejemplo): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Esta configuracin se aplica al servidor entero, y no puede ser + activada o desactivada para unos hosts virtuales s y para otros + no.

+ +

En las versiones posteriores a la 2.0.44, esta directiva + tambin controla la informacin especificada en la directiva + ServerSignature.

+ +

Consulte tambin

+ +
+
top
+

SetHandler Directiva

+ + + + + + + + +
Descripcin:Hace que todos los ficheros que correspondan con el valor +especificado sean procesados obligatoriamente por un +handler
Sintaxis:SetHandler handler-name|None
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
Compatibilidad:Trasladado al ncleo del servidor en Apache +2.0
+

Cuando se usa en un fichero .htaccess o en una + seccin <Directory> r <Location>, esta directiva hace que todos + los ficheros cuyo nombre tenga equivalencia con el valor que + especifica sean tratados por el handler dado en + handler-name. Por ejemplo, si tiene un directorio cuyo + contenido quiere que sea tratado como as fichero de reglas de + mapas de imgenes, independientemente de las extensiones, + puede poner lo siguiente en un fichero .htaccess en + ese directorio:

+ +

+ SetHandler imap-file +

+ +

Otro ejemplo: si quiere que el servidor despliegue un resumen + de su estado cuando se llame a una URL de + http://servername/status, puede poner lo siguiente en + el fichero httpd.conf:

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+ +

Puede evitar que se aplique lo especificado anteriormente en + una directiva SetHandler usando el valor + None.

+ +

Consulte tambin

+ +
+
top
+

SetInputFilter Directiva

+ + + + + + + +
Descripcin:Especifica los filtros que procesarn las peticiones de +los clientes y el contenido de peticiones POST
Sintaxis:SetInputFilter filter[;filter...]
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

La directiva SetInputFilter espcifica el + filtro o filtros que procesarn las peticiones de los + clientes y el contenido de peticiones POST cuando son recibidas + por el servidor. El filtro o filtros especificados en esta + directiva se aplican adems de los definidos en otras partes, + incluyendo los especificados en la directiva AddInputFilter.

+ +

Si se especifica ms de un filtro, deben separarse con puntos y + comas en el orden en que deban procesar los contenidos.

+ +

Consulte tambin

+ +
+
top
+

SetOutputFilter Directiva

+ + + + + + + +
Descripcin:Especifica los filtros que procesarn las respuestas del +servidor
Sintaxis:SetOutputFilter filter[;filter...]
Contexto:server config, virtual host, directory, .htaccess
Prevalece sobre:FileInfo
Estado:Core
Mdulo:core
+

La directiva SetOutputFilter especifica + los filtros se usarn para procesar las respuestas del servidor + antes de enviarlas al cliente. Esto es adems de los filtros + definidos en otras partes, incluidos los de la directiva + AddOutputFilter.

+ +

Por ejemplo, la siguiente configuracin procesar todos los + archivos en el directorio /www/data/ con server-side + includes.

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

Si se especifica ms de un filtro, deben separarse con puntos y + comas en el orden en que deban procesar los contenidos.

+ +

Consulte tambin

+ +
+
top
+

TimeOut Directiva

+ + + + + + + +
Descripcin:Cantidad de tiempo que el servidor esperar para que +ocurran determinados eventos antes de cerrar una +peticin
Sintaxis:TimeOut seconds
Valor por defecto:TimeOut 300
Contexto:server config
Estado:Core
Mdulo:core
+

La directiva TimeOut define ahora la + cantidad de tiempo que Apache esperar para tres cosas:

+ +
    +
  1. La cantidad de tiempo que tarda en recibir una + peticin GET.
  2. + +
  3. La cantidad de tiempo entre la recepcin de paquetes TCP + packets en una peticin POST o PUT.
  4. + +
  5. La cantidad de tiempo entre ACKs en transmisiones de + paquetes TCP en las respuestas.
  6. +
+ +

Lo planeado es hacer configurable por separado cada una de + estas cosas. La cantidad de tiempo por defecto de 1200 usada antes + de la versin 1.2, ha sido reducida hasta 300, que es en la mayor + parte de las situaciones ms de lo necesario. El tiempo usado por + defecto no es menor porque puede que haya alguna parte del cdigo + en que el contador de tiempo no se pone a cero como debera cuando + se enva un paquete.

+ +
+
top
+

UseCanonicalName Directiva

+ + + + + + + +
Descripcin:Configura la forma en que el servidor determina su propio +nombre u puerto
Sintaxis:UseCanonicalName On|Off|DNS
Valor por defecto:UseCanonicalName On
Contexto:server config, virtual host, directory
Estado:Core
Mdulo:core
+

En muchas ocasiones, Apache tiene que construir una URL + autoreferenciada -- esto es, una URL que se refiere de + vuelta al mismo servidor. Con UseCanonicalName On + Apache usar el nombre de host y puerto que estn especificados en + la directiva ServerName para + construir el nombre cannico del servidor. Este nombre se usa en + todas las URLs autoreferenciadas, y para los valores de + SERVER_NAME y SERVER_PORT en los + CGIs.

+ +

Con UseCanonicalName Off Apache formar las + URLs autoreferenciadas usando el nombre de host y puerto + suministrados por el cliente. Si se ha suministrado esa + informacin (si no se ha suministrado, se usar el + nombre cannico, tal y como se ha definido arriba). Estos + valores son los mismos que se usan para implementar hosting virtual basado en + nombres, y estn disponibles con los mismos clientes. Las + variables de CGI SERVER_NAME y + SERVER_PORT se construirn con la + informacin suministrada por los clientes.

+ +

Un ejemplo de donde esto puede ser til es en un servidor de + una intranet, donde los usuarios se conectan a la mquina usando + nombres cortos como www. Se dar cuenta de que si los + usuarios teclean un nombre corto, y una URL que es un directorio, + tal como http://www/splat, sin una barra al + final entonces Apache los rediccionar a + http://www.domain.com/splat/. Si tiene la + autenfificacin activada, esto har que el usuario se tenga que + autentificar dos veces (una para www y otra para + www.domain.com -- consulte las + preguntas ms frecuentes sobre este asunto para obtener ms + informacin). Pero si especifica el valor Off en + la directiva UseCanonicalName, entonces + Apache redireccionar a http://www/splat/.

+ +

Hay una tercera opcin, UseCanonicalName DNS, para + el caso en que se usa hosting virtual masivo basado en IP para + soportar clientes antiguos que no envan la cabecera + Host:. Con esta opcin Apache hace una busqueda de + DNS reversa en la direccin IP del servidor al que el cliente se + conect para hacer funcionar las URLs autoreferenciadas.

+ +

Advertencia

+ +

Si los CGIs asumen los valores de SERVER_NAME, + puede que no funcionen con esta opcin. El cliente es + esencialmente libre de dar cualquier valor que quiera como nombre + de host. Pero si el CGI solo usa SERVER_NAME para + constrir URLs autoreferenciadas, entonces no debe haber ningn + problema.

+
+ +

Consulte tambin

+ +
+
top
+

<VirtualHost> Directiva

+ + + + + + +
Descripcin:Contiene las directivas que se aplican solo a un nombre +de host especfico o direccin IP
Sintaxis:<VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>
Contexto:server config
Estado:Core
Mdulo:core
+

<VirtualHost> y + </VirtualHost> se usan para incluir un grupo de + directivas que se aplicarn solo a un host virtual en + particular. Cualquier directiva que est permitido usar en un + contexto virtual host puede usarse. Cuando el servidor recibe una + peticin de un documento de un host virtual en concreto, usa las + directivas de configuracin incluidas en la seccin <VirtualHost>. Addr puede + ser:

+ +
    +
  • La direccin IP del host virtual;
  • + +
  • Un nombre de dominio completo para la direccin IP del host + virtual;
  • + +
  • El carcter *, el cual puede usarse en + combinacin con NameVirtualHost * para que + equivalga a todas las direcciones IP; o
  • + +
  • La cadena de caracteres _default_, que se usa + solo con hosting virtual IP para detectar direcciones IP sin + emparejar.
  • +
+ +

Ejemplo

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.foo.com
+ DocumentRoot /www/docs/host.foo.com
+ ServerName host.foo.com
+ ErrorLog logs/host.foo.com-error_log
+ TransferLog logs/host.foo.com-access_log
+
+ </VirtualHost> +

+ + +

Las direcciones IPv6 deben especificarse entre corchetes porque + el nmero de puerto opcional no podra determinarse si no se hace + as. Un ejemplo de direccin IPv6 se mustra aqu abajo:

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+
+ </VirtualHost> +

+ +

Cada host virtual se corresponde con una direccin IP + diferente, un nmero de puerto diferente o un nombre de host + diferente para el servidor, en el primer caso la mquina del + servidor debe estar configurada para aceptar paquetes IP para + mltiples direcciones. (Si la mquina no tiene mltiples infaces + de red, entonces esto puede conseguirse con el comando + ifconfig alias -- si su sistema operativo lo + soporta).

+ +

Nota

El uso de <VirtualHost> no afecta + a las direcciones en las que escucha Apache. Puede que necesite + asegurarse de que Apache est escuchando en la direccin correcta + usando Listen.

+
+ +

Cuando se usa hosting virtual basado en IP, puede + especificarse el nombre especial _default_, en cuyo + caso, este host virtual equivaldr a cualquier direccin IP que no + est especificamente listada en otro host virtual. En ausencia de + un host virtual _default_ el server config + "principal", consistente en todas las definiciones fuera de una + seccin VirtualHost, se usa cuando la IP no coincide con ninguna. + (Pero tenga en cuenta que cualquier direccin IP que equivalga a + la directiva NameVirtualHost + no usar ni el server config "principal" ni el host virtual + _default_ virtual host. Consulte la documentacin de + hosting virtual basado en + nombres para obtener ms informacin.)

+ +

Puede especificar :port para cambiar el puerto + de equivalencia. Si no especifica ninguno, entonces por defecto se + usa el mismo puerto de la directiva Listen mas reciente del servidor + principal. Tambin puede especificar :* para hacer + coincidir con todos los puertos en esa direccin. (Esto se + recomienda cuando se usa con _default_.)

+ +

Seguridad

+

Consulte la documentacin de consejos de seguridad para + obtener ms informacin sobre por qu pone en riesgo la seguridad + si en el directorio donde almacena los archivos log tiene permisos + de escritura alguien que no sea el usuario que inicia el + servidor.

+
+ +

Consulte tambin

+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/core.html.ja.utf8 b/rubbos/app/apache2/manual/mod/core.html.ja.utf8 new file mode 100644 index 00000000..479ab4e8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html.ja.utf8 @@ -0,0 +1,3203 @@ + + + +core - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache コア機能

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +
説明:常に使用可能な Apache HTTP サーバのコア機能
ステータス:Core
+
+ + +
top
+

AcceptPathInfo ディレクティブ

+ + + + + + + + + +
説明:後に続くパス名情報を受け付けるリソースの指定
構文:AcceptPathInfo On|Off|Default
デフォルト:AcceptPathInfo Default
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Apache 2.0.30 以降で使用可能
+ +

このディレクティブは実際のファイル名 (もしくは存在するディレクトリの + 存在しないファイル) の後に続くパス名情報があるリクエストを受け付けるか + 拒否するかを制御します。続きのパス名情報はスクリプトには PATH_INFO + 環境変数として利用可能になります。

+ +

例えば、/test/ が、here.html というファイル + 一つのみがあるディレクトリを指しているとします。そうすると、 + /test/here.html/more/test/nothere.html/more + へのリクエストは両方とも /morePATH_INFO とします。

+ +

AcceptPathInfo ディレクティブに指定可能な + 三つの引数は:

+ +
+
Off
リクエストは存在するパスにそのまま + マップされる場合にのみ受け付けられます。ですから、上の例の + /test/here.html/more のように、本当のファイル名の + 後にパス名情報が続くリクエストには 404 NOT FOUND エラーが返ります。
+ +
On
前の方のパスが存在するファイルにマップする場合は + リクエストが受け付けられます。上の例の /test/here.html/more + は /test/here.html が有効なファイルにマップすれば + 受け付けられます。
+ +
Default
続きのパス名情報の扱いはリクエストの + ハンドラで決まります。 + 普通のファイルのためのコアハンドラのデフォルトは PATH_INFO を拒否します。 + cgi-scriptisapi-handler のようにスクリプトを扱うハンドラは + 一般的にデフォルトで PATH_INFO を受け付けます。
+
+ +

AcceptPathInfo の主な目的はハンドラの PATH_INFO を + 受け付けるか拒否するかの選択を上書きできるようにすることです。 + 例えば、これは例えば INCLUDES のような + フィルタを使って PATH_INFO に + 基づいてコンテンツを生成しているときに必要になります。

+ +

+ <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ +
+
top
+

AccessFileName ディレクティブ

+ + + + + + + +
説明:分散設定ファイルの名前
構文:AccessFileName filename [filename] ...
デフォルト:AccessFileName .htaccess
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

リクエストを処理するとき、サーバはディレクトリに + 対して分散設定ファイルが有効になっていれば、 + そのドキュメントへの + パス上にある全てのディレクトリから、ここで指定された名前の一覧の中で + 最初に見つかったファイルをそれぞれ設定ファイルとして読み込みます。例えば:

+ +

+ AccessFileName .acl +

+ +

という設定があると、以下のようにして無効にされていない限り、 + ドキュメント /usr/local/web/index.html + を返す前に、サーバは /.acl, /usr/.acl, + /usr/local/.acl, /usr/local/web/.acl から + ディレクティブを読み込みます。

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

参照

+ +
+
top
+

AddDefaultCharset ディレクティブ

+ + + + + + + + +
説明:明示的に文字セットを指定していない応答に追加される +デフォルトの文字セット
構文:AddDefaultCharset On|Off|charset
デフォルト:AddDefaultCharset Off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

このディレクティブは、HTTP ヘッダにコンテントタイプパラメータを + 持たない応答に追加される文字セットの名前を指定します。 + これは、ドキュメント内の META タグで指定されたどのような文字セット + も無効にします。 + AddDefaultCharset Off という設定により、この機能は無効になります。 + AddDefaultCharset On にすれば、ディレクティブの要求通り + Apache 内部のデフォルト文字セット iso-8859-1 に設定します。 + また、他の charset も指定できます。例えば:

+ +

+ AddDefaultCharset utf-8 +

+ +
+
top
+

AddOutputFilterByType ディレクティブ

+ + + + + + + + +
説明:MIME-type に出力フィルタを割り当てる
構文:AddOutputFilterByType filter[;filter...] MIME-type +[MIME-type] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Apache 2.0.33 以降で使用可能
+

このディレクティブは応答の MIME-type に応じて出力フィルタを使用するようにします。

+ +

次の例は mod_deflateDEFLATE フィルタを + 使っています。text/htmltext/plain の + すべての出力 (静的なものも動的なものも) をクライアントに送られる前に + 圧縮します。

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

複数のフィルタでコンテンツを処理させたいときは、それぞれの名前をセミコロンで + 分ける必要があります。各フィルタに対して + AddOutputFilterByType を一つずつ書くこともできます。

+ +

次の例は text/html のスクリプトのすべての出力を + まず INCLUDES フィルタで処理し、さらに DEFLATE フィルタにかけます。

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

注:

+

AddOutputFilterByType ディレクティブにより + 有効にしたフィルタは場合によっては、部分的もしくは完全に適用されないことが + あります。例えば、MIME タイプがが決定できないときには + DefaultType の設定が同じだったとしても、 + DefaultType 設定を使うようになります。

+

しかし、確実にフィルタが適用されるようにしたいときは、リソースに + 明示的にコンテントタイプを割り当てることができます。これには例えば + AddType ディレクティブや + ForceType ディレクティブを使います。 + (nphでない) CGI スクリプトでコンテントタイプを設定するというものでも + 大丈夫です。

+ +

タイプ毎の出力フィルタはプロキシリクエストには決して適用されません。

+
+ +

参照

+ +
+
top
+

AllowEncodedSlashes ディレクティブ

+ + + + + + + + +
説明:URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを +決定する
構文:AllowEncodedSlashes On|Off
デフォルト:AllowEncodedSlashes Off
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
互換性:Apache 2.0.46 以降で使用可能
+

AllowEncodedSlashes ディレクティブは符号化された + パス分離文字 (/%2F、さらにシステムによっては + \ に対応する %5C) が存在する URL の使用を + 許可するかどうかを決定します。通常はそのような URL は 404 (Not found) エラー + で拒否されます。

+ +

AllowEncodedSlashes On による + パス分離文字の使用は、PATH_INFO と合わせて + 使うときに一番役に立ちます。

+

Turning AllowEncodedSlashes On is + mostly useful when used in conjunction with PATH_INFO.

+ +

+

符号化されたスラッシュを許可することは、復号をすることを + 意味しません%2F や (関係するシステムでの) + %5C は、他の部分が復号された URL の中でもそのままの形式で + 残されます。

+
+ +

参照

+ +
+
top
+

AllowOverride ディレクティブ

+ + + + + + + +
説明:.htaccess で許可されるディレクティブの種類
構文:AllowOverride All|None|directive-type +[directive-type] ...
デフォルト:AllowOverride All
コンテキスト:ディレクトリ
ステータス:Core
モジュール:core
+

サーバが (AccessFileName によって指定された) + .htaccess ファイルを見つけた時、そのファイルの中で + 宣言されたどのディレクティブがより前に定義された設定ディレクティブを + 上書きできるかを知る必要があります。

+ +

<Directory> セクションでのみ使用可能

+ AllowOverride は正規表現無しの<Directory> + セクションでのみ有効で、<Location><DirectoryMatch> + や <Files> セクションでは無効です。 +
+ +

このディレクティブを None に設定すると、.htaccess ファイルは完全に + 無視されます。 + この場合、サーバはファイルシステムの .htaccess ファイルを読むことを + 試みさえしません。

+ +

このディレクティブが All に設定されている時には、 + .htaccess という コンテキスト を持つ + 全てのディレクティブが利用できます。

+ +

directive-type には、以下のディレクティブ群の + キーワードのどれかを指定します。

+ +
+
AuthConfig
+ +
+ + 認証に関するディレクティブの使用を許可する (AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, AuthUserFile, Require など。)。
+ +
FileInfo
+ +
+ ドキュメントタイプを制御するためのディレクティブの使用を許可する (DefaultType, ErrorDocument, ForceType, LanguagePriority, + SetHandler, SetInputFilter, SetOutputFilter, + mod_mime の Add* と Remove* + ディレクティブなど。)。
+ +
Indexes
+ +
+ ディレクトリインデックスを制御するためのディレクティブの使用を許可する + (AddDescription, + AddIcon, AddIconByEncoding, + AddIconByType, + DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName + など。)。
+ +
Limit
+ +
+ ホストへのアクセス制御を行うためのディレクティブの使用を許可する (Allow, Deny, Order).
+ +
Options
+ +
+ 特定のディレクトリにおける機能を指定するためのディレクティブの使用を許可する + (Options と + XBitHack)。
+
+ +

例:

+ +

+ AllowOverride AuthConfig Indexes +

+ +

上の例では AuthConfigIndexes のどちらにも + 属さないディレクティブはすべて内部サーバエラーを引き起こします。

+ +

参照

+ +
+
top
+

AuthName ディレクティブ

+ + + + + + + +
説明:HTTP 認証の認可領域 (訳注: realm)
構文:AuthName auth-domain
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Core
モジュール:core
+

このディレクティブはディレクトリに対する認可領域 (訳注: realm) + の名前を指定します。 + 認可領域は、利用者がどのユーザ名とパスワードを送信すればよいのかを + クライアントに教えるために利用します。 + AuthName は一つの引数をとり、 + スペースが含まれる場合には、 + 引用符で括らなければなりません。 + このディレクティブは + AuthType ディレクティブや + Require ディレクティブと、 + AuthUserFile や + AuthGroupFile などのディレクティブと + 一緒に利用する必要があります。

+ +

例えば:

+ +

+ AuthName "Top Secret" +

+ +

ここで AuthName に指定した文字列が、 + 大部分のブラウザのパスワードダイアログに表示されます。

+ +

参照

+ +
+
top
+

AuthType ディレクティブ

+ + + + + + + +
説明:ユーザ認証の種類
構文:AuthType Basic|Digest
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Core
モジュール:core
+

このディレクティブは対象ディレクトリで利用するユーザー認証の種類を選びます。 + ただ、現在のところは BasicDigest しか + 実装されていません。 + + このディレクティブは AuthNameディレクティブや + Require ディレクティブと、 + AuthUserFileAuthGroupFile などのディレクティブと + 一緒に利用する必要があります。

+ +

参照

+ +
+
top
+

CGIMapExtension ディレクティブ

+ + + + + + + + + +
説明:CGI スクリプトのインタープリタの位置を調べるための手法
構文:CGIMapExtension cgi-path .extension
デフォルト:None
コンテキスト:ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:NetWare のみ
+

このディレクティブは Apache が CGI スクリプトを実行するための + インタープリタを探す方法を制御します。 + 例えば、CGIMapExtension sys:\foo.nlm .foo と設定すると + .foo という拡張子のすべての CGI スクリプトは FOO インタープリタに + 渡されます。

+ +
+
top
+

ContentDigest ディレクティブ

+ + + + + + + + +
説明:Content-MD5 HTTP 応答ヘッダの生成を有効にする
構文:ContentDigest On|Off
デフォルト:ContentDigest Off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Options
ステータス:Core
モジュール:core
+

このディレクティブは、RFC1864 及び RFC2068 において定義されている + Content-MD5 ヘッダーの生成を有効にします。

+ +

MD5 は、任意長のデータの「メッセージダイジェスト」(「指紋」 + と表現されることもある) を計算するアルゴリズムで、 + データの変更があった場合には非常に高い信頼度でメッセージダイジェストに変更が + 反映されます。

+ +

Content-MD5 ヘッダは、エンドツーエンドで + エンティティボディーに含まれるメッセージの完全性チェック + (Message Integrity Check - MIC)を提供します。 + このヘッダを調べることで、プロキシやクライアントは、 + 途中経路におけるエンティティボディの予期せぬ変更などを + 検出することができます。ヘッダの例:

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

リクエスト毎にメッセージダイジェストを計算する (値はキャッシュされません) + ことから、 + サーバパフォーマンスが低下することについて注意してください。

+ +

Content-MD5は、core 機能により処理された + ドキュメントを送るときのみ有効であり、 + SSI ドキュメントや CGI スクリプトの出力、バイトレンジを指定した + 応答の場合にはこのヘッダは付与されません。 +

+ +
+
top
+

DefaultType ディレクティブ

+ + + + + + + + +
説明:サーバがコンテントタイプを決定できないときに +送られる MIME コンテントタイプ
構文:DefaultType MIME-type
デフォルト:DefaultType text/plain
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

サーバは、MIME のタイプマップからは決定できない + ドキュメントの送信を要求されることがあります。

+ +

サーバは、ドキュメントのコンテントタイプをクライアントに通知する必要が + ありますので、このようにタイプが未知の場合は + DefaultType で指定されたタイプを利用します。 + 例:

+ +

+ DefaultType image/gif +

+ +

これは .gif という拡張子がファイル名に含まれていない + 多くの GIF 画像が含まれているディレクトリに適しているでしょう。

+ +

ForceType ディレクティブと + 違って、このディレクティブはデフォルトの MIME タイプを提供するだけで + あることに注意してください。ファイル名の拡張子を含め、 + メディアタイプを決定できる他の MIME タイプの定義があれば + このデフォルトは上書きされます。

+ +
+
top
+

<Directory> ディレクティブ

+ + + + + + +
説明:指定のファイルシステムのディレクトリとサブディレクトリとのみに +適用されるディレクティブを囲む
構文:<Directory directory-path> +... </Directory>
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

指定されたディレクトリとそのサブディレクトリにのみ + ディレクティブを適用させるためには、 + <Directory> と + </Directory> を対として、ディレクティブ群を囲います。 + その中には、ディレクトリコンテキストで許可された全てのディレクティブを + 利用できます。 + directive-path は、フルパスもしくは Unix のシェル形式の + ワイルドカードを指定します。 + ? は任意の 1 文字、* は任意の文字列にマッチします。 + シェルにおける指定同様、文字の範囲を [] で指定できます。 + ワイルドカードは `/' 文字にはマッチしませんので、 + /home/user/public_html には + <Directory /*/public_html> はマッチしませんが、 + <Directory /home/*/public_html> はマッチします。 + 例:

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

directory-path 引数には注意してください: その引数は +Apache がファイルをアクセスするために使うファイルシステムのパスに +そのままマッチする必要があります。ある <Directory> に +適用されるディレクティブは、別のシンボリックリンクをたどったりして +同じディレクトリを違うパスでアクセスした場合には適用されません。

+
+ +

~ という文字を + 付加することで拡張正規表現を利用することもできます。 + 例えば:

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

といった指定の場合、/www/ 以下にある数字 + 3 文字のディレクトリにマッチします。

+ +

もし複数の (正規表現以外の) <Directory>セクションが + ドキュメントを含むディレクトリ (やその上位ディレクトリのどれか) とマッチしたならば、 + .htaccess ファイルのディレクティブも読み込みつつ、 + 短いパスから順に適用されます。 + 例えば、

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

と設定し、ドキュメント /home/web/dir/doc.html への + アクセスがあった場合には以下のように動作します:

+ +
    +
  • AllowOverride None が適用される。 + (.htaccess ファイルは無効になる)
  • + +
  • AllowOverride FileInfo が適用される + (/home ディレクトリに対して)。
  • + +
  • /home/.htaccess, /home/web/.htaccess, + /home/web/.htaccess の順にそれらのファイル中の + FileInfo ディレクティブが適用される。
  • +
+ +

正規表現は、通常のセクションがすべて適用されるまで + 考慮されません。 + その後、全ての正規表現が設定ファイルに現れた順で試されます。 + 例えば、以下のような場合に

+ +

+ <Directory ~ abc$>
+ + # ... directives here ...
+
+ </Directory> +

+ +

正規表現のセクションはすべての通常の <Directory> と + .htaccess の適用が終わるまで考慮されません。 + その後で、正規表現は /home/abc/public_html/abc にマッチし、 + 対応する <Directory> が適用されます。

+ +

Apache のデフォルトでは <Directory /> へのアクセスは + Allow from All になっていることに注意してください。 + これは、URL からマップされたどのファイルでも Apache は送るということです。 + これは以下のようにして変更することが推奨されています。

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

そしてアクセスを可能にしたいディレクトリに対して + 個別に設定すればよいでしょう。 + このあたりについては、セキュリティに関するコツを + 参照してください。

+ +

ディレクトリセクションは httpd.conf ファイル書きます。 + <Directory> + ディレクティブは入れ子にすることができず、 + <Limit><LimitExcept> セクションの中にも + 記述できません。

+ + +

参照

+ +
+
top
+

<DirectoryMatch> ディレクティブ

+ + + + + + +
説明:正規表現にマッチするファイルシステムのディレクトリと +サブディレクトリとのみに適用されるディレクティブを囲む
構文:<DirectoryMatch regex> +... </DirectoryMatch>
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

<Directory> + ディレクティブと同様に、<DirectoryMatch> + と </DirectoryMatch> は指定されたディレクトリと + そのサブディレクトリにのみ適用されるディレクティブ群を囲います。 + しかし、このディレクティブは引数として正規表現をとります。例えば:

+ +

+ <DirectoryMatch "^/www/.*/[0-9]{3}"> +

+ +

は /www/ 以下にある数字 3 文字のディレクトリにマッチします。

+ + +

参照

+ +
+
top
+

DocumentRoot ディレクティブ

+ + + + + + + +
説明:ウェブから見えるメインのドキュメントツリーになる +ディレクトリ
構文:DocumentRoot directory-path
デフォルト:DocumentRoot /usr/local/apache/htdocs
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

このディレクティブは、httpd がファイルを提供するディレクトリを設定します。 + Alias のようなディレクティブにマッチしない場合には、 + ドキュメントの (訳注:ファイルシステム上の) パスを生成するために、 + リクエストされた URL のパス部分をドキュメントルートに付与します。 + 例:

+ +

+ DocumentRoot /usr/web +

+ +

この場合、 + http://www.my.host.com/index.html へのアクセスがあれば + /usr/web/index.html が返されます。

+ +

DocumentRoot は最後のスラッシュ無しで + 指定する必要があります。

+ +

参照

+ +
+
top
+

EnableMMAP ディレクティブ

+ + + + + + + + +
説明:配送中にファイルを読み込むためにメモリマッピングを +使うかどうか
構文:EnableMMAP On|Off
デフォルト:EnableMMAP On
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

このディレクティブは配送中にファイルの内容を読み込む必要があるときに + httpd がメモリマッピングを使うかどうかを制御します。デフォルトでは、 + 例えば、mod_include を使って SSI ファイルを配送 + するときのように、ファイルの途中のデータをアクセスする必要があるときには + Apache は OS がサポートしていればファイルをメモリにマップします。

+ +

+ このメモリマップは性能の向上を持たらすことがあります。 + しかし、環境によっては運用上の問題を防ぐためにメモリマッピングを + 使用しないようにした方が良い場合もあります:

+ +
    +
  • マルチプロセッサシステムの中にはメモリマッピングをすると httpd の + 性能が落ちるものがあります。
  • +
  • NFS マウントされた DocumentRoot + では、httpd がメモリマップしている間にファイルが削除されたり + 短くなったりしたときに起こるセグメンテーションフォールトのために + httpd がクラッシュする可能性があります。
  • +
+ +

これらの問題に当てはまるサーバの設定の場合は、以下のようにして + ファイルの配送時のメモリマッピングを使用不可にしてください:

+ +

+ EnableMMAP Off +

+ +

NFS マウントされたファイルには、問題のあるファイルにのみ明示的に + この機能を使用不可にします:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile ディレクティブ

+ + + + + + + + + +
説明:ファイルのクライアントへの配送時にカーネルの sendfile サポートを +使うかどうか
構文:EnableSendfile On|Off
デフォルト:EnableSendfile On
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:バージョン 2.0.44 以降で使用可能
+

このディレクティブはクライアンにファイルの内容を送るときに + httpd がカーネルの + sendfile サポートを使うかどうかを制御します。デフォルトでは、 + 例えば静的なファイルの配送のように、リクエストの処理にファイルの + 途中のデータのアクセスを必要としないときには、Apache は OS が + サポートしていればファイルを読み込むことなく sendfile を使って + ファイルの内容を送ります。

+ +

sendfile は read と send を別々に行なうことと、バッファの割り当てを + 回避します。しかし、プラットフォームやファイルシステムの中には + 運用上の問題を避けるためにこの機能を使用不可にした方が良い場合があります:

+ +
    +
  • プラットフォームの中にはビルドシステムが検知できなかった、壊れた + sendfile のサポートが存在するものがあります。これは特に + バイナリが別のマシンでビルドされ、壊れた sendfile のあるマシンに + 移動したときに起こります。
  • +
  • Linux では、sendfile を用いると、 + IPv6 使用時に存在する特定ネットワークカードの TCP-checksum + オフロードのバグを踏んでしまいます。
  • +
  • ネットワークマウントされた DocumentRoot + (例えば NFS や SMB) + では、カーネルは自身のキャッシュを使ってネットワークからのファイルを + 送ることができないことがあります。
  • +
+ +

これらの問題に当てはまるサーバの設定の場合は、以下のようにして + この機能を使用不可にしてください:

+ + +

+ EnableSendfile Off +

+ +

NFS や SMB マウントされたファイルには、問題のあるファイルにのみ明示的に + この機能を使用不可にします:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableSendfile Off + + </Directory> +

+ +
+
top
+

ErrorDocument ディレクティブ

+ + + + + + + + +
説明:エラーが発生したときにサーバがクライアントに送るもの
構文:ErrorDocument error-code document
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Apache 2.0 ではテキストをクウォートする構文が以前のバージョンから +変わっています。
+

問題やエラーが発生したときの動作として、 + Apache には以下の四つのうち一つの動作を設定することができます。

+ +
    +
  1. Apache 標準の簡単なエラーメッセージを表示
  2. + +
  3. 自分で指定したメッセージを表示
  4. + +
  5. 問題やエラーの処理をする為に、自サーバ内の + URL-path へリダイレクト
  6. + +
  7. 問題やエラーの処理をする為に、外部の URL へリダイレクト
  8. +
+ +

最初のものがデフォルトの動作で、2 番目から 4 番目は、 + ErrorDocumentディレクティブにより、 + HTTP のレスポンスコードと、メッセージか URL を指定することで設定します。 + Apache が問題もしくはエラーに関する追加情報を提供することがあります。

+ +

URL の場合は、ローカルの URL の指定としてスラッシュで始まる (/) パスか、 + クライアントが解釈できるフル URL を指定します。
+ もしくは、ブラウザに表示されるメッセージを指定できます。 + 例:

+ +

+ ErrorDocument 500 http://foo.example.com/cgi-bin/tester
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Sorry can't allow you access today" +

+ +

加えて、特別な値 default を使って Apache に + ハードコードされている簡単なメッセージを指定することができます。 + 通常は必要ではありませんが、default を使うと + 既存の ErrorDocument ディレクティブの設定を + 継承するところで、Apache のハードコードされた簡単なメッセージに + 戻すことができます。

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

リモート URL (例えば、頭に http と付与した方法) を + ErrorDocument に指定するとき、 + たとえ文書が同じサーバにあろうとも、ドキュメントがどこにあるかを通知するために、 + Apache はリダイレクトをクライアントに送出するということに、注意してください。 + これにはいろいろと関連して起こる問題があります。 + 中でも最も重要なのは、クライアントは元々のエラーステータスコードを受け取らず、 + 代わりにリダイレクトのステータスコードを受け取るということです。 + これにより、ステータスコードを使って URL が有効であるかどうかを決定しようとする + ウェブロボットやその他クライアントを、混乱させるかもしれません。 + さらに、ErrorDocument 401 にリモートの URL を指定すると、 + クライアントは 401 というステータスコードを受け取らないため、 + パスワードをユーザーに入力要求しなければならないことがわかりません。 + 従って、ErrorDocument 401 というディレクティブを使う場合は、 + 必ずローカルな文書を参照しなければなりません。

+ +

Microsoft Internet Explorer (MSIE) はデフォルトではサーバが生成したエラーメッセージが + 「小さすぎる」ときには無視をして自分自身の「やさしい」エラーメッセージで + 置換します。サイズのしきい値はエラーの種類によって異なりますが、 + 一般的にはエラーの文書を 512 バイトよりも多きくすると、MSIE は + サーバが生成したエラーを隠さずに表示します。詳しい情報は Microsoft + Knowledge Base の記事 Q294807 + にあります。

+ +

2.0 より前のバージョンでは、対になっていない二重引用符を + 先頭に付けることによりメッセージであることを指定していました。

+ + +

参照

+ +
+
top
+

ErrorLog ディレクティブ

+ + + + + + + +
説明:サーバがエラーをログ収集する場所
構文: ErrorLog file-path|syslog[:facility]
デフォルト:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows and OS/2)
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

ErrorLog ディレクティブは、 + サーバに生じたさまざまなエラーを + 記録する為のファイルの名前を設定します。 + file-path が絶対パスでないときは、ServerRoot からの相対パスとみなされます。

+ +

+ ErrorLog /var/log/httpd/error_log +

+ +

file-path がパイプ (|) から始まる場合は、 + エラーログを処理するために実行されるコマンドが + 指定されていると解釈されます。

+ +

+ ErrorLog "|/usr/local/bin/httpd_errors" +

+ +

ファイル名の変わりに syslog と指定することによって、 + システムがサポートしていれば syslogd(8) を利用したロギングが有効になります。 + デフォルトでは、local7 ファシリティとなりますが、 + syslog:facility といった形で記述することにより、 + 通常 syslog(1) のドキュメントで説明されているファシリティの一つを使うように + することができます。

+ +

+ ErrorLog syslog:user +

+ +

セキュリティ: + ログファイルを格納するディレクトリが、サーバを起動したユーザ以外の + ユーザによって書き込める場合にセキュリティが破られる可能性があることに + 関する詳細は セキュリティに関するコツ を + 参照してください。

+

+

Unix 以外のプラットフォームでファイルのパスを入力するときは、 + プラットフォームがバックスラッシュの使用を許していたとしても、 + 確実にスラッシュのみが使用されるように注意してください。一般的には、 + 設定ファイル全般でスラッシュのみを使う方が良いでしょう。

+
+ +

参照

+ +
+
top
+

FileETag ディレクティブ

+ + + + + + + + +
説明:ETag HTTP 応答ヘッダを作成するために使用される +ファイルの属性
構文:FileETag component ...
デフォルト:FileETag INode MTime Size
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

+ FileETag ディレクティブは + ドキュメントがファイルに基づいたものであるときに、 + ETag (エンティティタグ) 応答ヘッダフィールドを作成するときに使用する + ファイルの属性を設定します。 (ETag の値はネットワークの帯域を節約するための + キャッシュの管理で使われます。) Apache 1.3.22 以前では、ETag の値は + 常にファイルの inode, サイズ、最終修正時刻 (mtime) から作成 + されていました。FileETag ディレクティブにより、これらのどれを使うかを + 選ぶことができます。認識されるキーワードは: +

+ +
+
INode
+
ファイルの inode 番号を計算に使います
+
MTime
+
ファイルの最終修正時刻を使います
+
Size
+
ファイルの中身のバイト数を使います
+
All
+
使用可能なすべてのフィールドを使います。 + これは

FileETag INode MTime Size

と等価です。
+
None
+
ドキュメントがファイルに基づいたものでも、ETag フィールドを + 応答に付加しません
+
+ +

INode, MTime, Size キーワードには + +- を前に付けて + 指定することもできます。この場合は、より広い範囲から継承された + デフォルトの設定に変更を加えるようになります。そのような接頭辞の + 無いキーワードを指定すると、即座に継承した設定を無効にします。

+ +

あるディレクトリの設定に + FileETag INode MTime Size があり、 + サブディレクトリの設定に FileETag -INode があるときは、 + そのサブディレクトリの設定は (設定が上書きされなければサブディレクトリの + サブディレクトリにも継承されます) FileETag MTime Size + と同じになります。

+ +
+
top
+

<Files> ディレクティブ

+ + + + + + + +
説明:マッチするファイル名に適用されるディレクティブを囲む
構文:<Files filename> ... </Files>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

<Files> ディレクティブは、 + その中にあるディレクティブの適用範囲をファイル名で制限します。 + <Directory> ディレクティブや <Location> ディレクティブと + 同じような機能を持ちます。 + これは、</Files> ディレクティブと対に + なっていなければなりません。 + このセクション中のディレクティブは、ベース名 (ファイル名の最後の部分) + が指定されたファイル名にマッチするすべてのオブジェクトに適用されます。 + <Files> セクションは + <Directory> セクションと + .htaccess が読み込まれた後、 + <Location> セクションよりは先に + 設定ファイルに現れた順に適用されます。 + <Files> は、 + <Directory> セクション内に + ネストさせることができ、 + ファイルシステムの一部にのみ限定して適用させることができます。

+ +

filename 引数は、ファイル名かワイルドカード文字列 + で、ワイルドカードでは ? は一つの文字、* は任意の文字列にマッチします。 + ~ という文字を付加することで拡張正規表現を使うこともできます。 + 例えば、

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

とすることにより、一般的なインターネットの画像フォーマットにマッチします。 + ただし、 + <FilesMatch> を使う方が + 推奨されています。

+ +

ちなみに、<Directory><Location> セクションとは異なり、 + <Files> + は .htaccess ファイル内で利用することができます。 + これにより、ユーザがファイル毎にアクセスの制御を行なうことができるように + なっています。

+ + +

参照

+ +
+
top
+

<FilesMatch> ディレクティブ

+ + + + + + + +
説明:正規表現にマッチするファイル名に適用される +ディレクティブを囲む
構文:<FilesMatch regex> ... </FilesMatch>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

<FilesMatch> ディレクティブは、 + <Files> + ディレクティブ同様にその中にあるディレクティブの適用範囲をファイル名で制限します。ただし、 + このディレクティブには正規表現を指定します。 + 例えば:

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

は一般的なインターネットの画像形式にマッチします。

+ +

参照

+ +
+
top
+

ForceType ディレクティブ

+ + + + + + + + +
説明:すべてのマッチするファイルが指定の MIME コンテントタイプで +送られるようにする
構文:ForceType MIME-type|None
コンテキスト:ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Apache 2.0 で core に移動
+

.htaccess<Directory> セクション、 + <Location> セクション、 + <Files> セクションに + 書かれた場合、このディレクティブはそこにあるすべてのファイルが + MIME-type + で指定されたコンテントタイプとして扱われるようにします。たとえば、 + GIF ファイルばかりのディレクトリがあって、すべてのファイルを .gif + で終わらせたくはないときに、以下のものを使用します:

+ +

+ ForceType image/gif +

+ +

DefaultType と違って + このディレクティブはメディアタイプを決めることができるかもしれない + ファイルの拡張子も含め、すべての MIME タイプの関連付けを + 上書きすることに注意してください。

+ +

None という値を使うことで ForceType の + 設定を無効にできます:

+ +

+ # force all files to be image/gif:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # but normal mime-type associations here:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups ディレクティブ

+ + + + + + + +
説明:クライアントの IP アドレスの DNS ルックアップを +有効にする
構文:HostnameLookups On|Off|Double
デフォルト:HostnameLookups Off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Core
モジュール:core
+

このディレクティブは、ホスト名をログ収集できるように + DNS ルックアップを有効にします + (さらに、CGI/SSI に REMOTE_HOST 変数として渡します)。 + Doubleを指定した場合、2 重の逆引きを行ないます。 + つまり、逆引きの後に、その結果に対して正引きを行ないます。正引きの + 結果の IP アドレスの中にオリジナルのアドレスと一致するものがなければ + なりません。("tcpwrappers" の用語では PARANOID と呼ばれています。)

+ +

mod_access でホスト名によるアクセス + 制御を行なう場合には、 + 設定の如何によらず 2 重の逆引きが実行されます。 + これは、セキュリティを保つために必要です。 + HostnameLookups Double を設定しない限り、 + 他の部分はこの 2 重逆引きの結果を使うことはできません。 + 例えば、HostnameLookups On と設定してある状態で、 + ホスト名によるアクセス制限を行なったオブジェクトへの + リクエストを受けたとすると、2 重の逆引きが成功するか否かによらず、 + REMOTE_HOST には通常の逆引き結果が渡されます。

+ +

ディレクティブのデフォルトは + 本当に逆引きを必要としているわけではないサイトの + ネットワークトラフィックを低減させるために、Off になっています。 + ルックアップによる余計な遅延がなくなるため、 + エンドユーザにとっても良いでしょう。 + DNS のルックアップには、かなりの時間が必要となる場合が多く、 + 負荷の高いサイトではこのディレクティブは Off にすべきです。 + なお、/support ディレクトリに含まれ、デフォルトでは + インストールディレクトリの bin サブディレクトリに + インストールされる logresolve ユーティリティにより、 + Apache の動作とは別に、ログに残されている IP アドレスからホスト名を + ルックアップすることが可能です。

+ +
+
top
+

IdentityCheck ディレクティブ

+ + + + + + + +
説明:リモートユーザの RFC1413 によるアイデンティティのロギングを +有効にする
構文:IdentityCheck On|Off
デフォルト:IdentityCheck Off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Core
モジュール:core
+

このディレクティブは、クライアントマシン上で + identd やそれに類似したデーモンが動作しているときに、 + それぞれの接続に対して RFC 1413 に準処したリモートユーザの + 名前のロギングを行なうようにします。 + この情報は、アクセスログに収集されます。

+ +

ここで得られた情報は簡単なユーザ追跡に使う以外は、 + まったく信頼するべきではありません。

+ +

すべてのリクエストに対してルックアップが行なわれますので、 + 深刻な遅延の問題を起こすかもしれないことに注意してください。 + (訳注: 例えばクライアント側に) ファイアウォールがあると、 + ルックアップが失敗し、各リクエストに 30 秒の遅延が加わることに + なる可能性があります。 + 従って、一般的にはインターネットからアクセス可能なパブリックなサーバで + 有益なものではありません。

+ +
+
top
+

<IfDefine> ディレクティブ

+ + + + + + + +
説明:起動時にテストが真であるときのみに処理されるディレクティブを +囲む
構文:<IfDefine [!]parameter-name> ... + </IfDefine>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

<IfDefine test>...</IfDefine> + セクションは、 + ディレクティブを条件付きで指定するために利用します。 + <IfDefine> セクションに + 含まれるディレクティブは、testが + 定義されているときのみ処理されます。 + もし test が定義されていなければ、 + 開始と終了の指定の間のディレクティブは無視されます。

+ +

<IfDefine> セクションディレクティブに + 指定する test は、 + 次の二つの形式のうちの一つをとります:

+ +
    +
  • parameter-name
  • + +
  • !parameter-name
  • +
+ +

前者の場合には、parameter-name と名付けられたパラメータが + 定義されていれば開始と終了の間のディレクティブが処理されます。 + 後者の場合は逆で、parameter-name が指定されていない + 場合に処理されます。

+ +

parameter-name 引数は、サーバを起動する際に + httpd のコマンドラインに + -Dparameter- という形で指定すると定義されます。

+ +

<IfDefine> セクションは + 入れ子にすることができ、複数のパラメータによるテストをするために使用できます。 + 例:

+ +

+ httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +

+ +
+
top
+

<IfModule> ディレクティブ

+ + + + + + + +
説明:モジュールの存在するかしないかに応じて処理される +ディレクティブを囲む
構文:<IfModule [!]module-name> ... + </IfModule>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

<IfModule test>...</IfModule> + セクションは、モジュールが存在するときに処理されるディレクティブを + 指定するために利用します。 + <IfModule> セクションに + 含まれるディレクティブは、test + で指定するモジュールが組み込まれているときのみ処理されます。 + もし test が組み込まれていなければ、開始と終了の間のディレクティブ + は無視されます。

+ +

<IfModule> セクションディレクティブに + 指定する test は、 + 次の二つの形式のうちの一つをとります。

+ +
    +
  • module name
  • + +
  • !module name
  • +
+ +

前者の場合は、module name と名付けられたモジュールが + Apache に組み込まれていれば + (コンパイル済みのものと、LoadModule を利用して + 動的に読み込んだものの両方)、 + 開始と終了の間のディレクティブが処理されます。 + 後者の場合は逆で、module name が組み込まれていない + 場合に処理されます。

+ +

module name 引数は、 + コンパイルをした時のモジュールのファイル名です。 + 例えば、 + mod_rewrite.c です。 + モジュールが複数のソースファイルから構成されている場合は、文字列 + STANDARD20_MODULE_STUFF があるファイルの名前を + 使ってください。

+ +

<IfModule> セクションは + 入れ子にすることが可能であり、 + 複数のモジュールのテストを行なうために使用できます。

+ +
特定のモジュールの存在に関わらず動作する + 設定ファイルの原本が必要なときにのみこのセクションを使用してください。 + 通常の動作では、ディレクティブを + <IfModule> セクションの中に + 入れる必要はありません。
+ +
+
top
+

Include ディレクティブ

+ + + + + + + +
説明:サーバ設定ファイル中から他の設定ファイルを取り込む
構文:Include file-path|directory-path
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Core
モジュール:core
互換性:ワイルドカードによるマッチは 2.0.41 以降で使用可能
+

このディレクティブにより、サーバの設定ファイルから + 他の設定ファイルをインクルードすることができます。

+ +

複数のファイルをアルファベット順に一度に読み込むために、 + シェル形式 (fnmatch) のワイルドカード文字を使うことができます。 + さらに、Include にディレクトリを指定した場合は、 + ディレクトリとそのサブディレクトリ内の全てのファイルを + アルファベット順に読み込んで、設定ファイルとして処理します。 + しかし、ディレクトリ全体を読み込むのはお勧めできません。 + ふとしたことから httpd が読み込みに失敗するような + 一時ファイルをディレクトリに残してしまうようなことがよくあるからです。

+ +

指定するファイルパスは絶対パスか、 + ServerRoot ディレクトリからの + 相対パスか、のどちらかです。

+ +

例:

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

ServerRoot からの相対パスの場合は:

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ +

apachectl configtest を実行すると、設定をチェックしている時に + 読み込まれたファイルのリストが表示されます:

+ +

+ root@host# apachectl configtest
+ Processing config file: /usr/local/apache2/conf/ssl.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
+ Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
+ Syntax OK +

+ +

参照

+ +
+
top
+

KeepAlive ディレクティブ

+ + + + + + + +
説明:HTTP の持続的な接続を有効にする
構文:KeepAlive On|Off
デフォルト:KeepAlive On
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

HTTP/1.0 の Keep-Alive 拡張と HTTP/1.1 の持続的接続の機能は、 + 複数のリクエストが同じ TCP の接続で送られる、長時間持続する + HTTP セッションを提供します。たくさんの画像が + 含まれる HTML ドキュメントでは場合によっては遅延時間が 50% 短縮される結果も + でています。Keep-Alive 接続を有効にするには + KeepAlive On と設定します。

+ +

HTTP/1.0 に対応したクライアントの際には、 + クライアントより特に要求があった場合のみ Keep-Alive 接続となります。 + さらに、HTTP/1.0 クライアントでは、コンテンツの容量が先に + (訳注: 要求に対して応答を返す前に) わかる場合のみ Keep-Alive + 接続を利用できます。 + これは、CGI の出力や SSI のページ、 + サーバが生成したディレクトリのリストのような動的コンテンツを + HTTP/1.0 クライアントに送る場合には Keep-Alive 接続を使えないことを意味します。 + HTTP/1.1 に対応したクライアントの際には、 + 特に指定されない限りはデフォルトとして持続的な接続が行なわれます。 + クライアントが要求すれば、コンテンツの容量を判別できないものを + 持続的な接続を通して送るために、チャンクエンコーディングが用いられます。

+ +

参照

+ +
+
top
+

KeepAliveTimeout ディレクティブ

+ + + + + + + +
説明:持続的な接続で次のリクエストが来るまでサーバが待つ時間
構文:KeepAliveTimeout seconds
デフォルト:KeepAliveTimeout 15
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

接続を閉じる前に、Apache が次のリクエストを何秒待つかを指定します。 + リクエストを受け付けた後は、Timeout ディレクティブによって + 指定されたタイムアウト値が使われます。

+ +

KeepAliveTimeout を大きな値に設定すると、 + 負荷の高いサーバにおいてはパフォーマンスの問題を引き起こす場合があります。 + タイムアウトが長ければ長いほど、より多くのサーバプロセスが + 活発でないクライアントからの接続の終了を待ち続けることになります。

+ +
+
top
+

<Limit> ディレクティブ

+ + + + + + + +
説明:囲いの中にあるアクセス制御の適用を特定の HTTP メソッドのみに +制限する
構文:<Limit method [method] ... > ... + </Limit>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

アクセス制御は、通常全てのアクセスメソッドに対して + 影響し、普通はこれが望ましい挙動です。 + そうしたことから、大部分の場合にはアクセス制御に関わるディレクティブを + <Limit> セクション内に + 書くべきではありません。

+ +

<Limit> ディレクティブの + 目的は、アクセス制御の範囲を + 指定された HTTP メソッドに限定するためです。 + それ以外のメソッドは、<Limit> で囲われたアクセス制御の + 影響を受けません。 + 以下の例は、POST, PUT, DELETE のメソッドに対してのみアクセスの制御を行ない、 + それ以外のメソッドについては制限しません:

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

メソッド名には以下の中から一つ以上を列挙することができます: + GET, + POST, PUT, DELETE, + CONNECT, OPTIONS, + PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, + LOCK, UNLOCK. メソッド名は + 大文字小文字を区別します。 GET を指定した場合には + HEAD リクエストにも制限がかかります。TRACE + メソッドに制限をかけることはできません。

+ +
アクセス制御が目的の場合は + <Limit> + セクションの代わりに <LimitExcept> セクションを使用した方が良いでしょう。 + <LimitExcept> + セクションでは不特定のメソッドに対しても防御できるからです。
+ + +
+
top
+

<LimitExcept> ディレクティブ

+ + + + + + + +
説明:指定されたもの以外の HTTP メソッドにアクセス制御を +制限する
構文:<LimitExcept method [method] ... > ... + </LimitExcept>
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

<LimitExcept> と + </LimitExcept> は、引数に + 含まれていない + HTTP のアクセスメソッドに適用するためのアクセス制御 + ディレクティブを括るために利用します。 + つまり、<Limit> セクションの反対の動作をし、 + 標準のメソッドと標準外や未認識のメソッドの場合の両方を設定できます。 + <Limit> のドキュメントも + 併せて参照してください。

+ +

例:

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion ディレクティブ

+ + + + + + + + +
説明:内部リダイレクトと入れ子になったサブリクエストの最大数を決定する
構文:LimitInternalRecursion number [number]
デフォルト:LimitInternalRecursion 10
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
互換性:Apache 2.0.47 以降で使用可能
+

内部リダイレクトは例えば Action ディレクティブを + 使っているときに起こります。Action ディレクティブは + 元々のリクエストを CGI スクリプトに内部リダイレクトを行ないます。 + サブリクエストはいくつかの URI に対して、リクエストされたときに + 何が起こるかを調べるための Apache の機構です。例えば、mod_dir + は DirectoryIndex ディレクティブ + がリストするファイルを調べるためにサブリクエストを使います。

+ +

LimitInternalRecursion は内部リダイレクトや + サブリクエストが無限ループに陥ったときのサーバクラッシュを防ぎます。 + 普通、そのようなループは設定に失敗したときに発生します。

+ +

このディレクティブは、リクエスト毎に評価される、二つの違う限界値を + 設定します。最初の number は、起こり得る + 内部リクエストの最大値を設定します。二つめの number は + サブリクエストが入れ子にできる深さを設定します。number を + 一つだけ指定したときは、両方の限界値にその値が設定されます。

+ +

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody ディレクティブ

+ + + + + + + + +
説明:クライアントから送られる HTTP リクエストのボディの +総量を制限する
構文:LimitRequestBody bytes
デフォルト:LimitRequestBody 0
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

このディレクティブは、リクエストボディに許されるバイト数、bytes + を 0 (無制限を意味します) から 2147483647 (2GB) までの数値で指定します。

+ +

LimitRequestBody ディレクティブは、 + ディレクティブが書かれたコンテキスト + (サーバ全体、ディレクトリ、ファイル、ロケーション) 内で + 許容する HTTP リクエストメッセージボディのサイズに制限をかけることができます。 + クライアントのリクエストがその制限値を越えていれば、 + サーバはリクエストを処理せずにエラーを返します。 + 普通のリクエストメッセージボディのサイズは、リソースの種類や + 許可されているメソッドによって大きく変わります。 + CGI スクリプトは、よく情報を受信するために + メッセージボディを使います。 + PUT メソッドの実装は、このディレクティブの値として + 少なくともあるリソースに対してサーバが受け付けようとする + 表現の大きさほどの値を必要とします。

+ +

このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。

+ +

ある場所へのファイルアップロードを許可する場合に、 + アップロードできるファイルのサイズを 100K に制限したければ、 + 以下のように指定します:

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields ディレクティブ

+ + + + + + + +
説明:クライアントからの HTTP リクエストのヘッダフィールドの数を +制限する
構文:LimitRequestFields number
デフォルト:LimitRequestFields 100
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

number には、0 (無制限を意味します) から 32767 + までの整数を指定します。 + デフォルト値は、定数 DEFAULT_LIMIT_REQUEST_FIELDS + によりコンパイル時に定義されます (配布時には 100 と指定されています)。

+ +

LimitRequestBody ディレクティブは、 + サーバ管理者が HTTP リクエスト中において許可するリクエストヘッダフィールド数を + 指定します。 + サーバはこの値には通常のクライアントからのリクエストに含まれるであろう + フィールドの数より大きな値が必要とします。 + クライアントにより使われた要求ヘッダーフィールドの数が + 20 を超えることはほとんどありませんが、 + これは種々のクライアントの実装よって変わり、 + 詳細なコンテントネゴシエーションをするためのブラウザの設定までにも + 影響されることがあります。 + オプションの HTTP 拡張はリクエストヘッダフィールドを使って現される場合が + 多くあります。

+ +

このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。 + リクエストのフィールドが多過ぎることを意味するエラー応答が + 普通のクライアントに返されるような時はこの値を増やしてください。

+ +

例:

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize ディレクティブ

+ + + + + + + +
説明:クライアントからの HTTP リクエストのヘッダの +サイズを制限する
構文:LimitRequestFieldsize bytes
デフォルト:LimitRequestFieldsize 8190
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

このディレクティブは、HTTP リクエストヘッダ内に含めることのできる + バイト数、bytes を + 0 からコンパイル時に定義される定数 + DEFAULT_LIMIT_REQUEST_FIELDSIZE (配布時には 8192 と指定) + で指定された値までの数字で指定します。

+ +

LimitRequestFieldSize ディレクティブは、 + サーバのコンパイル時に指定したインプットバッファ容量以下に + HTTP リクエストヘッダの許容されるサイズを制限することができます。 + サーバは、このディレクティブの値として、 + 通常のクライアントリクエストから送られた個々のヘッダフィールドに + 十分足る大きさを必要とします。 + 普通のリクエストヘッダのサイズは、個々のクライアントにより大きく変わり、 + 詳細なコンテントネゴシエーションをするためのブラウザの設定までにも + 影響されることがあります。

+ +

このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。

+ +

例:

+ +

+ LimitRequestFieldSize 4094 +

+ +
通常はデフォルトから変更する必要はありません。
+ + +
+
top
+

LimitRequestLine ディレクティブ

+ + + + + + + +
説明:クライアントからの HTTP リクエスト行のサイズを制限する
構文:LimitRequestLine bytes
デフォルト:LimitRequestLine 8190
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

このディレクティブは、HTTP リクエスト行内で許容されるバイト数 + bytes を 0 からコンパイル時の定数 + DEFAULT_LIMIT_REQUEST_LINE (配布時には 8190 と指定) + で指定された値までの数字で指定します。

+ +

LimitRequestLine ディレクティブにより、サーバ管理者は + サーバのコンパイル時に指定したインプットバッファ容量以下に + クライアントからの HTTP リクエスト行のサイズの制限を行なうことができます。 + リクエスト行は、HTTPメソッド、URI、プロトコルバージョンから成っており、 + LimitRequestLine はサーバへのリクエストに対して + 許容するリクエスト URI の長さを制限することになります。 + サーバは、GET リクエストのクエリ部分も含めて、リソースの名前が入るに足る + 大きさを必要とします。

+ +

このディレクティブは、 + 管理者にクライアントからの異常なリクエストを制御できるようにし、 + 何らかの形のサービス拒否攻撃 (訳注:DoS) を避けるのに有効です。

+ +

例:

+ +

+ LimitRequestLine 4094 +

+ +
通常はデフォルトから変更する必要はありません。
+ +
+
top
+

LimitXMLRequestBody ディレクティブ

+ + + + + + + + +
説明:XML 形式のリクエストのボディのサイズを制限する
構文:LimitXMLRequestBody bytes
デフォルト:LimitXMLRequestBody 1000000
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

XML 形式のリクエストのボディの最大値を (バイト単位で) 制限します。 + 値に 0 を指定するとチェックを無効にします。

+ +

例:

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location> ディレクティブ

+ + + + + + +
説明:囲んだディレクティブをマッチする URL のみに適用
構文:<Location + URL-path|URL> ... </Location>
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

<Location> ディレクティブは、 + URL により中に書かれたディレクティブの適用範囲を制限します。 + <Directory> + ディレクティブと似ていて、 + </Location> ディレクティブで終了する + サブセクションを開始します。 + <Location> セクションは、 + <Directory> セクションと + .htaccess の読み込みの後、 + <Files> セクションを + 適用した後に、設定ファイルに現れた順に処理されます。

+ +

<Location> セクションは + 完全にファイルシステムと関連せずに動作します。このことから導かれる + 結果にはいつくか注意する点があります。最も重要なものは、 + ファイルシステムの位置へのアクセス制御に <Location> ディレクティブを使うべきではない + ということです。複数の URL がファイルシステムの同じ位置にマップされる + 可能がありますので、そのようなアクセス制御は回避されてしまう可能性が + あります。

+ +

いつ <Location> を使うか

+ +

<Location> ディレクティブは + ファイルシステム外のコンテンツにディレクティブを適用するときに + 使用してください。ファイルシステムに存在するコンテンツに対しては、 + <Directory><Files> を使ってください。 + 例外は、<Location /> で、これはサーバ全体に対して + 設定を適用する簡単な方法です。

+
+ +

全ての (プロキシ以外の) リクエストに対し、 + URL は /path/ という、 + 接頭辞 http://servername を含まない形でマッチします。 + プロキシリクエストの場合には、scheme://servername/path + という接頭辞を含む形でマッチし、接頭辞を含めて指定する必要があります。

+ +

URL にはワイルドカードを利用することができます。 + ? は任意の一文字、* は任意の文字列にマッチします。

+ +

~ という文字を追加することで、拡張正規表現を + 利用することもできます。 + 例えば:

+ +

+ <Location ~ "/(extra|special)/data"> +

+ +

は URL に /extra/data/special/data という文字列が + 含まれている場合にマッチします。 + <LocationMatch> ディレクティブは + <Location> の正規表現 + 版とまったく同じ動作をします。

+ +

<Location> 機能は、SetHandler ディレクティブと + 組合わせて利用すると特に便利です。 + 例えば、foo.com のブラウザからのみステータスの参照を有効にしたければ、 + 次のようにすれば良いでしょう。

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .foo.com
+
+ </Location> +

+ +

/ (スラッシュ) に関する注

+

スラッシュ文字は、URL 内に現れる場所に応じて変化する + 特別な意味を持っています。 + ファイルシステムにおいて利用する場合には複数のスラッシュでも一つの + スラッシュとして扱われることが多いですが、 + (すなわち/home///foo は + /home/foo と同じいったように) + URL においては必ずしもそうなるわけではありません。 + <LocationMatch> + ディレクティブや正規表現を利用した + <Location> ディレクティブで、 + 複数のスラッシュにマッチさせたいときには、、明示的に記述する + 必要があります。

+ +

例えば、<LocationMatch ^/abc> は、 + /abc というリクエスト URL にマッチしますが、 + //abc というリクエスト URL にはマッチしません。 + (正規表現でない) <Location> + ディレクティブは、 + proxy リクエストに対して利用する際には同様の振る舞いをしますが、 + (正規表現でない) <Location> を proxy + でないリクエストに対して利用する際には、 + 一つのスラッシュで複数のスラッシュにマッチします。 + 例えば、<Location /abc/def> と指定し、 + /abc//def というリクエストがあれば、 + マッチすることになります。

+ + +

参照

+ +
+
top
+

<LocationMatch> ディレクティブ

+ + + + + + +
説明:囲んだディレクティブを正規表現にマッチする URL のみに +適用
構文:<LocationMatch + regex> ... </LocationMatch>
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

<LocationMatch> ディレクティブは、 + <Location> と同じ様に + URL により中に書かれたディレクティブの適用範囲を制限します。 + 但し、引数は普通の文字列ではなく、正規表現となります。例えば、

+ +

+ <LocationMatch "/(extra|special)/data"> +

+ +

は URL に /extra/data/special/data + という文字列が含まれている場合にマッチします。

+ +

参照

+ +
+
top
+

LogLevel ディレクティブ

+ + + + + + + +
説明:ErrorLog の冗長性を制御する
構文:LogLevel level
デフォルト:LogLevel warn
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

LogLevel は、エラーログ (ErrorLog ディレクティブを + 見てください) へ記録するメッセージの冗長性を調整します。 + 以下の level を指定でき、順に重要度が下がっていきます。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
レベル 説明
emerg 緊急 - システムが利用できないChild cannot open lock file. Exiting + (子プロセスがロックファイルを開けないため終了した)
alert 直ちに対処が必要getpwuid: couldn't determine user name from uid + (getpwuid: UID からユーザ名を特定できなかった)
crit 致命的な状態socket: Failed to get a socket, exiting child + (socket: ソケットが得られないため、子プロセスを終了させた)
error エラーPremature end of script headers + (スクリプトのヘッダが足りないままで終わった)
warn 警告child process 1234 did not exit, sending another SIGHUP + (子プロセス 1234 が終了しなかった。もう一度 SIGHUP を送る)
notice 普通だが、重要な情報httpd: caught SIGBUS, attempting to dump core in ... + (httpd: SIGBUS シグナルを受け、... へコアダンプをした)
info 追加情報"Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..." (「サーバは負荷が高い、 + (StartServers や Min/MaxSpareServers の値を増やす必要があるかも)」)
debug デバッグメッセージ"Opening config file ..." (設定ファイルを開いている...)
+ +

特定のレベルが指定された場合、それより高いレベルの全てのメッセージが + 報告されます。 + 例えばLogLevel info に指定すると、 + noticewarn も報告されます。

+ +

なお crit 以上のレベルを指定することが推奨されます。

+ +

例:

+ +

+ LogLevel notice +

+ +

+

ファイルにログを出力する場合、notice + レベルのメッセージは抑制されず、すべてログに出力されます。 + しかし syslog を使用している場合は、 + これは当てはまりません。

+
+ +
+
top
+

MaxKeepAliveRequests ディレクティブ

+ + + + + + + +
説明:持続的な接続上で許可されるリクエストの数
構文:MaxKeepAliveRequests number
デフォルト:MaxKeepAliveRequests 100
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

MaxKeepAliveRequests ディレクティブは、 + KeepAlive が有効な場合に、 + 一回の接続で受け付け可能なリクエストの数を制限します。 + 0 に設定していれば、受け付けるリクエストは無制限になります。 + この設定は、サーバ性能を向上させるために、大きな数値を指定すること勧めます。 +

+ +

例:

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost ディレクティブ

+ + + + + + +
説明:名前ベースのバーチャルホストのための IP アドレスを指定
構文:NameVirtualHost addr[:port]
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

NameVirtualHost ディレクティブは、 + 名前ベースのバーチャルホストの設定を行ないたい場合に + 必要となるものです。

+ +

addr にはホスト名を指定できますが、 + 常に IP アドレスを指定するのが推奨されます。 + 例えば、

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

NameVirtualHost ディレクティブは、 + 名前ベースのバーチャルホストを + 利用してリクエストを受け付ける IP アドレスを指定します。 + これは、普通は名前ベースのバーチャルホストアドレスです。 + ただし、ファイアーウォールや他のプロキシがリクエストを受け付け、 + 違う IP アドレスのサーバにフォワードするという場合は、 + リクエストを提供したいマシン上の物理インターフェースの + IP アドレスを指定する必要があります。 + 複数のアドレスで複数の名前ベースのバーチャルホストを指定する場合は + 各アドレスに対してディレクティブを書いてください。

+ +

+

「主サーバ」や、どの _default_ サーバも、 + NameVirtualHost で指定した IP アドレスへのリクエスト + を処理することはありません (なぜか + NameVirtualHost を + 指定したけどそのアドレスに VirtualHost を定義しなかった場合を除く)。

+
+ +

名前ベースのバーチャルホストにポート番号を指定することも可能です。 + 例えば

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

IPV6 のアドレスは次の例のように角括弧で囲む必要があります:

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ +

すべてのインタフェースへのリクエストを受け取るようにするためには、 + 引数として * を使います。

+ +

+ NameVirtualHost * +

+ +

<VirtualHost> ディレクティブの引数

+

<VirtualHost> ディレクティブの引数は NameVirtualHost ディレクティブの引数に正確に + 合っている必要があることに注意してください。

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+

+
+ + +

参照

+ +
+
top
+

Options ディレクティブ

+ + + + + + + + +
説明:ディレクトリに対して使用可能な機能を設定する
構文:Options + [+|-]option [[+|-]option] ...
デフォルト:Options All
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Options
ステータス:Core
モジュール:core
+

Options ディレクティブは、特定のディレクトリに対して + どの機能が使用可能かを制御します。

+ +

optionNoneに指定すると、 + 特別な機能は全て無効になります。 + また、以下の示す 1 個以上のものを指定できます。

+ +
+
All
+ +
MultiViews を除いた全ての機能が有効となります。 + これがデフォルトです。
+ +
ExecCGI
+ +
+ mod_cgi による CGI スクリプトの実行を許可します。
+ +
FollowSymLinks
+ +
+ サーバが、このディレクトリ内でシンボリックリンクをたどれるようにします。 +

サーバがシンボリックリンクをたどる場合でも、 + <Directory> セクションに + マッチさせるための + パス名は変更されません

+

<Location> 内に + このオプションを指定しても無視されることに + 注意してください。

+ +
Includes
+ +
+ mod_include が提供する SSI を有効にします。
+ +
IncludesNOEXEC
+ +
+ SSI は有効になりますが、#exec コマンド と #exec CGI は無効になります。 + ただし、#include virtual により、ScriptAlias されたディレクトリで + CGI を実行することは可能です。
+ +
Indexes
+ +
+ もし、URL がディレクトリにマップするリクエストであって、 + 且つ DirectoryIndex で指定したファイル (例えば、index.html) が + ディレクトリ内に無ければ、mod_autoindex が + ディレクトリ内の一覧を整形して返します。
+ +
MultiViews
+ +
+ mod_negotiation による + コンテントネゴシエーション + された "MultiViews" を許可します。
+ +
SymLinksIfOwnerMatch
+ +
+ シンボリック先のファイルまたはディレクトリが、 + シンボリックリンクの所有ユーザ ID と同じ場合にのみシンボリックリンクを + たどれるようにします。 + +

<Location> 内にこのオプションを + 指定しても無視されます。
+
+
+ +

通常、ディレクトリに対して複数の Options が + 適用可能な場合、 + 最も近いもの一つのみが適用され、他のものは無視されます。 + 複数の指定がマージされるわけではありません。(セクションのマージ方法を参照してください。) + しかし、すべての Options ディレクティブが +- 付きで + 指定された場合はオプションの値はマージされます。 + + を頭につければ現在の設定に加えられ、 + - を付ければ現在の設定から削除されます。

+ +

例えば、+- を利用しない場合は:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

/web/docs/spec というディレクトリには、 + Includes だけが適用されます。 + しかし、2 番目の Options+- を利用してみると:

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

/web/docs/spec というディレクトリには、 FollowSymLinks と + Includes が適用されます。

+ +

+

-IncludesNOEXEC もしくは + -Includes を指定すると、 + 前の設定がどのようになっていようとも SSI は無効となります。

+
+ +

どのような設定もされていなければ、デフォルトでは All に + なります。

+ +
+
top
+

Require ディレクティブ

+ + + + + + + +
説明:どの認証済みユーザがリソースをアクセスできるかを選択する
構文:Require entity-name [entity-name] ...
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Core
モジュール:core
+

このディレクティブは、どの認証済みのユーザがディレクトリに + アクセスすることができるかを指定します。 + 以下のような構文になります。

+ +
+
Require user userid [userid] ...
+ +
指定されたユーザのみ、ディレクトリへのアクセスを許可します。
+ +
Require group group-name [group-name] ...
+ +
指定されたグループに属するユーザのみ、ディレクトリへのアクセスを許可します。
+ +
Require valid-user
+ +
全ての認証されたユーザに、ディレクトリへのアクセスを許可します。
+
+ +

Require は、正しく動作するためには AuthName 及び AuthType ディレクティブや、 + (ユーザとグループを指定するために) AuthUserFile 及び AuthGroupFile + といったディレクティブと共に + 指定する必要があります。 + 例えば:

+ +

+ AuthType Basic
+ AuthName "Restricted Directory"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

このようにして適用されたアクセス制御は、全てのメソッドに + 対して行なわれます。 + 通常は、これが望ましい動作です。 + もし、特定のメソッドに対してのみアクセスの制御を適用し、 + 他のメソッドは制限しない場合には、<Limit> セクション内に + Require を + 指定してください。

+ + +

参照

+ +
+
top
+

RLimitCPU ディレクティブ

+ + + + + + + + +
説明:Apache の子プロセスから起動されたプロセスの CPU 消費量を +制限する
構文:RLimitCPU seconds|max [seconds|max]
デフォルト:未設定。オペレーティングシステムのデフォルトを使用
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

一つか二つのパラメータをとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + max のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + root で実行するか起動されなければいけません。

+ +

ちなみに、この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。

+ +

CPU リソースのリミットはプロセスあたりの秒数で表わされます。

+ + +

参照

+ +
+
top
+

RLimitMEM ディレクティブ

+ + + + + + + + +
説明:Apache の子プロセスから起動されたプロセスのメモリ消費量を +制限する
構文:RLimitMEM bytes|max [bytes|max]
デフォルト:未設定。オペレーティングシステムのデフォルトを使用
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

一つか二つのパラメータををとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + max のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + root で実行するか起動されなければいけません。

+ +

この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。

+ +

メモリリソースのリミットはプロセスあたりのバイト数で表わされます。

+ +

参照

+ +
+
top
+

RLimitNPROC ディレクティブ

+ + + + + + + + +
説明:Apache の子プロセスから起動されたプロセスが起動するプロセスの +数を制限する
構文:RLimitNPROC number|max [number|max]
デフォルト:未設定。オペレーティングシステムのデフォルトを使用
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

一つか二つのパラメータをとります。 + 最初のパラメータは全プロセスに対するリソースのソフトリミットを設定し、 + 2 番目のパラメータは最大のリソースリミットを設定します。 + パラメータには数字か、オペレーティングシステムの最大となる + max のどちらかを指定することができます。 + 最大のリソースリミットを上げるためには、サーバを + root で実行するか起動されなければいけません。

+ +

この設定は Apache の子プロセス自体ではなく、 + リクエストを受け付けた Apache の子プロセスから fork されたプロセスに + 適用されます。 + これには CGI や SSI から実行されたコマンドが含まれますが、Apache の + 親プロセスから fork されたログのパイププロセスなどには適用されません。

+ +

プロセスの制限は、ユーザあたりのプロセス数で制御されます。

+ +

+

CGI プロセスがウェブサーバのユーザ ID 以外で実行されるので + 無ければ、 + このディレクティブは、サーバ自身が生成できるプロセスの数を制限することになります。 + そのような状況になっているかどうかは、error_log 中の + cannot fork というメッセージにより + 確認することができます。

+
+ +

参照

+ +
+
top
+

Satisfy ディレクティブ

+ + + + + + + + + +
説明:ホストレベルのアクセス制御とユーザ認証との相互作用を指定
構文:Satisfy Any|All
デフォルト:Satisfy All
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Core
モジュール:core
互換性:バージョン 2.0.51 以降では <Limit> ディレクティブと <LimitExcept> ディレクティブの影響を受ける +
+

Allow と + Require の両方が使われているときの + アクセスポリシーを設定します。パラメータは AllAny + です。このディレクティブはある場所へのアクセスがユーザ名/パスワード + クライアントのホストのアドレスで制限されているときにのみ + 役立ちます。デフォルトの動作 (All) はクライアントがアドレスによる + アクセス制限を満たし、かつ正しいユーザ名とパスワードを入力することを + 要求します。Any では、クライアントはホストの制限を満たすか、 + 正しいユーザ名とパスワードの入力をするかをすればアクセスを許可されます。 + これは、ある場所をパスワードで保護するけれど、特定のアドレスからの + クライアントにはパスワードの入力を要求せずにアクセスを許可する、 + というようなときに使用できます。

+ +

例えば、同じネットワーク上にいる人にはウェブサイトのある部分について + 無制限のアクセスを許したいけれど、外のネットワークの人には + パスワードを提供させるようにするためには、次のような設定をすることが + できます:

+ +

+ Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +

+ +

バージョン 2.0.51 からは + <Limit> セクションと + <LimitExcept> セクションを使用することで + Satisfy ディレクティブが + 適用されるメソッドを制限することが + できるようになりました。

+ +

参照

+ +
+
top
+

ScriptInterpreterSource ディレクティブ

+ + + + + + + + + +
説明:CGI スクリプトのインタープリタの位置を調べるための手法
構文:ScriptInterpreterSource Registry|Registry-Strict|Script
デフォルト:ScriptInterpreterSource Script
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Win32 のみ。 +オプション Registry-Strict は Apache 2.0 以降で使用可能
+

このディレクティブは、Apache で CGI スクリプトを + 実行する場合に利用するインタープリタを、 + どのように探し出すかについて制御するために使用します。 + デフォルトの設定は Script です。これはスクリプトの + shebang 行 (最初の行で #! から始まるもの) + に指されているインタープリタを使用します。Win32 ではその行は + 以下の様になります。

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

もしくは、perl が PATH にある場合は単に:

+ +

+ #!perl +

+ +

ScriptInterpreterSource Registry を指定すると、 + スクリプトファイルの拡張子 (例えば、.pl) を + キーとして、Windows のレジストリツリー HKEY_CLASSES_ROOT + を検索するようになります。レジストリのサブキー + Shell\ExecCGI\Command か、それが存在しない場合は + Shell\Open\Command がスクリプトファイルを開くために + 使われます。レジストリキーが見つからないときは、Apache は Script + オプションが指定されたときの動作に戻ります。

+ +

セキュリティ

+

ScriptInterpreterSource RegistryScriptAlias されたディレクトリで使うときは + 注意してください。Apache はそのディレクトリ中のすべてのファイルを + 実行しようとします。Registry という設定は通常は実行されない + ファイルに対して望ましくないプログラムの実行が発生する可能性があります。 + 例えば、ほとんどの Windows システムで、 + .htm ファイルのデフォルトの「開く」コマンドは + Microsoft Internet Explorer を実行しますので、スクリプトに指定された + ディレクトリにある .htm ファイルへのリクエストはサーバの + バックグラウンドでブラウザを実行することになります。これは、一分内くらいで + システムをクラッシュさるための良い方法です。

+
+ +

Apache 2.0 から導入されたオプション Registry-Strict は + Registry と同じことを行ないますが、サブキー + Shell\ExecCGI\Command のみを使います。 + ExecCGI キーは普通に使われるキーではありません。Windows + レジストリに手動で設定する必要がありますので、システムでの偶発的なプログラムの + 実行を防ぐことができます。

+ +
+
top
+

ServerAdmin ディレクティブ

+ + + + + + +
説明:サーバがクライアントに送るエラーメッセージに含める電子メールの +アドレス
構文:ServerAdmin email-address
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
+

ServerAdmin は、クライアントに返すさまざまな + エラーメッセージ中に記述する、 + 電子メールアドレスを設定します。

+ +

その際、これのために専用のアドレスを設定するのが良いでしょう。 + 例えば、

+ +

+ ServerAdmin www-admin@foo.example.com +

+ +

といったようにします。ユーザはいつもサーバに関する話であるということを + 明記してくるわけではありませんので。

+ + +
+
top
+

ServerAlias ディレクティブ

+ + + + + + +
説明:リクエストを名前ベースのバーチャルホストにマッチさせているときに +使用されるホストの別名
構文:ServerAlias hostname [hostname] ...
コンテキスト:バーチャルホスト
ステータス:Core
モジュール:core
+

ServerAlias ディレクティブは、ネームベースのバーチャルホストにおいて + 使用するホストの別名を指定します。

+ +

+ <VirtualHost *>
+ ServerName server.domain.com
+ ServerAlias server server2.domain.com server2
+ # ...
+ </VirtualHost> +

+ +

参照

+ +
+
top
+

ServerName ディレクティブ

+ + + + + + + +
説明:サーバが自分自身を示すときに使うホスト名とポート
構文:ServerName fully-qualified-domain-name[:port]
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Core
モジュール:core
互換性:このディレクティブはバージョン 2.0 ではバージョン 1.3 の + Port ディレクティブの機能も含みます。
+

ServerName ディレクティブは、 + サーバが自分自身を示すホスト名とポートを設定します。 + これは、リダイレクトする URL を生成する際に利用されます。 + 例えば、ウェブサーバを動かしているマシンは simple.example.com + で、DNS のエイリアス www.example.com もあるときに、 + ウェブサーバが後者として認識されて欲しいときは、以下のようにディレクティブを + 使います。

+ +

+ ServerName www.example.com:80 +

+ +

ServerName が指定されていないときは、 + サーバは IP アドレスから逆引きを行なうことでホスト名を知ろうとします。 + ServerName にポートが指定されていないときは、 + サーバはリクエストが来ている + ポートを使います。最高の信頼性と確実性をもたらすためには、 + ServerName を使ってホスト名とポートを明示的に + 指定してください。

+ +

名前ベースのバーチャルホスト + を利用している場合、<VirtualHost> セクション内の + ServerName はこのバーチャルホストにマッチするために + 何がリクエストの Host: ヘッダに現れる必要があるのかを指定します。

+ +

自己参照 URL (例えば mod_dir モジュールによるものなど) + が指定されたポートを使うか、クライアントのリクエストのポート番号を使うかを + 決定する設定は UseCanonicalName + ディレクティブを参照してください。

+ +

参照

+ +
+
top
+

ServerPath ディレクティブ

+ + + + + + +
説明:非互換のブラウザが名前ベースのバーチャルホストにアクセスしたときの +ための互換用 URL パス名
構文:ServerPath URL-path
コンテキスト:バーチャルホスト
ステータス:Core
モジュール:core
+

ServerPath ディレクティブは、ネームベースのバーチャルホストにおいて利用する + 互換用 URL パス名を設定します。

+ +

参照

+ +
+
top
+

ServerRoot ディレクティブ

+ + + + + + + +
説明:インストールされたサーバのベースディレクトリ
構文:ServerRoot directory-path
デフォルト:ServerRoot /usr/local/apache
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

ServerRoot ディレクティブは、 + サーバが存在するディレクトリを設定します。 + 通常、conf/logs/ といったサブディレクトリが + 存在します。 + また、他の設定ファイルにおける相対パスは、このディレクトリからとなります。

+ +

+ ServerRoot /home/httpd +

+ + + +

参照

+ +
+
top
+

ServerSignature ディレクティブ

+ + + + + + + + +
説明:サーバが生成するドキュメントのフッタを設定
構文:ServerSignature On|Off|EMail
デフォルト:ServerSignature Off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:All
ステータス:Core
モジュール:core
+

ServerSignature ディレクティブは、 + サーバが生成するドキュメント + (エラーメッセージ、mod_proxy における FTP のディレクトリリスト、 + mod_info の出力、等々) + の最下行に付与するフッタの設定を行ないます。 + そのようなフッタ行を有効にしたい理由には、 + プロキシが複数連なっている場合に、ユーザはどのサーバが返した + エラーメッセージかを知る手段がほとんど無いというものがあります。

+ + +

デフォルトである Off に設定をすると、フッタ行が抑制されます + (そして、Apache-1.2 以前と互換の動作をします)。 + On に設定した場合は、単にドキュメントの中に、サーバのバージョン、 + 稼動中のバーチャルホストの ServerName の書かれた行を追加し、 + EMail にした場合はさらに参照されたドキュメントに対する ServerAdmin を指す "mailto:" が追加されます。

+ +

バージョン 2.0.44 以降ではこのディレクティブは ServerSignature + ディレクティブにより表示される情報も制御します。

+ +

参照

+ +
+
top
+

ServerTokens ディレクティブ

+ + + + + + + +
説明:Server HTTP 応答ヘッダを設定する
構文:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
デフォルト:ServerTokens Full
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

このディレクティブは、クライアントに送り返す Server + 応答ヘッダ内に、サーバの一般的な OS 種別や、 + コンパイルされて組み込まれているモジュールの情報を + 含めるかどうかを指定します。

+ +
+
ServerTokens Prod[uctOnly]
+ +
サーバは (例えば): Server: + Apache といったように送ります。
+ +
ServerTokens Major
+ +
Server sends (e.g.): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Server sends (e.g.): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
サーバは (例えば): Server: + Apache/2.0.41 といったように送ります。
+ +
ServerTokens OS
+ +
サーバは (例えば): Server: Apache/2.0.41 + (Unix) といったように送ります。
+ +
ServerTokens Full (もしくは未指定)
+ +
サーバは (例えば): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2 といったように送ります。
+
+ +

この設定はサーバ全体に適用され、バーチャルホスト上で有効にしたり + 無効にしたりはできません。

+ +

バージョン 2.0.44 以降ではこのディレクティブは ServerSignature + ディレクティブにより表示される情報も制御します。

+ +

参照

+ +
+
top
+

SetHandler ディレクティブ

+ + + + + + + + +
説明:マッチするファイルがハンドラで処理されるようにする
構文:SetHandler handler-name|None
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
互換性:Apache 2.0 で core に移動
+

.htaccess<Directory> + セクション、<Location> + セクションに書かれた場合、 + このディレクティブはそこにあるすべてのファイルが + handler-name で指定されたハンドラで扱われることを強制します。例えば、拡張子に関わらず、 + ディレクトリ全体がイメージマップファイルとして解析して欲しい場合には、 + 以下をそのディレクトリの .htaccess + ファイルに記述します:

+ +

+ SetHandler imap-file +

+ +

別の例: URL http://servername/status + が指定されたときにサーバが状態報告をするようにしたいときは、以下を + httpd.conf に記述します:

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+ +

None という値を設定することで、 + 前の方の SetHandler で定義された設定を無効にすることが + できます。

+ + +

参照

+ +
+
top
+

SetInputFilter ディレクティブ

+ + + + + + + +
説明:クライアントのリクエストや POST の入力を処理するフィルタを設定する
構文:SetInputFilter filter[;filter...]
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

SetInputFilter ディレクティブはクライアントの + リクエストや POST の入力をサーバが受け取ったときに処理するフィルタを + 設定します。これは AddInputFilter + ディレクティブを含め、他の場所で定義されているフィルタの設定に + 追加されます。

+ +

複数のフィルタを指定するときは、データを処理する順番に + セミコロンで区切る必要があります。

+ + +

参照

+ +
+
top
+

SetOutputFilter ディレクティブ

+ + + + + + + +
説明:サーバの応答を処理するフィルタを設定する
構文:SetOutputFilter filter[;filter...]
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Core
モジュール:core
+

SetOutputFilter ディレクティブは + サーバの応答をクライアントに送り返される前に処理するフィルタを設定します。 + これは AddOutputFilter + ディレクティブを含め、他の場所で定義されているフィルタの設定に + 追加されます。

+ +

例えば、以下の設定は /www/data/ ディレクトリのすべての + ファイルを SSI で処理します。

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

複数のフィルタを指定するときは、データを処理する順番に + セミコロンで区切る必要があります。

+ +

参照

+ +
+
top
+

TimeOut ディレクティブ

+ + + + + + + +
説明:各イベントについて、リクエストを失敗させるまでにサーバが +待つ時間を設定
構文:TimeOut seconds
デフォルト:TimeOut 300
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

TimeOut ディレクティブは、現在のところ + 以下の三つの待ち時間についての定義を行います:

+ +
    +
  1. GET リクエストを受け取るのにかかる総時間
  2. + +
  3. POST や PUTリクエストにおいて、次の TCP パケットが届くまでの待ち時間
  4. + +
  5. レスポンスを返す際、TCP の ACK が帰ってくるまでの時間
  6. +
+ +

将来には別々の設定をすることが可能にできるよう考慮中です。 + Apache 1.2 以前はタイマーは 1200 がデフォルトでしたが、 + 300 に下げられました。300 でもほとんどの場合は十分すぎる値です。 + コード中の変な場所にまだパケットを送る際にタイマをリセットしない + 場所があるかもしれないので、デフォルトをより小さい値にはしていません。

+ + +
+
top
+

UseCanonicalName ディレクティブ

+ + + + + + + +
説明:サーバが自分自身の名前とポートを決定する方法を設定する
構文:UseCanonicalName On|Off|Dns
デフォルト:UseCanonicalName On
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Core
モジュール:core
+

多くの状況で Apache は自己参照 URL、すなわち + 同じサーバを指す URL、を作成する必要があります。 + UseCanonicalName On を使うと (1.3 より前の + すべてのバージョンでも) Apache は ServerName ディレクティブと Port + ディレクティブを使ってサーバの正式な名前を作成します。 + この名前がすべての自己参照 URL で使われ、CGI の SERVER_NAME + と SERVER_PORT にも使われます。

+ +

UseCanonicalName Off では Apache は + クライアントがホスト名とポートを提供した場合には自己参照 URL を + それらを元に作成します (提供されていない場合は上で定義されているように + 正式な名前を使います)。 + これらの値は名前ベースの + バーチャルホストを実装するのに使われているのと同じ値で、 + 同じクライアントから取得できる値です。CGI 変数 SERVER_NAME + と SERVER_PORT もクライアントから与えられた値から + 作成されます。

+ +

これが有用な場合の例は、イントラネットのサーバで、www の + ような短い名前でユーザがマシンに接続しているときです。 + ユーザが短い名前を入力して、URL が最後のスラッシュ無しのディレクトリ + へのものであるときに、Apache はリクエストを + http://www.domain.com/splat/ へリダイレクトすることに + 気付くでしょう。認証をするように設定していると、この場合 + ユーザは 2 回認証をしなければならなくなります (www に + 対して 1 回、www.domain.com に対してもう一回 -- + より詳しい情報は この話題の + FAQ を参照してください)。 + しかし、UseCanonicalNameOff になっていると、 + Apache は htttp://www/splat/ にリダイレクトします。

+ +

三つ目のオプション UseCanonicalName DNS は、 + Host: ヘッダを提供しない古いクライアントをサポートした + 大規模な IP ベースのバーチャルホスティングで使用されることを + 意図しています。このオプションでは、Apache はクライアントが + 接続した IP アドレスに DNS の逆引きを行なって自己参照 URL を + 作成します。

+ +

警告

+

CGI が SERVER_NAME に + 関する仮定を行なっているときは、このオプションの設定で動作しなく + なるかもしれません。クライアントは実質的にはホスト名にとして + 何でも望みの値を指定することができます。CGI が + SERVER_NAME のみを使って自己参照 URL を作成している + 場合はどの設定を行なっても大丈夫なはずです。

+ +

参照

+ +
+
top
+

<VirtualHost> ディレクティブ

+ + + + + + +
説明:特定のホスト名や IP アドレスのみに適用されるディレクティブを +囲む
構文:<VirtualHost + addr[:port] [addr[:port]] + ...> ... </VirtualHost>
コンテキスト:サーバ設定ファイル
ステータス:Core
モジュール:core
+

<VirtualHost> 及び + </VirtualHost> は、 + 特定のバーチャルホストに対してのみ適用されるディレクティブ群を括る + ために使われます。 + バーチャルホストコンテキストで許可される全てのディレクティブを指定可能です。 + サーバが、指定されたバーチャルホストにあるドキュメントへの + リクエストを受け付けた場合、 + <VirtualHost> セクションの中にある + ディレクティブが適用されます。 + Addrは、次のものが利用できます:

+ +
    +
  • バーチャルホストの IP アドレス
  • + +
  • バーチャルホストの IP に対応する完全なドメイン名
  • + +
  • NameVirtualHost * と共に使われる、 + すべての IP アドレスにマッチする文字 *
  • + +
  • IP ベースのバーチャルホストで他のものにマッチしない IP アドレス + のための文字列 _default_
  • +
+ +

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@host.foo.com
+ DocumentRoot /www/docs/host.foo.com
+ ServerName host.foo.com
+ ErrorLog logs/host.foo.com-error_log
+ TransferLog logs/host.foo.com-access_log
+
+ </VirtualHost> +

+ +

IPv6 アドレスはオプションのポート番号の指定と区別するために、 + 角括弧で括って指定する必要があります。次は IPv6 の例です:

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@host.example.com
+ DocumentRoot /www/docs/host.example.com
+ ServerName host.example.com
+ ErrorLog logs/host.example.com-error_log
+ TransferLog logs/host.example.com-access_log
+
+ </VirtualHost> +

+ +

各々のバーチャルホストにはそれぞれ違う IP アドレス、ポート番号 + もしくはホスト名に対応する必要があり、 + 1 番目の場合には複数のアドレスで IP パケットを受信できるように + サーバマシンを設定しなければなりません。 + (もし、マシンが複数のネットワークインターフェースと持たない場合は、 + (OSがサポートしていれば) ifconfig alias コマンドにより + 達成できます)。

+ +

:port といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に Port で指定されたポートが + デフォルトとなります。 + :* を指定することにより、 + アドレス上の全てのポートにマッチします。(_default_ のときは + これを使うことが推奨されています。)

+ +

セキュリティに関して: + サーバーを起動した以外のユーザがログファイルが保管されるディレクトリに + 書き込み可能なときになぜセキュリティが破られる可能性があるかの詳細は + セキュリティに関するコツ を + 参照してください。

+ +

注意点

+

<VirtualHost> は Apache が Listen する + IP アドレスには影響を与えません。 + Listen を + 使って Apache が正しいアドレスを listen するように設定する必要があります。

+
+ +

IP ベースのバーチャルホストを使っている場合は、特別な名前 + _default_ を指定することができます。その場合は + そのバーチャルホストは他のバーチャルホストで明示的に挙げられていない + すべての IP アドレスにマッチします。_default_ バーチャルホストが無い + 場合に IP がバーチャルホストで指定されたものにマッチしないときは、 + VirtualHost セクションの外のすべての定義からなる「主」サーバ設定が + 使われます。(ただし、NameVirtualHost ディレクティブにマッチする + すべての IP アドレスは「主」サーバ設定も _default_ バーチャルホストも + 使わないことに注意してください。詳しくは ネームベースのバーチャルホスト を + 参照してください。)

+ +

:port といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に Listen で指定された + ポートがデフォルトとなります。 + :* を指定することにより、 + アドレス上の全てのポートにマッチします。(_default_ のときは + これを使うことが推奨されています。)

+ +

:port といった形式で記述することにより、 + マッチさせるポートを変更可能です。 + この指定をしない場合には、主サーバ設定における + 一番最後に Port で指定されたポートが + デフォルトとなります。 + :* を指定することにより、 + アドレス上の全てのポートにマッチします。(_default_ のときは + これを使うことが推奨されています。)

+ +

セキュリティ

+

サーバーを起動した以外のユーザがログファイルが保管されるディレクトリに + 書き込み可能なときになぜセキュリティが破られる可能性があるかの詳細は + セキュリティに関するコツ を + 参照してください。

+ +

参照

+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/core.html.tr.utf8 b/rubbos/app/apache2/manual/mod/core.html.tr.utf8 new file mode 100644 index 00000000..c234f217 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/core.html.tr.utf8 @@ -0,0 +1,3177 @@ + + + +core - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Temel Özellikleri

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + tr 

+
+ +
Açıklama:Apache HTTP Sunucusunda daima mevcut olan çekirdek + özellikler
Durum:Çekirdek
+
+ + +
top
+

AcceptPathInfo Yönergesi

+ + + + + + + + + +
Açıklama:Dosya isminden sonra belirtilen yol verisini kabul veya + reddeder.
Sözdizimi:AcceptPathInfo On|Off|Default
Öntanımlı:AcceptPathInfo Default
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 2.0.30 ve sonrasında mevcuttur.
+

Bu yönerge, istekte dosya isminden sonra (dizinde belirtilen dosya + bulunmayabilir) belirtilen yol verisinin kabul edilip edilmeyeceğini + denetler. Dosya isminden sonra belirtilen yol verisi + PATH_INFO ortam değişkeninde betiklerin kullanımına + sunulabilir.

+ +

Örneğin, içinde sadece here.html dosyası bulunan bir + /test/ dizinimiz olsun. /test/here.html/more + ve /test/nothere.html/more isteklerinin her ikisi de + PATH_INFO değişkenine /more verisinin + atanmasını sağlar.

+ +

AcceptPathInfo yönergesine atanabilecek argüman + sayısı üçtür:

+
+
Off
Sadece dosya isminden sonra yol verisi + bulunmayan istekler kabul edilir. Yukarıdaki örnekteki gibi + /test/here.html/more şeklindeki istekler bir 404 (Nesne + bulunamadı) hatasıyla sonuçlanır.
+ +
On
Mevcut bir dosyaya ait bir dosya isminden + sonra bir yol verisinin de belirtildiği istekler kabul edilir. + Yukarıdaki örnekteki gibi /test/here.html/more şeklindeki + istekler, /test/here.html geçerli bir dosya olduğu + takdirde kabul edilir.
+ +
Default
Dosya isminden sonra yol verisi + belirtilen isteklerin nasıl ele alınacağı istekten sorumlu eylemci tarafından saptanır. Normal dosyalar + için çekirdek eylemci öntanımlı olarak PATH_INFO + isteklerini reddeder. cgi-script ve isapi-handler gibi betiklere + hizmet eden eylemciler ise genellikle PATH_INFO + isteklerini öntanımlı olarak kabul ederler.
+
+ +

AcceptPathInfo yönergesinin birincil amacı eylemcinin + PATH_INFO istekleri hakkında verdiği kabul veya red + kararını geçersiz kılabilmenizi sağlamaktır. Örneğin, + PATH_INFO’ya dayalı olarak içerik üretmek için INCLUDES gibi bir süzgeç kullandığınız takdirde bu + geçersizleştirme zorunlu olur. Normal dosyalar için çekirdek eylemci + normal olarak isteği reddederdi, böyle bir durumda bir betiği etkin + kılmak için aşağıdaki gibi bir yapılandırma kullanabilirsiniz:

+ +

+ <Files "mypaths.shtml">
+ + Options +Includes
+ SetOutputFilter INCLUDES
+ AcceptPathInfo On
+
+ </Files> +

+ + +
+
top
+

AccessFileName Yönergesi

+ + + + + + + +
Açıklama:Dağıtık yapılandırma dosyasının ismi belirtilir.
Sözdizimi:AccessFileName filename [filename] ...
Öntanımlı:AccessFileName .htaccess
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

Belge yolu üzerindeki dizinlerde dağıtık yapılandırma dosyalarının bulunmasına izin verilmişse sunucu bir isteği + işlerken önce bu dizinlerde bu yönergede belirtilmiş yapılandırma + dosyasını arar. Örnek:

+ +

+ AccessFileName .acl +

+ +

Sunucu, /usr/local/web/index.html belgesini döndürmeden + önce,

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory> +

+ +

şeklinde bir yapılandırma ile iptal edilmiş olmadıkça yönergeler için + /.acl, /usr/.acl, + /usr/local/.acl ve /usr/local/web/.acl + dosyalarını okur.

+ +

Ayrıca bakınız:

+ +
+
top
+

AddDefaultCharset Yönergesi

+ + + + + + + + +
Açıklama:Bir yanıtın içerik türü text/plain veya + text/html olduğunda eklenecek öntanımlı karakter kümesi + parametresini belirler.
Sözdizimi:AddDefaultCharset On|Off|karküm
Öntanımlı:AddDefaultCharset Off
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

Bu yönerge, yanıtın içerik türü text/plain veya + text/html olmak şartıyla yanıta eklenecek karakter + kümesini (karakter kodlamasınının ismini) belirler. Bu, asıl davranış + çoğunlukla kullanıcının istemci yapılandırmasına bağlı olmakla + birlikte, yanıtın gövdesinde META elemanı vasıtasıyla + belirtilmiş karakter kümesini geçersiz kılar. AddDefaultCharset + Off şeklinde bir atama bu işlevselliği iptal eder. + AddDefaultCharset On ile bu işlevsellik etkin kılınmaktan + başka iso-8859-1 karakter kümesini öntanımlı olarak yanıta + eklenir. Yönergede karküm olarak belirtilecek değerler, MIME + ortam türlerinde kullanmak üzere IANA’da kayıtlı + karakter kümesi değerlerinden biri olmalıdır. Örnek:

+ +

+ AddDefaultCharset utf-8 +

+ +

AddDefaultCharset yönergesi sadece, metin + kaynaklarının hepsinin aynı karakter kümesine sahip olduğu bilindiği + takdirde ve her birinde ayrı ayrı karakter kümesi belirtmek çok + külfetli olacaksa kullanılmalıdır. Buna bir örnek, CGI betikleri + tarafından üretilmiş içeriğe sahip kaynaklara karakter kümesinin + eklenmesidir; böyle kaynaklar çıktıda kullanıcı tarafından sağlanmış + veri içermeleri nedeniyle karşı siteden kaynaklanan betikli + saldırılardan zarar görebilir. Bununla birlikte, bir öntanımlı karakter + kümesi belirtmek, tarayıcılarında “karakter kodlamasını kendiliğinden + sapta” özelliğini etkin kılmış kullanıcıları korumayacağından daha iyi + bir çözüm bu betikleri bu tür saldırılara karşı düzeltmek veya en iyisi + silmektir.

+ +

Ayrıca bakınız:

+ +
+
top
+

AddOutputFilterByType Yönergesi

+ + + + + + + + +
Açıklama:Belli bir MIME türüne bir çıktı süzgeci atar.
Sözdizimi:AddOutputFilterByType süzgeç[;süzgeç...] +MIME-türü [MIME-türü] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:2.0.33 ve sonrasında mevcuttur.
+

Bu yönerge yanıtın  MIME türüne + bağlı olarak bir istek için belli bir çıktı + süzgecini etkin kılar.

+ +

Aşağıdaki örnekte mod_deflate modülünce sağlanan + DEFLATE süzgeci kullanılmıştır. Bu süzgeç, + text/html veya text/plain olarak yaftalanmış + tüm çıktıyı (ister durağan ister devingen olsun) istemciye göndermeden + önce sıkıştırır.

+ +

+ AddOutputFilterByType DEFLATE text/html text/plain +

+ +

İçeriğin birden fazla süzgeç tarafından işlenmesini isterseniz süzgeç + isimlerini noktalı virgüllerle ayırarak belirtebilirsiniz. Ayrıca, bu + süzgeçlerin her biri için ayrı bir + AddOutputFilterByType yönergesi belirtmek de + mümkündür.

+ +

Aşağıdaki yapılandırma text/html olarak yaftalanmış tüm + betik çıktılarının önce INCLUDES sonra da + DEFLATE süzgecinden geçirilmesine sebep olur.

+ +

+ <Location /cgi-bin/>
+ + Options Includes
+ AddOutputFilterByType INCLUDES;DEFLATE text/html
+
+ </Location> +

+ +

Ek Bilgi

+

Süzgeçlerin AddOutputFilterByType ile etkin + kılınması bazı durumlarda kısmen bazılarında da tamamen başarısızlığa + uğrayabilir. Örneğin,  MIME türü + saptanamadığı takdirde hiçbir süzgeç uygulanmaz ve DefaultType aynı olsa bile son çare olarak + DefaultType ayarlarına geri + dönülür.

+ +

Bununla birlikte, süzgeçlerin uygulanacağına emin olmak isterseniz, + bir kaynağa içerik türünü örneğin, AddType veya + ForceType ile açıkça + atayabilirsiniz. Ayrıca, içerik türünü (bir nph-olmayan) CGI betiği + içinde ayarlamak da bu güvenceyi sağlar.

+

Türe bağlı çıktı süzgeçleri vekil isteklerinde asla uygulanmaz.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

AllowEncodedSlashes Yönergesi

+ + + + + + + + +
Açıklama:Kodlanmış dosya yolu ayracı içeren URL’lere izin verilip + verilmeyeceğini belirler.
Sözdizimi:AllowEncodedSlashes On|Off
Öntanımlı:AllowEncodedSlashes Off
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 2.0.46 ve sonrasında mevcuttur.
+

AllowEncodedSlashes yönergesi kodlanmış dosya + yolu ayracı içeren URL’lere izin verir (/ yerine + %2F ve ek olarak \ için ilgili sistemlerde + %5C kullanılmış URL’ler). Normalde böyle URL’ler bir 404 + (Nesne bulunamadı) hatasıyla reddedilirler.

+ +

AllowEncodedSlashes On, çoğunlukla + PATH_INFO ile bir arada kullanıldığı zaman + kullanışlıdır.

+ +

Ek Bilgi

+

Kodlanmış bölü çizgilerine izin vermek bu kodlamanın karakter olarak + çözümleneceği anlamına gelmez. URL içindeki %2F veya + %5C’ler (sadece ilgili sistemlerde), tıpkı normal + URL’lere yapıldığı gibi, oldukları gibi bırakılırlar.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

AllowOverride Yönergesi

+ + + + + + + +
Açıklama:.htaccess dosyalarında bulunmasına izin verilen + yönerge türleri belirtilir.
Sözdizimi:AllowOverride All|None|yönerge-türü +[yönerge-türü] ...
Öntanımlı:AllowOverride All
Bağlam:dizin
Durum:Çekirdek
Modül:core
+

Sunucu AccessFileName yönergesi + ile belirtildiği şekilde bir .htaccess dosyasına rastlarsa + önceki yapılandırma yönergelerinin hangilerinin geçersiz kılınmak üzere + bildirildiğini bilmek ister.

+ +

Sadece <Directory> bölümlerinde geçerli

+ AllowOverride yönergesi, <Location>, <DirectoryMatch> veya <Files> bölümlerinde değil, + sadece düzenli ifade içermeyen <Directory> bölümlerinde geçerlidir. +
+ +

Yönergeye değer olarak None belirtilirse .htaccess dosyaları tamamen yok sayılır. Bu + durumda, sunucu dosya sisteminde rastladığı .htaccess + dosyalarını okumaya dahi çalışmayacaktır.

+ +

Bu yönergeye All değeri atanırsa, .htaccess bağlamında kullanılabilecek her + yönergeye .htaccess dosyalarında izin verilir.

+ +

yönerge-türü olarak aşağıdaki yönerge grup + isimlerinden biri belirtilebilir:

+ +
+
AuthConfig
+ +
AuthDBMGroupFile, + AuthDBMUserFile, + AuthGroupFile, + AuthName, + AuthType, + AuthUserFile, + Require + ve benzeri yetkilendirme yönergelerinin kullanımını izin + verilir.
+ +
FileInfo
+ +
Belge türünü denetleyen mod_mime + Add* ve Remove* yönergeleri, + DefaultType, + ErrorDocument, + ForceType, + LanguagePriority, + SetHandler, + SetInputFilter, + SetOutputFilter + yönergelerinin kullanımına izin verilir. +
+ +
Indexes
+ +
Dizin içeriğinin listelenmesini denetleyen + AddDescription, + AddIcon, + AddIconByEncoding, + AddIconByType, + DefaultIcon, + DirectoryIndex, + FancyIndexing, + HeaderName, + IndexIgnore, + IndexOptions, + ReadmeName + yönergelerinin ve benzerlerinin kullanımına izin + verilir.
+ +
Limit
+ +
Konak erişimini denetleyen + Allow, + Deny ve + Order + yönergelerinin kullanımına izin verilir.
+ +
Options
+ +
Dizinlere özgü özellikleri denetleyen + Options ve + XBitHack yönergelerinin + kullanımına izin verilir.
+
+ +

Örnek:

+ +

+ AllowOverride AuthConfig Indexes +

+ +

Bu örnekte AuthConfig ve Indexes grubundaki + yönergeler bir dahili sunucu hatasına yol açmayacaktır.

+ +

Ayrıca bakınız:

+ +
+
top
+

AuthName Yönergesi

+ + + + + + + +
Açıklama:HTTP kimlik doğrulamasında kullanmak için yetki alanı ismi
Sözdizimi:AuthName yetki-alanı
Bağlam:dizin, .htaccess
Geçersizleştirme:AuthConfig
Durum:Çekirdek
Modül:core
+

Bu yönerge bir dizin için yetki alanı ismi belirler. Bu alan istemciye + bildirilerek kullanıcının hangi kullanıcı ismini ve parolasını + kullanacağını bilmesi sağlanır. AuthName tek bir + argüman alır. Bu bakımdan eğer alan ismi boşluk karakterleri içeriyorsa + ismin tırnak içine alınması gerekir. Çalışması için AuthUserFile ve + AuthGroupFile gibi yönergelerden + başka AuthType ve Require yönergelerinin kendine eşlik etmesini + gerektirir.

+ +

Örnek:

+ +

+ AuthName "Top Secret" +

+ +

AuthName için belirtilen dizge çoğu tarayıcı tarafından + parola diyaloğunda gösterilir.

+ +

Ayrıca bakınız:

+ +
+
top
+

AuthType Yönergesi

+ + + + + + + +
Açıklama:Kullanıcı kimlik doğrulaması türü
Sözdizimi:AuthType Basic|Digest
Bağlam:dizin, .htaccess
Geçersizleştirme:AuthConfig
Durum:Çekirdek
Modül:core
+

Bu yönerge bir dizin için kullanıcı kimlik doğrulaması türünü belirler. + Olası kimlik doğrulama türleri Basic ve + Digest’tir.

+ +

Kimlik doğrulamasının gerçekleşmesi için AuthName ve Require yönergelerini de kullanmalısınız. + Bunlara ek olarak sunucunun AuthUserFile ve AuthGroupFile gibi yönergelere de ihtiyacı + vardır.

+ +

Ayrıca bakınız:

+ +
+
top
+

CGIMapExtension Yönergesi

+ + + + + + + + +
Açıklama:CGI betik yorumlayıcısını saptama tekniğini belirler. +
Sözdizimi:CGIMapExtension cgi-yolu .uzantı
Bağlam:dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Sadece NetWare’de geçerlidir.
+

Bu yönerge Apache’inin CGI bekitlerini çalıştırmak için kullanacağı + yorumlayıcıyı nasıl bulacağını denetlemek için kullanılır. Örneğin, + CGIMapExtension sys:\foo.nlm .foo satırı .foo + uzantılı CGI betik dosyalarının FOO yorumlayıcıya aktarılmasını + sağlar.

+ +
+
top
+

ContentDigest Yönergesi

+ + + + + + + + +
Açıklama:Content-MD5 HTTP yanıt başlıklarının üretimini + etkin kılar.
Sözdizimi:ContentDigest On|Off
Öntanımlı:ContentDigest Off
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Options
Durum:Çekirdek
Modül:core
+

Bu yönerge RFC2616 ve RFC1864’te tanımlandığı gibi + Content-MD5 üretimini etkin kılar.

+ +

MD5, verideki herhangi bir değişikliğin ileti özetinin değişmesi + olarak yansıması nedeniyle yüksek derecede itimat sağlayan keyfi + uzunlukta bir "ileti özeti" (bazen "parmakizi" dendiği de olur) + hesaplama algoritmasıdır.

+ +

Content-MD5 başlığı öğe gövdesinin iki uç arasında ileti + bütünlük sınamasının yapılabilmesini sağlar. Bir istemci veya vekil + aktarılan öğe gövdesinde rastlantısal bir değişiklik olup olmadığını + saptamak için bu başlığın doğruluğunu sınayabilir. Başlık örneği:

+ +

+ Content-MD5: AuLb7Dp1rqtRtxz2m9kRpA== +

+ +

Her istekte ileti özeti hesaplanacağından (değerler saklanmaz), bu + yönergenin sunucunuzda başarım sorunlarına yol açacağına dikkat + ediniz.

+ +

Content-MD5, herhangi bir modül değil, sadece + core modülü tarafından sunulan belgeler için + gönderilir. Örneğin, SSI belgeleri CGI betikleri tarafından + çıktılanırlar ve bayt seviyesinden çıktılar bu başlığa sahip + olmazlar.

+ +
+
top
+

DefaultType Yönergesi

+ + + + + + + + +
Açıklama:Sunucunun MIME türünü saptayamadığı durumda göndereceği MIME + içerik türünü belirler.
Sözdizimi:DefaultType MIME-türü
Öntanımlı:DefaultType text/plain
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

Sunucudan zaman zaman kendi  MIME + türü ile uyuşmayan bir belge sunması istenir.

+ +

Sunucu, belgenin içerik türünü istemciye bildirmek zorundadır. Eğer + sunucu bunu normal yollardan saptayamazsa içerik türü olarak + DefaultType ile belirtilen değeri gönderir. Örneğin, GIF + dosyaları bulunan bir dizinde .gif uzantısına sahip + olmayan dosyaların da bulunması durumunda, bu dizin için,

+ +

+ DefaultType image/gif +

+ +

belirtilmesi uygun olurdu.

+ +

Bu yönergenin sadece öntanımlı MIME-türünü sağlaması nedeniyle + ForceType yönergesinden farklı + olduğuna dikkat ediniz. Dosya ismi uzantıları dahil, tüm diğer + MIME-türü tanımları ortam türünü tanımladığı noktada bu öntanımlı türü + sunulan veri için geçersiz kılacaktır.

+ +
+
top
+

<Directory> Yönergesi

+ + + + + + +
Açıklama:Sadece ismi belirtilen dosya sistemi dizininde ve bunun + altdizinlerinde uygulanacak bir yönerge grubunu sarmalar.
Sözdizimi:<Directory dizin-yolu> +... </Directory>
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

<Directory> ve + </Directory> sadece ismi belirtilen dosya sistemi + dizininde ve bunun altdizinlerinde uygulanacak bir yönerge grubunu + sarmalamakta kullanılır. Bir dizin bağlamında kullanılabilecek her + yönergeye izin verilir. dizin-yolu bir dizinin tam yolu + olabileceği gibi Unix kabuk tarzı bir dosya ismi eşleştirme kalıbı da + olabilir. Kalıp dizgesinde, ? herhangi bir tek karakterle, + * herhangi bir karakter dizisiyle eşleşir. Ayrıca + [] karakter aralıkları da kullanılabilir. ‘/’ karakteri + ile hiçbir kalıp karakteri eşleşmez, bu bakımdan <Directory + /*/public_html> ile /home/user/public_html + değil, ama <Directory /home/*/public_html> + eşleşecektir. Örnek:

+ +

+ <Directory /usr/local/httpd/htdocs>
+ + Options Indexes FollowSymLinks
+
+ </Directory> +

+ +
+

dizin-yolu argümanlarını belirtirken dikkatli + olmalısınız: Apache’nin dosyalara erişmekte kullandığı dosya sistemi + yolu ile bire bir eşleşmelidir. Belli bir + <Directory> dizinine uygulanan yönergeler, aynı + dizine farklı bir yoldan, örneğin başka bir sembolik bağ üzerinden + erişilen dosyalara uygulanmayacaktır.

+
+ +

~ karakterine ek olarak gelişkin  düzenli ifadeler de kullanılabilir. Örnek:

+ +

+ <Directory ~ "^/www/.*/[0-9]{3}"> +

+ +

yönergesi /www/ içindeki üç rakamdan oluşan dizinlerle + eşleşecektir.

+ +

Eğer çok sayıda (düzenli ifade olmayan) <Directory> bölümü, bir dosyayı içeren bir + dizinle veya üst dizinlerinden biri ile eşleşiyorsa, uygulama en kısa + eşleşmedeki yönergelerden başlayarak .htaccess dosyalarındaki yönergelere kadar + genişletilir. Örneğin,

+ +

+ <Directory />
+ + AllowOverride None
+
+ </Directory>
+
+ <Directory /home/>
+ + AllowOverride FileInfo
+
+ </Directory> +

+ +

bölümleri ile /home/web/dir/doc.html belgesine erişirken + şu aşamalardan geçilir:

+ +
    +
  • AllowOverride None yönergesi uygulanır + (.htaccess dosyaları iptal edilir).
  • + +
  • AllowOverride FileInfo yönergesi uygulanır + (/home dizini için).
  • + +
  • Sırayla /home/.htaccess, + /home/web/.htaccess ve + /home/web/dir/.htaccess dosyaları içindeki + FileInfo yönergeleri uygulanır.
  • +
+ +

Normal bölümlerin tamamı uygulanıncaya kadar düzenli ifadeler + değerlendirilmez. Düzenli ifadelerin tamamı yapılandırma dosyasında + görüldükleri sıraya göre sınanırlar. Örneğin,

+ +

+ <Directory ~ abc$>
+ + # ... yönergeler burada ...
+
+ </Directory> +

+ +

düzenli ifadeli bölümü, tüm normal <Directory> bölümleri ve + .htaccess dosyaları uygulanıncaya kadar + değerlendirilmeyecektir. Düzenli ifadeleri değerlendirmeye sıra gelince + düzenli ifade /home/abc/public_html/abc ile eşleştirilecek + ve buna ilişkin <Directory> + uygulanacaktır.

+ +

<Directory /> için öntanımlı Apache + erişiminin Allow from All oluşuna dikkat ediniz. Bunu şöyle + bir blokla değiştirmeniz,

+ +

+ <Directory />
+ + Order Deny,Allow
+ Deny from All
+
+ </Directory> +

+ +

ve erişilebilir olmasını istediğiniz dizinleri ayrıca + belirtmeniz önerilir. Daha ayrıntılı bilgi edinmek için Güvenlik İpuçları belgesine + bakınız.

+ +

Dizin bölümleri httpd.conf dosyasında yer alır. + <Directory> yönergeleri iç içe + olamazlar ve bir <Limit> veya <LimitExcept> bölümü içinde bulunamazlar.

+ +

Ayrıca bakınız:

+ +
+
top
+

<DirectoryMatch> Yönergesi

+ + + + + + +
Açıklama:Bir düzenli ifade ile eşleşen dosya sistemi dizininde ve bunun + altdizinlerinde uygulanacak bir yönerge grubunu sarmalar.
Sözdizimi:<DirectoryMatch düzifd> +... </DirectoryMatch>
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

<DirectoryMatch> and + </DirectoryMatch> yönergeleri <Directory> gibi sadece ismi + belirtilen dosya sistemi dizininde ve bunun altdizinlerinde uygulanacak + bir yönerge grubunu sarmalamakta kullanılır. Tek farkla argüman olarak + bir  düzenli ifade alır. Örnek:

+ +

+ <DirectoryMatch "^/www/(.+/)?[0-9]{3}"> +

+ +

yönergesi /www/ içindeki üç rakamdan oluşan dizinlerle + eşleşecektir.

+ +

Ayrıca bakınız:

+ +
+
top
+

DocumentRoot Yönergesi

+ + + + + + + +
Açıklama:İstemciye görünür olan ana belge ağacının kök dizinini belirler.
Sözdizimi:DocumentRoot dizin-yolu
Öntanımlı:DocumentRoot /usr/local/apache/htdocs
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

Bu yönerge httpd tarafından dosyalarının sunulacağı + dizini belirler. Alias + benzeri bir yönerge ile eşleşmedikçe, sunucu istenen URL’deki yolu, + belge yolu haline getirmek için belge kök dizinine ekler. Örnek:

+ +

+ DocumentRoot /usr/web +

+ +

yapılandırması ile http://www.my.host.com/index.html + isteği /usr/web/index.html ile eşleştirilir.

+ +

DocumentRoot ile belirtilen dizin bir bölü + çizgisi ile bitirilmemelidir.

+ +

Ayrıca bakınız:

+ +
+
top
+

EnableMMAP Yönergesi

+ + + + + + + + +
Açıklama:Teslimat sırasında okunacak dosyalar için bellek eşlemeyi etkin + kılar.
Sözdizimi:EnableMMAP On|Off
Öntanımlı:EnableMMAP On
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

Bu yönerge, sunucunun teslimat sırasında gerektiği takdirde bir dosya + içeriğinin okunması için bellek eşleme kullanıp kullanmayacağını + belirler. Öntanımlı olarak, bir isteğin yerine getirilmesi, + mod_include kullanarak sunucu tarafından çözümlenen + bir dosyanın teslimatı sırasında olduğu gibi, bir dosya içindeki veriye + erişilmesini gerektirdiğinde Apache, işletim sistemi tarafından + desteklendiği takdirde dosyayı belleğe eşler.

+ +

Böyle bellek eşleme kimi zaman başarım artışını beraberinde getirirse + de bazen sorunlardan kaçınmak için bellek eşlemeyi kapatmak daha iyi + sonuç verir:

+ +
    +
  • Bazı çok işlemcili sistemlerde bellek eşleme + httpd’nin başarımını düşürebilmektedir.
  • +
  • DocumentRoot NFS gibi bir ağ + dosya sistemi üzerinde ise ağ kopması sonucunda, bir dosyanın silinmesi + veya dosya okuma işleminin kesilmesi durumunda + httpd parçalama arızası vererek çökebilir.
  • +
+ +

Bu tür sorunlardan dolayı zarar görülebilecek sunucu + yapılandırmalarında dosya teslimatında bellek eşlemlerinin kullanımını + şu şekilde iptal etmeniz gerekir:

+ +

+ EnableMMAP Off +

+ +

Bu özellik, sadece NFS dosya sistemi üzerinde sunulan dosyaları + kapsamak üzere şu şekilde kolayca kapatılabilir:

+ +

+ <Directory "/nfs-dosya-yolu"> + + EnableMMAP Off + + </Directory> +

+ +
+
top
+

EnableSendfile Yönergesi

+ + + + + + + + + +
Açıklama:Dosyaların istemciye tesliminde çekirdeğin dosya gönderme + desteğinin kullanımını etkin kılar.
Sözdizimi:EnableSendfile On|Off
Öntanımlı:EnableSendfile On
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:2.0.44 ve sonrasında mevcuttur.
+

Bu yönerge, dosya içeriğinin istemciye teslimi için + httpd’nin çekirdeğin dosya gönderme desteğini + kullanıp kullanmayacağını belirler. Öntanımlı olarak, bir isteğin + yerine getirilmesi, bir durağan dosyanın teslimatı sırasında olduğu + gibi, bir dosya içindeki veriye erişilmesini gerektirmediği takdirde + Apache, işletim sistemi tarafından destekleniyorsa dosyayı istemciye + teslim etmek için çekirdeğin dosya gönderme özelliğini kullanır.

+ +

Çekirdeğin dosya gönderme mekanizması, okuma, gönderme ve tampon + ayırma işlemlerini ayrı ayrı yapmaktan kaçınır. Fakat bazı + platformlarda veya bazı dosya sistemlerinde aşağıda belirtilen işlemsel + sorunlardan kaçınmak için bu özelliği iptal etmek daha iyidir:

+ +
    +
  • Bazı platformlar, derleme sistemince saptanamayan bozuk bir dosya + gönderme desteğine sahiptir; özellikle eğer derleme işlemi dosya + gönderme desteğinde sorun olmayan bir makinede yapılıp çalıştırılabilir + dosyaların sorunlu makineye kurulduğu durumda bu saptama + yapılamayacaktır.
  • +
  • Linux’ta IPv6 kullanırken dosya gönderme desteği bazı ağ + kartlarındaki TCP toplama sağlaması aktarım hatasını tetikler.
  • +
  • DocumentRoot ağ dosya sistemi + (NFS veya SMB gibi) üzerinde olduğu durumda çekirdek ağ dosyalarını + kendi arabelleği üzerinden sunamayabilir.
  • +
+ +

Bu sorunlardan muzdarip sunucu yapılandırmaları için bu özelliği şöyle + iptal edebilirsiniz:

+ +

+ EnableSendfile Off +

+ +

Bu özellik, sadece bir NFS veya SMB dosya sistemi üzerinde sunulan + dosyaları kapsamak üzere şu şekilde kolayca kapatılabilir:

+ +

+ <Directory "/path-to-nfs-files"> + + EnableSendfile Off + + </Directory> +

+ +
+
top
+

ErrorDocument Yönergesi

+ + + + + + + + +
Açıklama:Bir hata durumunda sunucunun istemciye ne döndüreceğini + belirler.
Sözdizimi:ErrorDocument hata-kodu belge
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Metin iletilerini tırnak içine alma sözdizimi Apache 2.0’da + farklıdır.
+

Bir sorun çıktığında veya hata oluştuğunda Apache şu dört işlemden + birini yapacak şekilde yapılandırılabilir:

+ +
    +
  1. Yerleşik bir hata iletisi çıktılanır.
  2. + +
  3. Özel bir ileti çıktılanır.
  4. + +
  5. Sorunu/hatayı işleyecek yerel bir URL-yoluna yönlendirme + yapılır.
  6. + +
  7. Sorunu/hatayı işleyecek harici bir URL-yoluna + yönlendirme yapılır.
  8. +
+ +

İlk seçenek öntanımlıdır. Diğer üç seçenek + ErrorDocument yönergesinin argümanları (hata + kodundan sonra bir URL veya hata iletisi) ile belirtilir. Apache bazı + durumlarda sorun/hata ile ilgili ek bilgi verecektir.

+ +

URL’ler yerel yollarda (DocumentRoot’a göre) bir bölü çizgisi (/) ile + başlatılabileceği gibi istemci tarafından çözümlenecek tam bir URL + şeklinde de belirtilebilir. Bunlar yerine, tarayıcıda gösterilmek üzere + bir ileti de belirtilebilir. Örnekler:

+ +

+ ErrorDocument 500 http://hata.meselae.dom/cgi-bin/dnmci
+ ErrorDocument 404 /cgi-bin/bad_urls.pl
+ ErrorDocument 401 /subscription_info.html
+ ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz." +

+ +

Bunlardan başka, Apache’nin kendi hata iletilerinin kullanılacağı özel + default değeri ile belirtilebilir. Normal şartlar altında + gerekmese de, bir şey belirtilmediği takdirde mevcut bir + ErrorDocument yönergesini miras alan + yapılandırmalarda Apache’nin kendi hata iletilerinin kullanımı + default değeri açıkça belirtilerek örnekteki gibi + zorlanabilir:

+ +

+ ErrorDocument 404 /cgi-bin/bad_urls.pl

+ <Directory /web/docs>
+ + ErrorDocument 404 default
+
+ </Directory> +

+ +

ErrorDocument yönergesinde bir uzak URL (önünde + http bulunan bir yol) belirtildiğinde, belge aynı sunucuda + olsa bile, Apache’nin istemciye belgeyi bulacağı yer için bir + yönlendirme göndereceğine dikkat ediniz. Bunun bazı istenmeyen etkileri + vardır; en önemlilerinden biri istemcinin hata kodu yerine bir + yönlendirme durum kodu alacak olmasıdır. Bu, bir URL’nin geçerliliğini + durum koduna göre saptayan istemciler veya robotlar için yanıltıcı + olacaktır. Buna ek olarak, ErrorDocument 401 için bir uzak + URL belirttiğiniz durumda istemci 401 durum kodunu almayacağı için + kullanıcıdan parola isteğinde bulunamayacaktır. Bu bakımdan, + ihtiyaç duyduğunuz takdirde, ErrorDocument 401 + yönergesine yerel bir belge belirtmelisiniz.

+ +

Sunucunun ürettiği hata iletileri "çok kısa" olduğu takdirde, + Microsoft Internet Explorer (MSIE) öntanımlı olarak bu hata iletilerini + yoksayar ve bunun yerine kendi "kullanıcı dostu" hata iletilerini + kullanır. "Çok kısa" eşiği duruma göre değişmekle birlikte, genellikle, + hata iletileriniz 512 bayttan büyük olduğu takdirde MSIE kendi hata + iletileri yerine sunucunun ürettiği hata iletilerini gösterecektir. Bu + konuda daha fazla bilgiyi Q294807 kodlu Microsoft Knowledge Base makalesinde + bulabilirsiniz.

+ +

Çoğu yerleşik hata iletisi özel iletilerle değiştirilebilse de bazı + durumlarda ErrorDocument ile ne + belirtildiğine bakılmaksızın yerleşik hata iletileri kullanılır. + Özellikle, bozuk bir istek saptandığında normal istek işleme hemen + devre dışı bırakılır ve yerleşik hata iletisi döndürülür. Bu, hatalı + istekler yaparak güvenlik sorunlarına yol açılmak istenmesi + durumlarında gereklidir.

+ +

mod_proxy kullanıyorsanız, gerekise vekili olunan + sunucu yararına özel hata iletileri üretmenizi sağlayabilen ProxyErrorOverride yönergesini etkin + kılabilirsiniz. Bu yönergeyi etkinleştirmezseniz Apache vekaleten + sunulan içerik için özel hata sayfaları üretmeyecektir.

+ +

2.0 öncesi sürümlerde iletiler bir çift çift-tırnak içine alınmayıp, + tek bir çift-tırnak ile başlatılması yeterli olurdu.

+ +

Ayrıca bakınız:

+ +
+
top
+

ErrorLog Yönergesi

+ + + + + + + +
Açıklama:Sunucunun hata günlüğünü tutacağı yeri belirler.
Sözdizimi: ErrorLog dosya-yolu|syslog[:oluşum]
Öntanımlı:ErrorLog logs/error_log (Unix) ErrorLog logs/error.log (Windows ve + OS/2)
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

ErrorLog yönergesi sunucunun saptadığı hataları + kaydedeceği dosyanın ismini belirtmek için kullanılır. + dosya-yolu ile göreli dosya yolu belirtildiği takdirde + dizininin ServerRoot ile + belirtilen sunucu kök dizinine göre belirtildiği varsayılır.

+ +

Örnek

+ ErrorLog /var/log/httpd/error_log +

+ +

dosya-yolu bir boru imi (|) ile başlatıldığı takdirde hata + iletilerinin hata günlüğünü işleme sokacak komuta borulanacağı + varsayılır.

+ +

Örnek

+ ErrorLog "|/usr/local/bin/httpd_errors" +

+ +

Dosya adı yerine syslog kullanılırsa, sistem desteklediği + takdirde günlük kaydı syslogd(8) üzerinden yürütülür. Öntanımlı olarak + local7 syslog oluşumu kullanılır. Bunu + syslog:oluşum sözdizimini kullanarak + değiştirebilirsiniz. Buradaki oluşum + syslog.conf(5) kılavuz sayfasında belirtilen oluşum isimlerinden biri + olabilir.

+ +

Örnek

+ ErrorLog syslog:user +

+ +

GÜVENLİK: Günlük dosyalarının saklandığı dizin, sunucuyu başlatan + kullanıcı dışındakiler tarafından yazılabilir olduğu takdirde + güvenliğinizin nasıl tehlikeye gireceği güvenlik ipuçları + belgesinde ayrıntılı olarak açıklanmıştır.

+

Ek Bilgi

+

Unix-dışı platformlarda dosya yolunu girerken, platform ters bölü + çizgilerini desteklese bile normal bölü çizgileri kullanmaya özen + göstermelisiniz. Genel olarak, dosya yollarını belirtirken + yapılandırma dosyası boyunca normal bölü çizgisi kullanmak her zaman + daha iyidir.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

FileETag Yönergesi

+ + + + + + + + +
Açıklama:ETag HTTP yanıt başlığını oluşturmakta kullanılacak + dosya özniteliklerini belirler.
Sözdizimi:FileETag bileşen ...
Öntanımlı:FileETag INode MTime Size
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

FileETag yönergesi, belge bir dosyaya dayandığı + takdirde ETag (Entity Tag - öğe etiketi kısaltması) yanıt + başlığı alanını oluşturmakta kullanılacak dosya özniteliklerini + yapılandırır. (ETag değeri, ağ band genişliğinden kazanmak + için arabellek yönetiminde kullanılır.) Apache 1.3.22 ve öncesinde + ETag değeri daima dosyanın düğümü, boyutu ve son + değişiklik zamanından (mtime) oluşurdu. FileETag + yönergesi ne kullanılması gerektiğini belirleyebilmenizi sağlar. Değer + olarak belirtilebilecek anahtar sözcükler şunlardır:

+ +
+
INode
+
Dosyanın düğüm numarası hesaba katılır.
+
MTime
+
Dosyanın son değişiklik tarih ve saati dahil edilir.
+
Size
+
Dosyanın bayt cinsinden uzunluğu dahil edilir.
+
All
+
Olası tüm alanlar kullanılır. Bu şuna eşdeğerdir: +

FileETag INode MTime Size

+
None
+
Bir belge dosyasıyla sunulsa bile yanıta hiçbir ETag + alanı dahil edilmez.
+
+ +

Öntanımlı ayarları miras alıp bunların kapsamını genişletmek/daraltmak + için INode, MTime ve Size + anahtar sözcüklerinin önüne + veya - imi + konabilir. Bu imlerin bulunmadığı bir anahtar sözcüğün varlığı halinde + hiçbir değer miras alınmaz.

+ +

Eğer bir dizinin yapılandırması + FileETag INode MTime Size ve alt dizini + FileETag -INode içeriyorsa bu alt dizinin (ve bir + geçersizleştirme olmadığı takdirde onun alt dizinlerinin) ayarları + FileETag MTime Size yapılandırmasına eşdeğer + olacaktır.

+ +
+
top
+

<Files> Yönergesi

+ + + + + + + +
Açıklama:Dosya isimleriyle eşleşme halinde uygulanacak yönergeleri + içerir.
Sözdizimi:<Files dosya-adı> ... </Files>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

<Files> yönergesi, içerdiği + yönergelerin etki alanını dosya isimlerine göre sınırlandırır. + <Directory> ve + <Location> bölümleri + ile karşılaştırılabilir. Bir </Files> yönergesi ile + sonlandırılması gerekir. Bu bölüm içinde belirtilen yönergeler, + <Files> yönergesinde belirtilen + dosya-adı’nın son bileşeniyle (dizinler atıldıktan sonda + kalan dosya ismi) eşleşen nesnelere uygulanır. <Files> bölümleri yapılandırma dosyasında, + <Directory> bölümleri + ve .htaccess dosyaları okunduktan sonra fakat <Location> yönergelerinden önce + göründükleri sıraya göre işleme sokulurlar. <Files> bölümlerinin <Directory> bölümlerinin içinde uygulama + alanını sınırlamak amacıyla kullanılabileceğine dikkat ediniz.

+ +

dosya-adı argümanının bir dosya ismi veya bir dosya ismi + kalıbı içermesi gerekir. Bir dosya ismi kalıbındaki her ? + imi bir karakterle eşleştirilirken * imi karakter dizileri + ile eşleştirilir. ~ imine ek olarak  düzenli ifadeler de kullanılabilir. Örneğin

+ +

+ <Files ~ "\.(gif|jpe?g|png)$"> +

+ +

satırı en bilinen resim dosyası biçimleriyle eşleşecektir. Bunun + yerine <FilesMatch> + yönergesi de tercih edilebilirdi.

+ +

<Directory> ve + <Location> + bölümlerinin aksine, <Files> + bölümleri .htaccess dosyaları içinde kullanılabilir. Bu + sayede kullanıcıların kendi dosyalarına erişimi dosya seviyesinde + denetlemelerine imkan sağlanmış olur.

+ + +

Ayrıca bakınız:

+ +
+
top
+

<FilesMatch> Yönergesi

+ + + + + + + +
Açıklama:Düzenli ifadelerin dosya isimleriyle eşleşmesi halinde + uygulanacak yönergeleri içerir.
Sözdizimi:<FilesMatch düzifd> ... </FilesMatch>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

<FilesMatch> yönergesi, içerdiği + yönergelerin etki alanını <Files> yönergesinin yaptığı gibi dosya + isimlerine göre sınırlandırır. Ancak, argüman olarak bir  düzenli ifade kabul eder. Örneğin

+ +

+ <FilesMatch "\.(gif|jpe?g|png)$"> +

+ +

satırı en bilinen resim dosyası biçimleriyle eşleşecektir.

+ +

Ayrıca bakınız:

+ +
+
top
+

ForceType Yönergesi

+ + + + + + + + +
Açıklama:Bütün dosyaların belirtilen MIME içerik türüyle sunulmasına + sebep olur.
Sözdizimi:ForceType MIME-türü|None
Bağlam:dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 2.0’da core modülüne taşındı.
+

Bu yönerge, bir .htaccess dosyası veya bir + <Directory>, + <Location> veya + <Files> bölümüne + yerleştirildiği zaman, eşleşen tüm dosyaların MIME-türü ile + belirtilen içerik türüyle sunulmasına sebep olur. Örneğin, altında + sadece GIF dosyaları bulunan bir dizininiz varsa ve bunlara tek tek + .gif uzantısı belirtmek istemiyorsanız şu yapılandırmayı + kullanabilirsiniz:

+ +

+ ForceType image/gif +

+ +

DefaultType yönergesinin tersine + bu yönerge ortam türünü betimleyen tüm MIME-türü tanımlarını geçersiz + kılar.

+ +

Mevcut ForceType ayarlarını None + değeriyle geçersiz kılabilirsiniz:

+ +

+ # tüm dosyaların image/gif olarak sunulması için:
+ <Location /images>
+ + ForceType image/gif
+
+ </Location>
+
+ # normal MIME-türüne geri dönmek için:
+ <Location /images/mixed>
+ + ForceType None
+
+ </Location> +

+ +
+
top
+

HostnameLookups Yönergesi

+ + + + + + + +
Açıklama:İstemci IP adresleri üzerinde DNS sorgularını etkin kılar. +
Sözdizimi:HostnameLookups On|Off|Double
Öntanımlı:HostnameLookups Off
Bağlam:sunucu geneli, sanal konak, dizin
Durum:Çekirdek
Modül:core
+

Bu yönerge oturum açabilecek konak isimlerini tespit edebilmek için + DNS sorgularını etkin kılar (ve sonuç REMOTE_HOST’ta + belirtilerek CGI/SSI’lere aktarılır). Double değeri + sorgunun çift yönlü yapılacağını belirtir. Yani, bir tersine sorgunun + ardından bir normal sorgu yapılır. Normal sorguda elde edilen IP + adreslerinden birinin istek yapan IP adresi ile eşleşmesi gerekir. + ("tcpwrappers" terminolojisinde buna PARANOID adı + verilir.)

+ +

Konak ismine göre erişimi denetlemek için + mod_access kullanıldığında, nasıl bir ayar + yapıldığına bakılmaksızın, çift yönlü sorgulama yapılır. Bu güvenlik + için gereklidir. Bunun dışında açıkça HostnameLookups + Double belirtilmedikçe genellikle çift yönlü sorgulama yapılmaz. + Örneğin, sadece HostnameLookups On belirtilmiş ve konak + ismi kısıtlamalarıyla korunmuş bir nesne için bir istek yapılmışsa çift + yönlü sorgunun başarısına bakılmaksızın CGI’lere + REMOTE_HOST olarak tek yönlü sorgu sonucu aktarılır.

+ +

Gerçekte ters yönlü sorguya gerek duyulmayan sitelerde ağ trafiğini + yormamak için Off, öntanımlı değerdir. Ayrıca, son + kullanıcıların DNS sorguları nedeniyle gereksiz yere bir beklemeye + maruz kalmaması için de bu daha iyidir. Yükü zaten ağır olan sitelerde, + DNS sorgularının görece uzun zaman alması nedeniyle bu yönergenin + değeri Off olarak bırakılmalıdır. Öntanımlı olarak kurulum + dizininizin bin alt dizinine kurulan + logresolve uygulaması kullanılarak oturum açan IP + adresleri için isim sorguları çevrim dışıyken yapılabilir.

+ +
+
top
+

IdentityCheck Yönergesi

+ + + + + + + +
Açıklama:Uzak kullanıcıların RFC 1413’e göre kimlik bilgilerinin günlük +kayıtlarını etkin kılar.
Sözdizimi:IdentityCheck On|Off
Öntanımlı:IdentityCheck Off
Bağlam:sunucu geneli, sanal konak, dizin
Durum:Çekirdek
Modül:core
+

Bu yönerge, istemci makinenin identd veya benzeri bir uygulama çalıştırdığı durumda her bağlantıda uzak kullanıcı isimlerinin RFC1413’e uygun olarak günlüğe kaydedilmesini etkin kılar. Bu bilgi erişim günlüğüne kaydedilir.

+ +

Bu bilgi ilkel kullanım izleme dışında herhangi bir şekilde güvenilir kılınmamalıdır.

+ +

Sunucunuza yapılan her istek bu sorgulardan birinin uygulanmasını gerektireceğinden bu uygulamanın sunucunun yanıt verme süresi bakımından sorunlara yol açacağına dikkat ediniz. Her sorguda işe bir de güvenlik duvarları karışırsa sorgu muhtemelen başarısız olacağından her sorguya bir 30 saniye de buradan eklenir. Bu bakımdan Genel Ağ’dan erişilen sunucular için genelde pek yararlı değildir.

+ +
+
top
+

<IfDefine> Yönergesi

+ + + + + + + +
Açıklama:Başlatma sırasında bir doğruluk sınamasından sonra işleme +sokulacak yönergeleri sarmalar.
Sözdizimi:<IfDefine [!]parametre-adı> ... + </IfDefine>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

<IfDefine sınama>...</IfDefine> + bölümü koşullu olarak işleme sokulacak yönergeleri içerir. + Bir <IfDefine> bölümü içindeki + yönergeler sadece sınama doğru sonuç verirse işleme sokulur. + Aksi takdirde, bölüm içinde kalan her şey yok sayılır.

+ +

<IfDefine> bölüm yönergesinde + sınama için belirtilebilecek iki biçim vardır:

+ +
    +
  • parametre-adı
  • + +
  • !parametre-adı
  • +
+ +

Birinci durumda bölüm içinde kalan yönergeler sadece + parametre-adı ile belirtilen parametre tanımlı ise işleme + sokulur. İkinci durumda ise tersi yapılır, yani sadece + parametre-adı ile belirtilen parametre tanımlı + değil ise yönergeler işleme sokulur.

+ +

parametre-adı argümanı sunucu başlatılırken + httpd komut satırında + -Dparametre ile + belirtilerek tanımlı hale getirilebilir.

+ +

<IfDefine> bölümleri iç içe + olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir. + Örnek:

+ +

+ httpd -DReverseProxy ...
+
+ # httpd.conf
+ <IfDefine ReverseProxy>
+ + LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule proxy_module modules/libproxy.so
+
+ </IfDefine> +

+ +
+
top
+

<IfModule> Yönergesi

+ + + + + + + +
Açıklama:Belli bir modülün varlığına veya yokluğuna göre işleme sokulacak +yönergeleri sarmalar.
Sözdizimi:<IfModule [!]modül-ismi ... + </IfModule>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

<IfModule sınama>...</IfModule> + bölümü belli bir modülün varlığına veya yokluğuna göre işleme sokulacak + yönergeleri içerir. Bir <IfModule> + bölümü içindeki yönergeler sadece sınama doğru sonuç verirse + işleme sokulur. Aksi takdirde, bölüm içinde kalan her şey yok sayılır.

+ +

<IfModule> bölüm yönergesinde + sınama için belirtilebilecek iki biçim vardır:

+ +
    +
  • modül-ismi
  • + +
  • !modül-ismi
  • +
+ +

Birinci durumda bölüm içinde kalan yönergeler sadece + modül-ismi ile belirtilen modül Apache içine dahil edilmişse + veya LoadModule yönergesi ile + devingen olarak yüklenmişse işleme sokulur. İkinci durumda ise tersi + yapılır, yani sadece modül-ismi içerilmiş + değil ise yönergeler işleme sokulur.

+ +

modül-ismi modülün derleme sırasındaki dosya ismidir. + Örneğin, mod_rewrite.c. Eğer modül çok sayıda kaynak + dosyasından oluşuyorsa STANDARD20_MODULE_STUFF dizgesini + içeren dosyanın ismi kullanılır.

+ +

<IfModule> bölümleri iç içe + olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir.

+ +
Bu bölümü sadece yapılandırma dosyanızın belli modüllerin varlığına + veya yokluğuna bağlı olarak çalışması gerektiği durumlarda + kullanmalısınız. Normal işlemlerde yönergelerin <IfModule> bölümlerine yerleştirilmeleri + gerekmez.
+ +
+
top
+

Include Yönergesi

+ + + + + + + +
Açıklama:Sunucu yapılandırma dosyalarının başka dosyaları içermesini sağlar. +
Sözdizimi:Include dosya-yolu|dizin-yolu
Bağlam:sunucu geneli, sanal konak, dizin
Durum:Çekirdek
Modül:core
Uyumluluk:Dosya kalıbıyla eşleşme 2.0.41 ve sonrasında mevcuttur. +
+

Bu yönerge sunucu yapılandırma dosyalarının başka dosyaları içermesini + mümkün kılar.

+ +

Çok sayıda dosyayı bir kerede alfabetik sırada içermek için kabuk tarzı + (fnmatch()) dosya ismi kalıp karakterleri kullanılabilir. + Ayrıca, eğer Include yönergesi bir dosya değil de + bir dizin gösteriyorsa Apache bu dizindeki ve alt dizinlerindeki bütün + dosyaları okuyacaktır. Fakat dizinin bir bütün olarak okutulması + önerilmez, çünkü dizinde httpd programının çökmesine + sebep olabilecek geçici dosyalar unutulabilir.

+ +

Dosya yolu mutlak bir dosya yolu olarak belirtilebileceği gibi + ServerRoot dizinine göreli olarak da + belirtilebilir.

+ +

Örnekler:

+ +

+ Include /usr/local/apache2/conf/ssl.conf
+ Include /usr/local/apache2/conf/vhosts/*.conf +

+ +

Veya dizinler ServerRoot dizinine + göre belirtilebilir:

+ +

+ Include conf/ssl.conf
+ Include conf/vhosts/*.conf +

+ + +

Ayrıca bakınız:

+ +
+
top
+

KeepAlive Yönergesi

+ + + + + + + +
Açıklama:HTTP kalıcı bağlantılarını etkin kılar
Sözdizimi:KeepAlive On|Off
Öntanımlı:KeepAlive On
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

Keep-Alive yönergesi HTTP/1.0 protokolüne bir eklenti olup + HTTP/1.1 protokolünün kalıcı bağlantı özelliği aynı TCP bağlantısı + üzerinden çok sayıda isteğin gönderilmesini mümkün kılan uzun süreli HTTP + oturumları açılmasını sağlar. Bunun, çok sayıda resim içeren HTML + belgelerin yanıt zamanlarında bazı durumlarda %50’lik bir hızlanmayla + sonuçlandığı gösterilmiştir. Kalıcı bağlantıları etkin kılmak için + yönerge KeepAlive On şeklinde kullanılır.

+ +

HTTP/1.0 istemcileri için kalıcı bağlantılar sadece bir istemci + tarafından özellikle istendiği takdirde kullanılabilir. Ek olarak, + HTTP/1.0 istemci kalıcı bağlantıları sadece içerik uzunluğu baştan + bilindiği zaman kullanılabilir. Bu, CGI çıktısı, SSI sayfaları ve + sunucunun ürettiği dizin listeleri gibi genellikle HTTP/1.0 istemcilere + kalıcı bağlantılar kullanmayan devingen içeriklere uygulanır. HTTP/1.1 + istemciler için kalıcı bağlantılar aksi belirtilmedikçe öntanımlıdır. + İstemci istediği takdirde, uzunluğu bilinmeyen içerik kalıcı bağlantılar + üzerinden gönderilirken parçalı kodlama kullanılacaktır.

+ +

Ayrıca bakınız:

+ +
+
top
+

KeepAliveTimeout Yönergesi

+ + + + + + + +
Açıklama:Bir kalıcı bağlantıda sunucunun bir sonraki isteği bekleme süresi +
Sözdizimi:KeepAliveTimeout saniye
Öntanımlı:KeepAliveTimeout 15
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

Sunucunun kalıcı bir bağlantıyı kapatmadan önce bir sonraki isteği kaç + saniye bekleyeceğini belirler. İstek alındıktan sonra Timeout yönergesiyle belirtilen zaman aşımı + değeri uygulanır.

+ +

KeepAliveTimeout için yüksek bir değer belirtmek + ağır yüklü sunucularda başarım sorunlarına yol açar. Daha yüksek bir + zaman aşımı, boştaki istemcilerin bulunduğu bağlantıları bekleyen daha + fazla sunucu sürecini meşgul edecektir.

+ +

İsme dayalı sanal konak bağlamında, NameVirtualHost bölümleri içinde tanımlanmış ilk sanal konağın (öntanımlı konak) değeri kullanılır. Diğer değerler görmezden gelinir.

+ +
+
top
+

<Limit> Yönergesi

+ + + + + + + +
Açıklama:Erişimi sınırlanacak HTTP yöntemleri için erişim sınırlayıcıları +sarmalar.
Sözdizimi:<Limit yöntem [yöntem] ... > ... + </Limit>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

Erişim denetleyicileri normalde tüm erişim yöntemleri + için etkindir ve olağan olanı da budur. Genel durum olarak, + erişim denetim yönergeleri bir <Limit> bölümüne + yerleştirilmemelidir.

+ +

<Limit> bölümünün amacı, erişim + denetleyicilerinin etkilerini belli HTTP yöntemleri için sınırlamaktır. + <Limit> bölümü içinde listelenen + erişim sınırlamaları, kalan tüm diğer yöntemler için etkisiz + olacaktır. Aşağıdaki örnekte, erişim sınırlaması + POST, PUT ve DELETE yöntemleri + için uygulanmakta, diğer tüm yöntemler korumasız bırakılmaktadır:

+ +

+ <Limit POST PUT DELETE>
+ + Require valid-user
+
+ </Limit> +

+ +

Birden fazla bölümde kullanılabilecek yöntem isimleri: GET, + POST, PUT, DELETE, + CONNECT, OPTIONS, + PATCH, PROPFIND, PROPPATCH, + MKCOL, COPY, MOVE, + LOCK ve UNLOCK. Yöntem isimleri harf + büyüklüğüne duyarlıdır. GET yöntemi sınırlanırsa + HEAD istekleri de sınırlanmış olur. TRACE + yöntemi sınırlanamaz.

+ +
Erişimi sınarlarken bir <Limit> bölümü yerine daima bir <LimitExcept> bölümünü tercih + etmelisiniz, çünkü <LimitExcept> bölümü belirtilen yöntemler dışında kalanlara + erişim koruması sağlar.
+ + +
+
top
+

<LimitExcept> Yönergesi

+ + + + + + + +
Açıklama:İsimleri belirtilenler dışında kalan HTTP yöntemleri için +kullanılacak erişim sınırlayıcıları sarmalar.
Sözdizimi:<LimitExcept yöntem [yöntem] ... > ... + </LimitExcept>
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

<LimitExcept> ve + </LimitExcept> argüman olarak belirtilenler + dışında kalan HTTP yöntemleri için kullanılacak erişim + sınırlayıcıları gruplamakta kullanılır. Yani, <Limit> bölümünün tersine, standart olsun olmasın + bütün yöntemler için erişimi kısıtlamakta kullanılabilir. Daha ayrıntılı + bilgi edinmek için <Limit> yönergesinin açıklamasına bakınız.

+ +

Örnek:

+ +

+ <LimitExcept POST GET>
+ + Require valid-user
+
+ </LimitExcept> +

+ + +
+
top
+

LimitInternalRecursion Yönergesi

+ + + + + + + + +
Açıklama:Dahili yönlendirmelerin ve istek içi isteklerin azami sayısını +belirler.
Sözdizimi:LimitInternalRecursion sayı [sayı]
Öntanımlı:LimitInternalRecursion 10
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 2.0.47 ve sonrasında mevcuttur.
+

Örneğin, özgün istekleri dahili olarak bir CGI betiğine yönlendiren + Action yönergesi + kullanıldığında bir dahili yönlendirme oluşur. İstek içi istekler ise + bazı URI’ler için istek yapıldığında ne olacağını bulmak için Apache’nin + kullandığı bir mekanizmadır. Örneğin, mod_dir, + DirectoryIndex yönergesinde + listelenen dosyalara bakmak için istek içi istekler kullanır.

+ +

LimitInternalRecursion yönergesi sunucunun dahili + yönlendirmeler ve istek içi isteklerin oluşturduğu döngülerden dolayı + çökmemesini sağlar. Böyle döngüler genellikle yanlış yapılandırma sonucu + ortaya çıkarlar.

+ +

Yönerge her istek için değerlendirmeye alınacak iki farklı sınırlama + için kullanılabilir. İlk sayı ardarda gelebilen dahili + yönlendirmelerin azami sayısını, ikinci sayı ise istek içi + isteklerin ne kadar iç içe olabileceğini belirler. Tek bir + sayı belirtilirse iki sınırlama için de aynı değer + kullanılır.

+ +

Örnek

+ LimitInternalRecursion 5 +

+ +
+
top
+

LimitRequestBody Yönergesi

+ + + + + + + + +
Açıklama:İstemci tarafından gönderilen HTTP istek gövdesinin toplam +uzunluğunu sınırlar.
Sözdizimi:LimitRequestBody bayt-sayısı
Öntanımlı:LimitRequestBody 0
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

Bu yönerge, bir istek gövdesinde izin verilen bayt sayısını 0 (sınırsız + anlamında) ile 2147483647 (2GB) arasında sınırlamak için kullanılır.

+ +

LimitRequestBody yönergesi kullanıcıya yönergenin + kullanıldığı bağlam (sunucu, belli bir dizin, belli bir dosya, belli bir + yer) dahilinde bir HTTP istek iletisi gövdesinin izin verilen uzunluğu + için bir sınır belirleme imkanı verir. Eğer istemcinin isteği bu sınırı + aşarsa sunucu isteği sunmak yerine bir hata iletisi döndürecektir. Normal + bir istek ileti gövdesinin uzunluğu büyük oranda özkaynağın doğasına ve + bu özkaynak üzerinde izin verilen yöntemlere bağlıdır. CGI betikleri + genellikle ileti gövdesini form bilgisini almak için kullanır. + PUT yöntemi gerçeklenimleri, en azından, sunucunun o + özkaynak için kabul etmek isteyeceği herhangi bir gösterim kadar büyük + bir değer gerektirecektir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Eğer, örneğin, belli bir yere dosya yükleme izni verir ve buraya + yüklenebilecek dosya boyutunu 100 kB ile sınırlamak isterseniz yönergeyi + şöyle kullanabilirsiniz:

+ +

+ LimitRequestBody 102400 +

+ + +
+
top
+

LimitRequestFields Yönergesi

+ + + + + + + +
Açıklama:İstemciden kabul edilecek HTTP isteği başlık alanlarının sayısını +sınırlar.
Sözdizimi:LimitRequestFields sayı
Öntanımlı:LimitRequestFields 100
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

sayı, en küçük 0 (sınırsız anlamında), en büyük 32767 + olabilir. Öntanımlı değer bir derleme zamanı sabiti olan + DEFAULT_LIMIT_REQUEST_FIELDS ile belirlenir (dağıtımla gelen + değeri 100’dür).

+ +

LimitRequestFields yönergesi sunucu + yöneticilerine bir HTTP isteğinde izin verilen istek başlık alanlarının + sayısı üzerindeki sınırı değiştirebilme imkanı verir. Sunucu bu değerin, + normal bir istemci isteğinin içerebileceği alan sayısından daha büyük + olmasına ihtiyaç duyar. Bir istemci tarafından kullanılan istek başlık + alanlarının sayısı nadiren 20’yi geçer, fakat bu farklı istemci + gerçeklenimleri için değişiklik gösterir ve çoğunlukla kullanıcının + tarayıcısını ayrıntılı içerik müzakeresini desteklemek için nasıl + yapılandırdığıyla ilgilidir. İsteğe bağlı HTTP eklentileri çoğunlukla + istek başlık alanları kullanılarak ifade edilir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar. Eğer normal istemciler sunucudan istekte bulunurken çok + fazla başlık alanı gönderildiğine dair bir hata iletisi alırlarsa bu + değerin arttırılması gerekir.

+ +

Örnek:

+ +

+ LimitRequestFields 50 +

+ + +
+
top
+

LimitRequestFieldSize Yönergesi

+ + + + + + + +
Açıklama:İstemciden kabul edilecek HTTP isteği başlık uzunluğunu sınırlar. +
Sözdizimi:LimitRequestFieldSize bayt-sayısı
Öntanımlı:LimitRequestFieldSize 8190
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

Bu yönerge, HTTP istek başlığında izin verilecek bayt sayısını + belirler.

+ +

LimitRequestFieldSize yönergesi, sunucu + yöneticilerine HTTP istek başlık alanının azami uzunluğunu arttırıp + azaltma imkanı verir. Sunucu bu değerin, normal bir istemci isteğinin + içerebileceği herhangi bir başlık alanını tutabilecek kadar büyük + olmasını gerektirir. Normal bir istek başlık alanı uzunluğu kullanıcının + tarayıcısını ayrıntılı içerik müzakeresini desteklemek için nasıl + yapılandırdığıyla ilgilidir. SPNEGO kimlik doğrulama başlıkları 12392 + baytlık olabilir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Örnek:

+ +

+ LimitRequestFieldSize 4094 +

+ +
Normal şartlar altında öntanımlı değer değiştirilmemelidir.
+ +
Apache 2.0.53 ve sonrasında, sınırı, bir derleme değeri olan + DEFAULT_LIMIT_REQUEST_FIELDSIZE (dağıtımda 8190) değerinin + üzerine çıkarmak için gereklidir. +
+ + +
+
top
+

LimitRequestLine Yönergesi

+ + + + + + + +
Açıklama:İstemciden kabul edilecek HTTP istek satırının uzunluğunu sınırlar. +
Sözdizimi:LimitRequestLine bayt-sayısı
Öntanımlı:LimitRequestLine 8190
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

Bu yönerge, HTTP istek satırında izin verilecek bayt sayısını 0 ile bir + derleme zamanı sabiti olan DEFAULT_LIMIT_REQUEST_LINE + (dağıtımda 8190) ile belirtilen değer arasında bir değere ayarlar.

+ +

LimitRequestLine yönergesi, sunucu yöneticilerine + bir istemcinin HTTP istek satırının azami uzunluğunu, sunucunun + derlenmesi sırasında belirtilenden daha azına ayarlama + imkanı verir. İstek satırının içeriği HTTP yöntemi, URI ve protokol + sürümünden oluştuğundan LimitRequestLine + yönergesi, sunucudan bir istek için kullanılan istek adresinin uzunluğunu + sınırlamış olur. Sunucu bu değerin, bir GET isteğinin sorgu + kısmında aktarılabilen her bilgi dahil, özkaynak isimlerinden her birini + tutabilecek kadar büyük olmasını gerektirir.

+ +

Bu yönerge, bazı hizmet reddi (DoS) saldırılarından kaçınmak için sunucu + yöneticilerine, anormal istemci istekleri üzerinde daha iyi denetim + imkanı sağlar.

+ +

Örnek:

+ +

+ LimitRequestLine 4094 +

+ +
Normal şartlar altında öntanımlı değer değiştirilmemelidir.
+ +
+
top
+

LimitXMLRequestBody Yönergesi

+ + + + + + + + +
Açıklama:Bir XML temelli istek gövdesinin uzunluğunu sınırlar.
Sözdizimi:LimitXMLRequestBody bayt-sayısı
Öntanımlı:LimitXMLRequestBody 1000000
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

Bir XML temelli istek gövdesinin azami bayt sayısını belirler. Değer + olarak 0 belirtildiğinde herhangi bir boyut sınaması + yapılmaz.

+ +

Örnek:

+ +

+ LimitXMLRequestBody 0 +

+ + +
+
top
+

<Location> Yönergesi

+ + + + + + +
Açıklama:İçerdiği yönergeler sadece eşleşen URL’lere uygulanır. +
Sözdizimi:<Location URL-yolu|URL> ... +</Location>
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

<Location> bölüm yönergesi kapsadığı + yönergelerin etki alanını belirtilen URL’lerle sınırlar. Bu yönerge, + <Directory> yönergesine + benzer ve </Location> yönergesi ile biten bir alt + bölüm başlatır. <Location> bölümleri + yapılandırma dosyasında göründükleri sıraya göre, <Directory> bölümleri ve + .htaccess dosyaları okunup <Files> bölümleri de işlendikten sonra işleme + sokulurlar.

+ +

<Location> bölümleri dosya + sisteminin tamamen dışında işlem görürler. Bunun çeşitli sonuçları olur. + En önemlisi, <Location> + yönergelerinin dosya sistemi konumlarına erişimi denetim altına almak + için kullanılmaması gerekliliğidir. Aynı dosya sistemi konumuna farklı + URL’lerle erişmek mümkün olduğundan bu tür erişim denetimleri hile ile + atlatılabilir olacaktır.

+ +

<Location> ne zaman + kullanılmalı

+ +

<Location> yönergesini dosya sistemi + dışındaki içeriğe çeşitli yönergeler uygulamak için kullanın. Dosya + sisteminde bulunan içerik için <Directory> ve <Files> bölümlerini kullanın. Bunun istisnası, + sunucunun tamamına bir yapılandırma uygulamak için kolay bir yol olan + <Location /> kullanımıdır.

+
+ +

Kaynağa yapılan (vekil olmayan) tüm istekler için eşleşecek URL, + /yol/ şeklinde bir URL yolu olmalı; ne şema, ne konak ismi + ne port ne de sorgu dizgesi içermelidir. Vekil istekleri için eşleşecek + URL ise şema://sunucuadı/dosya-yolu şeklinde olmalı ve önek + içermelidir.

+ +

URL içinde dosya kalıp karakterleri kullanılabilir. Dosya kalıp + karakterleri bulunan bir dizgede bulunan ? karakteri + herhangi bir tek karakterle eşleşirken * karakteri herhangi + bir karakter dizisi ile eşleşecektir.

+ +

Ayrıca, ~ karakteri eşliğinde gelişkin  düzenli ifadeler de kullanılabilir. Örneğin,

+ +

+ <Location ~ "/(ek|hususi)/veri"> +

+ +

yönergesi /ek/veri ve /hususi/veri alt + dizgeleriyle eşleşecektir. <LocationMatch> yönergesi <Location> yönergesinin düzenli ifade sürümüne + eşdeğer davranır.

+ +

<Location> işlevselliği özellikle + SetHandler yönergesi ile birlikte + kullanışlı olur. Örneğin, durum isteklerini etkin kılmak ama sadece + mesela.dom’dan gelen isteklere izin vermek için şöyle bir + uygulama yapabilirsiniz:

+ +

+ <Location /status>
+ + SetHandler server-status
+ Order Deny,Allow
+ Deny from all
+ Allow from .mesela.dom
+
+ </Location> +

+ +

/ (bölü çizgisi) hakkında

+

Bölü çizgisinin URL içinde bulunduğu yere bağlı olarak özel anlamları + vardır. Dosya sistemindeki çok sayıda yanyana kullanımının tek bir bölü + çizgisi olarak ele alındığı duruma alışkın olanlar olabilir (yani, + /home///foo ile /home/foo aynıdır). URL + uzayında bunun böyle olması gerekli değildir. Eğer çok sayıda bölü + çizgisini yanyana belirtmeniz gerekiyorsa <LocationMatch> yönergesinde ve <Location> yönergesinin düzenli ifadeli + kullanımında bunu açıkça belirtmeniz gerekir.

+ +

Örneğin, <LocationMatch ^/abc> yönergesi + /abc ile eşleşecek ama //abc ile + eşleşmeyecektir. <Location> + yönergesinin düzenli ifade içermeyen kullanımındaki davranış vekil + isteklerinde kullanılana benzer ve doğrudan kaynağa yapılan (vekil + olmayan) isteklerde çok sayıda bölü çizgisi dolaylı olarak tek bir bölü + çizgisiyle eşleşecektir. Örneğin, <Location + /abc/def> belirtirseniz ve istek /abc//def + şeklinde olursa bu ikisi eşleşir.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

<LocationMatch> Yönergesi

+ + + + + + +
Açıklama:İçerdiği yönergeler sadece düzenli ifadelerle eşleşen URL’lere +uygulanır.
Sözdizimi:<LocationMatch + düzifade> ... </LocationMatch>
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

<LocationMatch> yönergesi içerdiği + yönergelerin etki alanını <Location> yönergesinin yaptığı gibi belirtilen URL’lerle + sınırlar. Ancak argüman olarak basit bir dizge değil bir  düzenli ifade alır. Örneğin,

+ +

+ <LocationMatch "/(ek|hususi)/veri"> +

+ +

yönergesi /ek/veri ve /hususi/veri alt + dizgeleriyle eşleşecektir.

+ +

Ayrıca bakınız:

+ +
+
top
+

LogLevel Yönergesi

+ + + + + + + +
Açıklama:Hata günlüklerinin ayrıntı seviyesini belirler.
Sözdizimi:LogLevel seviye
Öntanımlı:LogLevel warn
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

LogLevel yönergesi hata günlüklerine kaydedilen + hata iletilerinde hangi ayrıntılara yer verileceğini belirler (ErrorLog yönergesine bakınız). En yüksek önem + derecesinden başlayarak olası seviye değerleri aşağıda + sıralanmıştır:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Seviye Açıklama Örnek
emerg Acil durumlar - sistem kullanışsız."Child cannot open lock file. Exiting"
(Alt süreç kilit + dosyasını açamıyor. Çıkılıyor)
alert Ne yapılacaksa beklemeden yapılmalı."getpwuid: couldn't determine user name from uid"
(getpwuid: + Kullanıcı ismi numarasından saptanamadı)
crit Kriz durumları."socket: Failed to get a socket, exiting child"
(socket: bir + soket alınamadı, alt süreç çıkıyor)
error Hata durumları."Premature end of script headers"
(Betik başlıkları + beklenmedik şekilde bitti)
warn Uyarı durumları."child process 1234 did not exit, sending another + SIGHUP"
(1234 alt süreci çıkmadı, başka bir SIGHUP + gönderiliyor)
notice Normal fakat önemli durum."httpd: caught SIGBUS, attempting to dump core in + ..."
(httpd: SIGBUS alındı, core dökümlenmeye çalışılıyor: + ...)
info Bilgilendirme."Server seems busy, (you may need to increase + StartServers, or Min/MaxSpareServers)..."
(Sunucu meşgul + görünüyor, (StartServers veya Min/MaxSpareServers değerlerini + arttırmanız gerekebilir)...)
debug Hata ayıklama seviyesi iletileri"Opening config file ..."
(... yapılandırma dosyası + açılıyor)
+ +

Belli bir seviye belirtildiğinde daha yüksek seviyeden iletiler de + raporlanır. Örneğin, LogLevel info belirtildiğinde + notice ve warn günlük seviyelerinin iletileri + ayrıca raporlanacaktır.

+ +

En az crit seviyesinin kullanılması önerilir.

+ +

Örnek:

+ +

+ LogLevel notice +

+ +

Ek Bilgi

+

Günlük iletileri normal bir dosyaya yazılırken notice + seviyesinden iletiler engellenemez ve dolayısıyla daima raporlanırlar. + Ancak, günlük kaydı syslog kullanılarak yapılıyorsa bu + uygulanmaz.

+
+ +
+
top
+

MaxKeepAliveRequests Yönergesi

+ + + + + + + +
Açıklama:Bir kalıcı bağlantıda izin verilen istek sayısı
Sözdizimi:MaxKeepAliveRequests sayı
Öntanımlı:MaxKeepAliveRequests 100
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

MaxKeepAliveRequests yönergesi KeepAlive etkinken bağlantı başına izin + verilecek istek sayısını sınırlar. Değer olarak 0 + belirtilirse istek sayısı sınırsız olur. Sunucu başarımını yüksek tutmak + için yüksekçe bir değer belirtmenizi öneririz.

+ +

Örnek:

+ +

+ MaxKeepAliveRequests 500 +

+ +
+
top
+

NameVirtualHost Yönergesi

+ + + + + + +
Açıklama:İsme dayalı sanal konaklar için IP adresi belirtir
Sözdizimi:NameVirtualHost adres[:port]
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

NameVirtualHost yönergesi isme dayalı sanal konakları yapılandırmak isterseniz gerekli olur. +

+ +

adres olarak bir konak ismi de belirtebilirsiniz ama daima + bir IP adresi kullanmanızı öneririz. Örnek:

+ +

+ NameVirtualHost 111.22.33.44 +

+ +

NameVirtualHost yönergesi ile sunucunun isme + dayalı sanal konaklar için istekleri hangi IP adresinden alacağı + belirtilir. Bu adres genellikle isme dayalı sanal konak isimleri + çözümlendiğinde elde edilen IP adresidir. İstekleri bir güvenlik + duvarının veya bir vekilin alıp sunucuya yönlendirdiği durumlarda ise bu + adres sunucunun istekleri aldığı fiziksel arabirimin IP adresi olmalıdır. + Çok sayıda adres üzerinde çok sayıda isme dayalı sanal konak varsa her + adresin kendi yönergeleri olmalıdır.

+ +

Ek Bilgi

+

“Ana sunucu” ve _default_ sunucuların bir + NameVirtualHost IP adresine yapılan bir isteği + asla sunmayacağına dikkat ediniz (bir sebeple + NameVirtualHost belirtip bu adres için herhangi + bir VirtualHost tanımlamadığınız durumlar + hariç).

+
+ +

Seçimlik olarak, isme dayalı sanal konakların kullanması gereken port + numarasını örnekteki gibi belirtebilirsiniz:

+ +

+ NameVirtualHost 111.22.33.44:8080 +

+ +

IPv6 adresleri belirtilirken örnekteki gibi köşeli ayraçlar arasına + alınmalıdır:

+ +

+ NameVirtualHost [2001:db8::a00:20ff:fea7:ccea]:8080 +

+ +

İsteklerin bütün arabirimlerden alınacağını belirtmek için değer olarak + * belirtebilirsiniz:

+ +

+ NameVirtualHost * +

+ +

<VirtualHost> yönergesinin + argümanı

+

<VirtualHost> yönergesinin + argümanının NameVirtualHost yönergesininkiyle tam + olarak eşleşmesi gerektiğine dikkat ediniz.

+ +

+ NameVirtualHost 1.2.3.4
+ <VirtualHost 1.2.3.4>
+ # ...
+ </VirtualHost>
+

+
+ +

Ayrıca bakınız:

+ +
+
top
+

Options Yönergesi

+ + + + + + + + +
Açıklama:Belli bir dizinde geçerli olacak özellikleri yapılandırır. +
Sözdizimi:Options + [+|-]seçenek [[+|-]seçenek] ...
Öntanımlı:Options All
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Options
Durum:Çekirdek
Modül:core
+

Options yönergesi belli bir dizinde hangi sunucu + özelliklerinin etkin olacağını (veya olmayacağını) belirler.

+ +

seçenek olarak hiçbir ek özellik etkin olmayacaksa + None, aksi takdirde aşağıdakilerden biri veya bir kaçı + belirtilir:

+ +
+
All
+
MultiViews hariç tüm seçenekler. Bu öntanımlıdır.
+ +
ExecCGI
+
mod_cgi kullanan CGI betiklerinin çalışmasına izin + verilir.
+ +
FollowSymLinks
+
Sunucu bu dizindeki sembolik bağları izler. +
+

Sembolik bağlar izlense bile <Directory> bölümleriyle eşleşen dosya yolları + değiştirilmez.

+

Ayrıca, bu seçenek bir <Location> bölümü içinde belirtildiği takdirde yok + sayılır.

+
+ +
Includes
+
mod_include tarafından sağlanan sunucu taraflı + içeriklere izin verilir.
+ +
IncludesNOEXEC
+
Sunucu taraflı içeriklere izin verilir fakat #exec cmd + ve #exec cgi iptal edilir. Ancak, ScriptAlias’lı dizinlerdeki CGI + betikleri için #include virtual hala mümkün olacaktır.
+ +
Indexes
+
İstenen URL bir dizin ile eşleşiyorsa ve bu dizin için bir DirectoryIndex (index.html + gibi) belirtilmemişse mod_autoindex bu dizinin + biçimlenmiş bir listesini döndürecektir.
+ +
MultiViews
+
mod_negotiation kullanılarak içerik uzlaştırmalı çok + görünümlü içeriğe izin verilir.
+ +
SymLinksIfOwnerMatch
+
Sunucu sembolik bağları sadece sembolik bağın hedefi ile bulunduğu + dizinin sahibinin aynı kullanıcı olması halinde izleyecektir. + +

Ek Bilgi

Bu seçenek bir <Location> bölümü içinde belirtildiğinde yok + sayılır.

+
+
+ +

Normalde, bir dizine çok sayıda Options + uygulanabilirse de, dizine en uygun olanı uygulanıp diğerleri yok + sayılır; seçenekler katıştırılmaz (bkz, Bölümler Nasıl Katıştırılır?). Bununla birlikte, önüne bir + + veya - simgesi konmuş seçenekler varsa, o + seçenekler katıştırılır. Önüne + konmuş seçenekler + mevcutlara eklenirken - konmuş seçenekler silinir.

+ +

Uyarı

+

+ veya - imli seçenekler içeren + Options ile imsiz seçenekler içerenlerin karışık + olarak kullanılması beklenmedik sonuçlara yol açması sebebiyle aslında + geçersiz bir sözdizimidir.

+
+ +

Örneğin, + ve - imleri olmaksızın,

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options Includes
+
+ </Directory> +

+ +

yapılandırmasıyla /web/docs/spec dizininde sadece + Includes seçeneği etkin olacaktır. Bununla birlikte, ikinci + Options yönergesinde + ve + - imleri kullanılırsa,

+ +

+ <Directory /web/docs>
+ + Options Indexes FollowSymLinks
+
+ </Directory>
+
+ <Directory /web/docs/spec>
+ + Options +Includes -Indexes
+
+ </Directory> +

+ +

yapılandırmasıyla /web/docs/spec dizininde + FollowSymLinks ve Includes seçenekleri etkin + olacaktır.

+ +

Ek Bilgi

+

-IncludesNOEXEC veya -Includes kullanımı, + önceki ayarların ne olduğuna bakılmaksızın sunucu taraflı içeriğin + tamamen iptaline sebep olur.

+
+ +

Herhangi bir başka değer belirtilmedikçe All + öntanımlıdır.

+ +
+
top
+

Require Yönergesi

+ + + + + + + +
Açıklama:Bir özkaynağa erişebilecek kimliği doğrulanmış kullanıcıları +belirler
Sözdizimi:Require öğe-adı [öğe-adı] ...
Bağlam:dizin, .htaccess
Geçersizleştirme:AuthConfig
Durum:Çekirdek
Modül:core
+

Bu yönerge bir özkaynağa erişebilecek kimliği doğrulanmış kullanıcıları + belirlemek için kullanılır. İzin verilen bazı sözdizimleri:

+ +
+
Require user kull-kiml [kull-kiml] + ...
+
Sadece belirtilen kullanıcılar özkaynağa erişebilir.
+ +
Require group grup-adı [grup-adı] + ...
+
Sadece belirtilen gruplara üye kullanıcılar özkaynağa erişebilir.
+ +
Require valid-user
+
Geçerli kullanıcıların hepsi özkaynağa erişebilir.
+
+ +

Require yönergesinin düzgün çalışması için + kendisine AuthName ve AuthType yönergelerinin yanı sıra kullanıcıları + ve grupları tanımlamak için AuthUserFile ve AuthGroupFile gibi yönergelerinin de eşlik + etmesi gerekir. Örnek:

+ +

+ AuthType Basic
+ AuthName "Restricted Resource"
+ AuthUserFile /web/users
+ AuthGroupFile /web/groups
+ Require group admin +

+ +

Bu yolla uygulanan erişim denetimleri tüm yöntemler + için etkilidir. Normalde istenen zaten budur. Erişim + denetimlerini diğerlerini korumasız bırakmak pahasına sadece belli + yöntemlerle sınırlamak isterseniz Require + yönergesini bir <Limit> + bölümüne yerleştirin.

+ +

Ayrıca bakınız:

+ +
+
top
+

RLimitCPU Yönergesi

+ + + + + + + + +
Açıklama:Apache alt süreçleri tarafından çalıştırılan süreçlerin işlemci +tüketimine sınırlama getirir.
Sözdizimi:RLimitCPU saniye|max [saniye|max]
Öntanımlı:Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır +
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

İşlemci özkaynak sınırları saniye cinsinden ifade edilir.

+ +

Ayrıca bakınız:

+ +
+
top
+

RLimitMEM Yönergesi

+ + + + + + + + +
Açıklama:Apache alt süreçleri tarafından çalıştırılan süreçlerin bellek +tüketimine sınırlama getirir.
Sözdizimi:RLimitMEM bayt-sayısı|max [bayt-sayısı|max] +
Öntanımlı:Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır +
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

Bellek özkaynak sınırları süreç başına bayt sayısı olarak ifade edilir. +

+ +

Ayrıca bakınız:

+ +
+
top
+

RLimitNPROC Yönergesi

+ + + + + + + + +
Açıklama:Apache alt süreçleri tarafından çalıştırılabilecek süreç sayısına +sınırlama getirir.
Sözdizimi:RLimitNPROC sayı|max [sayı|max]
Öntanımlı:Bir değer belirtilmemiştir; işletim sistemi öntanımlıları kullanılır +
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

1 veya 2 değer alır. İlk değer bütün süreçler için sanal özkaynak + sınırını, ikinci değer ise kesin özkaynak sınırını belirler. İki değer de + birer sayı olabileceği gibi bu sınırın işletim sistemi yapılandırmasında + izin verilen üst sınıra ayarlanacağını belirtmek üzere max + olabilir. Kesin özkaynak sınırını yükseltmek için sunucunun + root olarak veya sistem açılışı sırasında çalıştırılması + gerekir.

+ +

Bu sınırlar Apache’nin kendi alt süreçlerine değil, isteklere yanıt + verirken Apache alt süreçlerinin çatalladıkları süreçlere uygulanır. + Bunlar CGI betikleri ve SSI çalıştırma komutları olabilir fakat borulu + günlük kaydı gibi ana Apache süreci tarafından çatallanmış süreçler + olmazlar.

+ +

Süreç sayısı sınırı kullanıcı başına süreç sayısına sınırlama getirir. +

+ +

Ek Bilgi

+

CGI süreçleri sunucu kullanıcı kimliğinden farklı bir kullanıcı + kimliği altında çalışmıyorsa bu yönerge sunucunun kendi oluşturduğu + süreç sayısını sınırlayacaktır. Bunun kanıtı error_log’da + iletilerin çatallanamamasıdır.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

Satisfy Yönergesi

+ + + + + + + + + +
Açıklama:Konak seviyesinde erişim denetimi ile kullanıcı kimlik doğrulaması +arasındaki etkileşim
Sözdizimi:Satisfy Any|All
Öntanımlı:Satisfy All
Bağlam:dizin, .htaccess
Geçersizleştirme:AuthConfig
Durum:Çekirdek
Modül:core
Uyumluluk:2.0.51 sürümü ve sonrasında <Limit> ve <LimitExcept> tarafından etkin kılınır.
+

Allow ve Require yönergelerinin ikisi birden + kullanıldığında uygulanacak erişim kuralını belirler. Değer olarak sadece + All veya Any belirtilebilir. Bu yönergenin + yararlı olabilmesi için belli bir alana hem istemci konak adresi hem de + kullanıcı ismi ve parolası belirtmek suretiyle erişilebiliyor olunması + gerekir. Bu durumda öntanımlı davranış (All), istemcinin + belli bir adrese erişebilmek için belli kısıtlamaları aşması ve geçerli + bir kullanıcı adı ve parola girmesi gerekir. Any seçeneğinin + belirtildiği durumda ise istemcinin ya konak kısıtlamalarıdan geçmesi ya + da geçerli bir kullanıcı adı ve parolası girmesi gerekir. Bu seçenek, + belli bir alana erişimi parolayla kısıtlayıp, belli adreslerden gelen + kullanıcılara parolasız erişim vermek için kullanılabilir.

+ +

Örneğin, sitenizin belli bir bölümü için iç ağınızdan gelen isteklere + sınırsız erişim vermek ama dışardan gelen istekleri parolayla kısıtlamak + isterseniz şöyle bir yapılandırma kullanabilirsiniz:

+ +

+ Require valid-user
+ Allow from 192.168.1
+ Satisfy Any +

+ +

2.0.51 sürümünden itibaren Satisfy yönergeleri + <Limit> ve <LimitExcept> bölümleri tarafından + belli yöntemlerle kullanılmak üzere kısıtlanmış olabilir.

+ +

Ayrıca bakınız:

+ +
+
top
+

ScriptInterpreterSource Yönergesi

+ + + + + + + + + +
Açıklama:CGI betikleri için yorumlayıcı belirleme tekniği
Sözdizimi:ScriptInterpreterSource Registry|Registry-Strict|Script
Öntanımlı:ScriptInterpreterSource Script
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Sadece Win32 için; Registry-Strict seçeneği Apache +2.0 ve sonrası için geçerlidir.
+

Bu yönerge Apache’nin CGI betiklerini çalıştıracak yorumlayıcıyı nasıl + tespit edeceğini belirler. Script öntanımlı olup Apache’nin + yorumlayıcı olarak betiğin diyezli ünlem satırında (#! ile + başlayan ilk satır) belirtilen yorumlayıcıyı kullanacağını belirtir. + Win32 sistemlerinde bu satır genellikle şöyledir:

+ +

+ #!C:/Perl/bin/perl.exe +

+ +

perl yorumlayıcının yeri PATH değişkeninde + kayıtlı ise şöyle de olabilir:

+ +

+ #!perl +

+ +

ScriptInterpreterSource Registry değeri ise betik dosyası + uzantısının (.pl gibi) Windows Sicili içindeki + HKEY_CLASSES_ROOT ağacında arama yapmak için bir arama + anahtarı olarak kullanılmasını sağlar. Betik dosyasını çalıştırmak için + tanımlanmış komutu bulmak için Shell\ExecCGI\Command yoluna, + orada yoksa Shell\Open\Command yoluna bakılır. İkisi de + yoksa son çare olarak Script seçeneğinin davranışına + dönülür.

+ +

Güvenlik

+

ScriptAlias’lı dizinlerde + Apache bulduğu her dosyayı çalıştırmayı deneyeceğinden + ScriptInterpreterSource Registry yapılandırmasını + kullanırken dikkatli olun. Registry seçeneği genellikle + çalıştırılmayacak dosyalar için istenmeyen program çağrılarına sebep + olabilir. Örneğin, çoğu Windows sisteminde .htm dosyaları + için ön tanımlı "open" komutu Microsoft Internet Explorer’ın + çalıştırılmasına sebep olur; bu bakımdan, betik dizininde bulunan bir + .htm dosyası için yapılan bir HTTP isteği tarayıcının sunucu + artalanında çalıştırılmasına sebep olacaktır. Bu, sistemi bir kaç dakika + içinde çökertmek için iyi bir yoldur.

+
+ +

Registry-Strict seçeneği Apache 2.0’da yeni olup + Registry seçeneğinin yaptığını + Shell\ExecCGI\Command yolu için yapar. ExecCGI + sistem tarafından bilinen bir anahtar olmadığından Windows Siciline elle + kaydedilmesi gerekir ve dolayısıyla sisteminiz üzerinde istenmeyen + program çağrılarına sebep olmaz.

+ +
+
top
+

ServerAdmin Yönergesi

+ + + + + + +
Açıklama:Sunucunun hata iletilerinde istemciye göstereceği eposta adresi +
Sözdizimi:ServerAdmin eposta-adresi
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

ServerAdmin yönergesi, sunucunun bir hata + durumunda istemciye döndüreceği hata iletilerinde içereceği eposta + adresini belirtmek için kullanılır.

+ +

Kullanıcıların sunucu hakkında konuşurken isminizden bahsetmemeleri için + burada belirtilecek adresin sırf bu işe adanmış bir adres olması daha + iyidir. Örnek:

+ +

+ ServerAdmin www-admin@falan.filan.dom +

+ +
+
top
+

ServerAlias Yönergesi

+ + + + + + +
Açıklama:İstekleri isme dayalı sanal konaklarla eşleştirilirken +kullanılacak konak adları için başka isimler belirtebilmeyi sağlar. +
Sözdizimi:ServerAlias konakadı [konakadı] ...
Bağlam:sanal konak
Durum:Çekirdek
Modül:core
+

ServerAlias yönergesi, istekleri isme dayalı sanal konaklarla + eşleştirilirken kullanılacak konak adları için başka isimler + belirtebilmeyi sağlar.

+ +

+ <VirtualHost *>
+ ServerName sunucu.mesela.dom
+ ServerAlias sunucu sunucu2.mesela.dom sunucu2
+ # ...
+ </VirtualHost> +

+ +

Ayrıca bakınız:

+ +
+
top
+

ServerName Yönergesi

+ + + + + + + +
Açıklama:Sunucunun özdeşleşeceği konak ismi ve port.
Sözdizimi:ServerName tam-nitelenmiş-alan-adı[:port] +
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
Uyumluluk:Bu yönerge 2.0 sürümünden itibaren 1.3 sürümündeki +Port yönergesinin işlevselliğini de +üstlenmiştir.
+

ServerName yönergesi, sunucunun kendini + betimlemekte kullanacağı konak adı ve port değerlerini belirler. + Bu, yönlendirme URL’leri oluşturulurken kullanılır. Örneğin, HTTP + sunucusunun barındırıldığı makinenin ismi falan.filan.dom + olduğu halde makinenin bir de www.filan.dom diye bir de DNS + rumuzu varsa ve HTTP sunucunuzun bu rumuzla kendini özdeşleştirmesini + isterseniz bunu şöyle belirtebilirsiniz:

+ +

+ ServerName www.filan.dom:80 +

+ +

Bir ServerName ataması yapılmamışsa sunucu IP + adresine atanmış sunucu ismi için bir ters DNS sorgusu yapacaktır. + ServerName yönergesinde bir port belirtilmediği + takdirde sunucu, isteğin geldiği portu kullanacaktır. Öngörülebilirlik ve + güvenilirlik açısından en iyisi ServerName + yönergesini kullanarak açıkça bir konak ismi ve port belirtmektir.

+ +

İsme dayalı sanal konaklar + kullanıyorsanız, <VirtualHost> bölümü içindeki + ServerName yönergesi, isteğin Host: + başlığında bu sanal konakla eşleşecek konak ismini belirler.

+ + +

Sunucunun kendine yönelik URL’lerin belirtilen portu içerip içermediğini + veya istemcinin yaptığı istekte belirtilen port numarasının verilip + verilmediğinin saptanmasını sağlayan (örneğin, mod_dir + modülü tarafından) ayarlar için UseCanonicalName yönergesinin açıklamalarına + bakınız.

+ + +

Ayrıca bakınız:

+ +
+
top
+

ServerPath Yönergesi

+ + + + + + +
Açıklama:Uyumsuz bir tarayıcı tarafından erişilmesi için bir isme dayalı +sanal konak için meşru URL yolu
Sözdizimi:ServerPath URL-yolu
Bağlam:sanal konak
Durum:Çekirdek
Modül:core
+

ServerPath yönergesi isme + dayalı sanal konaklarda kullanmak için konağa meşru bir URL yolu + belirler.

+ +

Ayrıca bakınız:

+ +
+
top
+

ServerRoot Yönergesi

+ + + + + + + +
Açıklama:Sunucu yapılandırması için kök dizin
Sözdizimi:ServerRoot dizin-yolu
Öntanımlı:ServerRoot /usr/local/apache
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

ServerRoot yönergesi sunucu yapılandırmasını + içeren dizinin yerini belirtir. Genellikle conf/ ve + logs/ gibi alt dizinler içerir. Include, LoadModule gibi diğer yapılandırma + yönergelerindeki göreli yollar bu dizine göre ele alınır.

+ +

Örnek

+ ServerRoot /home/httpd +

+ + +

Ayrıca bakınız:

+ +
+
top
+

ServerSignature Yönergesi

+ + + + + + + + +
Açıklama:Sunucu tarafından üretilen belgelerin dipnotunu ayarlar. +
Sözdizimi:ServerSignature On|Off|EMail
Öntanımlı:ServerSignature Off
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:All
Durum:Çekirdek
Modül:core
+

ServerSignature yönergesi, sunucu tarafından + üretilen belgelerin (hata iletileri, mod_proxy ftp dizin + listeleri, mod_info çıktısı, vs.) altındaki dipnot + satırını yapılandırabilmenizi sağlar. Böyle bir dipnot satırın + istenmesinin sebebi vekil zincirlerinde istemciye dönen hata iletisinin + aslında hangi sunucu tarafından üretildiğini kullanıcıya bildirmektir.

+ +

Off değeri öntanımlı değer olup dipnot satırının + gösterilmemesini sağlar (Apache-1.2 ve öncesi ile uyumluluk). + On değeri, sunucu sürüm numarası ve hizmeti sunan sanal + konağın isminden (ServerName) oluşan + bir dipnot satırı oluşturulmasını sağlar; EMail değeri bu + ikisine ek olarak satıra ServerAdmin + ile belirtilen adres için bir "mailto:" bağı ekler.

+ +

2.0.44 sürümünden beri sunucu sürüm numarasının ayrıntıları ServerTokens yönergesi ile belirlenmektedir.

+ +

Ayrıca bakınız:

+ +
+
top
+

ServerTokens Yönergesi

+ + + + + + + +
Açıklama:Server HTTP yanıt başlığını yapılandırır. +
Sözdizimi:ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
Öntanımlı:ServerTokens Full
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

Bu yönerge Server HTTP yanıt başlığı alanında istemcilere + sunucunun işletim sistemi, sunucuyla derlenmiş modüller, vs. hakkında + bilgi verilip verilmeyeceğini belirler.

+ +
+
ServerTokens Prod[uctOnly]
+ +
Sunucu şunu gönderir (örnek): Server: + Apache
+ +
ServerTokens Major
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2
+ +
ServerTokens Minor
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2.0
+ +
ServerTokens Min[imal]
+ +
Sunucu şunu gönderir (örnek): Server: + Apache/2.0.41
+ +
ServerTokens OS
+ +
Sunucu şunu gönderir (örnek): Server: Apache/2.0.41 + (Unix)
+ +
ServerTokens Full (ya da belirtilmezse)
+ +
Sunucu şunu gönderir (örnek): Server: Apache/2.0.41 + (Unix) PHP/4.2.2 MyMod/1.2
+
+ +

Bu ayarlama sunucunun tamamını etkiler ve her sanal konak için + farklılaştırılamaz.

+ +

2.0.44 sürümünden itibaren bu yönerge ServerSignature yönergesi tarafından sunulan + bilgiyi de etkilemektedir.

+ +

Ayrıca bakınız:

+ +
+
top
+

SetHandler Yönergesi

+ + + + + + + + +
Açıklama:Eşleşen tüm dosyaların belli bir eylemci tarafından işlenmesine +sebep olur.
Sözdizimi:SetHandler eylemci-ismi|None
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 2.0’da core modülüne taşındı.
+

Bir .htaccess dosyasına veya bir <Directory> ya da <Location> bölümüne yerleştirildiğinde, eşleşen + tüm dosyaların, ismi eylemci-ismi ile belirtilen eylemci tarafından çözümlenmesine sebep olur. + Örneğin, bir dizin içindeki bütün dosyaların, uzantılarına bakılmaksızın + birer imagemap kural dosyası olarak çözümlenmesini istersiniz, bu dizin + içindeki bir .htaccess dosyasına şöyle bir satır + koyabilirsiniz:

+ +

+ SetHandler imap-file +

+ +

Başka bir örnek: http://localhost/status gibi bir istek + yapıldığında sunucunun bir durum bilgisi göstermesi için + httpd.conf dosyasına şöyle bir satır koyabilirsiniz:

+ +

+ <Location /status>
+ + SetHandler server-status
+
+ </Location> +

+ +

Evvelce tanımlanmış bir SetHandler yönergesini + None değeriyle geçersiz hale getirebilirsiniz.

+ +

Ayrıca bakınız:

+ +
+
top
+

SetInputFilter Yönergesi

+ + + + + + + +
Açıklama:POST girdilerini ve istemci isteklerini işleyecek süzgeçleri +belirler.
Sözdizimi:SetInputFilter süzgeç[;süzgeç...]
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

SetInputFilter yönergesi, istemci isteklerini ve + sunucu tarafından alındığı takdirde POST girdisini işleyecek süzgeç veya + süzgeçleri belirler. Bu, diğer AddInputFilter yönergeleri dahil evvelce tanımlanmış + süzgeçlere eklenir.

+ +

Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı + virgüllerle ayrılmalı ve çıktıyı işleyecekleri sıraya uygun olarak + sıralanmalıdırlar.

+ +

Ayrıca bakınız:

+ +
+
top
+

SetOutputFilter Yönergesi

+ + + + + + + +
Açıklama:Sunucunun yanıtlarını işleyecek süzgeçleri belirler.
Sözdizimi:SetOutputFilter süzgeç[;süzgeç...]
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Çekirdek
Modül:core
+

SetOutputFilter yönergesi, istemciye + gönderilmeden önce sunucunun yanıtlarını işleyecek süzgeçleri belirler. + Bu, diğer AddOutputFilter + yönergeleri dahil evvelce tanımlanmış süzgeçlere eklenir.

+ +

Örneğin, aşağıdaki yapılandırma ile /www/data/ dizinindeki + bütün dosyalar sunucu taraflı içerik kapsamında ele alınacaktır.

+ +

+ <Directory /www/data/>
+ + SetOutputFilter INCLUDES
+
+ </Directory> +

+ +

Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı + virgüllerle ayrılmalı ve çıktıyı işleyecekleri sıraya uygun olarak + sıralanmalıdırlar.

+ +

Ayrıca bakınız:

+ +
+
top
+

TimeOut Yönergesi

+ + + + + + + +
Açıklama: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.
Sözdizimi:TimeOut saniye
Öntanımlı:TimeOut 300
Bağlam:sunucu geneli, sanal konak
Durum:Çekirdek
Modül:core
+

TimeOut yönergesi Apache’nin aşağıdaki üç durum + için bekleyeceği süreyi belirler:

+ +
    +
  1. Bir GET isteğini almak için geçecek toplam süre.
  2. + +
  3. Bir POST veya PUT isteğinde TCP paketlerinin alımları arasında geçen + süre.
  4. + +
  5. Yanıtlarda TCP paketlerinin aktarımı için alındılar arasında geçen + süre.
  6. +
+

Bunları ileride ayrı ayrı yapılandırılabilir kılmayı planlıyoruz. 1.2 + öncesinde zaman aşımı öntanımlı olarak 1200 saniye idi, fakat çoğu durum + için hala gereğinden fazla olsa bile şimdi 300 saniyeye düşürüldü. Kodun + içinde, bir paket gönderilmediği takdirde zaman aşımı değerinin + sıfırlanmadan kaldığı tuhaf yerler bulunabileceğinden bu değer öntanımlı + değerin altına ayarlanmamalıdır.

+ + +
+
top
+

TraceEnable Yönergesi

+ + + + + + + + +
Açıklama:TRACE isteklerinde davranış şeklini belirler +
Sözdizimi:TraceEnable [on|off|extended]
Öntanımlı:TraceEnable on
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
Uyumluluk:Apache 1.3.34, 2.0.55 ve sonrasında mevcuttur.
+

Bu yönerge çekirdek ve vekil (mod_proxy) sunucuların + her ikisi için öntanımlı TRACE davranışını değiştirir. + Öntanımlı olan TraceEnable on ile RFC 2616’dan kaynaklanan + ve isteğe herhangi bir istek gövdesinin eşlik etmesine izin vermeyen + TRACE isteklerine izin verilir. TraceEnable off + ile çekirdek ve vekil (mod_proxy) sunucuların her ikisi + de TRACE isteklerine yanıt olarak bir 405 + (Yönteme izin verilmiyor) hatası döndürür.

+ +

TraceEnable extended ile sadece sınama ve tanı koyma + amaçlarına yönelik olarak istek gövdelerine izin verilir. Asıl sunucu + istek gövdesini 64k ile sınırlar (Transfer-Encoding: chunked + kullanılmışsa bölüm başlıkları için 8k daha). Asıl sunucu yanıt + gövdesinde tüm başlıkları ve bölüm başlıklarının tamamını yansıtacaktır. + Vekil sunucuda ise istek gövdesi için 64k’lık sınır yoktur.

+ +
+
top
+

UseCanonicalName Yönergesi

+ + + + + + + +
Açıklama:Sunucunun kendi adını ve portunu nasıl belirleyeceğini ayarlar +
Sözdizimi:UseCanonicalName On|Off|DNS
Öntanımlı:UseCanonicalName On
Bağlam:sunucu geneli, sanal konak, dizin
Durum:Çekirdek
Modül:core
+

Apache‘nin çoğu durumda özüne yönelik URL‘ler (isteğin tekrar aynı + sunucuya yapıldığı bir URL türü) oluşturması gerekir. + UseCanonicalName On ile Apache, sunucu için meşru ismi ve + portu oluşturmak için ServerName + yönergesinde belirtilen ismi ve portu kullanır. Bu isim CGI'lerde + SERVER_NAME ve SERVER_PORT değerlerinde ve tüm + özüne yönelik URL’lerde kullanılır.

+ +

UseCanonicalName Off ile Apache, özüne yönelik URL’leri + varsa istemci tarafından sağlanan konak ismini ve portu kullanarak + oluşturur; bunlar istemci tarafından sağlanmamışsa yukarıda tanımlanan + işleme başvurulur. Bu değerler, isme + dayalı sanal konakları gerçekleştirirken kullanılan değerlerle aynı + olup aynı istemcilerle kullanılabilir. SERVER_NAME ve + SERVER_PORT CGI değişkenleri de istemci tarafından sağlanan + isim ve portla oluşturulur.

+ +

Bir örnek olarak, iç ağdaki istemcilerin sunucuya www gibi + bir kısa isim kullanarak bağlandığı durumu ele alırsak daha yararlı olur. + Kullanıcılar bir kısa isim ve bir dizin isminden oluşan ve bir / ile + sonlandırılmamış http://www/splat şeklinde bir istek + yaparlarsa, Apache onları http://www.mesela.dom/splat/ + adresine yönlendirecektir. Eğer kimlik doğrulama da etkinse bu + kullanıcının iki defa kimlik doğrulamasına sokulmasına sebep olacaktır + (bir kere www için bir kere de www.mesela.dom + için; daha ayrıntılı bilgi için SSS’y + e bakınız). Fakat UseCanonicalName Off olsaydı + Apache isteği http://www/splat/ adresine yönlendirecekti.

+ +

UseCanonicalName DNS diye üçüncü bir seçenek daha vardır ve + istek yaparken Host: başlığını kullanmayan eski istemcileri + desteklemek amacıyla IP’ye dayalı sanal konaklarla kullanmak için + tasarlanmıştır. Bu seçenek etkin olduğunda Apache, istemciyi özüne + yönelik URL’lerle doğru yere bağlamak için sunucu IP adresi üzerinde bir + ters DNS sorgusu yapar.

+ +

Uyarı

+

Eğer CGI’ler SERVER_NAME değerleri için önkabuller + yapıyorlarsa bu seçenek işlerinin bozulmasına yol açabilir. Aslında + istemciler konak ismi olarak istedikleri değeri vermekte özgürdürler. + Fakat eğer CGI, özüne yönelik URL’leri oluştururken sadece + SERVER_NAME değerini kullanıyorsa bu istendiği gibi + çalışacaktır.

+
+ +

Ayrıca bakınız:

+ +
+
top
+

<VirtualHost> Yönergesi

+ + + + + + +
Açıklama:Sadece belli bir konak ismine ve porta uygulanacak yönergeleri +barındırır.
Sözdizimi:<VirtualHost + adres[:port] [adres[:port]] + ...> ... </VirtualHost>
Bağlam:sunucu geneli
Durum:Çekirdek
Modül:core
+

<VirtualHost> ve + </VirtualHost> birlikte sadece belli bir sanal konağa + uygulanacak yönergeleri sarmalamakta kullanılırlar. Bir sanal konak + kapsamında belirtilebilecek her yönerge kullanılabilir. Sunucu belli bir + sanal konak üzerindeki bir belge için bir istek aldığında <VirtualHost> bölümünde bulunan yapılandırma + yönergelerini kullanır. adres şunlardan biri olabilir:

+ +
    +
  • Sanal konağın IP adresi.
  • + +
  • Sanal konağın IP adresi için tam nitelenmiş alan adı.
  • + +
  • NameVirtualHost * ile birlikte tüm IP adresleri ile + eşleşmek üzere * karakteri.
  • + +
  • Sadece IP sanal konaklarında kullanmak için eşleşmeyen IP adreslerini + yakalamak amacıyla _default_ dizgesi.
  • +
+ +

Örnek

+ <VirtualHost 10.1.2.3>
+ + ServerAdmin webmaster@konak.mesela.dom
+ DocumentRoot /www/docs/konak.mesela.dom
+ ServerName konak.mesela.dom
+ ErrorLog logs/konak.mesela.dom-error_log
+ TransferLog logs/konak.mesela.dom-access_log
+
+ </VirtualHost> +

+ + +

İsteğe bağlı port numarasını belirtmeyi mümkün kılmak için IPv6 + adresleri köşeli ayraç içine alınır. IPv6 adresi kullanılan bir örnek:

+ +

+ <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
+ + ServerAdmin webmaster@konak.mesela.dom
+ DocumentRoot /www/docs/konak.mesela.dom
+ ServerName konak.mesela.dom
+ ErrorLog logs/konak.mesela.dom-error_log
+ TransferLog logs/konak.mesela.dom-access_log
+
+ </VirtualHost> +

+ +

Her sanal konağın ya farklı bir IP adresi ve port ile ya da farklı bir + konak ismiyle eşleşmesi gerekir. Birinci durumda sunucu makinesinin çok + sayıda adresten IP paketleri kabul edecek şekilde yapılandırılması + gerekir. (Eğer makinede çok sayıda ağ arabirimi yoksa bu, işletim sistemi + desteklediği takdirde ifconfig alias komutuyla + sağlanabilir.)

+ +

Ek Bilgi

+

<VirtualHost> kullanımı Apache’nin + dinleyeceği adresler üzerinde belirleyici değildir. Apache’nin doğru + adresi dinlediğinden emin olmak için Listen kullanmanız gerekebilir.

+
+ +

IP’ye dayalı sanal konakları kullanıyorsanız, diğer sanal konaklarda + açıkça belirtilmemiş IP adresleriyle eşleşecek sanal konağı + _default_ özel ismiyle belirtebilirsiniz. "Ana" sunucu + yapılandırmasında _default_ diye bir sanal konağın + bulunmaması halinde, hiçbir IP adresi eşleşmesi bulunamadığı takdirde + <VirtualHost> bölümleri dışında kalan + tüm yapılandırmalar bu amaca yönelik olarak kullanılır. (Yalnız dikkat + edin, bir NameVirtualHost yönergesi + ile eşleşen bir IP adresi için ne "ana" sunucu yapılandırması ne de + _default_ sanal konak yapılandırması kullanılır. Bu konuda + daha ayrıntılı bilgi için isme dayalı + sanal konaklar belgesine bakınız.)

+ +

Eşleşilecek portu değiştirmek için bir :port + belirtebilirsiniz. Port bu şekilde değiştirilmediği takdirde ana + sunucunun son Listen + yönergesinde belirtilen port kullanılır. Bir adresteki tüm portlarla + eşleşileceğini belirtmek için :* kullanabilirsiniz. (Bu, + _default_ kullanıldığı takdirde önerilir.)

+ +

Güvenlik

+

Günlük dosyalarının sunucuyu çalıştıran kullanıcıdan başka herkes + tarafından yazılabilen bir yerde saklanmasından dolayı ortaya çıkabilecek + güvenlik sorunları hakkında daha ayrıntılı bilgi için güvenlik ipuçları belgesine + bakınız.

+
+ +

Ayrıca bakınız:

+ +
+
+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html b/rubbos/app/apache2/manual/mod/directive-dict.html new file mode 100644 index 00000000..d9ac8c7c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: directive-dict.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: directive-dict.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: directive-dict.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: directive-dict.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: directive-dict.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html.en b/rubbos/app/apache2/manual/mod/directive-dict.html.en new file mode 100644 index 00000000..a0753b61 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html.en @@ -0,0 +1,297 @@ + + + +Terms Used to Describe Directives - Apache HTTP Server + + + + + +
<-
+

Terms Used to Describe Directives

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

This document describes the terms that are used to describe + each Apache configuration + directive.

+
+ +
top
+
+

Description

+ +

A brief description of the purpose of the directive.

+
top
+
+

Syntax

+ +

This indicates the format of the directive as it would + appear in a configuration file. This syntax is extremely + directive-specific, and is described in detail in the + directive's definition. Generally, the directive name is + followed by a series of one or more space-separated arguments. + If an argument contains a space, the argument must be enclosed + in double quotes. Optional arguments are enclosed in square + brackets. Where an argument can take on more than one possible + value, the possible values are separated by vertical bars "|". + Literal text is presented in the default font, while + argument-types for which substitution is necessary are + emphasized. Directives which can take a variable + number of arguments will end in "..." indicating that the last + argument is repeated.

+ +

Directives use a great number of different argument types. A + few common ones are defined below.

+ +
+
URL
+ +
A complete Uniform Resource Locator including a scheme, + hostname, and optional pathname as in + http://www.example.com/path/to/file.html
+ +
URL-path
+ +
The part of a url which follows the scheme and + hostname as in /path/to/file.html. The + url-path represents a web-view of a resource, as + opposed to a file-system view.
+ +
file-path
+ +
The path to a file in the local file-system beginning + with the root directory as in + /usr/local/apache/htdocs/path/to/file.html. + Unless otherwise specified, a file-path which does + not begin with a slash will be treated as relative to the ServerRoot.
+ +
directory-path
+ +
The path to a directory in the local file-system + beginning with the root directory as in + /usr/local/apache/htdocs/path/to/.
+ +
filename
+ +
The name of a file with no accompanying path information + as in file.html.
+ +
regex
+ +
A Perl-compatible regular + expression. The directive definition will specify what the + regex is matching against.
+ +
extension
+ +
In general, this is the part of the filename + which follows the last dot. However, Apache recognizes + multiple filename extensions, so if a filename + contains more than one dot, each dot-separated part of the + filename following the first dot is an extension. + For example, the filename file.html.en + contains two extensions: .html and + .en. For Apache directives, you may specify + extensions with or without the leading dot. In + addition, extensions are not case sensitive.
+ +
MIME-type
+ +
A method of describing the format of a file which + consists of a major format type and a minor format type, + separated by a slash as in text/html.
+ +
env-variable
+ +
The name of an environment + variable defined in the Apache configuration process. + Note this is not necessarily the same as an operating system + environment variable. See the environment variable documentation for + more details.
+
+
top
+
+

Default

+ +

If the directive has a default value (i.e., if you + omit it from your configuration entirely, the Apache Web server + will behave as though you set it to a particular value), it is + described here. If there is no default value, this section + should say "None". Note that the default listed here + is not necessarily the same as the value the directive takes in + the default httpd.conf distributed with the server.

+
top
+
+

Context

+ +

This indicates where in the server's configuration files the + directive is legal. It's a comma-separated list of one or more + of the following values:

+ +
+
server config
+ +
This means that the directive may be used in the server + configuration files (e.g., httpd.conf), but + not within any + <VirtualHost> + or <Directory> + containers. It is not allowed in .htaccess files + at all.
+ +
virtual host
+ +
This context means that the directive may appear inside + <VirtualHost> + containers in the server + configuration files.
+ +
directory
+ +
A directive marked as being valid in this context may be + used inside <Directory>, + <Location>, + and <Files> + containers in the server configuration files, subject to the + restrictions outlined in How + Directory, Location and Files sections work.
+ +
.htaccess
+ +
If a directive is valid in this context, it means that it + can appear inside per-directory + .htaccess files. It may not be processed, though + depending upon the overrides currently active.
+
+ +

The directive is only allowed within the designated + context; if you try to use it elsewhere, you'll get a + configuration error that will either prevent the server from + handling requests in that context correctly, or will keep the + server from operating at all -- i.e., the server won't + even start.

+ +

The valid locations for the directive are actually the + result of a Boolean OR of all of the listed contexts. In other + words, a directive that is marked as being valid in + "server config, .htaccess" can be used in the + httpd.conf file and in .htaccess + files, but not within any <Directory> or + <VirtualHost> + containers.

+
top
+
+

Override

+ +

This directive attribute indicates which configuration + override must be active in order for the directive to be + processed when it appears in a .htaccess file. If + the directive's context + doesn't permit it to appear in .htaccess files, + then no context will be listed.

+ +

Overrides are activated by the AllowOverride directive, and apply + to a particular scope (such as a directory) and all + descendants, unless further modified by other + AllowOverride directives at + lower levels. The documentation for that directive also lists the + possible override names available.

+
top
+
+

Status

+ +

This indicates how tightly bound into the Apache Web server + the directive is; in other words, you may need to recompile the + server with an enhanced set of modules in order to gain access + to the directive and its functionality. Possible values for + this attribute are:

+ +
+
Core
+ +
If a directive is listed as having "Core" status, that + means it is part of the innermost portions of the Apache Web + server, and is always available.
+ +
MPM
+ +
A directive labeled as having "MPM" status is provided by + a Multi-Processing Module. This + type of directive will be available if and only if you are + using one of the MPMs listed on the Module line of the directive + definition.
+ +
Base
+ +
A directive labeled as having "Base" status is supported + by one of the standard Apache modules which is compiled into + the server by default, and is therefore normally available + unless you've taken steps to remove the module from your + configuration.
+ +
Extension
+ +
A directive with "Extension" status is provided by one of + the modules included with the Apache server kit, but the + module isn't normally compiled into the server. To enable the + directive and its functionality, you will need to change the + server build configuration files and re-compile Apache.
+ +
Experimental
+ +
"Experimental" status indicates that the directive is + available as part of the Apache kit, but you're on your own + if you try to use it. The directive is being documented for + completeness, and is not necessarily supported. The module + which provides the directive may or may not be compiled in by + default; check the top of the page which describes the + directive and its module to see if it remarks on the + availability.
+
+
top
+
+

Module

+ +

This quite simply lists the name of the source module which + defines the directive.

+
top
+
+

Compatibility

+ +

If the directive wasn't part of the original Apache version + 2 distribution, the version in which it was introduced should + be listed here. In addition, if the directive is available + only on certain platforms, it will be noted here.

+
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html.es b/rubbos/app/apache2/manual/mod/directive-dict.html.es new file mode 100644 index 00000000..9c99e0b7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html.es @@ -0,0 +1,307 @@ + + + +Trminos usados en las descripciones de las + Directivas - Servidor HTTP Apache + + + + + +
<-
+

Trminos usados en las descripciones de las + Directivas

+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

Este documento define los trminos que se usan para describir + las directivas de configuracin de + Apache.

+
+ +
top
+
+

Descripcin

+ +

Descripcin resumida de para qu sirve la directiva.

+
top
+
+

Sintaxis

+ +

Explica el formato de la directiva en la manera en que + aparecera en un fichero de configuracin. La sintaxis es + especfica para cada directiva, y se decribe en detalle en la + definicin de cada una de ellas. Generalmente, es el nombre de la + directiva seguido del argumento o argumentos que correspondan + separados por espacios. Si un argumento contiene un espacio, + entonces debe escribirse entre comillas. Los argumentos opcionales + van entre corchetes ([]). Si cada argumento puede tomar ms de un + valor, los valores posibles van separados por barras verticales + "|". Los textos literales (los que no hay que sustituir) estn en + el tipo de letra por defecto del resto del texto, mientras que los + que hay que sustituir estn resaltados. Las directivas + que pueden tomar un nmero variable de argumentos terminan con + puntos suspensivos ("...").

+ +

Las directivas usan una gran variedad de tipos de + argumentos. Algunos de los ms comunes son:

+ +
+
URL
+ +
Un Localizador de Recursos Uniforme (Uniform Resource + Locator) que consiste en un esquema (www), un nombre de host + (example.com), y opcionalmente, una ruta; por ejemplo + http://www.example.com/path/to/file.html
+ +
URL-path
+ +
La parte de una url que va a continuacin del + esquema y del nombre de host, por ejemplo + /path/to/file.html. El url-path representa + al fichero visto desde el servidor web, en contraposicin a + verlo tomando el sistema de ficheros como punto de + referencia.
+ +
file-path
+ +
La ubicacin de un fichero en el sistema de archivos local + que empieza con el directorio raiz, por ejemplo, + /usr/local/apache/htdocs/path/to/file.html. A + menos que se especifique otra cosa, un file-path que no + empieza con una barra ser tratado como relativo a ServerRoot.
+ +
directory-path
+ +
La ubicacin de un directorio en el sistema de archivos + local que empieza en el directorio raiz, por ejemplo + /usr/local/apache/htdocs/path/to/.
+ +
filename
+ +
El nombre de un fichero sin informacin adicional sobre su + ubicacin, por ejemplo file.html.
+ +
regex
+ +
Una expresin regular, que es una forma de describir un + patrn para encontrar sus equivalencias en un texto. La + definicin de la directiva especificar con qu se comparar + regex para encontrar equivalencias.
+ +
extension
+ +
En general, es la parte del filename que va despus + del ltimo punto. Apache reconoce muchas de estas extensiones, + de manera que si un filename contiene mas de un punto, + cada parte separada por uno de esos puntos despus del primero + se trata como una extensin. Por ejemplo, el + filename file.html.en contiene dos + extensiones: .html y .en. Para las + directivas de Apache, puede especificar extensiones con + o sin punto delante. Las extensiones no distinguen + maysculas de minsculas.
+ +
MIME Type
+ +
Es una forma de describir el formato de un fichero, que + consiste en un tipo de formato principal y un tipo de formato + secundario, separados por una barra, por ejemplo + text/html.
+ +
env-variable
+ +
El nombre de una variable de + entorno definida en el proceso de configuracin de Apache. + Tenga en cuenta que esto no es necesariamente exactamente lo + mismo que una variable de entorno del sistema + operativo. Consulte la documentacin sobre + variables de entorno si quiere obtener ms informacin.
+
+
top
+
+

Valor por defecto

+ +

Si una directiva tiene un valor por defecto (esto significa + que, si no especifica un valor explicitamente en la + configuracin, el servidor Apache se comportar como si hubiera + especificado ese valor por defecto). Si no existe un valor por + defecto, en este apartado aparecer "None". Tenga en + cuenta que el valor por defecto que se especifica aqu puede no + ser el mismo que el que viene especificado para la directiva en el + fichero de configuracin httpd.conf que viene por defecto.

+
top
+
+

Contexto

+ +

Indica en qu parte de los ficheros de configuracin del + servidor se puede usar la directiva. Es una lista de elementos + separados por comas. Los valores permitidos son los + siguientes:

+ +
+
server config
+ +
Significa que la directiva puede ser usada en los ficheros + de configuracin del servidor (por ejemplo, + httpd.conf), pero no dentro de las + secciones <VirtualHost> ni <Directory>. Tambin + significa que la directiva no puede usarse en los ficheros + .htaccess.
+ +
virtual host
+ +
Este contexto significa que la directiva puede aparecer + dentro de las secciones <VirtualHost> de los ficheros de + configuracin del servidor.
+ +
directory
+ +
Una directiva marcada como vlida en este contexto puede + usarse en las secciones <Directory>, <Location>, y <Files> en los ficheros de + configuracin del servidor, atenindose en todo caso a las + restricciones especificadas en el documento Modo de funcionamiento de las secciones + Directory, Location y Files.
+ +
.htaccess
+ +
Si una directiva es vlida en este contexto, eso significa + que puede aparecer en los ficheros .htaccess. El + valor de la directiva puede no ser procesada si hay sobre ella + una orden de sobreescritura activa en + ese momento.
+
+ +

Una directiva puede usarse solo en el contexto + especificado, si la usa en otro sitio, se producir en error de + configuracin que har que el servidor no pueda servir peticiones + en el contexto correctamente, o que el servidor no pueda + funcionar en absoluto -- por ejemplo, puede que el + servidor no se inicie.

+ +

Las ubicaciones vlidas para una directiva son el resultado de + la operacin booleana OR de todos los contextos listados ms + arriba en que est perimitido su uso. En otras palabras, una + directiva que est marcada como vlida en "server config, + .htaccess" puede usarse tanto en el fichero + httpd.conf como en los ficheros + .htaccess, pero no dentro de las secciones + <Directory> o + <VirtualHost>.

+
top
+
+

Override

+ +

Este atributo indica qu configuracin de las especificadas + para una directiva es la que prevalece cuando la directiva aparece + en un fichero .htaccess. Si el contexto de una directiva no permite que aparezca en ficheros + .htaccess, entonces no aparecer ningn contexto en + este campo.

+ +

Para que se aplique el valor especificado en este campo se usa + la directiva AllowOverride, y + se aplica a un entorno en particular (por ejemplo un directorio) + y todo lo que haya por debajo de l, a menos que haya alguna + modificacin posterior por directivas AllowOverride a niveles ms bajos. La + documentacin de esta directiva tambin especifica los valores que + puede tomar override.

+
top
+
+

Estado

+ +

Indica el grado de integracin con el el servidor web Apache + que presenta la directiva; en otras palabras, puede que tenga que + recompilar el servidor con un conjunto mejorado de mdulos para + tener acceso a algunas directivas y a sus funcionalidades. Los + valores posibles de este campo son:

+ +
+
Core
+ +
Si una directiva tiene estado "Core", esto significa que su + grado de integracin con el servidor Apache es muy alto, y que + est disponible siempre.
+ +
MPM
+ +
Una directiva etiquetada con el estado "MPM" pertenece a un + Mdulo de MultiProcesamiento. Este + tipo de directiva estar disponible solamente si est usando uno + de los MPMs listados en la lnea Mdulo de + la deficinicin de la directiva.
+ +
Base
+ +
Una directiva etiquetada con el estado "Base" est soportada + por uno de los mdulos estndar de Apache, que est compilado en + el servidor por defecto, y est siempre disponible a no ser que + haya eliminado ese mdulo especficamente.
+ +
Extension
+ +
Una directiva con el estado "Extension" pertenece a un + mdulo incluido en el kit del servidor Apache, pero que no est + normalmente compilado en el servidor. Para activar la directiva + y sus funcionalidades, tendr que recompilar Apache.
+ +
Experimental
+ +
El estado "Experimental" indica que la directiva est + disponible como parte de la distribucin Apache, pero que su correcto + funcionamiento no est todava probado. Puede que la directiva + est siendo documentada para completarla, o puede que no se + ofrezca soporte. El mdulo que ofrece la directiva puede o no + estar compilado por defecto; compruebe la parte superior de la + pgina que describe la directiva y sus mdulos para ver si hay + alguna indicacin sobre su disponibilidad.
+
+
top
+
+

Mdulo

+ +

Indica el mdulo en el cual se define la directiva.

+
top
+
+

Compatibilidad

+ +

Si una directiva no era originalmente parte de la versin 2.0 + de la distribucin de Apache, la versin en la que fue introducida + debe aparecer aqu. Adems, si la directiva est disponible solo + en algunas plataformas, tambin debe figurar aqu.

+
+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html.ja.utf8 b/rubbos/app/apache2/manual/mod/directive-dict.html.ja.utf8 new file mode 100644 index 00000000..1137917d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html.ja.utf8 @@ -0,0 +1,304 @@ + + + +ディレクティブの解説に使われる用語 - Apache HTTP サーバ + + + + + +
<-
+

ディレクティブの解説に使われる用語

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

この文書は各 Apache 設定ディレクティブ + を説明するために使われている用語を説明します。

+
+ +
top
+
+

説明

+ +

ディレクティブの目的の簡単な説明。

+
top
+
+

構文

+ +

設定ファイル中のディレクティブの書式を示します。 + この構文はディレクティブ特有なので、詳細はディレクティブの説明を + 参照してください。一般的に、ディレクティブ名の後には + 空白により分割されたいくつかの引数が続きます。 + 引数が空白を含むときは二重引用符 (訳注: ") + で囲まれています。 オプショナルな引数は括弧 + (訳注: []) で囲まれています。 + 引数が複数の値を取り得る場合は、それらの値は垂直の棒 "|" + で 分割されています。 + 変更されないテキストはデフォルトのフォントで表示され、置換の必要な + 引数は強調されて表示されます。 + 引数の数が変わるディレクティブは最後の + 引数が繰り返されることを示すために "..." + で終わります。

+ +

+ ディレクティブは多くの違う型の引数をとります。いくつか、良く + 使われるものを以下で定義します。

+ +
+
URL
+ +
http://www.example.com/path/to/file.html + のように、 + スキーム、ホスト名、パス名(省略可能)を含んでいる完全な + Uniform Resource Locator。
+ +
URL-path
+ +
/path/to/file.html のように、スキームと + ホスト名の後に続く url + の一部。url-path は + ファイルシステムからの視点ではなく、 + ウェブからの視点でリソースを表現します。
+ +
file-path
+ +
/usr/local/apache/htdocs/path/to/file.html + のように、 + ルートディレクトリから始まるローカルのファイルシステム上のファイルへのパス。 + 通常、スラッシュで始まらない file-pathServerRoot + からの相対パスとして 扱われます。
+ +
directory-path
+ +
/usr/local/apache/htdocs/path/to/ + のように、 + ルートディレクトリから始まるローカルのファイルシステムのディレクトリへの + パス。
+ +
filename
+ +
file.html のように、パス情報の付いていない + ファイル名。
+ +
regex
+ +
Perl 互換の正規表現です。 + ディレクティブの定義が regex + が何に対してマッチを行なうのかを指定します。
+ +
extension
+ +
一般的には filename + の最後のドットの後の部分です。 しかし、Apache + は複数のファイルの拡張子を認識しますので、filename + に複数のドットがあると、最初のドットの後の、それぞれのドットで分離された部分が + extension (訳注: 拡張子) + になります。例えば、filename + file.html.en + には二つの拡張子があります。.html と + .en です。Apache + のディレクティブでは、extension + はドット付きでも無しでも指定できます。さらに、extension + は 大文字小文字を区別しません。
+ +
MIME-type
+ +
text/html のように、スラッシュで分離された + 主フォーマットと副フォーマットによってファイルの形式を + 表す方法です。
+ +
env-variable
+ +
Apache の設定により定義される 環境変数の名前です。これはオペレーティングシステムの + 環境変数と同じとは限らないことに注意してください。詳細は 環境変数の説明を参照してください。
+
+
top
+
+

デフォルト

+ +

ディレクティブにデフォルト値 + (すなわち、設定ファイルから + 省略されていても、Apache + ウェブサーバは特定の値に設定されているかのように + 動作します) がある場合はここに記述されます。 + デフォルト値の無い場合、ここは "None" と + 書かれます。ここで書かれているデフォルトはサーバと共に配布されている + デフォルトの httpd.conf + 内に書かれているディレクティブの値と + 違う可能性があることに注意してください。

+
top
+
+

コンテキスト

+ +

+ これは、サーバの設定ファイル中のどこでディレクティブが有効なのかを示します。 + 次に示す値が一つ以上カンマ区切りで列挙されています。

+ +
+
サーバ設定ファイル
+ +
これは、サーバ設定ファイル + (例えばhttpd.conf, + srm.conf, access.conf) + 内では使用できますが、 + <VirtualHost> や + <Directory> の中では + 使用できないことを示します。 + .htaccessファイルでの使用は許可されていません。
+ +
バーチャルホスト
+ +
これは、サーバ設定ファイルの + <VirtualHost> + の中で使用できることを示します。
+ +
ディレクトリ
+ +
これは、サーバ設定ファイルの + <Directory>, + <Location>, + <Files> + コンテナの中で、 Directory, Location, Files セクションの動作方法 + で説明されている制限の下で使用できることを示します。
+ +
.htaccess
+ +
これは、ディレクトリの + .htaccess ファイル内で + 使用可能であることを示します。 ただ、上書き + の設定によっては、処理されないかもしれません。
+
+ +

+ ディレクティブは指示されたコンテキストでのみ許可されます。 + 他の場所で使おうとすると、サーバがそのコンテキストを正しく扱えなく + なるような設定エラーが発生するか、サーバがまったく動作しなくなる、 + すなわち、サーバが起動しなくなるということになります。

+ +

+ ディレクティブの有効な位置は、実際は挙げられているコンテキストの + 論理和 (訳注: Boolen OR) + になります。言い換えると、 + "サーバ設定ファイル、.htaccess" で有効だと + 記されているディレクティブは httpd.conf + ファイルと .htaccess + ファイルとで有効ですが、 <Directory> + や <VirtualHost> + の中では使用できません。

+
top
+
+

上書き

+ +

このディレクティブの属性は、.htaccess + ファイル中に + ディレクティブが現れたときに、それの処理を有効にするために + どの設定の上書きが必要かを示します。 ディレクティブの + コンテキスト + が、.htaccess + ファイル中では許可していない場合は、 この属性は + "適用不可" と書かれます。

+ +

上書きは、AllowOverride + ディレクティブによって有効にされ、 + 特定のスコープ(ディレクトリなど)と、 + さらに下位のレベルの AllowOverride + で修正されない限り、 その配下に対して適用されます。 + ディレクティブのドキュメントは取り得る上書きの名前も挙げます。

+
top
+
+

ステータス

+ +

これはディレクティブが Apache + ウェブサーバにどれくらいきつく組み込まれているかを + 示します。言い換えれば、ディレクティブとその機能を利用するために、 + モジュールの数を増やして、サーバを再コンパイルする必要があるかもしれない + ということを示します。 + この属性が取り得る値は以下のものです:

+ +
+
Core
+ +
"Core" のディレクティブは Apache + ウェブサーバの基本となるべきものであり、 + 常に使用可能であることを示します。
+ +
MPM
+ +
"MPM" のディレクティブはマルチプロセッシングモジュールで提供されています。 + この種類のディレクティブはディレクティブの定義のモジュールの行に使っているモジュールの名前が書かれている + 場合にのみ使用可能です。
+ +
Base
+ +
"Base" のディレクティブは + デフォルトでサーバに組み込まれている標準モジュールの中の一つでサ + ポートされていて、わざわざ設定からモジュールを削除したときを除いて、 + 通常では使用可能であることを示します。
+ +
Extension
+ +
"Extension" のディレクティブは、 Apache + サーバの配布物に同梱されているモジュールの一つで提供されているものの、 + 通常ではサーバに組み込まれていないことを示します。 + ディレクティブとその機能を有効にするには、サーバビルド用の設定ファイルを + 変更して Apache + を再コンパイルする必要があります。
+ +
Experimental
+ +
"Experimental" のディレクティブは、Apache + 配布物に + 同梱されているものの、試したい場合は自己責任で行なう + 必要があるということを示します。ディレクティブは、すべてのドキュメントを + 完全にそろわせるために解説されていますが、サポートされているとは限りません。 + ディレクティブを提供するモジュールはデフォルトで組み込まれているかも + しれませんし、そうでないかもしれません。使用可能かどうかは、 + ディレクティブとモジュールの説明をしているページの先頭を調べてください。
+
+
top
+
+

モジュール

+ +

+ これは単純にディレクティブが定義されているモジュールの名前を記載します。

+
top
+
+

互換性

+ +

ディレクティブが Apache 2 + の配布に組み込まれていなかった場合、 + ディレクティブが導入されたバージョンがここに書かれています。 + また、ディレクティブが特定のプラットフォームにのみ存在するときも + ここに書かれています。

+
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/directive-dict.html.ko.euc-kr new file mode 100644 index 00000000..2f8c97b0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html.ko.euc-kr @@ -0,0 +1,256 @@ + + + +þ ϴµ - Apache HTTP Server + + + + + +
<-
+

þ ϴµ

+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

ġ + þ ϴµ Ѵ.

+
+ +
top
+
+

(Description)

+ +

þ .

+
top
+
+

(Syntax)

+ +

Ͽ þ ˷ش. + þ ſ ٸ, þ ڼ Ѵ. + Ϲ þ ̸ ڿ ƱԸƮ + ´. ƱԸƮ Ѵٸ ƱԸƮ ֵǥ + Ѵ. ƱԸƮ ߰ȣ ´. ƱԸƮ + ϳ "|" Ѵ. + ڱ״ κ ⺻ ü , ü ƱԸƮ + Ѵ. ƱԸƮ þ + ƱԸƮ ݺ Ÿ "..." .

+ +

þ ſ پ ƱԸƮ ޴´. + ϴ Ʒ .

+ +
+
URL
+ +
http://www.example.com/path/to/file.html + Ŵ(scheme), ȣƮ, θ + Uniform Resource Locator
+ +
URL-path
+ +
/path/to/file.html url + Ŵ ȣƮ ڿ κ. url-path + Ͻýۿ ƴ ڷḦ + Ÿ.
+ +
file-path
+ +
/usr/local/apache/htdocs/path/to/file.html + root 丮 ϴ Ͻýۻ . + , file-path + ServerRoot η + Ѵ.
+ +
directory-path
+ +
/usr/local/apache/htdocs/path/to/ + root 丮 ϴ Ͻýۻ 丮 .
+ +
filename
+ +
file.html ϸ.
+ +
regex
+ +
Perl ǥ(regular + expression). þ regex ΰ ˻Ѵ.
+ +
extension
+ +
Ϲ filename ħǥ ڿ + κ̴. ׷ ġ Ȯڸ ν + ֱ⶧, filename ħǥ Ե + ħǥ е κ Ȯ(extension) + óѴ. , ϸ file.html.en + .html .en̶ ΰ Ȯڸ + . ġ þ extension + տ ħǥ ־ ǰ  ȴ. , + extension ҹڸ ʴ´.
+ +
MIME-type
+ +
text/html major format + type minor format type Ͽ ϴ + .
+ +
env-variable
+ +
ġ ȯ溯 + ̸. ü ȯ溯 ٸ ϶. ڼ + ȯ溯 ϶.
+
+
top
+
+

⺻ (Default)

+ +

þ ⺻ ִٸ ( , + þ ġ Ѵ.) + ׸ ´. ⺻ ٸ ׸ + "None"̾ Ѵ. ⺻ Ե ⺻ + httpd.conf þ ٸ ϶.

+
top
+
+

(Context)

+ +

þ ִ + ˷ش. ǥ ̴:

+ +
+
ּ (server config)
+ +
þ Ͽ ( , + httpd.conf) , <VirtualHost> + <Directory> + Ѵ. þ + .htaccess Ͽ .
+ +
ȣƮ (virtual host)
+ +
þ <VirtualHost> ȿ + Ѵ.
+ +
丮 (directory)
+ +
þ  Directory, + Location, Files ϳ , + <Directory>, <Location>, + <Files> + Ѵ.
+ +
.htaccess
+ +
þ 丮 .htaccess + Ͽ Ѵ. þ ϴ + overrides õ + ִ.
+
+ +

þ ҿ ִ. ٸ + ϸ ߻ϰ κп û + ùٷ ó ϰų ۵, , + ȵ ִ.

+ +

þ ִ Ҵ Ҹ + Ҹ(boolean) OR ̴. , + "server config, .htaccess" ϴٴ + þ httpd.conf ϰ .htaccess + Ͽ , <Directory> <VirtualHost> .

+
top
+
+

Override ɼ (Override)

+ +

þ .htaccess Ͽ Ϸ +  override ɼ ؾ ϴ Ÿ. þ + þ .htaccess + Ͽ ٰ Ѵٸ  ҵ + ʴ´.

+ +

Overrides AllowOverride þ ϰ, + (丮 ) Ư ٸ AllowOverride þ ٸ + ʾҴٸ ״ ȴ. þ + 밡 override ̸ ´.

+
top
+
+

(Status)

+ +

þ ġ 󸶳 ִ + Ÿ. , þ ϱ + ٽ ʿ䰡 ִ. + :

+ +
+
Core
+ +
þ "Core" ¸ , þ ġ + ٽɺκп ϰ ׻ 밡 Ѵ.
+ +
MPM
+ +
"MPM" þ ó + Ѵ. ̷ þ þ ŵ MPM ϳ Ҷ + ϴ.
+ +
Base
+ +
⺻ ϵǹǷ + ʾҴٸ Ϲ 밡 ǥ ġ + ϴ þ "Base" ̴.
+ +
Extension
+ +
ġ Ե + ϵʴ ϴ þ "Extension" ̴. + ̷ þ Ϸ ϰ + ġ ٽ ؾ Ѵ.
+ +
Experimental
+ +
"Experimental" þ ġ Ե, + ڽ å Ÿ. þ ȭ, + ٸ ִ. þ ϴ ⺻ + ġ ϵ ȵ ִ. þ + ϴ տ ִ .
+
+
top
+
+

(Module)

+ +

ܼ þ ҽ Ѵ.

+
top
+
+

(Compatibility)

+ +

þ ġ 2 Ϻΰ ƴϿٸ, + þ ߰ϱ ´. ,  + ÷ 밡 þ ´.

+
+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directive-dict.html.tr.utf8 b/rubbos/app/apache2/manual/mod/directive-dict.html.tr.utf8 new file mode 100644 index 00000000..607b559a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directive-dict.html.tr.utf8 @@ -0,0 +1,176 @@ + + + +Yönergeleri Tanımlamakta Kullanılan Terimler - Apache HTTP Sunucusu + + + + + +
<-
+

Yönergeleri Tanımlamakta Kullanılan Terimler

+
+

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

+
+ +

Bu belgede Apache yapılandırma yönergelerini tanımlamakta kullanılan terimler açıklanmıştır.

+
+ +
top
+
+

Açıklama

+ +

Yönergenin kullanım amacının kısa bir açıklaması.

+
top
+
+

Sözdizimi

+ +

Yönergenin bir yapılandırma dosyasında hangi söz dizimiyle görünebileceği belirtilir. Bu sözdizimi yönergeye özeldir ve ayrıntıları yönerge tanımında açıklanır. Genelde yönerge ismini aralarında boşluklar bırakılmış bir dizi argüman izler. Eğer argümanlardan biri kendi içinde boşluk içeriyorsa çift tırnak içine alınır. İsteğe bağlı argümanlar sözdiziminde köşeli ayraçların arasında gösterilmiştir. Birden fazla olası değeri olan argümanlarda değerler aralarına | karakteri konarak ayrılmıştır. Değerin yerine ismi belirtilen argümanlarda bu isimler eğik yazılırken, kendisi değer olan dizgeler öntanımlı yazıtipi ile gösterilmiştir. Değişik sayıda argüman alan yönergelerde bu durum son argümanı takibeden “...” ile belirtilmiştir.

+ +

Yönergelerde kullanılan argüman türleri çok çeşitlidir. Çok kullanılanlardan bazıları aşağıda tanımlanmıştır.

+ +
+
URL
+ +
http://www.mesela.dom/yol/yordam/dosya.html örneğindeki gibi protokol şeması ve konak ismini isteğe bağlı bir dosya yolunun izlediği, açılımı “Uniform Resource Locator” olan ve Türkçe’ye “Tektip Özkaynak Konumlayıcı” şeklinde çevrilebilecek adresleri betimler.
+ +
URL-yolu
+ +
/yol/yordam/dosya.html örneğindeki gibi bir url’nin parçası olarak protokol şeması ve konak ismini izleyen bir yol dizgesini betimler. url-yolu, bir dosya sisteminin kök dizinine göre değil, DocumentRoot ile belirtilen dizine göre bir dosya yolu betimler.
+ +
dosya-yolu
+ +
/usr/local/apache/htdocs/yol/yordam/dosya.html örneğindeki gibi yerel dosya sisteminin kök dizini ile başlayan bir dosya yolunu betimler. Aksi belirtilmedikçe, bir / ile başlamayan bir dosya-yolu ServerRoot ile belirtilen dizine göre ele alınır.
+ +
dizin-yolu
+ +
/usr/local/apache/htdocs/yol/yordam/ örneğindeki gibi kök dizin ile başlayan, yerel dosya sistemindeki bir dizin yolunu betimler.
+ +
dosya-ismi
+ +
dosya.html örneğindeki gibi dizin yolu içermeyen bir dosya ismini betimler.
+ +
düzifd
+ +
Bir Perl uyumlu düzenli ifade betimler. Yönerge tanımında düzifd ile eşleşenler argüman olarak ele alınır.
+ +
uzantı
+ +
Bu genelde, dosya-ismi’nin bir parçası olarak son noktadan sonraki kısmı betimler. Bununla birlikte, Apache çok sayıda nokta içeren dosya isimlerinde ilk noktadan sonrasını uzantı kabul eden çoklu dosya ismi uzantılarını da tanır. Örneğin, dosya-ismi olarak dosya.html.tr değeri iki uzantı içerir: .html ve + .tr. Apache yönergelerinde uzantı’ları başında noktası olmaksızın da belirtebilirsiniz. Ayrıca, uzantı’lar harf büyüklüğüne de duyarlı değildir.
+ +
MIME-türü
+ +
Dosya biçiminin, text/html örneğindeki gibi aralarına bir / konulmuş asıl ve alt biçimler şeklinde açıklandığı yönteme göre belirtileceğini betimler.
+ +
ortam-değişkeni
+ +
Apache yapılandırma sürecinde tanımlanmış bir ortam değişkeninin ismini betimler. Daha ayrıntılı bilgi için ortam değişkenleri belgesine bakınız.
+
+
top
+
+

Öntanımlı

+ +

Eğer yönerge öntanımlı bir değere sahipse o burada belirtilir (öntanımlı değer, yönergede kullanıcı tarafından belirtilmediği halde Apache tarafından belirtildiği varsayılarak işlem yapılan değerdir). Eğer öntanımlı bir değer yoksa bu bölümde bu durum “Yok” şeklinde belirtilir. Burada belirtilen öntanımlı değerin sunucu ile dağıtılan öntanımlı httpd.conf içindeki yönergede kullanılan değerle aynı olmasının gerekmediğine dikkat ediniz.

+
top
+
+

Bağlam

+ +

Yönergenin sunucunun yapılandırma dosyalarının nerelerinde meşru kabul edildiği aşağıdaki değerlerin virgül ayraçlı bir listesi halinde burada belirtilir.

+ +
+
sunucu geneli
+ +
Yönergenin sunucunun (httpd.conf gibi) yapılandırma dosyalarında <VirtualHost> ve <Directory> bölümleri dışında her yerde kullanılabileceğini belirtir. Ayrıca, .htaccess dosyalarında bulunmasına da izin verilmez.
+ +
sanal konak
+ +
Yönergenin sunucunun yapılandırma dosyalarının sadece <VirtualHost> bölümlerinde kullanıldığında geçerli kabul edileceğini belirtir.
+ +
dizin
+ +
Yönergenin sunucunun yapılandırma dosyalarında sadece <Directory>, <Location> ve <Files> bölümlerinde kullanıldığında geçerli kabul edileceğini belirtir. Bu bağlama konu sınırlamaların çerçevesi Yapılandırma Bölümleri içinde çizilmiştir.
+ +
.htaccess
+ +
Bu bağlamda geçerli olacağı kabul edilen bir yönerge sadece dizin içi .htaccess dosyalarında görüldüğü zaman işleme sokulur. Üzerinde bir geçersizleştirme etkin kılınmışsa yönerge her şeye rağmen işleme sokulmayabilir.
+
+ +

Yönergeye sadece tasarlandığı bağlam içinde izin verilir; başka bir yerde kullanmayı denerseniz ya sunucunun bu bağlamı doğru şekilde işlemesine engel olan ya da sunucunun tamamen işlevsiz kalmasına sebep olan -- sunucu hiç başlatılamayabilir -- bir yapılandırma hatası alırsınız.

+ +

Yönergenin geçerli olacağı konumlar, aslında, listelenen bağlamların tamamına mantıksal VEYA uygulanarak bulunur. Başka bir deyişle, bir yönergenin geçerli olacağı yerler "sunucu geneli, .htaccess" şeklinde belirtilmişse yönerge httpd.conf dosyasında ve .htaccess dosyalarında, <Directory> veya <VirtualHost> bölümleri haricinde her yerde kullanılabilir.

+
top
+
+

Geçersizleştirme

+ +

Bir .htaccess dosyasında göründüğü takdirde yönerge işlenirken hangi yapılandırma geçersizleşirmesinin etkin olacağı burada belirtilir. Eğer yönerge bağlamının .htaccess dosyalarında görünmesine izin verilmiyorsa hiçbir bağlam listelenmez.

+ +

Geçersizleştirmeler AllowOverride yönergesi tarafından etkinleştirilir ve belli bir bağlama ve alt seviyelerde başka AllowOverride yönergeleri ile değiştirilmedikçe tüm çocuklarına uygulanır. Yönergenin belgesinde ayrıca kullanılabilecek tüm olası geçersizleştirme isimleri belirtilir.

+
top
+
+

Durum

+ +

Yönergenin Apache HTTP sunucusuna ne kadar sıkı bağlı olduğunu belirtir. Başka bir deyişle, yönergeye ve işlevselliğine erişim kazanmak için sunucuyu belli bir modül kümesiyle yeniden derlemek gerekip gerekmediği ile ilgili durumu belirtir. Bu özniteliğin olası değerleri şunlardır:

+ +
+
Çekirdek
+ +
Eğer bir yönerge “Çekirdek” durumuna sahip olarak listelenmişse bu, yönergenin Apache HTTP sunucusunun en iç kısımlarının bir parçası olduğu ve daima kullanılabilir olacağı anlamına gelir.
+ +
MPM
+ +
“MPM” durumuna sahip bir yönerge Çok Süreklilik Modülü tarafından sağlanır. Bu yönerge türü sadece ve sadece yönerge tanımının Modül satırında listelenmiş MPM’lerden birini kullanıyorsanız mevcut olacaktır.
+ +
Temel
+ +
“Temel” durumuna sahip bir yönerge, sunucuda öntanımlı derlenmiş standart Apache modüllerinden biri tarafından destekleniyor demektir. Bu nedenle sunucuyu derlemek için yapılandırırken yönergeyi içeren modülü yapılandırmadan özellikle kaldırmazsanız yönerge normal olarak kullanılabilir olacaktır.
+ +
Eklenti
+ +
“Eklenti” durumuna sahip bir yönerge, Apache sunucu kitinde bulunan ancak normalde sunucuyla birlikte derlenmeyen modüllerden biri tarafından sağlanır. Yönergeyi 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 sunucuyu yeniden derlemeniz gerekir.
+ +
Deneysel
+ +
“Deneysel” durumuna sahip bir yönerge, Apache sunucu kitinde bulunan modüllerden biri tarafından sağlanır ve modülün denenmesi tamamen sizin insiyatifinize bırakılır. Böyle bir yönerge her şeyiyle belgelenmiştir fakat gerektiği gibi desteklenmemiştir. Yönergeyi içeren modül öntanımlı olarak sunucuyla birlikte derlenebileceği gibi derlenmeyebilir de; bunun için yönergenin açıklandığı sayfanın başına ve kullanılabilirliği hakkında bilgi edinmek için yönergeyi içeren modüle bakın.
+
+
top
+
+

Modül

+ +

Burada sadece yönergeyi tanımlayan kaynak modülün ismi yazılır.

+
top
+
+

Uyumluluk

+ +

Eğer yönerge 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, yönergenin kullanımı belli platformlarla sınırlıysa bunun ayrıntıları da burada belirtilir.

+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html b/rubbos/app/apache2/manual/mod/directives.html new file mode 100644 index 00000000..27f6ac5a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: directives.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: directives.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: directives.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: directives.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: directives.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: directives.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: directives.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/directives.html.de b/rubbos/app/apache2/manual/mod/directives.html.de new file mode 100644 index 00000000..ff28b903 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.de @@ -0,0 +1,416 @@ + + + +Verzeichnis der Direktiven - Apache HTTP Server + + + + + +
<-
+

Verzeichnis der Direktiven

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

+ Hier sind alle Apache-Direktiven aufgefhrt, die in der + Standard-Apache-Distribution verfgbar sind. Sie sind in + einem einheitlichen Format beschrieben. Ein Glossar + erlutert die in der Beschreibung verwendeten Begriffe. +

+ +

+ Auerdem existiert eine Kurzreferenz der Direktiven, welche + zu jeder Direktive eine Zusammenfassung der Details enthlt. +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.en b/rubbos/app/apache2/manual/mod/directives.html.en new file mode 100644 index 00000000..292638c6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.en @@ -0,0 +1,417 @@ + + + +Directive Index - Apache HTTP Server + + + + + +
<-
+

Directive Index

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

+ Each Apache directive available in the standard Apache + distribution is listed here. They are described using a + consistent format, and there is a dictionary of the terms used in their + descriptions available. +

+ +

+ A Directive Quick-Reference + is also available giving details about each directive in a + summary form. +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.es b/rubbos/app/apache2/manual/mod/directives.html.es new file mode 100644 index 00000000..03af4af0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.es @@ -0,0 +1,417 @@ + + + +ndice de Directivas - Servidor HTTP Apache + + + + + +
<-
+

ndice de Directivas

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

+ Todas las directivas disponibles en la distribucin + estndar de Apache estn en la lista que se muestra ms + abajo. Cada una se describe usando un formato uniforme, y existe + un glosario + de los trminos usados en las descripciones que puede + consultar. +

+ +

+ Tambin existe una Gua Rpida de + Referencia de Directivas con informacin de cada + directiva de forma resumida. +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.ja.utf8 b/rubbos/app/apache2/manual/mod/directives.html.ja.utf8 new file mode 100644 index 00000000..cead6155 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.ja.utf8 @@ -0,0 +1,411 @@ + + + +ディレクティブ一覧 - Apache HTTP サーバ + + + + + +
<-
+

ディレクティブ一覧

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

+ 標準 Apache 配布にあるすべての Apache のディレクティブの一覧です。 + これらは一貫した形式で書かれていて、使われている用語の + 用語集 も用意されています。 +

+

+ 各ディレクティブの概要を説明した ディレクティブクイックリファレンスも + あります。 +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/directives.html.ko.euc-kr new file mode 100644 index 00000000..ed0110b5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.ko.euc-kr @@ -0,0 +1,412 @@ + + + +þ - Apache HTTP Server + + + + + +
<-
+

þ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

+ ǥ ġ 밡 þ ̴. + ̵ Ͽ, + ִ. +

+ +

+ þ Ͽ þ ִ. +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.ru.koi8-r b/rubbos/app/apache2/manual/mod/directives.html.ru.koi8-r new file mode 100644 index 00000000..53daf218 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.ru.koi8-r @@ -0,0 +1,416 @@ + + + + - HTTP Apache + + + + + +
<-
+
+Apache > HTTP > > 2.0 >

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

, + Apache. + , , + , . +

+ +

+ + , + . +

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/directives.html.tr.utf8 b/rubbos/app/apache2/manual/mod/directives.html.tr.utf8 new file mode 100644 index 00000000..98c5ffa4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/directives.html.tr.utf8 @@ -0,0 +1,413 @@ + + + +Yönerge Dizini - Apache HTTP Sunucusu + + + + + +
<-
+

Yönerge Dizini

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Standart Apache dağıtımında bulunan yönergelerin tamamı burada + listelenmiştir. Hepsi aralarında şekilsel bir uyum sağlanarak + açıklanmışlardır. Açıklamalarında kullanılan terimler için Yönerge Sözlüğüne + bakabilirsiniz.

+ +

Ayrıca, yönerge ayrıntılarının bir özet olarak listelendiği bir + Hızlı Yönerge Kılavuzu da + mevcuttur.

+ +

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

+
+
+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html b/rubbos/app/apache2/manual/mod/index.html new file mode 100644 index 00000000..a7474c15 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.es +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.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/index.html.de b/rubbos/app/apache2/manual/mod/index.html.de new file mode 100644 index 00000000..0262f05b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.de @@ -0,0 +1,183 @@ + + + +Modul-Index - Apache HTTP Server + + + + + +
<-
+

Modul-Index

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

+ Unten ist eine Liste aller Module angegeben, die als Bestandteil der + Apache-Distribution mitgeliefert werden. Bitte beachten Sie auch die + vollstndige alphabetische Liste aller + Apache-Direktiven. +

+
+ +
top
+

Kernfunktionen und + Multi-Processing-Module

+
+
core
Stndig verfgbare Kernfunktionen des Apache HTTP +Servers
+
mpm_common
Eine Sammlung von Direktiven, die in mehr als einem + Multi-Processing-Modul (MPM) implementiert sind.
+
beos
Dieses Multi-Processing-Modul ist fr BeOS + optimiert.
+
leader
Eine experimentelle Variante des Standard-MPMs + worker
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
Implementiert einen im Voraus forkenden Webserver ohne + Thread-Untersttzung
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
Das Multi-Processing-Modul ist optimiert fr + Windows NT.
+
worker
Multi-Processing-Modul, das einen Hybrid-Webserver mit + Multi-Thread und Multi-Prozess-Untersttzung implementiert
+
+
top
+

Andere Module

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
Provides access control based on client hostname, IP +address, or other characteristics of the client request.
+
mod_actions
This module provides for executing CGI scripts based on +media type or request method.
+
mod_alias
Provides for mapping different parts of the host + filesystem in the document tree and for URL redirection
+
mod_asis
Sends files that contain their own +HTTP headers
+
mod_auth
User authentication using text files
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
User authentication using MD5 + Digest Authentication.
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
Generates directory indexes, + automatically, similar to the Unix ls command or the + Win32 dir shell command
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN httpd metafile semantics
+
mod_cgi
Execution of CGI scripts
+
mod_cgid
Execution of CGI scripts using an + external CGI daemon
+
mod_charset_lite
Specify character set translation or recoding
+
mod_dav
Distributed Authoring and Versioning +(WebDAV) functionality
+
mod_dav_fs
filesystem provider for mod_dav
+
mod_deflate
Compress content before it is delivered to the +client
+
mod_dir
Provides for "trailing slash" redirects and + serving directory index files
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
A simple echo server to illustrate protocol +modules
+
mod_env
Modifies the environment which is passed to CGI scripts and +SSI pages
+
mod_example
Illustrates the Apache module API
+
mod_expires
Generation of Expires and +Cache-Control HTTP headers according to user-specified +criteria
+
mod_ext_filter
Pass the response body through an external program before +delivery to the client
+
mod_file_cache
Caches a static list of files in memory
+
mod_headers
Customization of HTTP request and response +headers
+
mod_imap
Server-side imagemap processing
+
mod_include
Server-parsed html documents (Server Side Includes)
+
mod_info
Provides a comprehensive overview of the server +configuration
+
mod_isapi
ISAPI Extensions within Apache for Windows
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
Logging of the requests made to the server
+
mod_log_forensic
Forensic Logging of the requests made to the server
+
mod_logio
Logging of input and output bytes per request
+
mod_mem_cache
Content cache keyed to URIs
+
mod_mime
Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
Provides for content negotiation
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
Allows the setting of environment variables based +on characteristics of the request
+
mod_so
Loading of executable code and +modules into the server at start-up or restart time
+
mod_speling
Attempts to correct mistaken URLs that +users might have entered by ignoring capitalization and by +allowing up to one misspelling
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
Provides information on server activity and +performance
+
mod_suexec
Allows CGI scripts to run as a specified user +and Group
+
mod_unique_id
Provides an environment variable with a unique +identifier for each request
+
mod_userdir
User-specific directories
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
Version dependent configuration
+
mod_vhost_alias
Provides for dynamically configured mass virtual +hosting
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html.en b/rubbos/app/apache2/manual/mod/index.html.en new file mode 100644 index 00000000..bef05576 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.en @@ -0,0 +1,181 @@ + + + +Module Index - Apache HTTP Server + + + + + +
<-
+

Module Index

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

+ Below is a list of all of the modules that come as part of + the Apache distribution. See also the complete + alphabetical list of all Apache + directives. +

+
+ +
top
+

Core Features and Multi-Processing + Modules

+
+
core
Core Apache HTTP Server features that are always +available
+
mpm_common
A collection of directives that are implemented by +more than one multi-processing module (MPM)
+
beos
This Multi-Processing Module is optimized for BeOS.
+
leader
An experimental variant of the standard worker +MPM
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
Implements a non-threaded, pre-forking web server
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
This Multi-Processing Module is optimized for Windows +NT.
+
worker
Multi-Processing Module implementing a hybrid + multi-threaded multi-process web server
+
+
top
+

Other Modules

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
Provides access control based on client hostname, IP +address, or other characteristics of the client request.
+
mod_actions
This module provides for executing CGI scripts based on +media type or request method.
+
mod_alias
Provides for mapping different parts of the host + filesystem in the document tree and for URL redirection
+
mod_asis
Sends files that contain their own +HTTP headers
+
mod_auth
User authentication using text files
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
User authentication using MD5 + Digest Authentication.
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
Generates directory indexes, + automatically, similar to the Unix ls command or the + Win32 dir shell command
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN httpd metafile semantics
+
mod_cgi
Execution of CGI scripts
+
mod_cgid
Execution of CGI scripts using an + external CGI daemon
+
mod_charset_lite
Specify character set translation or recoding
+
mod_dav
Distributed Authoring and Versioning +(WebDAV) functionality
+
mod_dav_fs
filesystem provider for mod_dav
+
mod_deflate
Compress content before it is delivered to the +client
+
mod_dir
Provides for "trailing slash" redirects and + serving directory index files
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
A simple echo server to illustrate protocol +modules
+
mod_env
Modifies the environment which is passed to CGI scripts and +SSI pages
+
mod_example
Illustrates the Apache module API
+
mod_expires
Generation of Expires and +Cache-Control HTTP headers according to user-specified +criteria
+
mod_ext_filter
Pass the response body through an external program before +delivery to the client
+
mod_file_cache
Caches a static list of files in memory
+
mod_headers
Customization of HTTP request and response +headers
+
mod_imap
Server-side imagemap processing
+
mod_include
Server-parsed html documents (Server Side Includes)
+
mod_info
Provides a comprehensive overview of the server +configuration
+
mod_isapi
ISAPI Extensions within Apache for Windows
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
Logging of the requests made to the server
+
mod_log_forensic
Forensic Logging of the requests made to the server
+
mod_logio
Logging of input and output bytes per request
+
mod_mem_cache
Content cache keyed to URIs
+
mod_mime
Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
Provides for content negotiation
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
Allows the setting of environment variables based +on characteristics of the request
+
mod_so
Loading of executable code and +modules into the server at start-up or restart time
+
mod_speling
Attempts to correct mistaken URLs that +users might have entered by ignoring capitalization and by +allowing up to one misspelling
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
Provides information on server activity and +performance
+
mod_suexec
Allows CGI scripts to run as a specified user +and Group
+
mod_unique_id
Provides an environment variable with a unique +identifier for each request
+
mod_userdir
User-specific directories
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
Version dependent configuration
+
mod_vhost_alias
Provides for dynamically configured mass virtual +hosting
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html.es b/rubbos/app/apache2/manual/mod/index.html.es new file mode 100644 index 00000000..8a5e4b11 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.es @@ -0,0 +1,185 @@ + + + +ndice de Mdulos - Servidor HTTP Apache + + + + + +
<-
+

ndice de Mdulos

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

+ Abajo se muestra una lista con todos los mdulos que forman + parte de la distribucin de Apache. Consulte tambin la lista + alfabtica completa de las + directivas de Apache. +

+
+ +
top
+

Funcionalidad Bsica y Mdulos + de MultiProcesamiento

+
+
core
Funcionalidades bsicas del servidor HTTP Apache que +estn siempre presentes
+
mpm_common
Es una coleccin de directivas que estn implementadas +en ms de un mdulo de multiprocesamiento (MPM)
+
beos
Este mdulo de muiltiprocesamiento est +optimizado para BeOS.
+
leader
Variante experimental del MPM estndar +worker
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
Implementa un servidor web pre-forking y no +hebrado
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
Mdulo de multiprocesamiento optimizado para Windows +NT.
+
worker
Mdulo de MultiProcesamiento que implementa un +servidor web hbrido multihebra-multiproceso
+
+
top
+

Otros Mdulos

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
Provides access control based on client hostname, IP +address, or other characteristics of the client request.
+
mod_actions
This module provides for executing CGI scripts based on +media type or request method.
+
mod_alias
Provides for mapping different parts of the host + filesystem in the document tree and for URL redirection
+
mod_asis
Sends files that contain their own +HTTP headers
+
mod_auth
User authentication using text files
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
User authentication using MD5 + Digest Authentication.
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
Generates directory indexes, + automatically, similar to the Unix ls command or the + Win32 dir shell command
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN httpd metafile semantics
+
mod_cgi
Execution of CGI scripts
+
mod_cgid
Execution of CGI scripts using an + external CGI daemon
+
mod_charset_lite
Specify character set translation or recoding
+
mod_dav
Distributed Authoring and Versioning +(WebDAV) functionality
+
mod_dav_fs
filesystem provider for mod_dav
+
mod_deflate
Compress content before it is delivered to the +client
+
mod_dir
Provides for "trailing slash" redirects and + serving directory index files
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
A simple echo server to illustrate protocol +modules
+
mod_env
Modifies the environment which is passed to CGI scripts and +SSI pages
+
mod_example
Illustrates the Apache module API
+
mod_expires
Generation of Expires and +Cache-Control HTTP headers according to user-specified +criteria
+
mod_ext_filter
Pass the response body through an external program before +delivery to the client
+
mod_file_cache
Caches a static list of files in memory
+
mod_headers
Customization of HTTP request and response +headers
+
mod_imap
Server-side imagemap processing
+
mod_include
Server-parsed html documents (Server Side Includes)
+
mod_info
Provides a comprehensive overview of the server +configuration
+
mod_isapi
ISAPI Extensions within Apache for Windows
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
Logging of the requests made to the server
+
mod_log_forensic
Forensic Logging of the requests made to the server
+
mod_logio
Logging of input and output bytes per request
+
mod_mem_cache
Content cache keyed to URIs
+
mod_mime
Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
Provides for content negotiation
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
Allows the setting of environment variables based +on characteristics of the request
+
mod_so
Loading of executable code and +modules into the server at start-up or restart time
+
mod_speling
Attempts to correct mistaken URLs that +users might have entered by ignoring capitalization and by +allowing up to one misspelling
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
Provides information on server activity and +performance
+
mod_suexec
Allows CGI scripts to run as a specified user +and Group
+
mod_unique_id
Provides an environment variable with a unique +identifier for each request
+
mod_userdir
User-specific directories
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
Version dependent configuration
+
mod_vhost_alias
Provides for dynamically configured mass virtual +hosting
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html.ja.utf8 b/rubbos/app/apache2/manual/mod/index.html.ja.utf8 new file mode 100644 index 00000000..11ebeb2f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.ja.utf8 @@ -0,0 +1,172 @@ + + + +モジュール一覧 - Apache HTTP サーバ + + + + + +
<-
+

モジュール一覧

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

+ 以下は Apache の配布の一部として配られているすべてのモジュールの + 一覧です。すべての Apache + ディレクティブ のアルファベット順のリストも見てください。 +

+
+ +
top
+

コア機能と MPM

+
+
core
常に使用可能な Apache HTTP サーバのコア機能
+
mpm_common
二つ以上のマルチプロセッシングモジュール (MPM) +で実装されているディレクティブのコレクション
+
beos
This Multi-Processing Module is optimized for BeOS.
+
leader
An experimental variant of the standard worker +MPM
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
スレッドを使わず、先行して fork を行なうウェブサーバを実装 +
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
Windows NT +向けに最適化されたマルチプロセッシングモジュール
+
worker
マルチスレッドとマルチプロセスのハイブリッド型 +ウェブサーバを実装したマルチプロセッシングモジュール
+
+
top
+

他のモジュール

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
クライアントのホスト名、IP アドレス、その他のクライアント +のリクエストの特徴に基づいたアクセス制御機能を提供する
+
mod_actions
メディアタイプやリクエストメソッドに応じて +CGI スクリプトを実行する機能を提供
+
mod_alias
ホストファイルシステム上のいろいろな違う場所を + ドキュメントツリーにマップする機能と、 + URL のリダイレクトを行なう機能を提供する
+
mod_asis
自分用の HTTP ヘッダの書かれているファイルを送信する
+
mod_auth
テキストファイルを用いたユーザ認証
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
User authentication using MD5 + Digest Authentication.
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
Unix の ls コマンドや + Win32 の dir シェルコマンドに似た + ディレクトリインデックスを生成する
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN httpd metafile semantics
+
mod_cgi
CGI スクリプトの実行
+
mod_cgid
外部 CGI デーモンを使った CGI スクリプトの実行
+
mod_charset_lite
Specify character set translation or recoding
+
mod_dav
分散オーサリングとバージョン管理 +(WebDAV) 機能
+
mod_dav_fs
mod_dav のためのファイルシステムプロバイダ
+
mod_deflate
クライアントへ送られる前にコンテンツを圧縮する
+
mod_dir
「最後のスラッシュ」のリダイレクトと、ディレクトリの +インデックスファイルを扱う機能を提供する
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
プロトコルモジュールの概要を示すための単純なエコーサーバ +
+
mod_env
CGI スクリプト及び SSI +ページに渡される環境変数を変更する機能を提供する
+
mod_example
Illustrates the Apache module API
+
mod_expires
ユーザの指定した基準に基づいた Expires と +Cache-Control HTTP ヘッダの生成
+
mod_ext_filter
Pass the response body through an external program before +delivery to the client
+
mod_file_cache
Caches a static list of files in memory
+
mod_headers
Customization of HTTP request and response +headers
+
mod_imap
Server-side imagemap processing
+
mod_include
サーバがパースする html ドキュメント (Server Side Includes)
+
mod_info
サーバの設定の包括的な概観を提供する
+
mod_isapi
ISAPI Extensions within Apache for Windows
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
サーバへのリクエストのロギング
+
mod_log_forensic
Forensic Logging of the requests made to the server
+
mod_logio
リクエスト毎に入力バイト数と出力バイト数とをロギング
+
mod_mem_cache
URI をキーにしたコンテンツのキャッシュ
+
mod_mime
リクエストされたファイルの拡張子とファイルの振る舞い + (ハンドラとフィルタ)、内容 (MIME タイプ、言語、文字セット、エンコーディング) + とを関連付ける
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
コンテントネゴシエーション + 機能を提供する
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
リクエストの特徴に基づいた環境変数の設定を可能にする
+
mod_so
起動時や再起動時に実行コードとモジュールをサーバにロードする +
+
mod_speling
ユーザが入力したであろう間違った URL を、 +大文字小文字の区別を無視することと一つ以下の綴り間違いを許容することで +修正を試みる
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
サーバの活動状況と性能に関する情報を提供する
+
mod_suexec
指定されたユーザとグループで CGI スクリプトを実行する
+
mod_unique_id
それぞれのリクエストに対する一意な識別子の入った環境変数を +提供する
+
mod_userdir
ユーザ専用のディレクトリを提供 +
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
バージョン依存の設定
+
mod_vhost_alias
Provides for dynamically configured mass virtual +hosting
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/index.html.ko.euc-kr new file mode 100644 index 00000000..e56b5930 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.ko.euc-kr @@ -0,0 +1,163 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

+ ġ Ե ̴. ġ þ ϵ + ϶. +

+
+ +
top
+

ٽ ɰ ó

+
+
core
Core Apache HTTP Server features that are always +available
+
mpm_common
A collection of directives that are implemented by +more than one multi-processing module (MPM)
+
beos
BeOS ȭ ó .
+
leader
ǥ worker MPM
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
Implements a non-threaded, pre-forking web server
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
This Multi-Processing Module is optimized for Windows +NT.
+
worker
Multi-Processing Module implementing a hybrid + multi-threaded multi-process web server
+
+
top
+

ٸ

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
Provides access control based on client hostname, IP +address, or other characteristics of the client request.
+
mod_actions
̵ û޼忡 CGI +ũƮ Ѵ.
+
mod_alias
Ͻý ٸ κе ϰ, + URL ̷ Ѵ
+
mod_asis
HTTP
+
mod_auth
User authentication using text files
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
MD5 Digest Authentication .
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
ڵ н ls ɾ Win32 + dir ɾ 丮
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN Ÿ
+
mod_cgi
CGI ũƮ
+
mod_cgid
ܺ CGI Ͽ CGI ũƮ
+
mod_charset_lite
ȯ
+
mod_dav
Distributed Authoring and Versioning +(WebDAV)
+
mod_dav_fs
mod_dav Ͻý
+
mod_deflate
Ŭ̾Ʈ Ѵ
+
mod_dir
" " ̷ ϰ 丮 +index Ѵ
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
ϱ echo
+
mod_env
CGI ũƮ SSI ȯ溯 +Ѵ
+
mod_example
ġ API Ѵ
+
mod_expires
ڰ ؿ Expires +Cache-Control HTTP Ѵ
+
mod_ext_filter
ܺ α׷ ó Ŭ̾Ʈ +
+
mod_file_cache
޸𸮿 ϵ ij
+
mod_headers
HTTP û
+
mod_imap
̹(imagemap) ó
+
mod_include
Server-parsed html documents (Server Side Includes)
+
mod_info
ش
+
mod_isapi
Windows ġ ISAPI Extension
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
û α׿ Ѵ
+
mod_log_forensic
Forensic Logging of the requests made to the server
+
mod_logio
û Ʈ
+
mod_mem_cache
URI Ű Ͽ ijѴ.
+
mod_mime
Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
Provides for content negotiation
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
û ݿ ȯ溯 Ѵ
+
mod_so
Ҷ Ȥ Ҷ డ ڵ + оδ
+
mod_speling
ڰ ҹڸ ߸ ϰų Ʋ + ѹ Ͽ ߸ URL ġ õѴ
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
Ȱ ɿ Ѵ
+
mod_suexec
CGI ũƮ Ư ڿ ׷ Ѵ
+
mod_unique_id
û ĺڸ ȯ溯 +Ѵ
+
mod_userdir
ں 丮
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
+
mod_vhost_alias
Provides for dynamically configured mass virtual +hosting
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/index.html.tr.utf8 b/rubbos/app/apache2/manual/mod/index.html.tr.utf8 new file mode 100644 index 00000000..37335fbe --- /dev/null +++ b/rubbos/app/apache2/manual/mod/index.html.tr.utf8 @@ -0,0 +1,174 @@ + + + +Modül Dizini - Apache HTTP Sunucusu + + + + + +
<-
+

Modül Dizini

+
+

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

+
+ +

Apache dağıtımının parçası olarak gelen modüllerin tamamı aşağıda + listelenmiştir. Ayrıca, tüm Apache yönergelerinin alfabetik olarak + listelendiği bir Yönerge Dizini de + mevcuttur.

+
+ +
top
+

Temel Özellikler ve Çoklu İşlem Modülleri

+
+
core
Apache HTTP Sunucusunda daima mevcut olan çekirdek + özellikler
+
mpm_common
Birden fazla Çok Süreçlilik Modülü (MPM) tarafından gerçeklenmiş + yönergeler bütünü.
+
beos
This Multi-Processing Module is optimized for BeOS.
+
leader
An experimental variant of the standard worker +MPM
+
mpm_netware
Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
+
mpmt_os2
Hybrid multi-process, multi-threaded MPM for OS/2
+
perchild
Multi-Processing Module allowing for daemon processes serving +requests to be assigned a variety of different userids
+
prefork
Evresiz ön çatallamalı HTTP sunucusu oluşturur
+
threadpool
Yet another experimental variant of the standard +worker MPM
+
mpm_winnt
This Multi-Processing Module is optimized for Windows +NT.
+
worker
Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok +süreçlilik modülü.
+
+
top
+

Diğer Modüller

+

 A  |  C  |  D  |  E  |  F  |  H  |  I  |  L  |  M  |  N  |  P  |  R  |  S  |  U  |  V 

+
mod_access
Provides access control based on client hostname, IP +address, or other characteristics of the client request.
+
mod_actions
This module provides for executing CGI scripts based on +media type or request method.
+
mod_alias
Belge ağacının parçalarının dosya sisteminin parçalarıyla +eşlenmesini sağlar ve URL yönlendirmesi yapar.
+
mod_asis
Sends files that contain their own +HTTP headers
+
mod_auth
User authentication using text files
+
mod_auth_anon
Allows "anonymous" user access to authenticated +areas
+
mod_auth_dbm
Provides for user authentication using DBM + files
+
mod_auth_digest
User authentication using MD5 + Digest Authentication.
+
mod_auth_ldap
Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
+
mod_autoindex
Unix ls veya Win32 dir kabuk komutunun +yaptığı gibi dizin içeriğini listeler.
+
mod_cache
Content cache keyed to URIs.
+
mod_cern_meta
CERN httpd metafile semantics
+
mod_cgi
Execution of CGI scripts
+
mod_cgid
Execution of CGI scripts using an + external CGI daemon
+
mod_charset_lite
Specify character set translation or recoding
+
mod_dav
Distributed Authoring and Versioning +(WebDAV) functionality
+
mod_dav_fs
filesystem provider for mod_dav
+
mod_deflate
Compress content before it is delivered to the +client
+
mod_dir
Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar.
+
mod_disk_cache
Content cache storage manager keyed to URIs
+
mod_dumpio
Dumps all I/O to error log as desired.
+
mod_echo
A simple echo server to illustrate protocol +modules
+
mod_env
CGI betiklerine ve SSI sayfalarına aktarılan değişkenlere +müdahale etmek için kullanılır.
+
mod_example
Illustrates the Apache module API
+
mod_expires
Generation of Expires and +Cache-Control HTTP headers according to user-specified +criteria
+
mod_ext_filter
Pass the response body through an external program before +delivery to the client
+
mod_file_cache
Caches a static list of files in memory
+
mod_headers
Customization of HTTP request and response +headers
+
mod_imap
Server-side imagemap processing
+
mod_include
Server-parsed html documents (Server Side Includes)
+
mod_info
Provides a comprehensive overview of the server +configuration
+
mod_isapi
ISAPI Extensions within Apache for Windows
+
mod_ldap
LDAP connection pooling and result caching services for use +by other LDAP modules
+
mod_log_config
Sunucuya yapılan isteklerin günlük kayıtlarının tutulması +
+
mod_log_forensic
Sunucuya yapılan isteklerin adli günlük kayıtlarının tutulması
+
mod_logio
Her isteğin girdi ve çıktı uzunluklarının günlüklenmesi. +
+
mod_mem_cache
Content cache keyed to URIs
+
mod_mime
Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
+
mod_mime_magic
Determines the MIME type of a file + by looking at a few bytes of its contents
+
mod_negotiation
Provides for content negotiation
+
mod_nw_ssl
Enable SSL encryption for NetWare
+
mod_proxy
HTTP/1.1 proxy/gateway server
+
mod_proxy_connect
mod_proxy extension for +CONNECT request handling
+
mod_proxy_ftp
FTP support module for +mod_proxy
+
mod_proxy_http
HTTP support module for +mod_proxy
+
mod_rewrite
Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
+
mod_setenvif
Ortam değişkenlerinin isteğin özelliklerine uygun olarak atanmasını sağlar
+
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.
+
mod_speling
Attempts to correct mistaken URLs that +users might have entered by ignoring capitalization and by +allowing up to one misspelling
+
mod_ssl
Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
+
mod_status
Sunucu etkinliği ve başarımı hakkında bilgi sağlar.
+
mod_suexec
CGI betiklerinin belli bir kullanıcı ve grubun aidiyetinde +çalışmasını mümkün kılar.
+
mod_unique_id
Provides an environment variable with a unique +identifier for each request
+
mod_userdir
Kullanıcılara özel dizinler
+
mod_usertrack
+Clickstream logging of user activity on a site +
+
mod_version
Version dependent configuration
+
mod_vhost_alias
Kitlesel sanal konakların devingen olarak yapılandırılmasını sağlar
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/leader.html b/rubbos/app/apache2/manual/mod/leader.html new file mode 100644 index 00000000..852887c5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/leader.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: leader.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: leader.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: leader.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: leader.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/leader.html.de b/rubbos/app/apache2/manual/mod/leader.html.de new file mode 100644 index 00000000..b2c25e13 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/leader.html.de @@ -0,0 +1,97 @@ + + + +leader - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-MPM leader

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko 

+
+ + + +
Beschreibung:Eine experimentelle Variante des Standard-MPMs + worker
Status:MPM
Modulbezeichner:mpm_leader_module
Quelltext-Datei:leader.c
+

Zusammenfassung

+ +

Warnung

+

Dieses MPM ist noch experimentell und funktioniert mglicherweise + nicht wie erwartet.

+
+ +

Dies ist eine experimentelle Variante des Standard-MPMs + worker. Das Modul verwendet ein + Leader/Followers-Design-Pattern, um die Arbeit zwischen Threads zu + koordinieren. Weitere Informationen finden Sie unter http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf.

+ +

Um bei der Erstellung des httpd das MPM + leader zu verwenden, fgen Sie den Argumenten + des configure-Skripts --with-mpm=leader + hinzu.

+ +

Dieses MPM baut auf den atomaren APR-Vergleichs- und -Tauschoperationen + fr die Thread-Synchronisation auf. Wenn Sie fr einen + x86-Rechner kompilieren, ohne dass 386-Untersttzung bentigt + wird, oder wenn Sie fr einen SPARC-Rechner kompilieren und keine + pre-UltraSPARC-Chips betreiben mssen, fgen Sie den Argumenten + des configure-Skripts + --enable-nonportable-atomics=yes hinzu. Dies veranlasst die + APR veranlasst dazu, atomare Operationen einzusetzen, welche effizienten + Befehlscode verwenden, der lteren CPUs nicht zur Verfgung + stehen.

+
+ + +
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/leader.html.en b/rubbos/app/apache2/manual/mod/leader.html.en new file mode 100644 index 00000000..a9673649 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/leader.html.en @@ -0,0 +1,93 @@ + + + +leader - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM leader

+
+

Available Languages:  de  | + en  | + es  | + ko 

+
+ + + +
Description:An experimental variant of the standard worker +MPM
Status:MPM
ModuleIdentifier:mpm_leader_module
SourceFile:leader.c
+

Summary

+ +

Warning

+

This MPM is experimental, so it may or may not work + as expected.

+
+ +

This is an experimental variant of the standard + worker MPM. It uses a Leader/Followers design pattern + to coordinate work among threads. For more info, see http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf.

+ +

To use the leader MPM, add + --with-mpm=leader to the configure + script's arguments when building the httpd.

+ +

This MPM depends on APR's atomic compare-and-swap operations for + thread synchronization. If you are compiling for an x86 target + and you don't need to support 386s, or you are compiling for a + SPARC and you don't need to run on pre-UltraSPARC chips, add + --enable-nonportable-atomics=yes to the + configure script's arguments. This will cause + APR to implement atomic operations + using efficient opcodes not available in older CPUs.

+
+ + +
+
+

Available Languages:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/leader.html.es b/rubbos/app/apache2/manual/mod/leader.html.es new file mode 100644 index 00000000..5c70a9bb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/leader.html.es @@ -0,0 +1,102 @@ + + + +leader - Servidor HTTP Apache + + + + + + +
<-
+ +
+

MPM de Apache leader

+
+

Idiomas disponibles:  de  | + en  | + es  | + ko 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + + +
Descripcin:Variante experimental del MPM estndar +worker
Estado:MPM
Identificador de Mdulos:mpm_leader_module
Fichero de Cdigo Fuente:leader.c
+

Resumen de contenidos

+ +

Advertencia

+

Este mdulo es todava experimental, lo que + significa que podra no funcionar como se espera.

+
+ +

Este mdulo es una variante experimental del mdulo + de multiprocesamiento estndar worker. Usa + un patrn de diseo Leader/Followers para coordinar el + trabajo entre las hebras. Para ms informacin, consulte + http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf.

+ +

Para usar el mdulo de multiprocesamiento + leader, aada + --with-mpm=leader como argumento al script + configure en el momento de compilar + httpd.

+ +

Este mdulo de multiprocesamiento depende de operaciones + atmicas compare-and-swap del APR para sincronizar las + hebras. Si est compilando el servidor para una mquina + x86 y no necesita soportar la arquitectura 386, o est + compilando para una mquina SPARC y no necesita ejecutar el + servidor en chips pre-UltraSPARC, aada + --enable-nonportable-atomics=yes como argumento al + script configure. Esto har que APR implemente + las operaciones atmicas usando opciones ms eficientes + que no estn presentes para CPUs antiguas.

+
+ + +
+
+

Idiomas disponibles:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/leader.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/leader.html.ko.euc-kr new file mode 100644 index 00000000..ad30936e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/leader.html.ko.euc-kr @@ -0,0 +1,92 @@ + + + +leader - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ MPM leader

+
+

:  de  | + en  | + es  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:ǥ worker MPM
:MPM
:mpm_leader_module
ҽ:leader.c
+

+ +

+

MPM ·, Ѵ ִ.

+
+ +

ǥ worker MPM + ̴. 尣 Leader/Followers + Ѵ. ڼ http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf ϶.

+ +

leader MPM Ϸ, + httpd Ҷ configure + ũƮ ƱԸƮ --with-mpm=leader + Ѵ.

+ +

MPM ⸦ APR atomic compare-and-swap + Ѵ. x86 386 ʿ䰡 + ų, SPARC UltraSPARC Ĩ + ʴ´ٸ, configure ũƮ ƱԸƮ + --enable-nonportable-atomics=yes ϶. + ׷ APR CPU ȿ ɾ Ͽ + atomic Ѵ.

+
+ + +
+
+

:  de  | + en  | + es  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_access.html b/rubbos/app/apache2/manual/mod/mod_access.html new file mode 100644 index 00000000..f73dd7c2 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_access.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_access.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_access.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_access.html.en b/rubbos/app/apache2/manual/mod/mod_access.html.en new file mode 100644 index 00000000..18f9ceb0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_access.html.en @@ -0,0 +1,372 @@ + + + +mod_access - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_access

+
+

Available Languages:  en  | + ja 

+
+ + + + +
Description:Provides access control based on client hostname, IP +address, or other characteristics of the client request.
Status:Base
ModuleIdentifier:access_module
SourceFile:mod_access.c
Compatibility:Available only in versions prior to 2.1
+

Summary

+ +

The directives provided by mod_access are used + in <Directory>, + <Files>, and + <Location> sections + as well as .htaccess + files to control access to particular parts of the server. Access + can be controlled based on the client hostname, IP address, or + other characteristics of the client request, as captured in environment variables. The Allow and Deny directives are used to + specify which clients are or are not allowed access to the server, + while the Order + directive sets the default access state, and configures how the + Allow and Deny directives interact with each + other.

+ +

Both host-based access restrictions and password-based + authentication may be implemented simultaneously. In that case, + the Satisfy directive is used + to determine how the two sets of restrictions interact.

+ +

In general, access restriction directives apply to all + access methods (GET, PUT, + POST, etc). This is the desired behavior in most + cases. However, it is possible to restrict some methods, while + leaving other methods unrestricted, by enclosing the directives + in a <Limit> section.

+
+

Directives

+ +

See also

+
+ +
top
+

Allow Directive

+ + + + + + + +
Description:Controls which hosts can access an area of the +server
Syntax: Allow from + all|host|env=env-variable + [host|env=env-variable] ...
Context:directory, .htaccess
Override:Limit
Status:Base
Module:mod_access
+ +

The Allow directive affects which hosts can + access an area of the server. Access can be controlled by + hostname, IP address, IP address range, or by other + characteristics of the client request captured in environment + variables.

+ +

The first argument to this directive is always + from. The subsequent arguments can take three + different forms. If Allow from all is specified, then + all hosts are allowed access, subject to the configuration of the + Deny and Order directives as discussed + below. To allow only particular hosts or groups of hosts to access + the server, the host can be specified in any of the + following formats:

+ +
+
A (partial) domain-name
+ +
+

Example:

+ Allow from apache.org
+ Allow from .net example.edu +

+

Hosts whose names match, or end in, this string are allowed + access. Only complete components are matched, so the above + example will match foo.apache.org but it will not + match fooapache.org. This configuration will cause + Apache to perform a double reverse DNS lookup on the client IP + address, regardless of the setting of the HostnameLookups directive. It will do + a reverse DNS lookup on the IP address to find the associated + hostname, and then do a forward lookup on the hostname to assure + that it matches the original IP address. Only if the forward + and reverse DNS are consistent and the hostname matches will + access be allowed.

+ +
A full IP address
+ +
+

Example:

+ Allow from 10.1.2.3
+ Allow from 192.168.1.104 192.168.1.205 +

+

An IP address of a host allowed access

+ +
A partial IP address
+ +
+

Example:

+ Allow from 10.1
+ Allow from 10 172.20 192.168.2 +

+

The first 1 to 3 bytes of an IP address, for subnet + restriction.

+ +
A network/netmask pair
+ +
+

Example:

+ Allow from 10.1.0.0/255.255.0.0 +

+

A network a.b.c.d, and a netmask w.x.y.z. For more + fine-grained subnet restriction.

+ +
A network/nnn CIDR specification
+ +
+

Example:

+ Allow from 10.1.0.0/16 +

+

Similar to the previous case, except the netmask consists of + nnn high-order 1 bits.

+
+ +

Note that the last three examples above match exactly the + same set of hosts.

+ +

IPv6 addresses and IPv6 subnets can be specified as shown + below:

+ +

+ Allow from 2001:db8::a00:20ff:fea7:ccea
+ Allow from 2001:db8::a00:20ff:fea7:ccea/10 +

+ +

The third format of the arguments to the + Allow directive allows access to the server + to be controlled based on the existence of an environment variable. When Allow from + env=env-variable is specified, then the request is + allowed access if the environment variable env-variable + exists. The server provides the ability to set environment + variables in a flexible way based on characteristics of the client + request using the directives provided by + mod_setenvif. Therefore, this directive can be + used to allow access based on such factors as the clients + User-Agent (browser type), Referer, or + other HTTP request header fields.

+ +

Example:

+ SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+ <Directory /docroot>
+ + Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+
+ </Directory> +

+ +

In this case, browsers with a user-agent string beginning + with KnockKnock/2.0 will be allowed access, and all + others will be denied.

+ +
+
top
+

Deny Directive

+ + + + + + + +
Description:Controls which hosts are denied access to the +server
Syntax: Deny from all|host|env=env-variable +[host|env=env-variable] ...
Context:directory, .htaccess
Override:Limit
Status:Base
Module:mod_access
+

This directive allows access to the server to be restricted + based on hostname, IP address, or environment variables. The + arguments for the Deny directive are + identical to the arguments for the Allow directive.

+ +
+
top
+

Order Directive

+ + + + + + + + +
Description:Controls the default access state and the order in which +Allow and Deny are +evaluated.
Syntax: Order ordering
Default:Order Deny,Allow
Context:directory, .htaccess
Override:Limit
Status:Base
Module:mod_access
+ +

The Order directive, along with the + Allow and Deny directives, controls a + three-pass access control system. The first pass processes either + all Allow or all + Deny directives, as + specified by the Order directive. The second + pass parses the rest of the directives (Deny or Allow). The third pass applies to + all requests which do not match either of the first two.

+ +

Note that all Allow + and Deny directives are + processed, unlike a typical firewall, where only the first match is + used. The last match is effective (also unlike a typical firewall). + Additionally, the order in which lines appear in the configuration + files is not significant -- all Allow lines are processed as one + group, all Deny lines are + considered as another, and the default state is considered by + itself.

+ +

Ordering is one of:

+ +
+
Allow,Deny
+ +
First, all Allow + directives are evaluated; at least one must match, or the request + is rejected. Next, all Deny directives are evaluated. If + any matches, the request is rejected. Last, any requests which do + not match an Allow or a + Deny directive are + denied by default.
+ +
Deny,Allow
+ +
First, all Deny + directives are evaluated; if any match, the request is denied + unless it also matches an Allow directive. Any requests + which do not match any Allow or Deny directives are + permitted.
+ +
Mutual-failure
+ +
This order has the same effect as Order + Allow,Deny and is deprecated in its favor.
+
+ +

Keywords may only be separated by a comma; no whitespace + is allowed between them.

+ + + + + + + + + + + + + + + + + + + + + + + +
MatchAllow,Deny resultDeny,Allow result
Match Allow onlyRequest allowedRequest allowed
Match Deny onlyRequest deniedRequest denied
No matchDefault to second directive: DeniedDefault to second directive: Allowed
Match both Allow & DenyFinal match controls: DeniedFinal match controls: Allowed
+ +

In the following example, all hosts in the apache.org domain + are allowed access; all other hosts are denied access.

+ +

+ Order Deny,Allow
+ Deny from all
+ Allow from apache.org +

+ +

In the next example, all hosts in the apache.org domain are + allowed access, except for the hosts which are in the foo.apache.org + subdomain, who are denied access. All hosts not in the apache.org + domain are denied access because the default state is to Deny access to the server.

+ +

+ Order Allow,Deny
+ Allow from apache.org
+ Deny from foo.apache.org +

+ +

On the other hand, if the Order in the + last example is changed to Deny,Allow, all hosts will + be allowed access. This happens because, regardless of the actual + ordering of the directives in the configuration file, the + Allow from apache.org will be evaluated last and will + override the Deny from foo.apache.org. All hosts not in + the apache.org domain will also be allowed access + because the default state is Allow.

+ +

The presence of an Order directive can + affect access to a part of the server even in the absence of + accompanying Allow and + Deny directives because + of its effect on the default access state. For example,

+ +

+ <Directory /www>
+ + Order Allow,Deny
+
+ </Directory> +

+ +

will Deny all access + to the /www directory because the default access state + is set to Deny.

+ +

The Order directive controls the order of + access directive processing only within each phase of the server's + configuration processing. This implies, for example, that an + Allow or Deny directive occurring in a + <Location> section + will always be evaluated after an Allow or Deny directive occurring in a + <Directory> + section or .htaccess file, regardless of the setting of + the Order directive. For details on the + merging of configuration sections, see the documentation on How Directory, Location and Files sections + work.

+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_access.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_access.html.ja.utf8 new file mode 100644 index 00000000..a07f6ed6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_access.html.ja.utf8 @@ -0,0 +1,348 @@ + + + +mod_access - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_access

+
+

Available Languages:  en  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:クライアントのホスト名、IP アドレス、その他のクライアント +のリクエストの特徴に基づいたアクセス制御機能を提供する
ステータス:Base
モジュール識別子:access_module
ソースファイル:mod_access.c
互換性:2.1 より前のバージョンのみで使用可能
+

概要

+ +

mod_access により提供されるディレクティブはサーバの特定の部分への + アクセスを制御するために <Directory>, <Files>, <Location> + と .htaccess ファイルで使用されます。クライアントのホスト名、IP + アドレスや 環境変数として取得された、その他のリクエストの特徴に基づいて + アクセス制御を行なうことができます。Allow と + Deny ディレクティブは + どのようなクライアントにアクセスを + 許可する、しないかを指定するために使用されます。一方、 + Order ディレクティブは + デフォルトのアクセス状態と、 + Allow ディレクティブと + Deny + ディレクティブとのお互いへの影響の仕方を設定します。 +

+ +

ホストによるアクセス制限とパスワードによる認証を同時に + 行なうことが可能です。その場合、その二つの制限の関係を指定するために + Satisfy + ディレクティブを使用します。

+ +

一般的には、アクセス制限ディレクティブはすべてのアクセスメソッド + (GET, PUT, POST など) + に適用されます。そして、ほとんどの場合これが望ましい動作です。 + しかし、<Limit> + セクションの中にディレクティブを書くことで、 + 一部のメソッドにのみ制限をかけることもできます。

+
+

ディレクティブ

+ +

参照

+
+ +
top
+

Allow ディレクティブ

+ + + + + + + +
説明:サーバのある領域にアクセスできるホストを制御する
構文: Allow from + all|host|env=env-variable + [host|env=env-variable] ...
コンテキスト:ディレクトリ, .htaccess
上書き:Limit
ステータス:Base
モジュール:mod_access
+ +

Allow ディレクティブはどのホストが + サーバのある領域をアクセスできるかに影響を与えます。 + アクセスはホスト名、IP アドレス、IP アドレスの範囲や、 + 環境変数として取得された、その他のクライアントのリクエストの + 特徴によって制御することができます。

+ +

このディレクティブの最初の引数は常に from です。 + それに続く引数は三つの違った形式があります。Allow from + all が指定されていれば、すべてのホストにアクセスを許可し、 + アクセス制限は下で説明されているように、 + Deny + ディレクティブと Order + ディレクティブの設定で決まります。 + 特定のホストやホスト群にのみサーバへのアクセスを許可するためには、 + 以下のどれかの形式で host を指定することができます:

+ +
+
ドメイン名 (の一部)
+ +
+

例:

+ Allow from apache.org +

+

この文字列に合うか、これで終わる名前のホストのアクセスが許可されます。 + 各部分が完全に合うものだけに適用されますので、上の例は + foo.apache.org にはマッチしますが、 + fooapache.org にはマッチしません。 + この設定をすると、Apache は + HostnameLookups + の設定に関わらず、クライアントの IP アドレスに対して + 二重の DNS の逆引きを行ないます。まず IP アドレスに対して DNS の + 逆引きを行なってホスト名を得、そのホスト名に対して正引きを + 行ない、元の IP アドレスと一致するかを調べます。DNS の正引きと + 逆引きが無矛盾かつホスト名が一致するときにのみ + アクセスが許可されます。

+ +
完全な IP アドレス
+ +
+

例:

+ Allow from 10.1.2.3 +

+

アクセスを許可する IP アドレスです。

+ +
IP アドレスの一部
+ +
+

例:

+ Allow from 10.1 +

+

サブネットの制限用の、IP + アドレスの最初の一つから三つまでのバイトです。

+ +
ネットワーク/ネットマスク の対
+ +
+

例:

+ Allow from 10.1.0.0/255.255.0.0 +

+

ネットワーク a.b.c.d とネットマスク w.x.y.z です。 + より細粒度のサブネット制限用です。

+ +
ネットワーク/nnn CIDR 指定
+ +
+

例:

+ Allow from 10.1.0.0/16 +

+

ネットマスクが nnn の上位ビットが 1 + となっているものからなること以外は前のものと同じです。

+
+ +

注: 最後の三つの例はまったく同じホストに合います。

+ + +

IPv6 アドレスと IPv6 のサブネットは以下のように指定できます:

+ +

+ Allow from 2001:db8::a00:20ff:fea7:ccea
+ Allow from 2001:db8::a00:20ff:fea7:ccea/10 +

+ +

Allow ディレクティブの引数の三つ目の形式は、 + 環境変数 + の存在によりアクセスの制御を行なえるようにするものです。 + Allow from env=env-variable + が指定されていると、環境変数 env-variable + が存在した場合にリクエストはアクセスを許可されます。サーバは + mod_setenvif + のディレクティブにより、クライアントのリクエスト + の特徴に基づいて柔軟に環境変数を設定する機能を提供します。 + ですから、このディレクティブはクライアントの + User-Agent (ブラウザの種類)、Referer + や他の HTTP リクエストのヘッダフィールドなどに基づいて + アクセス許可をするために使うことができます。 +

+ +

例:

+ SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+ <Directory /docroot>
+ + Order Deny,Allow
+ Deny from all
+ Allow from env=let_me_in
+
+ </Directory> +

+ +

この場合、user-agent の文字列が KnockKnock/2.0 + で始まるブラウザのみがアクセスを許可され、 + 他のものはアクセスを拒否されます。

+ +
+
top
+

Deny ディレクティブ

+ + + + + + + +
説明:サーバがアクセスを拒否するホストを制御する
構文: Deny from + all|host|env=env-variable + [host|env=env-variable] ...
コンテキスト:ディレクトリ, .htaccess
上書き:Limit
ステータス:Base
モジュール:mod_access
+

このディレクティブはホスト名、IP + アドレス、環境変数に基づいてサーバへのアクセスを制限します。 + Deny ディレクティブの引数は Allow + ディレクティブとまったく同じです。

+ +
+
top
+

Order ディレクティブ

+ + + + + + + + +
説明:デフォルトのアクセス可能な状態と、Allow と +Deny が評価される順番を制御する
構文: Order ordering
デフォルト:Order Deny,Allow
コンテキスト:ディレクトリ, .htaccess
上書き:Limit
ステータス:Base
モジュール:mod_access
+ +

Order ディレクティブはデフォルトのアクセスの状態と + Allow ディレクティブと + Deny + ディレクティブが評価される順番を制御します。 + Ordering は以下のどれかです。

+ +
+
Deny,Allow
+ +
Deny ディレクティブが + Allow + ディレクティブの前に評価されます。 + アクセスはデフォルトで許可されます。Deny + ディレクティブに合わないか、Allow + ディレクティブに合うクライアントはアクセスを許可されます。
+ +
Allow,Deny
+ +
Allow + ディレクティブが Deny + ディレクティブの前に評価されます。 + アクセスはデフォルトで拒否されます。Allow + ディレクティブに合わないか、Deny + ディレクティブに合うクライアントはアクセスを拒否されます。 +
+ +
Mutual-failure
+ +
Allow のリストに現れて、 + Deny + のリストに現れないホストのみがアクセスを許可されます。 + この順番付けは Order Allow,Deny と同じ効果を持ち、 + その設定の方が好ましいために非推奨となっています。
+
+ +

キーワードはコンマで分離することだけが可能です。 + 間に空白があってはいけません。どの場合でも、Allow と + Deny 文は + 全て評価されるということに注意してください。 +

+ +

以下の例では、apache.org + ドメインのすべてのホストはアクセスを許可されます。 + 他のすべてのホストはアクセスを拒否されます。

+ +

+ Order Deny,Allow
+ Deny from all
+ Allow from apache.org +

+ +

次の例では、foo.apache.org サブドメインにあるホスト以外の、 + apache.org ドメインのすべてのホストがアクセスを許可されます。 + apache.org + ドメインでないホストは、デフォルトの状態がアクセス拒否のため、 + サーバへのアクセスを拒否されます。

+ +

+ Order Allow,Deny
+ Allow from apache.org
+ Deny from foo.apache.org +

+ +

一方、上の例の OrderDeny,Allow + に変わっていれば、すべのホストにアクセスが許可されます。 + これは、設定ファイル中の実際の順番に関わらず、 + Allow from apache.org が最後に評価されて、 + Deny from foo.apache.org を上書きするからです。 + apache.org + ドメインにないホストも、デフォルトの状態が allow + に変化するために、アクセスを許可されます。 +

+ +

Order + ディレクティブはデフォルトのアクセスの状態に影響を与えるので、 + Allow ディレクティブと + Deny + ディレクティブが無くても、サーバのアクセスに影響を与えることができます。 + たとえば、

+ +

+ <Directory /www>
+ + Order Allow,Deny
+
+ </Directory> +

+ +

はデフォルトのアクセス状態が deny になるため、 + /www ディレクトリへのすべてのアクセスを拒否します。 +

+ +

Order + ディレクティブはサーバの設定処理の各段階でだけ + アクセスディレクティブの処理の順番を変更します。これは、たとえば、 + Order ディレクティブの設定に関わらず、 + <Location> セクションの + Allow ディレクティブや + Deny ディレクティブは、 + Directory セクションや + .htaccess ファイルの Allow + ディレクティブや Deny + ディレクティブよりも常に後に評価されるということを意味します。 + 設定セクションのマージの詳細については、 + Directory,Location, Files + セクションの動作方法 を参照してください。

+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_actions.html b/rubbos/app/apache2/manual/mod/mod_actions.html new file mode 100644 index 00000000..f53fc7db --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_actions.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_actions.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_actions.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_actions.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_actions.html.en b/rubbos/app/apache2/manual/mod/mod_actions.html.en new file mode 100644 index 00000000..d0971c56 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_actions.html.en @@ -0,0 +1,145 @@ + + + +mod_actions - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_actions

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:This module provides for executing CGI scripts based on +media type or request method.
Status:Base
ModuleIdentifier:actions_module
SourceFile:mod_actions.c
+

Summary

+ +

This module has two directives. The Action directive lets you run CGI + scripts whenever a file of a certain type is requested. The + Script directive lets + you run CGI scripts whenever a particular method is used in a + request. This makes it much easier to execute scripts that process + files.

+
+ + +
top
+

Action Directive

+ + + + + + + +
Description:Activates a CGI script for a particular handler or +content-type
Syntax:Action action-type cgi-script
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_actions
+

This directive adds an action, which will activate + cgi-script when action-type is triggered by the + request. The cgi-script is the URL-path to a resource + that has been designated as a CGI script using ScriptAlias or AddHandler. The + action-type can be either a handler or a MIME content type. It + sends the URL and file path of the requested document using the + standard CGI PATH_INFO and PATH_TRANSLATED environment + variables.

+ +

Examples

+ # Requests for files of a particular type:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Files of a particular file extension
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+

+ +

In the first example, requests for files with a MIME content + type of image/gif will instead be handled by the + specified cgi script /cgi-bin/images.cgi.

+ +

In the second example, requests for files with a file extension of + .xyz are handled instead by the specified cgi script + /cgi-bin/program.cgi.

+ +

See also

+ +
+
top
+

Script Directive

+ + + + + + +
Description:Activates a CGI script for a particular request +method.
Syntax:Script method cgi-script
Context:server config, virtual host, directory
Status:Base
Module:mod_actions
+

This directive adds an action, which will activate + cgi-script when a file is requested using the method of + method. The cgi-script is the URL-path to a + resource that has been designated as a CGI script using ScriptAlias or AddHandler. The URL and + file path of the requested document is sent using the standard CGI + PATH_INFO and PATH_TRANSLATED environment variables.

+ +
+ Any arbitrary method name may be used. Method names are + case-sensitive, so Script PUT and + Script put have two entirely different + effects. +
+ +

Note that the Script command defines default actions only. + If a CGI script is called, or some other resource that is + capable of handling the requested method internally, it will do + so. Also note that Script with a method of GET + will only be called if there are query arguments present + (e.g., foo.html?hi). Otherwise, the request will + proceed normally.

+ +

Examples

+ # For <ISINDEX>-style searching
+ Script GET /cgi-bin/search
+
+ # A CGI PUT handler
+ Script PUT /~bob/put.cgi
+

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_actions.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_actions.html.ja.utf8 new file mode 100644 index 00000000..1bbb7a58 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_actions.html.ja.utf8 @@ -0,0 +1,150 @@ + + + +mod_actions - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_actions

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
説明:メディアタイプやリクエストメソッドに応じて +CGI スクリプトを実行する機能を提供
ステータス:Base
モジュール識別子:actions_module
ソースファイル:mod_actions.c
+

概要

+ +

このモジュールには二つのディレクティブがあります。Action + ディレクティブは特定のタイプのファイルをリクエストされた場合に + CGI スクリプトが実行されるようにします。Script + ディレクティブはリクエストで特定のメソッドが使用されたときに CGI + スクリプトが実行されるようにします。 + これはファイルを処理するスクリプトの実行をずっと簡単にします。

+
+ + +
top
+

Action ディレクティブ

+ + + + + + + +
説明:特定のハンドラやコンテントタイプに対して CGI を実行するように +設定
構文:Action action-type cgi-script
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Base
モジュール:mod_actions
+

このディレクティブは action-type + がリクエストされたときに cgi-script + が実行されるという動作を追加します。cgi-script は + ScriptAlias や + AddHandler によって + CGI スクリプトに設定されたリソースへの URL-path です。 + Action-type には + handler か MIME + コンテントタイプを指定できます。リクエストされたドキュメントの URL + とファイルのパスは標準 CGI 環境変数 PATH_INFO と PATH_TRANSLATED + を使って伝えられます。

+ +

+ # Requests for files of a particular type:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Files of a particular file extension
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+

+ +

最初の例では、MIME コンテントタイプが image/gif + のファイルへのリクエストは、そのファイルの代わりに指定されたスクリプト + /cgi-bin/images.cgi が呼ばれます。

+ +

2 番目の例では、拡張子が .xyz のファイルへのリクエストは、 + そのファイルの代わりに指定されたスクリプト + /cgi-bin/program.cgi が呼ばれます。

+ +

参照

+ +
+
top
+

Script ディレクティブ

+ + + + + + +
説明:特定のリクエストメソッドに対して CGI スクリプトを +実行するように設定
構文:Script method cgi-script
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Base
モジュール:mod_actions
+

このディレクティブは method + というメソッドを使ってリクエストが行なわれたときに + cgi-script を実行するという動作を追加します。 + cgi-script は + ScriptAlias や + AddHandler によって + CGI スクリプトに設定されたリソースへの URL-path です。 + リクエストされたドキュメントの URL とファイルのパスは標準 CGI + 環境変数 PATH_INFO と PATH_TRANSLATED を使って伝えられます。

+ +
+ 任意のメソッド名を使用することができます。 + メソッド名は大文字小文字を区別します。ですから、 + Script PUTScript put + はまったく違った効果になります。 +
+ +

Script コマンドはデフォルトの動作を追加するだけであることに + 注意してください。もし CGI スクリプトが呼ばれたり、リクエストされた + メソッドを内部で扱うことのできる他のリソースがあれば、それが行なわれます。 + GET メソッドの Script は問合せ引数がある場合にのみ + (たとえば、foo.html?hi) 呼ばれるということにも注意してください。 + そうでない場合は、リクエストは通常通り処理されます。

+ +

+ # For <ISINDEX>-style searching
+ Script GET /cgi-bin/search
+
+ # A CGI PUT handler
+ Script PUT /~bob/put.cgi
+

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_actions.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_actions.html.ko.euc-kr new file mode 100644 index 00000000..9586cc88 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_actions.html.ko.euc-kr @@ -0,0 +1,140 @@ + + + +mod_actions - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_actions

+
+

:  en  | + ja  | + ko 

+
+ + + +
: ̵ û޼忡 CGI +ũƮ Ѵ.
:Base
:actions_module
ҽ:mod_actions.c
+

+ +

⿡ ΰ þ ִ. Action þ ûϴ + CGI ũƮ Ѵ. Script þ û + Ư ޼带 CGI ũƮ Ѵ. ׷ + óϴ ũƮ ſ ִ.

+
+

þ

+ +

+
+ +
top
+

Action þ

+ + + + + + + +
:Ư ڵ鷯 content-type CGI ũƮ +Ѵ
:Action action-type cgi-script
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_actions
+

þ û action-type̸ + cgi-script ϴ ൿ ߰Ѵ. + cgi-script ScriptAlias AddHandler Ͽ CGI + ũƮ ҽ URL̴. + action-type ڵ鷯 MIME content type + ִ. þ PATH_INFO PATH_TRANSLATED + CGI ǥ ȯ溯 û URL ϰθ Ѵ.

+ +

+ # Ư û:
+ Action image/gif /cgi-bin/images.cgi
+
+ # Ư Ȯڸ
+ AddHandler my-file-type .xyz
+ Action my-file-type /cgi-bin/program.cgi
+

+ +

ù° MIME content type image/gif + ûϸ cgi ũƮ /cgi-bin/images.cgi + óѴ.

+ +

ι° Ȯڰ .xyz ûϸ + cgi ũƮ /cgi-bin/program.cgi + óѴ.

+ +

+ +
+
top
+

Script þ

+ + + + + + +
:Ư û޼忡 CGI ũƮ +Ѵ.
:Script method cgi-script
:ּ, ȣƮ, directory
:Base
:mod_actions
+

þ method ޼带 Ͽ + ûϸ cgi-script ϴ ൿ + ߰Ѵ. cgi-script ScriptAlias AddHandler Ͽ CGI + ũƮ ҽ URL̴. þ PATH_INFO + PATH_TRANSLATED CGI ǥ ȯ溯 û URL + ϰθ Ѵ.

+ +
+  ޼ ̸̶ ִ. ޼ ̸ + ҹڸ Ѵ. ׷ Script PUT + Script put ٸ. +
+ +

Script ɾ ⺻ ൿ ó ϶. + CGI ũƮ Ҹų, û ޼带 ˾Ƽ ó + ִ ҽ ״ óѴ. GET + ޼ Script ǾƱԸƮ (, + foo.html?hi) ϶. ǾƱԸƮ ٸ + û óѴ.

+ +

+ # <ISINDEX> ˻
+ Script GET /cgi-bin/search
+
+ # CGI PUT ڵ鷯
+ Script PUT /~bob/put.cgi
+

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_alias.html b/rubbos/app/apache2/manual/mod/mod_alias.html new file mode 100644 index 00000000..4a13e8ae --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_alias.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_alias.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_alias.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_alias.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: mod_alias.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_alias.html.en b/rubbos/app/apache2/manual/mod/mod_alias.html.en new file mode 100644 index 00000000..ef214d60 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_alias.html.en @@ -0,0 +1,430 @@ + + + +mod_alias - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_alias

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Provides for mapping different parts of the host + filesystem in the document tree and for URL redirection
Status:Base
ModuleIdentifier:alias_module
SourceFile:mod_alias.c
+

Summary

+ +

The directives contained in this module allow for manipulation + and control of URLs as requests arrive at the server. The + Alias and ScriptAlias directives are used to + map between URLs and filesystem paths. This allows for content + which is not directly under the DocumentRoot served as part of the web + document tree. The ScriptAlias directive has the + additional effect of marking the target directory as containing + only CGI scripts.

+ +

The Redirect + directives are used to instruct clients to make a new request with + a different URL. They are often used when a resource has moved to + a new location.

+ +

mod_alias is designed to handle simple URL + manipulation tasks. For more complicated tasks such as + manipulating the query string, use the tools provided by + mod_rewrite.

+ +
+ +
top
+
+

Order of Processing

+ +

Aliases and Redirects occuring in different contexts are processed + like other directives according to standard merging rules. But when multiple + Aliases or Redirects occur in the same context (for example, in the + same <VirtualHost> + section) they are processed in a particular order.

+ +

First, all Redirects are processed before Aliases are processed, + and therefore a request that matches a Redirect or RedirectMatch will never have Aliases + applied. Second, the Aliases and Redirects are processed in the order + they appear in the configuration files, with the first match taking + precedence.

+ +

For this reason, when two or more of these directives apply to the + same sub-path, you must list the most specific path first in order for + all the directives to have an effect. For example, the following + configuration will work as expected:

+ +

+ Alias /foo/bar /baz
+ Alias /foo /gaq +

+ +

But if the above two directives were reversed in order, the + /foo Alias + would always match before the /foo/bar Alias, so the latter directive would be + ignored.

+ +
+
top
+

Alias Directive

+ + + + + + +
Description:Maps URLs to filesystem locations
Syntax:Alias URL-path +file-path|directory-path
Context:server config, virtual host
Status:Base
Module:mod_alias
+ +

The Alias directive allows documents to + be stored in the local filesystem other than under the + DocumentRoot. URLs with a + (%-decoded) path beginning with url-path will be mapped + to local files beginning with directory-path. The + url-path is case-sensitive, even on case-insenitive + file systems.

+ +

Example:

+ Alias /image /ftp/pub/image +

+ +

A request for http://myserver/image/foo.gif would cause + the server to return the file /ftp/pub/image/foo.gif.

+ +

Note that if you include a trailing / on the + url-path then the server will require a trailing / in + order to expand the alias. That is, if you use

+ +
Alias /icons/ /usr/local/apache/icons/
+ +

then the url /icons will not be aliased.

+ +

Note that you may need to specify additional <Directory> sections which + cover the destination of aliases. Aliasing occurs before + <Directory> sections + are checked, so only the destination of aliases are affected. + (Note however <Location> + sections are run through once before aliases are performed, so + they will apply.)

+ +

In particular, if you are creating an Alias to a + directory outside of your DocumentRoot, you may need to explicitly + permit access to the target directory.

+ +

Example:

+ Alias /image /ftp/pub/image
+ <Directory /ftp/pub/image>
+ + Order allow,deny
+ Allow from all
+
+ </Directory> +

+ + +
+
top
+

AliasMatch Directive

+ + + + + + +
Description:Maps URLs to filesystem locations using regular +expressions
Syntax:AliasMatch regex +file-path|directory-path
Context:server config, virtual host
Status:Base
Module:mod_alias
+

This directive is equivalent to Alias, but makes use of standard + regular expressions, instead of simple prefix matching. The + supplied regular expression is matched against the URL-path, and + if it matches, the server will substitute any parenthesized + matches into the given string and use it as a filename. For + example, to activate the /icons directory, one might + use:

+ +

+ AliasMatch ^/icons(.*) /usr/local/apache/icons$1 +

+ +

It is also possible to construct an alias with case-insensitive + matching of the url-path:

+ +

+ AliasMatch (?i)^/image(.*) /ftp/pub/image$1 +

+ + +
+
top
+

Redirect Directive

+ + + + + + + +
Description:Sends an external redirect asking the client to fetch +a different URL
Syntax:Redirect [status] URL-path +URL
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_alias
+

The Redirect directive maps an old URL into a new one by asking + the client to refetch the resource at the new location.

+ +

The old URL-path is a case-sensitive (%-decoded) path + beginning with a slash. A relative path is not allowed. The new + URL should be an absolute URL beginning with a scheme and + hostname.

+ +

Example:

+ Redirect /service http://foo2.bar.com/service +

+ +

If the client requests http://myserver/service/foo.txt, it + will be told to access http://foo2.bar.com/service/foo.txt + instead.

+ +

Note

+

Redirect directives take precedence over + Alias and ScriptAlias directives, irrespective of their ordering in + the configuration file. Also, URL-path must be a fully + qualified URL, not a relative path, even when used with .htaccess files or + inside of <Directory> + sections.

+ +

If no status argument is given, the redirect will + be "temporary" (HTTP status 302). This indicates to the client + that the resource has moved temporarily. The status + argument can be used to return other HTTP status codes:

+ +
+
permanent
+ +
Returns a permanent redirect status (301) indicating that + the resource has moved permanently.
+ +
temp
+ +
Returns a temporary redirect status (302). This is the + default.
+ +
seeother
+ +
Returns a "See Other" status (303) indicating that the + resource has been replaced.
+ +
gone
+ +
Returns a "Gone" status (410) indicating that the + resource has been permanently removed. When this status is + used the URL argument should be omitted.
+
+ +

Other status codes can be returned by giving the numeric + status code as the value of status. If the status is + between 300 and 399, the URL argument must be present, + otherwise it must be omitted. Note that the status must be + known to the Apache code (see the function + send_error_response in http_protocol.c).

+ +

Example:

+ Redirect permanent /one http://example.com/two
+ Redirect 303 /three http://example.com/other +

+ + +
+
top
+

RedirectMatch Directive

+ + + + + + + +
Description:Sends an external redirect based on a regular expression match +of the current URL
Syntax:RedirectMatch [status] regex +URL
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_alias
+

This directive is equivalent to Redirect, but makes use of standard + regular expressions, instead of simple prefix matching. The + supplied regular expression is matched against the URL-path, and + if it matches, the server will substitute any parenthesized + matches into the given string and use it as a filename. For + example, to redirect all GIF files to like-named JPEG files on + another server, one might use:

+ +

+ RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg +

+ +
+
top
+

RedirectPermanent Directive

+ + + + + + + +
Description:Sends an external permanent redirect asking the client to fetch +a different URL
Syntax:RedirectPermanent URL-path URL
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_alias
+

This directive makes the client know that the Redirect is + permanent (status 301). Exactly equivalent to Redirect + permanent.

+ +
+
top
+

RedirectTemp Directive

+ + + + + + + +
Description:Sends an external temporary redirect asking the client to fetch +a different URL
Syntax:RedirectTemp URL-path URL
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_alias
+

This directive makes the client know that the Redirect is + only temporary (status 302). Exactly equivalent to + Redirect temp.

+ +
+
top
+

ScriptAlias Directive

+ + + + + + +
Description:Maps a URL to a filesystem location and designates the +target as a CGI script
Syntax:ScriptAlias URL-path +file-path|directory-path
Context:server config, virtual host
Status:Base
Module:mod_alias
+

The ScriptAlias directive has the same + behavior as the Alias + directive, except that in addition it marks the target directory + as containing CGI scripts that will be processed by mod_cgi's cgi-script handler. URLs with a case-sensitive + (%-decoded) path beginning with URL-path will be mapped + to scripts beginning with the second argument, which is a full + pathname in the local filesystem.

+ +

Example:

+ ScriptAlias /cgi-bin/ /web/cgi-bin/ +

+ +

A request for http://myserver/cgi-bin/foo would cause the + server to run the script /web/cgi-bin/foo. This configuration + is essentially equivalent to:

+

+ Alias /cgi-bin/ /web/cgi-bin/
+ <Location /cgi-bin >
+ + SetHandler cgi-script
+ Options +ExecCGI
+
+ </Location> +

+ +
It is safer to avoid placing CGI scripts under the + DocumentRoot in order to + avoid accidentally revealing their source code if the + configuration is ever changed. The + ScriptAlias makes this easy by mapping a + URL and designating CGI scripts at the same time. If you do + choose to place your CGI scripts in a directory already + accessible from the web, do not use + ScriptAlias. Instead, use <Directory>, SetHandler, and Options as in: +

+ <Directory /usr/local/apache2/htdocs/cgi-bin >
+ + SetHandler cgi-script
+ Options ExecCGI
+
+ </Directory> +

+ This is necessary since multiple URL-paths can map + to the same filesystem location, potentially bypassing the + ScriptAlias and revealing the source code + of the CGI scripts if they are not restricted by a + Directory section.
+ + +

See also

+ +
+
top
+

ScriptAliasMatch Directive

+ + + + + + +
Description:Maps a URL to a filesystem location using a regular expression +and designates the target as a CGI script
Syntax:ScriptAliasMatch regex +file-path|directory-path
Context:server config, virtual host
Status:Base
Module:mod_alias
+

This directive is equivalent to ScriptAlias, but makes use of standard + regular expressions, instead of simple prefix matching. The + supplied regular expression is matched against the URL-path, + and if it matches, the server will substitute any parenthesized + matches into the given string and use it as a filename. For + example, to activate the standard /cgi-bin, one + might use:

+ +

+ ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_alias.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_alias.html.ja.utf8 new file mode 100644 index 00000000..e4c9cdf3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_alias.html.ja.utf8 @@ -0,0 +1,389 @@ + + + +mod_alias - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_alias

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:ホストファイルシステム上のいろいろな違う場所を + ドキュメントツリーにマップする機能と、 + URL のリダイレクトを行なう機能を提供する
ステータス:Base
モジュール識別子:alias_module
ソースファイル:mod_alias.c
+

概要

+ +

このモジュールのディレクティブはサーバにリクエストが到着したときに + URL の操作や制御をすることを可能にします。Alias + ディレクティブと ScriptAlias + ディレクティブは + URL とファイルシステムのパスをマップするために使用されます。これは + DocumentRoot + の下にないドキュメントをウェブのドキュメントツリーの一部として + 送られるようにします。ScriptAlias + ディレクティブにはマップ先のディレクトリが CGI + スクリプトのみであることを示すという追加の効果があります。 +

+ +

Redirect ディレクティブは + クライアントに違った + URL に新しいリクエストを送るように指示します。これは、 + リソースが新しい場所に移動したときによく使用されます。

+ +

mod_alias は簡単な URL 操作向けに設計されています。 + より複雑な操作、クエリーストリングの操作には、mod_rewrite + で提供されるツールを使用してください。

+ +
+ +
top
+
+

処理の順番

+ +

様々なコンテキスト中での Alias や Redirect は他のディレクティブと +同じように標準の マージ規則 に +従って処理されます。ただし、(例えば <VirtualHost> セクションの中のように) 複数の Alias や Redirect が +同じコンテキスト中に現れた場合は決まった順番で処理されます。

+ +

まず、Alias の前にすべての Redirect が処理されます。ですから、RedirectRedirectMatch にマッチするリクエストには +Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の +順番に適用され、最初にマッチしたものが優先されます。

+ +

ですから、二つ以上のディレクティブが同じパスに適用されるときは、 +すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く +必要があります。例えば、次の設定は期待通りの動作をします:

+ +

+Alias /foo/bar /baz
+Alias /foo /gaq +

+ +

しかし、上記の二つのディレクティブの順番が逆になると、 +/foo Alias が +常に /foo/bar Alias より先にマッチしますので、後者は +決して適用されることはありません。

+ +
+
top
+

Alias ディレクティブ

+ + + + + + +
説明:URL をファイルシステムの位置にマップする
構文:Alias URL-path +file-path|directory-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_alias
+

Alias ディレクティブはドキュメントを + ローカルファイルシステムの + DocumentRoot + 以外の場所に保管することを可能にします。 + URL の (% が復号された) パスが url-path で始まるものは + directory-filename + で始まるローカルファイルにマップされます。

+ +

+ Alias /image /ftp/pub/image +

+ +

http://myserver/image/foo.gif へのリクエストに対して、サーバは + ファイル /ftp/pub/image/foo.gif を返します。

+ +

もし url-path の最後に / + を書いたなら、サーバがエイリアスを展開するためには、最後の / + が必要になることに注意してください。すなわち、Alias /icons/ + /usr/local/apache/icons/ というものを使用している場合は、 + /icons という url はエイリアスされません。

+ +

エイリアスの行き先を含んでいる <Directory> + セクションを追加する必要があるかもしれないことに注意してください。 + エイリアスの展開は <Directory> + セクションを調べる前に行なわれますので、 + エイリアスの行き先の <Directory> セクションのみ + 効果があります。 + (しかし、<Location> + セクションはエイリアスが処理される前に実行されますので、 + こちらは適用されます。)

+ +

特に、Alias を + DocumentRoot + ディレクトリの外側に配置した場合は、行き先のディレクトリに対する + アクセス権限を明示的に制限しなければならないでしょう。

+ +

+ Alias /image /ftp/pub/image
+ <Directory /ftp/pub/image>
+ + Order allow,deny
+ Allow from all
+
+ </Directory> +

+ + +
+
top
+

AliasMatch ディレクティブ

+ + + + + + +
説明:正規表現を使って URL をファイルシステムの位置にマップする
構文:AliasMatch regex +file-path|directory-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_alias
+

このディレクティブは Alias + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL のパス + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。たとえば、 + /icons ディレクトリを使う + ためには以下のようなものが使用できます:

+ +

+ AliasMatch ^/icons(.*) /usr/local/apache/icons$1 +

+ +
+
top
+

Redirect ディレクティブ

+ + + + + + + +
説明:クライアントが違う URL を取得するように外部へのリダイレクトを +送る
構文:Redirect [status] URL-path +URL
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Base
モジュール:mod_alias
+

Redirect ディレクティブは古い URL を新しいものへマップします。 + 新しい URL がクライアントに返されます。そして、 + クライアントは新しいアドレスをもう一回取得しようとします。 + URL-path (% が復号された) パスで始まるドキュメントへの + すべてのリクエストは URL で始まる新しい + (% が符号化された) URL へのリダイレクトエラーが返されます。

+ +

+ Redirect /service http://foo2.bar.com/service +

+ +

クライアントは http://myserver/service/foo.txt + へのリクエストを行なうと、代わりに http://foo2.bar.com/service/foo.txt + をアクセスするように告げられます。

+ +

注意

設定ファイル中の順番に関わらず、 +Redirect 系のディレクティブは Alias +ディレクティブと ScriptAlias ディレクティブよりも優先されます。 +また、.htaccess ファイルや <Directory> +セクションの中で使われていたとしても、URL-path +は相対パスではなく、完全な URL でなければなりません。

+ +

もし status 引数が与えられていなければ、リダイレクトは + "temporary" (HTTP ステータス 302) になります。これはクライアントに + リソースが一時的に移動したということを示します。Status + 引数は 他の HTTP のステータスコードを返すために使用することができます:

+ +
+
permanent
+ +
永久にリダイレクトをするステータス (301) を返します。 + これはリソースが永久に移動したということを意味します。
+ +
temp
+ +
一時的なリダイレクトステータス (302) + を返します。これがデフォルトです。
+ +
seeother
+ +
"See Other" ステータス (303) を返します。 + これはリソースが他のもので置き換えられたことを意味します。
+ +
gone
+ +
"Gone" ステータス (410) を返します。これはリソースが永久に + 削除されたことを意味します。このステータスが使用された場合、 + url 引数は省略されなければなりません。
+
+ +

Status の値にステータスコードを数値で与えることで + 他のステータスコードも返すことができます。ステータスが 300 と 399 + の間にある場合、url 引数は存在していなければいけません。 + その他の場合は省略されていなければなりません。ただし、 + ステータスは Apache のコードが知っているものである必要があります + (http_protocol.c の関数 send_error_response + を見てください)。

+

例:

+ +

+ Redirect permanent /one http://example.com/two
+ Redirect 303 /three http://example.com/other +

+ + +
+
top
+

RedirectMatch ディレクティブ

+ + + + + + + +
説明:現在の URL への正規表現のマッチにより +外部へのリダイレクトを送る
構文:RedirectMatch [status] regex +URL
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Base
モジュール:mod_alias
+

このディレクティブは Redirect + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。 + たとえば、すべての GIF ファイルを別サーバの同様な名前の JPEG + ファイルにリダイレクトするには、以下のようなものを使います: +

+ +

+ RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg +

+ +
+
top
+

RedirectPermanent ディレクティブ

+ + + + + + + +
説明:クライアントが違う URL を取得するように外部への永久的な +リダイレクトを送る
構文:RedirectPermanent URL-path URL
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Base
モジュール:mod_alias
+

このディレクティブはクライアントに Redirect が永久的なもの + (ステータス 301) であることを知らせます。 + Redirect premanent とまったく同じです。

+ +
+
top
+

RedirectTemp ディレクティブ

+ + + + + + + +
説明:クライアントが違う URL を取得するように外部への一時的な +リダイレクトを送る
構文:RedirectTemp URL-path URL
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:FileInfo
ステータス:Base
モジュール:mod_alias
+

このディレクティブはクライアントに Redirect + が一時的なものである (ステータス 302) ことを知らせます。 + Redirect temp とまったく同じです。

+ +
+
top
+

ScriptAlias ディレクティブ

+ + + + + + +
説明:URL をファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定
構文:ScriptAlias URL-path +file-path|directory-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_alias
+

ScriptAlias ディレクティブは、対象ディレクトリに + mod_cgi の cgi-script + ハンドラで処理される CGI + スクリプトがあることを示す以外は + Alias + ディレクティブと同じ振る舞いをします。 + URL の (% が復号された) パスが URL-path で始まるものは + ローカルのファイルシステムの + フルパスである二番目の引数にマップされます。

+ +

+ ScriptAlias /cgi-bin/ /web/cgi-bin/ +

+ +

http://myserver/cgi-bin/foo + へのリクエストに対してサーバはスクリプト + /web/cgi-bin/foo を実行します。

+ +
+
top
+

ScriptAliasMatch ディレクティブ

+ + + + + + +
説明:URL を正規表現を使ってファイルシステムの位置へマップし、マップ先を +CGI スクリプトに指定
構文:ScriptAliasMatch regex +file-path|directory-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_alias
+

このディレクティブは ScriptAlias + とほとんど同じですが、簡単な先頭からのマッチを行なうのではなく、 + 標準正規表現を利用します。ここで指定された正規表現と URL-path + が合うかどうかを調べ、合う場合は括弧で括られたマッチを + 与えられた文字列で置き換え、それをファイル名として使用します。 + たとえば、標準の /cgi-bin + を使用するようにするためには、以下のようなものを使います: +

+ +

+ ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_alias.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_alias.html.ko.euc-kr new file mode 100644 index 00000000..77bed51f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_alias.html.ko.euc-kr @@ -0,0 +1,358 @@ + + + +mod_alias - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_alias

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:Ͻý ٸ κе ϰ, + URL ̷ Ѵ
:Base
:alias_module
ҽ:mod_alias.c
+

+ +

ϴ þ Ͽ û + URL ϰų ִ. Alias ScriptAlias þ URL + Ͻý η Ѵ. ׷ DocumentRoot Ʒ + ִ. , ScriptAlias þ + 丮 CGI ũƮۿ ٰ ˸.

+ +

Redirect þ + Ŭ̾Ʈ ٸ URL ο û ϵ Ѵ. + ڿ ο ҷ ű Ѵ.

+ +

mod_alias URL + Ǿ. ǹڿ ۰ ۾ + mod_rewrite ϴ ̿϶.

+ +
+ +
top
+
+

ó

+ +

ٸ ҿ Alias Redirect ϸ ٸ þ + ǥ + óѴ. ׷ ҿ ( , <VirtualHost> ǿ) +Alias Redirect ϸ Ʒ óѴ.

+ +

Redirect ó Alias óѴ. ׷ +Redirect RedirectMatch شϴ û + Alias ʴ´. ׸ Alias Redirect Ͽ +ù° Ѵ.

+ +

׷ þ ο شϴ +þ ϱؼ θ ؾ Ѵ. + , ǵѴ Ѵ:

+ +

+Alias /foo/bar /baz
+Alias /foo /gaq +

+ +

׷ þ ٲٸ /foo/bar +Alias +/foo Alias +ϹǷ ׻ ι° þ Ѵ.

+ +
+
top
+

Alias þ

+ + + + + + +
:URL Ư Ͻý ҷ Ѵ
:Alias URL-path +file-path|directory-path
:ּ, ȣƮ
:Base
:mod_alias
+ +

Alias þ ϸ Ͻýۿ + DocumentRoot ۿ ִ + ִ. url-path ϴ + (% ڵ) URL directory-path ϴ + Ͽ Ѵ.

+ +

:

+ Alias /image /ftp/pub/image +

+ +

http://myserver/image/foo.gif ûϸ + /ftp/pub/image/foo.gif Ѱش.

+ +

url-path / ϸ, URL / + ؾ߸ ϶. , Alias /icons/ + /usr/local/apache/icons/ url /icons + 谡 .

+ +

ϴ <Directory> + ʿ 𸥴. þ <Directory> ˻ϱ + óϹǷ, ޴´. (׷ + <Location> + þ óϱ ѹ ˻ϹǷ + URL ü ش.)

+ +

Ư DocumentRoot + ۿ ִ 丮 Alias ٸ, + 丮 Ѵ.

+ +

:

+ Alias /image /ftp/pub/image
+ <Directory /ftp/pub/image>
+ + Order allow,deny
+ Allow from all
+
+ </Directory> +

+ + +
+
top
+

AliasMatch þ

+ + + + + + +
:ǥ Ͽ URL Ͻý ҷ +Ѵ
:AliasMatch regex +file-path|directory-path
:ּ, ȣƮ
:Base
:mod_alias
+

þ Alias + , URL պκи ϴ ǥ ǥ + Ѵ. ǥ URL ο Ͽ ´ٸ, + ȣ κ üϿ ϸ Ѵ. + , /icons 丮 + ִ:

+ +

+ AliasMatch ^/icons(.*) /usr/local/apache/icons$1 +

+ +
+
top
+

Redirect þ

+ + + + + + + +
:Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ +̷
:Redirect [status] URL-path +URL
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_alias
+

Redirect þ URL ο URL Ѵ. + Ŭ̾Ʈ ο URL , Ŭ̾Ʈ ο + ּҷ ٽ ѹ Ѵ. (% ڵ) URL-path + ϴ û (% ڵ) URL ϴ + ο URL ̷ .

+ +

:

+ Redirect /service http://foo2.bar.com/service +

+ +

Ŭ̾Ʈ http://myserver/service/foo.txt ûϸ + http://foo2.bar.com/service/foo.txt ϶ + ޴´.

+ +

Redirect þ Ͽ + Alias ScriptAlias þ 켱 +. , .htaccess ̳ <Directory> ǿ ϴ +URL-path ΰ ƴ϶ ݵ URL +ؾ Ѵ.

+ +

status ƱԸƮ , "ӽ + (temporary)" (HTTP 302) ̷ . , + Ŭ̾Ʈ ڿ ӽ÷ Űٰ ˸. status + ƱԸƮ Ͽ ٸ HTTP ڵ带 ȯ ִ:

+ +
+
permanent
+ +
ڿ Ű ϴ ̷ ¸ + (301) ȯѴ.
+ +
temp
+ +
ӽ ̷ ¸ (302) ȯѴ. ⺻̴.
+ +
seeother
+ +
ڿ üǾ ϴ " (See Other)" ¸ + (303) ȯѴ.
+ +
gone
+ +
ڿ Ǿ ϴ "Ҹ (Gone)" ¸ + (410) ȯѴ. ¸ ϸ URL ƱԸƮ + .
+
+ +

status ڵ带 Ͽ ٸ ڵ嵵 + ȯ ִ. ° 300 399 ̶ URL + ƱԸƮ ؾ ϰ, ƴ϶ ؾ Ѵ. , ġ + ڵ忡 ° ǵ־ Ѵ (http_protocol.c + send_error_response Լ ).

+ +

:

+ Redirect permanent /one http://example.com/two
+ Redirect 303 /three http://example.com/other +

+ + +
+
top
+

RedirectMatch þ

+ + + + + + + +
: URL ǥĿ شϸ ܺ ̷ +
:RedirectMatch [status] regex +URL
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_alias
+

þ Redirect , + URL պκи ϴ ǥ ǥ Ѵ. + ǥ URL ο Ͽ ´ٸ, ȣ + κ üϿ ϸ Ѵ. , + GIF û ٸ ̸ + JPEG Ϸ ̷ :

+ +

+ RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg +

+ +
+
top
+

RedirectPermanent þ

+ + + + + + + +
:Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ + ̷
:RedirectPermanent URL-path URL
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_alias
+

þ Ŭ̾Ʈ ̷ ( + 301) ˸. Redirect permanent Ȯ .

+ +
+
top
+

RedirectTemp þ

+ + + + + + + +
:Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ +ӽ ̷
:RedirectTemp URL-path URL
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_alias
+

þ Ŭ̾Ʈ ̷ ӽ ( + 302) ˸. Redirect temp Ȯ .

+ +
+
top
+

ScriptAlias þ

+ + + + + + +
:URL Ư Ͻý ҷ ϰ CGI +ũƮ ˸
:ScriptAlias URL-path +file-path|directory-path
:ּ, ȣƮ
:Base
:mod_alias
+

ScriptAlias þ Alias þ , + ߰ 丮 mod_cgi cgi-script + ڵ鷯 ó CGI ũƮ ִٰ ˸. + URL-path ϴ (% ڵ) URL Ͻý + ι° ƱԸƮ ϴ ũƮ Ѵ.

+ +

:

+ ScriptAlias /cgi-bin/ /web/cgi-bin/ +

+ +

http://myserver/cgi-bin/foo ûϸ + /web/cgi-bin/foo ũƮ Ѵ.

+ +
+
top
+

ScriptAliasMatch þ

+ + + + + + +
:ǥ Ͽ URL Ư Ͻý ҷ +ϰ CGI ũƮ ˸
:ScriptAliasMatch regex +file-path|directory-path
:ּ, ȣƮ
:Base
:mod_alias
+

þ ScriptAlias , + URL պκи ϴ ǥ ǥ Ѵ. + ǥ URL ο Ͽ ´ٸ, ȣ + κ üϿ ϸ Ѵ. , + ǥ /cgi-bin ִ:

+ +

+ ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 +

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_alias.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_alias.html.tr.utf8 new file mode 100644 index 00000000..abd6e548 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_alias.html.tr.utf8 @@ -0,0 +1,430 @@ + + + +mod_alias - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_alias

+
+

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

+
+ + + +
Açıklama:Belge ağacının parçalarının dosya sisteminin parçalarıyla +eşlenmesini sağlar ve URL yönlendirmesi yapar.
Durum:Temel
Modül Betimleyici:alias_module
Kaynak Dosyası:mod_alias.c
+

Özet

+ +

Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin + denetlenmesini ve değiştirilmesini mümkün kılar. Alias ve ScriptAlias yönergeleri URL’lerin dosya sisteminin + dizinlerine eşlenmesini sağlar. Böylece, kök dizini DocumentRoot ile belirtilen site belge ağacı + altında bulunmayan içeriğe erişmek mümkün olur. ScriptAlias yönergesi buna ek olarak + hedef dizini sadece CGI betiklerini içeren dizin olarak imler.

+ +

Redirect yönergesi, + farklı bir URL ile yeni bir istek yapmaları için istemcileri + yönlendirmekte kullanılır. Çoğunlukla özkaynak başka bir yere + taşındığında kullanılır.

+ +

mod_alias modülü basit URL değiştirme görevlerini + yerine getirmek için tasarlanmıştır. Sorgu dizgelerini işleme sokmak + gibi daha karmaşık görevler için mod_rewrite modülü ile + sağlanan araçlar kullanılır.

+ +
+ +
top
+
+

İşlem Sırası

+ +

Farklı bağlamlarda bulunan Alias ve Redirect + yönergeleri standart katıştırma + kuralları ile ilgili diğer yönergeler gibi işleme sokulurlar. Fakat + aynı bağlam dahilinde (örneğin, aynı <VirtualHost> bölümünde) çok fazla Alias ve Redirect varsa bunlar belli bir sıraya göre işleme + sokulur.

+ +

İlk adımda, Alias’lardan önce + bütün Redirect yönergeleri + işleme sokulur. Bu bakımdan bir Redirect veya RedirectMatch ile eşleşen bir istek için + hiçbir Alias + uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları + sıraya göre Redirect ve + Alias yönergeleri işleme + sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.

+ +

İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden + fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili + olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin + aşağıdaki yapılandırma beklendiği gibi çalışacaktır:

+ +

+ Alias /foo/bar /baz
+ Alias /foo /gaz +

+ +

Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı, + /foo rumuzu daima /foo/bar rumuzundan önce + eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.

+ +
+
top
+

Alias Yönergesi

+ + + + + + +
Açıklama:URL’leri dosya sistemi konumlarıyla eşler.
Sözdizimi:Alias URL-yolu +dosya-yolu|dizin-yolu
Bağlam:sunucu geneli, sanal konak
Durum:Temel
Modül:mod_alias
+ +

Alias yönergesi, belgelerin DocumentRoot dizininden farklı bir yerde + saklanmasını mümkün kılar. URL-yolu ile başlayan + URL’ler (% imlemesi çözüldükten sonra) dizin-yolu + ile başlayan yerel dosyalarla eşlenir. URL-yolu, + harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne + duyarlıdır.

+ +

Örnek:

+ Alias /image /ftp/pub/image +

+ +

http://sunucum/image/foo.gif şeklinde bir istek, sunucunun + /ftp/pub/image/foo.gif dosyasıyla yanıt vermesine sebep + olurdu.

+ +

URL-yolu’nu bir / ile + sonlandırırsanız Alias yönergesini yorumlarken + sunucunun da sona bir / ekleyeceğine dikkat ediniz. Yani, + eğer

+ +
Alias /icons/ /usr/local/apache/icons/
+ +

diye bir tanım yaparsanız /icons URL’si için bir + Alias kullanılmayacaktır.

+ +

Alias hedefleri için ek <Directory> bölümleri + belirtmeniz gerekebileceğine dikkat ediniz. <Directory> bölümlerinden önce yer alan + Alias yönergelerine özellikle bakılır, + dolayısıyla sadece Alias hedefleri etkilenir. + (Bununla birlikte, Alias yönergelerinden önce + işleme sokulan <Location> bölümlerinin uygulanacağına dikkat + ediniz.)

+ +

Özellikle, DocumentRoot dışında + bir dizine bir Alias oluşturuyorsanız hedef + dizine doğrudan erişim izni vermeniz gerekebilir.

+ +

Örnek:

+ Alias /image /ftp/pub/image
+ <Directory /ftp/pub/image>
+ + Order allow,deny
+ Allow from all
+
+ </Directory> +

+ +
+
top
+

AliasMatch Yönergesi

+ + + + + + +
Açıklama:URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak +eşler.
Sözdizimi:AliasMatch düzenli-ifade +dosya-yolu|dizin-yolu
Bağlam:sunucu geneli, sanal konak
Durum:Temel
Modül:mod_alias
+

Bu yönerge URL-yolu ile eşleşmek üzere bir +  düzenli ifade kabul etmesi dışında + Alias yönergesine eşdeğerdir. + Belirtilen düzenli ifade URL-yolu ile eşleşiyorsa + sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu + elde eder. Örneğin, /icons dizinini etkinleştirmek için şu + yazılabilir:

+ +

+ AliasMatch ^/icons(.*) /usr/local/apache/icons$1 +

+ +

Ayrıca, URL-yolu ile harf büyüklüğüne duyarsız + eşleşmeler sağlayacak düzenli ifadeler de kullanılabilir:

+ +

+ AliasMatch (?i)^/image(.*) /ftp/pub/image$1 +

+ +
+
top
+

Redirect Yönergesi

+ + + + + + + +
Açıklama:İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye +yönlendirir.
Sözdizimi:Redirect [durum] URL-yolu +URL
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Temel
Modül:mod_alias
+

Redirect yönergesi istemciye bir yönlendirme + isteği döndürerek eski URL’yi yenisiyle eşler.

+ +

Eski URL-yolu bir bölü çizgisi ile başlar ve harf + büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra). + URL-yolu olarak göreli yollara izin verilmez. + URL ise bir şema ve konak ismi ile başlayan bir + mutlak URL olmalıdır.

+ +

Örnek:

+ Redirect /hizmet http://iki.mesela.dom/hizmet +

+ +

İstemcinin yaptığı http://mesela.dom/hizmet/fesmekan.txt + isteğine karşılık istemciye isteği + http://iki.mesela.dom/hizmet/fesmekan.txt olarak yapması + söylenecektir.

+ + +

Bilginize

+

Yapılandırma dosyasında yer alış sırasına bakmaksızın + Redirect yönergeleri + Alias ve ScriptAlias + yönergelerinden önce ele alınır. <Directory> bölümleri ve .htaccess + dosyaları içinde bile kullanılsa URL-yolu göreli + bir yol değil, tam nitelikli bir URL olmak zorundadır.

+ +

Herhangi bir durum belirtilmemişse "geçici" + yönlendirme (HTTP durum kodu: 302) yapılır. Bu, istemciye özkaynağın + geçici olarak başka yere taşındığını belirtir. Diğer HTTP durum + kodlarını döndürmek için kullanılabilecek durum + değerleri:

+ +
+
permanent
+
İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı + yönlendirme durumu (301) döndürülür.
+ +
temp
+
İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır. +
+ +
seeother
+
İstemciye özkaynağın yerine başka bir şey konduğunu belirten + "diğerine bak" durumu (303) döndürülür.
+ +
gone
+
İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü + bağlantı" durumu (410) döner. Bu durumda URL + belirtilmez.
+
+ +

Diğer durum kodları için durum olarak sayısal + durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir + URL belirtmek gereklidir, yoksa belirtilmez. + Belirtilecek durum kodunu Apache’nin bilmesi gerektiğine dikkat ediniz + (http_protocol.c dosyasında bulunan + send_error_response işlevine bakınız).

+ +

Örnek:

+ Redirect permanent /bir http://mesela.dom/iki
+ Redirect 303 /yedi http://mesela.dom/baskabisey +

+ +
+
top
+

RedirectMatch Yönergesi

+ + + + + + + +
Açıklama:Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici +yönlendirme gönderir.
Sözdizimi:RedirectMatch [durum] düzenli-ifade +URL
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Temel
Modül:mod_alias
+

Bu yönerge URL-yolu ile eşleşmek üzere bir +  düzenli ifade kabul etmesi dışında + Redirect yönergesine + eşdeğerdir. Belirtilen düzenli ifade URL-yolu ile + eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak + dosya yolunu elde eder. Örneğin, tüm GIF dosyası isteklerini başka bir + sunucudaki aynı isimli JPEG dosyalarına yönlendirmek için şu + yazılabilir:

+ +

+ RedirectMatch (.*)\.gif$ http://baska.sunucu.dom$1.jpg +

+ +
+
top
+

RedirectPermanent Yönergesi

+ + + + + + + +
Açıklama:İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.
Sözdizimi:RedirectPermanent URL-yolu URL
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Temel
Modül:mod_alias
+

Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür. + Yani, Redirect permanent ile aynı işi yapar.

+ +
+
top
+

RedirectTemp Yönergesi

+ + + + + + + +
Açıklama:İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir +URL’ye yönlendirir.
Sözdizimi:RedirectTemp URL-yolu URL
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:FileInfo
Durum:Temel
Modül:mod_alias
+

Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür. + Yani, Redirect temp ile aynı işi yapar.

+ +
+
top
+

ScriptAlias Yönergesi

+ + + + + + +
Açıklama:Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır.
Sözdizimi:ScriptAlias URL-yolu +dosya-yolu|dizin-yolu
Bağlam:sunucu geneli, sanal konak
Durum:Temel
Modül:mod_alias
+

Hedef dizini, mod_cgi modülünün CGI betiği + yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak + imlemesi dışında Alias + yönergesinin yaptığı işi yapar. URL-yolu ile + başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten + sonra), dosya sistemindeki bir tam yol olarak belirtilmiş + dizin-yolu ile başlayan betiklerle eşlenir.

+ +

Örnek:

+ ScriptAlias /cgi-bin/ /siteler/cgi-bin/ +

+ +

http://sunucum/cgi-bin/foo şeklindeki bir istek sunucunun + /siteler/cgi-bin/foo betiğini çalıştırmasına sebep olur. Bu + yapılandırma aslında şuna eşdeğerdir:

+ +

+ Alias /cgi-bin/ /siteler/cgi-bin/
+ <Location /cgi-bin >
+ + SetHandler cgi-script
+ Options +ExecCGI
+
+ </Location> +

+ +
Yapılandırma değiştiğinde kaynak kodlarının ister + istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi DocumentRoot altına koymayınız. + ScriptAlias yönergesi URL’yi doğru yere + eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI + betiklerinizi DocumentRoot altına + koyarsanız çalıştırmak için ScriptAlias değil, + <Directory>, + SetHandler ve Options yönergelerini örnekteki gibi kullanın: + +

+ <Directory /usr/local/apache2/htdocs/cgi-bin >
+ + SetHandler cgi-script
+ Options ExecCGI
+
+ </Directory> +

+ + Aynı dosya sistemi konumu ile çok sayıda URL-yolu + eşleşebileceğinden, bir Directory + bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa + çıkabilir; bu bakımdan ScriptAlias yönergesini yok + sayan URL yollarının belirtilebilme olasılığı gözardı + edilmemelidir.
+ + +

Ayrıca bakınız:

+ +
+
top
+

ScriptAliasMatch Yönergesi

+ + + + + + +
Açıklama:Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak +eşler ve hedefi bir CGI betiği olarak çalıştırır.
Sözdizimi:ScriptAliasMatch düzenli-ifade +dosya-yolu|dizin-yolu
Bağlam:sunucu geneli, sanal konak
Durum:Temel
Modül:mod_alias
+

Bu yönerge URL-yolu ile eşleşmek üzere bir +  düzenli ifade kabul etmesi dışında + ScriptAlias yönergesine + eşdeğerdir. Belirtilen düzenli ifade URL-yolu ile + eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak + dosya yolunu elde eder. Örneğin, standart /cgi-bin dizinini + etkin kılmak için şu yazılabilir:

+ +

+ ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1 +

+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_asis.html b/rubbos/app/apache2/manual/mod/mod_asis.html new file mode 100644 index 00000000..f2f687b0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_asis.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_asis.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_asis.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_asis.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_asis.html.en b/rubbos/app/apache2/manual/mod/mod_asis.html.en new file mode 100644 index 00000000..6830aa16 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_asis.html.en @@ -0,0 +1,112 @@ + + + +mod_asis - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_asis

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Sends files that contain their own +HTTP headers
Status:Base
ModuleIdentifier:asis_module
SourceFile:mod_asis.c
+

Summary

+ +

This module provides the handler send-as-is + which causes Apache to send the document without adding most of + the usual HTTP headers.

+ +

This can be used to send any kind of data from the server, + including redirects and other special HTTP responses, without + requiring a cgi-script or an nph script.

+ +

For historical reasons, this module will also process any + file with the mime type httpd/send-as-is.

+
+

Directives

+

This module provides no directives.

+

Topics

+

See also

+
+
top
+
+

Usage

+ +

In the server configuration file, associate files with the + send-as-is handler e.g.

+ +

AddHandler send-as-is asis

+ +

The contents of any file with a .asis extension + will then be sent by Apache to the client with almost no + changes. In particular, HTTP headers are derived from the file + itself according to mod_cgi rules, so an asis + file must include valid headers, and may also use the CGI + Status: header to determine the HTTP response code.

+ + +

Here's an example of a file whose contents are sent as + is so as to tell the client that a file has + redirected.

+ + +

+ Status: 301 Now where did I leave that URL
+ Location: http://xyz.abc.com/foo/bar.html
+ Content-type: text/html
+
+ <html>
+ <head>
+ <title>Lame excuses'R'us</title>
+ </head>
+ <body>
+ <h1>Fred's exceptionally wonderful page has moved to
+ <a href="http://xyz.abc.com/foo/bar.html">Joe's</a> + site.
+ </h1>
+ </body>
+ </html> +

+ +

Notes:

+

The server always adds a Date: and Server: + header to the data returned to the client, so these should not be + included in the file. The server does not add a + Last-Modified header; it probably should.

+
+
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_asis.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_asis.html.ja.utf8 new file mode 100644 index 00000000..46023ba8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_asis.html.ja.utf8 @@ -0,0 +1,112 @@ + + + +mod_asis - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_asis

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:自分用の HTTP ヘッダの書かれているファイルを送信する
ステータス:Base
モジュール識別子:asis_module
ソースファイル:mod_asis.c
+

概要

+ +

このモジュールはハンドラ send-as-is + を提供します。このハンドラは通常の HTTP + ヘッダをほとんど追加することなくドキュメントを送信します。

+ +

これはサーバからどんな種類のデータを送るときにも使用できます。 + Cgi スクリプトや nph スクリプトが無くてもリダイレクトや他の特別な + HTTP 応答を送ることができます。

+ +

歴史的な理由により、このモジュールは mime タイプ + httpd/send-as-is のファイルも処理します。

+
+

ディレクティブ

+

このモジュールにディレクティブはありません。

+

トピック

+

参照

+
+
top
+
+

使用法

+ +

サーバ設定ファイルで、ファイルと send-as-is + ハンドラを例えば以下のように関連付けてください。

+ +

AddHandler send-as-is asis

+ +

拡張子が .asis のすべてのファイルの内容は Apache + からクライアントへほとんど変更無く送られます。クライアントには + HTTP ヘッダが必要ですので、ファイルに書くことを忘れないでください。 + Status: ヘッダも必要です。データは 3 桁の HTTP + 応答コードと、その後にテキストメッセージが続いたものでなければなりません。

+ +

これはクライアントにファイルが移動したことを知らせるために + as is (そのまま) で送られるファイルの内容の例です。 +

+ + +

+ Status: 301 Now where did I leave that URL
+ Location: http://xyz.abc.com/foo/bar.html
+ Content-type: text/html
+
+ <html>
+ <head>
+ <title>Lame excuses'R'us</title>
+ </head>
+ <body>
+ <h1>Fred's exceptionally wonderful page has moved to
+ <a href="http://xyz.abc.com/foo/bar.html">Joe's</a> + site.
+ </h1>
+ </body>
+ </html> +

+ +

注意

+

注意: サーバはクライアントに返されるデータに常に Date: + と Server: ヘッダを追加しますので、 + それらがファイルに書かれていてはいけません。 + サーバは Last-Modified ヘッダを追加しません。 + おそらくはそうすべきでしょうけれど。

+
+
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_asis.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_asis.html.ko.euc-kr new file mode 100644 index 00000000..bf003ae4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_asis.html.ko.euc-kr @@ -0,0 +1,110 @@ + + + +mod_asis - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_asis

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:HTTP
:Base
:asis_module
ҽ:mod_asis.c
+

+ +

ġ Ϲ HTTP κ ߰ʰ + send-as-is ڵ鷯 + Ѵ.

+ +

׷ cgi ũƮ nph ũƮ ʰ + ̷ǰ ٸ Ư HTTP  ڷᵵ + ִ.

+ +

ſ mime type httpd/send-as-is + ϵ óߴ.

+
+

þ

+

⿡ þ ϴ.

+

+
    +
  • +

+
+
top
+
+

+ +

Ͽ ϰ send-as-is ڵ鷯 + Ѵ.

+ +

AddHandler send-as-is asis

+ +

ġ .asis Ȯڸ + ʰ Ŭ̾Ʈ . Ŭ̾Ʈ HTTP + ʿϹǷ . Status: ʿϴ. + ڸ HTTP ڵ ̴.

+ +

״ Ŭ̾Ʈ + ̷¼ǵǾٰ ˸ ̴.

+ + +

+ Status: 301 Now where did I leave that URL
+ Location: http://xyz.abc.com/foo/bar.html
+ Content-type: text/html
+
+ <html>
+ <head>
+ <title>Lame excuses'R'us</title>
+ </head>
+ <body>
+ <h1>Fred's exceptionally wonderful page has moved to
+ <a href="http://xyz.abc.com/foo/bar.html">Joe's</a> + site.
+ </h1>
+ </body>
+ </html> +

+ +

:

+

ڷḦ Ŭ̾Ʈ ׻ Date: + Server: ߰ϹǷ, Ͽ + ȵȴ. Last-Modified + ߰ ʴ´. ׷ Ƹ ؾ + Ѵ.

+
+
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth.html b/rubbos/app/apache2/manual/mod/mod_auth.html new file mode 100644 index 00000000..47ba7fea --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_auth.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_auth.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_auth.html.en b/rubbos/app/apache2/manual/mod/mod_auth.html.en new file mode 100644 index 00000000..fc3c91bb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth.html.en @@ -0,0 +1,201 @@ + + + +mod_auth - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_auth

+
+

Available Languages:  en  | + ja 

+
+ + + + +
Description:User authentication using text files
Status:Base
ModuleIdentifier:auth_module
SourceFile:mod_auth.c
Compatibility:Available only in versions prior to 2.1
+

Summary

+ +

This module allows the use of HTTP Basic Authentication to + restrict access by looking up users in plain text password and + group files. Similar functionality and greater scalability is + provided by mod_auth_dbm. HTTP Digest + Authentication is provided by mod_auth_digest.

+
+ + +
top
+

AuthAuthoritative Directive

+ + + + + + + + +
Description:Sets whether authorization and authentication are +passed to lower level modules
Syntax:AuthAuthoritative On|Off
Default:AuthAuthoritative On
Context:directory, .htaccess
Override:AuthConfig
Status:Base
Module:mod_auth
+

Setting the AuthAuthoritative directive + explicitly to Off allows for both authentication and + authorization to be passed on to lower level modules (as defined in the + modules.c files) if there is no userID + or rule matching the supplied userID. If there is a + userID and/or rule specified; the usual password and access checks + will be applied and a failure will give an "Authentication Required" + reply.

+ +

So if a userID appears in the database of more than one module; + or if a valid Require + directive applies to more than one module; then the first module + will verify the credentials; and no access is passed on; + regardless of the AuthAuthoritative setting.

+ +

A common use for this is in conjunction with one of the + database modules; such as mod_auth_dbm, + mod_auth_msql, and mod_auth_anon. + These modules supply the bulk of the user credential checking; but + a few (administrator) related accesses fall through to a lower + level with a well protected AuthUserFile.

+ +

By default control is not passed on and an unknown userID or + rule will result in an "Authentication Required" reply. Not setting + it thus keeps the system secure and forces an NCSA compliant + behaviour.

+ +

Security

+

Do consider the implications of allowing a user to allow + fall-through in his .htaccess file; and verify that this is really + what you want; Generally it is easier to just secure a single + .htpasswd file, than it is to secure a database such as mSQL. + Make sure that the AuthUserFile and the AuthGroupFile are stored outside the document tree of + the web-server; do not put them in the directory that they + protect. Otherwise, clients will be able to download the AuthUserFile and the AuthGroupFile.

+
+ +
+
top
+

AuthGroupFile Directive

+ + + + + + + +
Description:Sets the name of a text file containing the list +of user groups for authentication
Syntax:AuthGroupFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Base
Module:mod_auth
+

The AuthGroupFile directive sets the + name of a textual file containing the list of user groups for user + authentication. File-path is the path to the group + file. If it is not absolute, it is treated as relative to the ServerRoot.

+ +

Each line of the group file contains a groupname followed by a + colon, followed by the member usernames separated by spaces.

+ +

Example:

+ mygroup: bob joe anne +

+ +

Note that searching large text files is very + inefficient; AuthDBMGroupFile provides a much better performance.

+ +

Security

+

Make sure that the AuthGroupFile is + stored outside the document tree of the web-server; do not + put it in the directory that it protects. Otherwise, clients may + be able to download the AuthGroupFile.

+
+ +
+
top
+

AuthUserFile Directive

+ + + + + + + +
Description:Sets the name of a text file containing the list of users and +passwords for authentication
Syntax:AuthUserFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Base
Module:mod_auth
+

The AuthUserFile directive sets the name + of a textual file containing the list of users and passwords for + user authentication. File-path is the path to the user + file. If it is not absolute (i.e., if it doesn't begin + with a slash), it is treated as relative to the ServerRoot.

+ +

Each line of the user file contains a username followed by + a colon, followed by the encrypted password. If the same user + ID is defined multiple times, mod_auth will + use the first occurrence to verify the password.

+ +

The utility htpasswd + which is installed as part of the binary distribution, or which + can be found in src/support, is used to maintain + this password file. See the man + page for more details. In short:

+ +

Create a password file Filename with + username as the initial ID. It will prompt for the + password:

+ +

+ htpasswd -c Filename username +

+ +

Add or modify username2 in the password file + Filename:

+ +

+ htpasswd Filename username2 +

+ +

Note that searching large text files is very + inefficient; AuthDBMUserFile should be used + instead.

+ +

Security

+

Make sure that the AuthUserFile is + stored outside the document tree of the web-server. Do + not put it in the directory that it protects. + Otherwise, clients may be able to download the + AuthUserFile.

+
+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_auth.html.ja.utf8 new file mode 100644 index 00000000..59754b18 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth.html.ja.utf8 @@ -0,0 +1,226 @@ + + + +mod_auth - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_auth

+
+

Available Languages:  en  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:テキストファイルを用いたユーザ認証
ステータス:Base
モジュール識別子:auth_module
ソースファイル:mod_auth.c
互換性:2.1 より前のバージョンでのみ使用可能
+

概要

+ +

プレインテキストのパスワードファイルとグループファイルを検査して + ユーザを探すことで、HTTP 基本認証でアクセス制限できるようにします。 + 似たような機能で、もっと大きなスケーラビリティを持ったものは、 + mod_auth_dbm で提供されています。 + また、HTTP ダイジェスト認証は mod_auth_digest + で提供されています。

+ +
+

ディレクティブ

+ +

参照

+
+ +
top
+

AuthAuthoritative ディレクティブ

+ + + + + + + + +
説明:認証と承認プロセスを、 +より低いレベルのモジュールに移行させるかどうかを設定する
構文:AuthAuthoritative On|Off
デフォルト:AuthAuthoritative On
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Base
モジュール:mod_auth
+

AuthAuthoritative + ディレクティブで明示的に Off に設定すると、 + 与えられた認証ユーザ ID に対してユーザ ID がない + またはルールがない場合に、 + 認証と承認の両方のプロセスが、 + より低いレベルのモジュール (Configuration と + modules.c ファイルで定義) に移行するようにできます。 + ユーザ ID がある、かつまたは、ルールが指定されている場合は、 + 通常のパスワードとアクセスチェックが適用されて、 + 認証に失敗すると "Authentication Required" 応答が返されます。

+ +

ですから、二つ以上のモジュールのデータベースで同一の + ユーザ ID が現われたり、 + または、正しい Require + ディレクティブが二つ以上のモジュールで現われたりした場合は、 + 一つ目のモジュールが認定を行って、AuthAuthoritative + の設定に関わらず、 + アクセスは移行しません。

+ +

一般的な使用法は、mod_auth_dbm, + mod_auth_msql, mod_auth_anon + といったデータベースモジュールの一つと組み合わせることです。 + これらのモジュールは多くのユーザ資格検査を提供してくれます。 + しかし、少数の (管理者関連の) アクセスは + AuthUserFile + で良く保護された、より低レベルに移行するようにします。

+ +

デフォルトでは、制御は移行しません。そして、未知のユーザ ID や + ルールがあっても "Authentication Required" 応答が返されます。 + ですから、このディレクティブ設定しないことでシステムの安全を維持できて、また、 + NCSA 準拠の挙動を強制できます。

+ +

セキュリティ

+

ユーザが自分自身で作成した + .htaccess ファイルで認証できるようにすることの影響を + 考慮に入れておいてください。そして、 + それが本当に希望の挙動であるかどうかを検討してください。 + 一般的に言って、mSQL といったデータベースのセキュリティ保護よりも、 + 単純に一つのファイル .htpasswd のセキュリティを保護する方が容易です。 + AuthUserFile と + AuthGroupFile は、 + ウェブサーバのドキュメントツリーの外側に保管する + ようにしてください。保護しようとしているディレクトリ以下には、 + 置かないで下さい。そうしないと + AuthUserFile と + AuthGroupFile + はダウンロードできてしまいます。

+
+ +
+
top
+

AuthGroupFile ディレクティブ

+ + + + + + + +
説明:認証に使用するユーザグループの一覧が格納されている、 +テキストファイルの名前を設定する
構文:AuthGroupFile file-path
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Base
モジュール:mod_auth
+

AuthGroupFile ディレクティブは、 + 認証に使用するユーザグループの一覧が格納されている、 + テキストファイルの名前を設定します。 + file-path はグループファイルへのパスです。 + もし絶対パスでなければ、 + ServerRoot + からの相対パスとして扱われます。

+ +

グループファイル各行は、グループ名、コロン、そして + スペース区切りでそのメンバーのユーザ名を記述します。

+ +

例:

+ mygroup: bob joe anne +

+ +

大きなファイルを探索するのは、非常に効率が悪いという点に + 注意してください。そのような場合は、 + AuthDBMGroupFile + の方がずっと良い性能を発揮します。

+ +

セキュリティ

+

AuthGroupFile は、 + ウェブサーバのドキュメントツリーの外側に + 保管するようにしてください。 + 保護しようとしているディレクトリ以下には、置かないで下さい。 + そうしないと AuthGroupFile は + ダウンロードできてしまいます。

+
+ +
+
top
+

AuthUserFile ディレクティブ

+ + + + + + + +
説明:認証に使用するユーザとパスワードの一覧が格納されている、 +テキストファイルの名前を設定する
構文:AuthUserFile file-path
コンテキスト:ディレクトリ, .htaccess
上書き:AuthConfig
ステータス:Base
モジュール:mod_auth
+

AuthUserFile ディレクティブは、 + ユーザ認証のためのユーザとパスワードの一覧を格納した + テキストファイルの名前を設定します。file-path + はユーザファイルへのパスです。 + もし絶対パスでなければ + (つまり スラッシュで始まらないパスであれば) + 、ServerRoot + からの相対パスとして扱われます。

+ +

ユーザファイルの各行には、ユーザ名、コロン、 + 暗号化したパスワードを記述します。 + 同一ユーザ ID が複数回登録された時は、mod_auth は + パスワードの検証には最初の登録を使用します。

+ +

バイナリ配布の一部としてインストールされるか、 + あるいは src/support にある + htpasswd + ユーティリティで、このパスワードファイルをメインテナンスします。 + 詳細は man ページをご覧頂くとして、 + 簡単には:

+ +

初期 ID username で、Filename + というパスワードファイルを生成します。 + 次のコマンドを発行するとパスワードが要求されます:

+ +

htpasswd -c Filename username

+ +

パスワードファイル Filename に、username2 + を追加したり修正したりします:

+ +

htpasswd Filename username2

+ +

(訳注: 非常に多くのユーザを登録すると大きなファイルになりますが) + 大きなテキストファイルを検索するのは非常に効率が悪い + ということに注意してください。そのような必要のある時は、 + AuthDBMUserFile + を代わりに使ってください。

+ +

セキュリティ

+

AuthUserFile + は、ウェブサーバのドキュメントツリーの外側に保管するようにしてください。 + 保護しようとしているディレクトリ以下には、置かないで下さい。 + そうしないと AuthUserFile は + ダウンロードできてしまいます。

+
+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth_anon.html b/rubbos/app/apache2/manual/mod/mod_auth_anon.html new file mode 100644 index 00000000..6fb59568 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_anon.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_auth_anon.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_auth_anon.html.en b/rubbos/app/apache2/manual/mod/mod_auth_anon.html.en new file mode 100644 index 00000000..8970a060 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_anon.html.en @@ -0,0 +1,240 @@ + + + +mod_auth_anon - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_auth_anon

+
+

Available Languages:  en 

+
+ + + + +
Description:Allows "anonymous" user access to authenticated +areas
Status:Extension
ModuleIdentifier:auth_anon_module
SourceFile:mod_auth_anon.c
Compatibility:Available only in versions prior to 2.1
+

Summary

+ +

This module does access control in a manner similar to + anonymous-ftp sites; i.e. have a 'magic' user id + 'anonymous' and the email address as a password. These email + addresses can be logged.

+ +

Combined with other (database) access control methods, this + allows for effective user tracking and customization according + to a user profile while still keeping the site open for + 'unregistered' users. One advantage of using Auth-based user + tracking is that, unlike magic-cookies and funny URL + pre/postfixes, it is completely browser independent and it + allows users to share URLs.

+
+ +
top
+
+

Example

+ +

The example below (when combined with the Auth directives of a + htpasswd-file based (or GDM, mSQL etc.) base access + control system allows users in as 'guests' with the following + properties:

+ +
    +
  • It insists that the user enters a userID. + (Anonymous_NoUserID)
  • + +
  • It insists that the user enters a password. + (Anonymous_MustGiveEmail)
  • + +
  • The password entered must be a valid email address, ie. + contain at least one '@' and a '.'. + (Anonymous_VerifyEmail)
  • + +
  • The userID must be one of anonymous guest www test + welcome and comparison is not case + sensitive. (Anonymous)
  • + +
  • And the Email addresses entered in the passwd field are + logged to the error log file. + (Anonymous_LogEmail)
  • +
+ +

Excerpt of httpd.conf:

+ Anonymous_NoUserID off
+ Anonymous_MustGiveEmail on
+ Anonymous_VerifyEmail on
+ Anonymous_LogEmail on
+ Anonymous anonymous guest www test welcome
+
+ AuthName "Use 'anonymous' & Email address for guest entry"
+ AuthType basic
+
+ # An + AuthUserFile/AuthDBUserFile/AuthDBMUserFile
+ # directive must be specified, or use
+ # Anonymous_Authoritative for public access.
+ # In the .htaccess for the public directory, add:
+ <Files *>
+ + Order Deny,Allow
+ Allow from all
+
+ Require valid-user
+
+ </Files> +

+
+
top
+

Anonymous Directive

+ + + + + + + +
Description:Specifies userIDs that are allowed access without +password verification
Syntax:Anonymous user [user] ...
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

A list of one or more 'magic' userIDs which are allowed + access without password verification. The userIDs are space + separated. It is possible to use the ' and " quotes to allow a + space in a userID as well as the \ escape character.

+ +

Please note that the comparison is + case-IN-sensitive.
+ I strongly suggest that the magic username + 'anonymous' is always one of the allowed + userIDs.

+ +

Example:

+ Anonymous anonymous "Not Registered" "I don't know" +

+ +

This would allow the user to enter without password + verification by using the userIDs "anonymous", + "AnonyMous", "Not Registered" and "I Don't Know".

+ +
+
top
+

Anonymous_Authoritative Directive

+ + + + + + + + +
Description:Configures if authorization will fall-through +to other methods
Syntax:Anonymous_Authoritative On|Off
Default:Anonymous_Authoritative Off
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

When set On, there is no fall-through to other + authentication methods. So if a userID does not match the values + specified in the Anonymous + directive, access is denied.

+ +

Be sure you know what you are doing when you decide to + switch it on. And remember that the order in which the Authentication + modules are queried is defined in the modules.c files at compile + time.

+ +
+
top
+

Anonymous_LogEmail Directive

+ + + + + + + + +
Description:Sets whether the password entered will be logged in the +error log
Syntax:Anonymous_LogEmail On|Off
Default:Anonymous_LogEmail On
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

When set On, the default, the 'password' entered + (which hopefully contains a sensible email address) is logged in + the error log.

+ +
+
top
+

Anonymous_MustGiveEmail Directive

+ + + + + + + + +
Description:Specifies whether blank passwords are allowed
Syntax:Anonymous_MustGiveEmail On|Off
Default:Anonymous_MustGiveEmail On
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

Specifies whether the user must specify an email address as + the password. This prohibits blank passwords.

+ +
+
top
+

Anonymous_NoUserID Directive

+ + + + + + + + +
Description:Sets whether the userID field may be empty
Syntax:Anonymous_NoUserID On|Off
Default:Anonymous_NoUserID Off
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

When set On, users can leave the userID (and + perhaps the password field) empty. This can be very convenient for + MS-Explorer users who can just hit return or click directly on the + OK button; which seems a natural reaction.

+ +
+
top
+

Anonymous_VerifyEmail Directive

+ + + + + + + + +
Description:Sets whether to check the password field for a correctly +formatted email address
Syntax:Anonymous_VerifyEmail On|Off
Default:Anonymous_VerifyEmail Off
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_anon
+

When set On the 'password' entered is checked for + at least one '@' and a '.' to encourage users to enter valid email + addresses (see the above Anonymous_LogEmail).

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth_dbm.html b/rubbos/app/apache2/manual/mod/mod_auth_dbm.html new file mode 100644 index 00000000..091af48f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_dbm.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_auth_dbm.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_auth_dbm.html.en b/rubbos/app/apache2/manual/mod/mod_auth_dbm.html.en new file mode 100644 index 00000000..b1f84790 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_dbm.html.en @@ -0,0 +1,228 @@ + + + +mod_auth_dbm - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_auth_dbm

+
+

Available Languages:  en 

+
+ + + + +
Description:Provides for user authentication using DBM + files
Status:Extension
ModuleIdentifier:auth_dbm_module
SourceFile:mod_auth_dbm.c
Compatibility:Available only in versions prior to 2.1
+

Summary

+ +

This module provides for HTTP Basic Authentication, where + the usernames and passwords are stored in DBM type database + files. It is an alternative to the plain text password files + provided by mod_auth.

+
+ + +
top
+

AuthDBMAuthoritative Directive

+ + + + + + + + +
Description:Sets whether authentication and authorization will be +passed on to lower level modules
Syntax:AuthDBMAuthoritative On|Off
Default:AuthDBMAuthoritative On
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_dbm
+

Setting the AuthDBMAuthoritative + directive explicitly to Off allows for both + authentication and authorization to be passed on to lower level + modules (as defined in the modules.c files) if there + is no userID or rule matching the + supplied userID. If there is a userID and/or rule specified; the + usual password and access checks will be applied and a failure will + give an "Authentication Required" reply.

+ +

So if a userID appears in the database of more than one module; + or if a valid Require + directive applies to more than one module; then the first module + will verify the credentials; and no access is passed on; + regardless of the AuthDBMAuthoritative + setting.

+ +

A common use for this is in conjunction with one of the + basic auth modules; such as mod_auth. Whereas this + DBM module supplies the bulk of the user credential checking; a + few (administrator) related accesses fall through to a lower + level with a well protected .htpasswd file.

+ +

By default, control is not passed on and an unknown userID + or rule will result in an "Authentication Required" reply. Not + setting it thus keeps the system secure and forces an NCSA + compliant behaviour.

+ +

Security:

+

Do consider the implications of allowing a user to allow + fall-through in his .htaccess file; and verify that this + is really what you want; Generally it is easier to just secure + a single .htpasswd file, than it is to secure a + database which might have more access interfaces.

+
+ +
+
top
+

AuthDBMGroupFile Directive

+ + + + + + + +
Description:Sets the name of the database file containing the list +of user groups for authentication
Syntax:AuthDBMGroupFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_dbm
+

The AuthDBMGroupFile directive sets the + name of a DBM file containing the list of user groups for user + authentication. File-path is the absolute path to the + group file.

+ +

The group file is keyed on the username. The value for a + user is a comma-separated list of the groups to which the users + belongs. There must be no whitespace within the value, and it + must never contain any colons.

+ +

Security: make sure that the + AuthDBMGroupFile is stored outside the + document tree of the web-server; do not put it in the + directory that it protects. Otherwise, clients will be able to + download the AuthDBMGroupFile unless + otherwise protected.

+ +

Combining Group and Password DBM files: In some cases it is + easier to manage a single database which contains both the + password and group details for each user. This simplifies any + support programs that need to be written: they now only have to + deal with writing to and locking a single DBM file. This can be + accomplished by first setting the group and password files to + point to the same DBM:

+ +

+ AuthDBMGroupFile /www/userbase
+ AuthDBMUserFile /www/userbase +

+ +

The key for the single DBM is the username. The value consists + of

+ +

+ Unix Crypt-ed Password:List of Groups[:(ignored)] +

+ +

The password section contains the encrypted password as before. + This is followed by a colon and the comma separated list of groups. + Other data may optionally be left in the DBM file after another colon; + it is ignored by the authentication module. This is what + www.telescope.org uses for its combined password and group database.

+ +
+
top
+

AuthDBMType Directive

+ + + + + + + + + +
Description:Sets the type of database file that is used to +store passwords
Syntax:AuthDBMType default|SDBM|GDBM|NDBM|DB
Default:AuthDBMType default
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_dbm
Compatibility:Available in version 2.0.30 and later.
+

Sets the type of database file that is used to store the passwords. + The default database type is determined at compile time. The + availability of other types of database files also depends on + compile-time settings.

+ +

It is crucial that whatever program you use to create your password + files is configured to use the same type of database.

+ +
+
top
+

AuthDBMUserFile Directive

+ + + + + + + +
Description:Sets thename of a database file containing the list of users and +passwords for authentication
Syntax:AuthDBMUserFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_auth_dbm
+

The AuthDBMUserFile directive sets the + name of a DBM file containing the list of users and passwords for + user authentication. File-path is the absolute path to + the user file.

+ +

The user file is keyed on the username. The value for a user is + the encrypted password, optionally followed by a colon and arbitrary + data. The colon and the data following it will be ignored by the + server.

+ +

Security:

+

Make sure that the AuthDBMUserFile is stored + outside the document tree of the web-server; do not put it in + the directory that it protects. Otherwise, clients will be able to + download the AuthDBMUserFile.

+
+ +

Important compatibility note: The implementation of + "dbmopen" in the apache modules reads the string length of the + hashed values from the DBM data structures, rather than relying + upon the string being NULL-appended. Some applications, such as + the Netscape web server, rely upon the string being + NULL-appended, so if you are having trouble using DBM files + interchangeably between applications this may be a part of the + problem.

+ +

A perl script called + dbmmanage is included with + Apache. This program can be used to create and update DBM + format password files for use with this module.

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth_digest.html b/rubbos/app/apache2/manual/mod/mod_auth_digest.html new file mode 100644 index 00000000..eeb065dd --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_digest.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_auth_digest.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_auth_digest.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_auth_digest.html.en b/rubbos/app/apache2/manual/mod/mod_auth_digest.html.en new file mode 100644 index 00000000..245b898f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_digest.html.en @@ -0,0 +1,358 @@ + + + +mod_auth_digest - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_auth_digest

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:User authentication using MD5 + Digest Authentication.
Status:Experimental
ModuleIdentifier:auth_digest_module
SourceFile:mod_auth_digest.c
+

Summary

+ +

This module implements HTTP Digest Authentication. However, it + has not been extensively tested and is therefore marked + experimental.

+
+ +
top
+
+

Using Digest Authentication

+ +

Using MD5 Digest authentication is very simple. Simply set + up authentication normally, using AuthType Digest and + AuthDigestFile instead + of the normal AuthType Basic and AuthUserFile; also, replace any AuthGroupFile with AuthDigestGroupFile. Then add a + AuthDigestDomain directive + containing at least the root URI(s) for this protection space.

+ +

Appropriate user (text) files can be created using the + htdigest tool.

+ +

Example:

+ <Location /private/>
+ + AuthType Digest
+ AuthName "private area"
+ AuthDigestDomain /private/ http://mirror.my.dom/private2/
+ AuthDigestFile /web/auth/.digest_pw
+ Require valid-user
+
+ </Location> +

+ +

Note

+

Digest authentication provides a more secure password system + than Basic authentication, but only works with supporting + browsers. As of November 2002, the major browsers that support digest + authentication are Opera, MS Internet + Explorer (fails when used with a query string - see "Working with MS Internet Explorer" below for a workaround), Amaya, Mozilla and Netscape since version 7. Since digest authentication is not + as widely implemented as basic authentication, you should use it only + in controlled environments.

+
+
top
+
+

Working with MS Internet Explorer

+

The Digest authentication implementation in previous Internet + Explorer for Windows versions (5 and 6) had issues, namely that + GET requests with a query string were not RFC compliant. + There are a few ways to work around this issue.

+ +

+ The first way is to use POST requests instead of + GET requests to pass data to your program. This method + is the simplest approach if your application can work with this + limitation. +

+ +

Since version 2.0.51 Apache also provides a workaround in the + AuthDigestEnableQueryStringHack environment variable. + If AuthDigestEnableQueryStringHack is set for the + request, Apache will take steps to work around the MSIE bug and + remove the query string from the digest comparison. Using this + method would look similar to the following.

+ +

Using Digest Authentication with MSIE:

+ BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On +

+ +

This workaround is not necessary for MSIE 7, though enabling it does + not cause any compatibility issues or significant overhead.

+ +

See the BrowserMatch + directive for more details on conditionally setting environment + variables

+
+
top
+

AuthDigestAlgorithm Directive

+ + + + + + + + +
Description:Selects the algorithm used to calculate the challenge and +response hases in digest authentication
Syntax:AuthDigestAlgorithm MD5|MD5-sess
Default:AuthDigestAlgorithm MD5
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestAlgorithm directive + selects the algorithm used to calculate the challenge and response + hashes.

+ +
+ MD5-sess is not correctly implemented yet. +
+ + +
+
top
+

AuthDigestDomain Directive

+ + + + + + + +
Description:URIs that are in the same protection space for digest +authentication
Syntax:AuthDigestDomain URI [URI] ...
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestDomain directive allows + you to specify one or more URIs which are in the same protection + space (i.e. use the same realm and username/password info). + The specified URIs are prefixes, i.e. the client will assume + that all URIs "below" these are also protected by the same + username/password. The URIs may be either absolute URIs (i.e. + including a scheme, host, port, etc) or relative URIs.

+ +

This directive should always be specified and + contain at least the (set of) root URI(s) for this space. + Omitting to do so will cause the client to send the + Authorization header for every request sent to this + server. Apart from increasing the size of the request, it may + also have a detrimental effect on performance if AuthDigestNcCheck is on.

+ +

The URIs specified can also point to different servers, in + which case clients (which understand this) will then share + username/password info across multiple servers without + prompting the user each time.

+ +
+
top
+

AuthDigestFile Directive

+ + + + + + + +
Description:Location of the text file containing the list +of users and encoded passwords for digest authentication
Syntax:AuthDigestFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestFile directive sets the + name of a textual file containing the list of users and encoded + passwords for digest authentication. File-path is the + absolute path to the user file.

+ +

The digest file uses a special format. Files in this format + can be created using the htdigest utility found in + the support/ subdirectory of the Apache distribution.

+ +
+
top
+

AuthDigestGroupFile Directive

+ + + + + + + +
Description:Name of the text file containing the list of groups +for digest authentication
Syntax:AuthDigestGroupFile file-path
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestGroupFile directive sets + the name of a textual file containing the list of groups and their + members (user names). File-path is the absolute path to + the group file.

+ +

Each line of the group file contains a groupname followed by + a colon, followed by the member usernames separated by spaces. + Example:

+ +

mygroup: bob joe anne

+ +

Note that searching large text files is very + inefficient.

+ +

Security:

+

Make sure that the AuthGroupFile is stored + outside the document tree of the web-server; do not put it in + the directory that it protects. Otherwise, clients may be able + to download the AuthGroupFile.

+
+ +
+
top
+

AuthDigestNcCheck Directive

+ + + + + + + +
Description:Enables or disables checking of the nonce-count sent by the +server
Syntax:AuthDigestNcCheck On|Off
Default:AuthDigestNcCheck Off
Context:server config
Status:Experimental
Module:mod_auth_digest
+
+ Not implemented yet. +
+ + +
+
top
+

AuthDigestNonceFormat Directive

+ + + + + + + +
Description:Determines how the nonce is generated
Syntax:AuthDigestNonceFormat format
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+
Not implemented yet.
+ + +
+
top
+

AuthDigestNonceLifetime Directive

+ + + + + + + + +
Description:How long the server nonce is valid
Syntax:AuthDigestNonceLifetime seconds
Default:AuthDigestNonceLifetime 300
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestNonceLifetime directive + controls how long the server nonce is valid. When the client + contacts the server using an expired nonce the server will send + back a 401 with stale=true. If seconds is + greater than 0 then it specifies the amount of time for which the + nonce is valid; this should probably never be set to less than 10 + seconds. If seconds is less than 0 then the nonce never + expires. +

+ +
+
top
+

AuthDigestQop Directive

+ + + + + + + + +
Description:Determines the quality-of-protection to use in digest +authentication
Syntax:AuthDigestQop none|auth|auth-int [auth|auth-int]
Default:AuthDigestQop auth
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestQop directive determines + the quality-of-protection to use. auth will only do + authentication (username/password); auth-int is + authentication plus integrity checking (an MD5 hash of the entity + is also computed and checked); none will cause the module + to use the old RFC-2069 digest algorithm (which does not include + integrity checking). Both auth and auth-int may + be specified, in which the case the browser will choose which of + these to use. none should only be used if the browser for + some reason does not like the challenge it receives otherwise.

+ +
+ auth-int is not implemented yet. +
+ +
+
top
+

AuthDigestShmemSize Directive

+ + + + + + + +
Description:The amount of shared memory to allocate for keeping track +of clients
Syntax:AuthDigestShmemSize size
Default:AuthDigestShmemSize 1000
Context:server config
Status:Experimental
Module:mod_auth_digest
+

The AuthDigestShmemSize directive defines + the amount of shared memory, that will be allocated at the server + startup for keeping track of clients. Note that the shared memory + segment cannot be set less than the space that is neccessary for + tracking at least one client. This value is dependant on your + system. If you want to find out the exact value, you may simply + set AuthDigestShmemSize to the value of + 0 and read the error message after trying to start the + server.

+ +

The size is normally expressed in Bytes, but you + may let the number follow a K or an M to + express your value as KBytes or MBytes. For example, the following + directives are all equivalent:

+ +

+ AuthDigestShmemSize 1048576
+ AuthDigestShmemSize 1024K
+ AuthDigestShmemSize 1M +

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth_digest.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_auth_digest.html.ko.euc-kr new file mode 100644 index 00000000..02f6994f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_digest.html.ko.euc-kr @@ -0,0 +1,344 @@ + + + +mod_auth_digest - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_auth_digest

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:MD5 Digest Authentication .
:Experimental
:auth_digest_module
ҽ:mod_auth_digest.c
+

+ +

HTTP Digest Authentication Ѵ. + ׷ ׽Ʈ ġ ̴.

+
+ +
top
+
+

Digest Authentication ϱ

+ +

MD5 Digest authentication ſ ִ. + AuthGroupFile + AuthDigestGroupFile + ϰ, AuthType Basic AuthUserFile + AuthType Digest AuthDigestFile + Ͽ ִ. ׸ ּ ȣϷ + ⺻ URI AuthDigestDomain þ Ѵ.

+ +

htdigest + Ͽ () ִ.

+ +

:

+ <Location /private/>
+ + AuthType Digest
+ AuthName "private area"
+ AuthDigestDomain /private/ http://mirror.my.dom/private2/
+ AuthDigestFile /web/auth/.digest_pw
+ Require valid-user
+
+ </Location> +

+ +

+

Digest authentication Basic authentication + ȣý , ؾ Ѵ. + 2002 11 digest authentication ϴ + Opera, (ǹڿ + Բ ϸ ȵ - ذ Ʒ "MS Internet Explorer ذϱ" ) MS Internet + Explorer, Amaya, Mozilla, 7 + Netscape ִ. digest authentication basic + authentication ŭ θ ʾұ⶧ ؼ + ؾ Ѵ.

+
+
top
+
+

MS Internet Explorer ذϱ

+

Internet Explorer Digest authentication + ǹڿ ִ GET û RFC ٸ + óϴ ִ.  ذ + ִ.

+ +

+ ù° α׷ ڷḦ Ѱֱ GET + POST û ϴ ̴. + ϴٸ ذå̴. +

+ +

, ġ 2.0.51 AuthDigestEnableQueryStringHack + ȯ溯 Ͽ ذѴ. û + AuthDigestEnableQueryStringHack ϸ + ġ MSIE ׸ ذ ġ ϰ û URI digest + 񱳿 Ѵ. Ѵ.

+ +

MSIE Digest Authentication ϱ:

+ BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On +

+ +

ȯ溯 ڼ BrowserMatch þ + ϶.

+
+
top
+

AuthDigestAlgorithm þ

+ + + + + + + + +
:digest authentication challenge response +hash ϴ ˰ Ѵ
:AuthDigestAlgorithm MD5|MD5-sess
⺻:AuthDigestAlgorithm MD5
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestAlgorithm þ + challenge response hash ϴ ˰ Ѵ.

+ +
+ MD5-sess ʾҴ. +
+ + +
+
top
+

AuthDigestDomain þ

+ + + + + + + +
:digest authentication ȣ ϴ +URI
:AuthDigestDomain URI [URI] ...
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestDomain þ + ȣ ִ ( ڸ/ȣ + ϴ) URI Ѵ. URI λ + Ѵ. , Ŭ̾Ʈ URI "Ʒ" θ + ڸ/ȣ ȣѴٰ Ѵ. URI + (, Ŵ(scheme), ȣƮ, Ʈ ϴ) + URL̰ų URI̴.

+ +

þ ׻ ؾ ϸ, ּ + ⺻ URI() ؾ Ѵ. ϸ Ŭ̾Ʈ + û Authorization + Ѵ. ׷ û ũⰡ Ŀ, AuthDigestNcCheck + Ѵٸ ɿ ִ.

+ +

ٸ URI ϸ, (̸ ϴ) Ŭ̾Ʈ + Ź ڿ ʰ ڸ/ȣ + ִ.

+ +
+
top
+

AuthDigestFile þ

+ + + + + + + +
:digest authentication ڸ ڵ +ȣ ġ
:AuthDigestFile file-path
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestFile þ digest + authentication ڸ ڵ ȣ ϴ + ϸ Ѵ. File-path + ̴.

+ +

Ư ִ. ġ + support/ 丮 ִ htdigest Ͽ + ̷ ִ.

+ +
+
top
+

AuthDigestGroupFile þ

+ + + + + + + +
:digest authentication ׷ +ϸ
:AuthDigestGroupFile file-path
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestGroupFile þ ׷ + ׷ (ڸ) ϴ ϸ Ѵ. + File-path ׷ ̴.

+ +

׷ ׷ ڿ ݷ, ׵ڿ ׷쿡 ڸ + Ͽ ٷ Ѵ. .

+ +

mygroup: bob joe anne

+ +

ū ˻ϴ ſ ȿ + ϶.

+ +

:

+

AuthGroupFile ۿ + ؾ Ѵ. ׷ ȣϴ 丮 ȿ ׷ + . ׷ Ŭ̾Ʈ + AuthGroupFile ٿ ִ.

+
+ +
+
top
+

AuthDigestNcCheck þ

+ + + + + + + +
: nonce-count ˻
:AuthDigestNcCheck On|Off
⺻:AuthDigestNcCheck Off
:ּ
:Experimental
:mod_auth_digest
+
+ ʾҴ. +
+ + +
+
top
+

AuthDigestNonceFormat þ

+ + + + + + + +
:nonce Ѵ
:AuthDigestNonceFormat format
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+
ʾҴ.
+ + +
+
top
+

AuthDigestNonceLifetime þ

+ + + + + + + + +
: nonce ȿ Ⱓ
:AuthDigestNonceLifetime seconds
⺻:AuthDigestNonceLifetime 300
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestNonceLifetime þ + nonce ȿ Ⱓ Ѵ. Ŭ̾Ʈ + nonce ϸ stale=true + Բ 401 ȯѴ. seconds 0 ũ nonce + ȿ Ⱓ Ѵ. Ƹ 10 ʺ ۰ ϸ ȵȴ. + seconds 0 nonce + ʴ´. +

+ +
+
top
+

AuthDigestQop þ

+ + + + + + + + +
:digest authentication +ȣ(quality-of-protection) Ѵ.
:AuthDigestQop none|auth|auth-int [auth|auth-int]
⺻:AuthDigestQop auth
:directory, .htaccess
Override ɼ:AuthConfig
:Experimental
:mod_auth_digest
+

AuthDigestQop þ + ȣ(quality-of-protection) Ѵ. + auth (ڸ/ȣ) ϰ, + auth-int ϰἺ ˻縦 (MD5 ؽ + Ͽ ˻Ѵ) Ѵ. none (ϰἺ ˻縦 + ʴ) RFC-2069 digest ˰ Ѵ. + auth auth-int + ִ.  Ѵ. + challenge ʴ´ٸ + none ؾ Ѵ.

+ +
+ auth-int ʾҴ. +
+ +
+
top
+

AuthDigestShmemSize þ

+ + + + + + + +
:Ŭ̾Ʈ ϱ Ҵϴ ޸𸮷
:AuthDigestShmemSize size
⺻:AuthDigestShmemSize 1000
:ּ
:Experimental
:mod_auth_digest
+

AuthDigestShmemSize þ + Ŭ̾Ʈ ϱ Ҷ Ҵϴ + ޸𸮷 Ѵ. ޸𸮴 ּ ϳ + Ŭ̾Ʈ ϱ ʿ + ϶. ýۿ ٸ. Ȯ ˷ + AuthDigestShmemSize 0 + ϰ ϶.

+ +

size Ʈ , ڿ + K M Ͽ KBytes MBytes + Ÿ ִ. , þ :

+ +

+ AuthDigestShmemSize 1048576
+ AuthDigestShmemSize 1024K
+ AuthDigestShmemSize 1M +

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_auth_ldap.html b/rubbos/app/apache2/manual/mod/mod_auth_ldap.html new file mode 100644 index 00000000..da9f2249 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_ldap.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_auth_ldap.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_auth_ldap.html.en b/rubbos/app/apache2/manual/mod/mod_auth_ldap.html.en new file mode 100644 index 00000000..6c99dcc4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_auth_ldap.html.en @@ -0,0 +1,891 @@ + + + +mod_auth_ldap - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_auth_ldap

+
+

Available Languages:  en 

+
+ + + + +
Description:Allows an LDAP directory to be used to store the database +for HTTP Basic authentication.
Status:Experimental
ModuleIdentifier:auth_ldap_module
SourceFile:mod_auth_ldap.c
Compatibility:Available in version 2.0.41 and later
+

Summary

+ +

mod_auth_ldap supports the following features:

+ +
    +
  • Known to support the OpenLDAP SDK (both 1.x + and 2.x), + Novell LDAP SDK and the iPlanet + (Netscape) SDK.
  • + +
  • Complex authorization policies can be implemented by + representing the policy with LDAP filters.
  • + +
  • Support for Microsoft FrontPage allows FrontPage users to + control access to their webs, while retaining LDAP for user + authentication.
  • + +
  • Uses extensive caching of LDAP operations via mod_ldap.
  • + +
  • Support for LDAP over SSL (requires the Netscape SDK) or + TLS (requires the OpenLDAP 2.x SDK or Novell LDAP SDK).
  • +
+
+ +
top
+
top
+
+

Operation

+ +

There are two phases in granting access to a user. The first + phase is authentication, in which mod_auth_ldap + verifies that the user's credentials are valid. This also called + the search/bind phase. The second phase is + authorization, in which mod_auth_ldap determines + if the authenticated user is allowed access to the resource in + question. This is also known as the compare + phase.

+ +

The Authentication + Phase

+ +

During the authentication phase, mod_auth_ldap + searches for an entry in the directory that matches the username + that the HTTP client passes. If a single unique match is found, + then mod_auth_ldap attempts to bind to the + directory server using the DN of the entry plus the password + provided by the HTTP client. Because it does a search, then a + bind, it is often referred to as the search/bind phase. Here are + the steps taken during the search/bind phase.

+ +
    +
  1. Generate a search filter by combining the attribute and + filter provided in the AuthLDAPURL directive with + the username passed by the HTTP client.
  2. + +
  3. Search the directory using the generated filter. If the + search does not return exactly one entry, deny or decline + access.
  4. + +
  5. Fetch the distinguished name of the entry retrieved from + the search and attempt to bind to the LDAP server using the + DN and the password passed by the HTTP client. If the bind is + unsuccessful, deny or decline access.
  6. +
+ +

The following directives are used during the search/bind + phase

+ + + + + + + + + + + + + + + + + + + + +
AuthLDAPURLSpecifies the LDAP server, the + base DN, the attribute to use in the search, as well as the + extra search filter to use.
AuthLDAPBindDNAn optional DN to bind with + during the search phase.
AuthLDAPBindPasswordAn optional password to bind + with during the search phase.
+ + +

The Authorization + Phase

+ +

During the authorization phase, mod_auth_ldap + attempts to determine if the user is authorized to access the + resource. Many of these checks require + mod_auth_ldap to do a compare operation on the + LDAP server. This is why this phase is often referred to as the + compare phase. mod_auth_ldap accepts the + following Require + directives to determine if the credentials are acceptable:

+ +
    +
  • Grant access if there is a Require + valid-user directive.
  • + +
  • Grant access if there is a Require user directive, and the + username in the directive matches the username passed by the + client.
  • + +
  • Grant access if there is a Require + dn directive, and the DN in the directive matches + the DN fetched from the LDAP directory.
  • + +
  • Grant access if there is a Require group directive, and + the DN fetched from the LDAP directory (or the username + passed by the client) occurs in the LDAP group.
  • + +
  • Grant access if there is a + Require ldap-attribute + directive, and the attribute fetched from the LDAP directory + matches the given value.
  • + +
  • otherwise, deny or decline access
  • +
+ +

mod_auth_ldap uses the following directives during the + compare phase:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
AuthLDAPURL The attribute specified in the + URL is used in compare operations for the Require + user operation.
AuthLDAPCompareDNOnServerDetermines the behavior of the + Require dn directive.
AuthLDAPGroupAttributeDetermines the attribute to + use for comparisons in the Require group + directive.
AuthLDAPGroupAttributeIsDNSpecifies whether to use the + user DN or the username when doing comparisons for the + Require group directive.
+ +
top
+
+

The Require Directives

+ +

Apache's Require + directives are used during the authorization phase to ensure that + a user is allowed to access a resource.

+ +

Require + valid-user

+ +

If this directive exists, mod_auth_ldap grants + access to any user that has successfully authenticated during the + search/bind phase.

+ + +

Require user

+ +

The Require user directive specifies what + usernames can access the resource. Once + mod_auth_ldap has retrieved a unique DN from the + directory, it does an LDAP compare operation using the username + specified in the Require user to see if that username + is part of the just-fetched LDAP entry. Multiple users can be + granted access by putting multiple usernames on the line, + separated with spaces. If a username has a space in it, then it + must be surrounded with double quotes. Multiple users can also be + granted access by using multiple Require user + directives, with one user per line. For example, with a AuthLDAPURL of + ldap://ldap/o=Airius?cn (i.e., cn is + used for searches), the following Require directives could be used + to restrict access:

+

+Require user "Barbara Jenson"
+Require user "Fred User"
+Require user "Joe Manager"
+

+ +

Because of the way that mod_auth_ldap handles this + directive, Barbara Jenson could sign on as Barbara + Jenson, Babs Jenson or any other cn that + she has in her LDAP entry. Only the single Require + user line is needed to support all values of the attribute + in the user's entry.

+ +

If the uid attribute was used instead of the + cn attribute in the URL above, the above three lines + could be condensed to

+

Require user bjenson fuser jmanager

+ + +

Require group

+ +

This directive specifies an LDAP group whose members are + allowed access. It takes the distinguished name of the LDAP + group. Note: Do not surround the group name with quotes. + For example, assume that the following entry existed in + the LDAP directory:

+

+dn: cn=Administrators, o=Airius
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Barbara Jenson, o=Airius
+uniqueMember: cn=Fred User, o=Airius
+

+ +

The following directive would grant access to both Fred and + Barbara:

+

Require group cn=Administrators, o=Airius

+ +

Behavior of this directive is modified by the AuthLDAPGroupAttribute and + AuthLDAPGroupAttributeIsDN + directives.

+ + +

Require dn

+ +

The Require dn directive allows the administrator + to grant access based on distinguished names. It specifies a DN + that must match for access to be granted. If the distinguished + name that was retrieved from the directory server matches the + distinguished name in the Require dn, then + authorization is granted. Note: do not surround the distinguished + name with quotes.

+ +

The following directive would grant access to a specific + DN:

+

Require dn cn=Barbara Jenson, o=Airius

+ +

Behavior of this directive is modified by the AuthLDAPCompareDNOnServer + directive.

+ + +

Require ldap-attribute

+ +

The Require ldap-attribute directive allows the + administrator to grant access based on attributes of the authenticated + user in the LDAP directory. If the attribute in the directory + matches the value given in the configuration, access is granted.

+ +

The following directive would grant access to anyone with + the attribute employeeType = active

+ +

Require ldap-attribute employeeType=active

+ +

Multiple attribute/value pairs can be specified on the same line + separated by spaces or they can be specified in multiple + Require ldap-attribute directives. The effect of listing + multiple attribute/values pairs is an OR operation. Access will be + granted if any of the listed attribute values match the value of a + corresponding attribute in the user object. If the value of the + attribute contains a space, only the value must be within double quotes.

+ +

The following directive would grant access to anyone with + the city attribute equal to "San Jose" or status equal to "Active"

+ +

Require ldap-attribute city="San Jose" status=active

+ + +
top
+
+

Examples

+ +
    +
  • + Grant access to anyone who exists in the LDAP directory, + using their UID for searches. + +

    + AuthLDAPURL "ldap://ldap1.airius.com:389/ou=People, o=Airius?uid?sub?(objectClass=*)"
    + Require valid-user +

    +
  • + +
  • + The next example is the same as above; but with the fields + that have useful defaults omitted. Also, note the use of a + redundant LDAP server. +

    AuthLDAPURL "ldap://ldap1.airius.com ldap2.airius.com/ou=People, o=Airius"
    +Require valid-user +

    +
  • + +
  • + The next example is similar to the previous one, but is + uses the common name instead of the UID. Note that this + could be problematical if multiple people in the directory + share the same cn, because a search on cn + must return exactly one entry. That's why + this approach is not recommended: it's a better idea to + choose an attribute that is guaranteed unique in your + directory, such as uid. +

    +AuthLDAPURL "ldap://ldap.airius.com/ou=People, o=Airius?cn"
    +Require valid-user +

    +
  • + +
  • + Grant access to anybody in the Administrators group. The + users must authenticate using their UID. +

    +AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid
    +Require group cn=Administrators, o=Airius +

    +
  • + +
  • + The next example assumes that everyone at Airius who + carries an alphanumeric pager will have an LDAP attribute + of qpagePagerID. The example will grant access + only to people (authenticated via their UID) who have + alphanumeric pagers: +

    +AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(qpagePagerID=*)
    +Require valid-user +

    +
  • + +
  • +

    The next example demonstrates the power of using filters + to accomplish complicated administrative requirements. + Without filters, it would have been necessary to create a + new LDAP group and ensure that the group's members remain + synchronized with the pager users. This becomes trivial + with filters. The goal is to grant access to anyone who has + a filter, plus grant access to Joe Manager, who doesn't + have a pager, but does need to access the same + resource:

    +

    +AuthLDAPURL ldap://ldap.airius.com/o=Airius?uid??(|(qpagePagerID=*)(uid=jmanager))
    +Require valid-user +

    + +

    This last may look confusing at first, so it helps to + evaluate what the search filter will look like based on who + connects, as shown below. The text in blue is the part that + is filled in using the attribute specified in the URL. The + text in red is the part that is filled in using the filter + specified in the URL. The text in green is filled in using + the information that is retrieved from the HTTP client. If + Fred User connects as fuser, the filter would look + like

    + +

    (&(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))

    + +

    The above search will only succeed if fuser has a + pager. When Joe Manager connects as jmanager, the + filter looks like

    + +

    (&(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))

    + +

    The above search will succeed whether jmanager + has a pager or not.

    +
  • +
+
top
+
+

Using TLS

+ +

To use TLS, see the mod_ldap directives LDAPTrustedCA and LDAPTrustedCAType.

+
top
+
+

Using SSL

+ +

To use SSL, see the mod_ldap directives LDAPTrustedCA and LDAPTrustedCAType.

+ +

To specify a secure LDAP server, use ldaps:// in the + AuthLDAPURL + directive, instead of ldap://.

+
top
+
+

Using Microsoft + FrontPage with mod_auth_ldap

+ +

Normally, FrontPage uses FrontPage-web-specific user/group + files (i.e., the mod_auth module) to handle all + authentication. Unfortunately, it is not possible to just + change to LDAP authentication by adding the proper directives, + because it will break the Permissions forms in + the FrontPage client, which attempt to modify the standard + text-based authorization files.

+ +

Once a FrontPage web has been created, adding LDAP + authentication to it is a matter of adding the following + directives to every .htaccess file + that gets created in the web

+
+AuthLDAPURL            "the url"
+AuthLDAPAuthoritative  off
+AuthLDAPFrontPageHack  on
+
+ +

AuthLDAPAuthoritative must be + off to allow mod_auth_ldap to decline group + authentication so that Apache will fall back to file + authentication for checking group membership. This allows the + FrontPage-managed group file to be used.

+ +

How It Works

+ +

FrontPage restricts access to a web by adding the Require + valid-user directive to the .htaccess + files. If AuthLDAPFrontPageHack is not + on, the Require valid-user directive will succeed for + any user who is valid as far as LDAP is + concerned. This means that anybody who has an entry in + the LDAP directory is considered a valid user, whereas FrontPage + considers only those people in the local user file to be + valid. The purpose of the hack is to force Apache to consult the + local user file (which is managed by FrontPage) - instead of LDAP + - when handling the Require valid-user directive.

+ +

Once directives have been added as specified above, + FrontPage users will be able to perform all management + operations from the FrontPage client.

+ + +

Caveats

+ +
    +
  • When choosing the LDAP URL, the attribute to use for + authentication should be something that will also be valid + for putting into a mod_auth user file. + The user ID is ideal for this.
  • + +
  • When adding users via FrontPage, FrontPage administrators + should choose usernames that already exist in the LDAP + directory (for obvious reasons). Also, the password that the + administrator enters into the form is ignored, since Apache + will actually be authenticating against the password in the + LDAP database, and not against the password in the local user + file. This could cause confusion for web administrators.
  • + + +
  • Apache must be compiled with mod_auth in order to + use FrontPage support. This is because Apache will still use + the mod_auth group file for determine the extent of a + user's access to the FrontPage web.
  • + +
  • The directives must be put in the .htaccess + files. Attempting to put them inside <Location> or <Directory> directives won't work. This + is because mod_auth_ldap has to be able to grab + the AuthUserFile + directive that is found in FrontPage .htaccess + files so that it knows where to look for the valid user list. If + the mod_auth_ldap directives aren't in the same + .htaccess file as the FrontPage directives, then + the hack won't work, because mod_auth_ldap will + never get a chance to process the .htaccess file, + and won't be able to find the FrontPage-managed user file.
  • +
+ +
+
top
+

AuthLDAPAuthoritative Directive

+ + + + + + + + +
Description:Prevent other authentication modules from +authenticating the user if this one fails
Syntax:AuthLDAPAuthoritative on|off
Default:AuthLDAPAuthoritative on
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

Set to off if this module should let other + authentication modules attempt to authenticate the user, should + authentication with this module fail. Control is only passed on + to lower modules if there is no DN or rule that matches the + supplied user name (as passed by the client).

+ +
+
top
+

AuthLDAPBindDN Directive

+ + + + + + + +
Description:Optional DN to use in binding to the LDAP server
Syntax:AuthLDAPBindDN distinguished-name
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

An optional DN used to bind to the server when searching for + entries. If not provided, mod_auth_ldap will use + an anonymous bind.

+ +
+
top
+

AuthLDAPBindPassword Directive

+ + + + + + + +
Description:Password used in conjuction with the bind DN
Syntax:AuthLDAPBindPassword password
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

A bind password to use in conjunction with the bind DN. Note + that the bind password is probably sensitive data, and should be + properly protected. You should only use the AuthLDAPBindDN and AuthLDAPBindPassword if you + absolutely need them to search the directory.

+ +
+
top
+

AuthLDAPCharsetConfig Directive

+ + + + + + +
Description:Language to charset conversion configuration file
Syntax:AuthLDAPCharsetConfig file-path
Context:server config
Status:Experimental
Module:mod_auth_ldap
+

The AuthLDAPCharsetConfig directive sets the location + of the language to charset conversion configuration file. File-path is relative + to the ServerRoot. This file specifies + the list of language extensions to character sets. + Most administrators use the provided charset.conv + file, which associates common language extensions to character sets.

+ +

The file contains lines in the following format:

+ +

+ Language-Extension charset [Language-String] ... +

+ +

The case of the extension does not matter. Blank lines, and lines + beginning with a hash character (#) are ignored.

+ +
+
top
+

AuthLDAPCompareDNOnServer Directive

+ + + + + + + + +
Description:Use the LDAP server to compare the DNs
Syntax:AuthLDAPCompareDNOnServer on|off
Default:AuthLDAPCompareDNOnServer on
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

When set, mod_auth_ldap will use the LDAP + server to compare the DNs. This is the only foolproof way to + compare DNs. mod_auth_ldap will search the + directory for the DN specified with the Require dn directive, then, + retrieve the DN and compare it with the DN retrieved from the user + entry. If this directive is not set, + mod_auth_ldap simply does a string comparison. It + is possible to get false negatives with this approach, but it is + much faster. Note the mod_ldap cache can speed up + DN comparison in most situations.

+ +
+
top
+

AuthLDAPDereferenceAliases Directive

+ + + + + + + + +
Description:When will the module de-reference aliases
Syntax:AuthLDAPDereferenceAliases never|searching|finding|always
Default:AuthLDAPDereferenceAliases Always
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

This directive specifies when mod_auth_ldap will + de-reference aliases during LDAP operations. The default is + always.

+ +
+
top
+

AuthLDAPEnabled Directive

+ + + + + + + + +
Description:Turn on or off LDAP authentication
Syntax: AuthLDAPEnabled on|off
Default:AuthLDAPEnabled on
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

Set to off to disable + mod_auth_ldap in certain directories. This is + useful if you have mod_auth_ldap enabled at or + near the top of your tree, but want to disable it completely in + certain locations.

+ +
+
top
+

AuthLDAPFrontPageHack Directive

+ + + + + + + + +
Description:Allow LDAP authentication to work with MS FrontPage
Syntax:AuthLDAPFrontPageHack on|off
Default:AuthLDAPFrontPageHack off
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

See the section on using Microsoft + FrontPage with mod_auth_ldap.

+ +
+
top
+

AuthLDAPGroupAttribute Directive

+ + + + + + + +
Description:LDAP attributes used to check for group membership
Syntax:AuthLDAPGroupAttribute attribute
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

This directive specifies which LDAP attributes are used to + check for group membership. Multiple attributes can be used by + specifying this directive multiple times. If not specified, + then mod_auth_ldap uses the member and + uniquemember attributes.

+ +
+
top
+

AuthLDAPGroupAttributeIsDN Directive

+ + + + + + + + +
Description:Use the DN of the client username when checking for +group membership
Syntax:AuthLDAPGroupAttributeIsDN on|off
Default:AuthLDAPGroupAttributeIsDN on
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

When set on, this directive says to use the + distinguished name of the client username when checking for group + membership. Otherwise, the username will be used. For example, + assume that the client sent the username bjenson, + which corresponds to the LDAP DN cn=Babs Jenson, + o=Airius. If this directive is set, + mod_auth_ldap will check if the group has + cn=Babs Jenson, o=Airius as a member. If this + directive is not set, then mod_auth_ldap will + check if the group has bjenson as a member.

+ +
+
top
+

AuthLDAPRemoteUserIsDN Directive

+ + + + + + + + +
Description:Use the DN of the client username to set the REMOTE_USER +environment variable
Syntax:AuthLDAPRemoteUserIsDN on|off
Default:AuthLDAPRemoteUserIsDN off
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

If this directive is set to on, the value of the + REMOTE_USER environment variable will be set to the full + distinguished name of the authenticated user, rather than just + the username that was passed by the client. It is turned off by + default.

+ +
+
top
+

AuthLDAPUrl Directive

+ + + + + + + +
Description:URL specifying the LDAP search parameters
Syntax:AuthLDAPUrl url
Context:directory, .htaccess
Override:AuthConfig
Status:Experimental
Module:mod_auth_ldap
+

An RFC 2255 URL which specifies the LDAP search parameters + to use. The syntax of the URL is

+

ldap://host:port/basedn?attribute?scope?filter

+ +
+
ldap
+ +
For regular ldap, use the + string ldap. For secure LDAP, use ldaps + instead. Secure LDAP is only available if Apache was linked + to an LDAP library with SSL support.
+ +
host:port
+ +
+

The name/port of the ldap server (defaults to + localhost:389 for ldap, and + localhost:636 for ldaps). To + specify multiple, redundant LDAP servers, just list all + servers, separated by spaces. mod_auth_ldap + will try connecting to each server in turn, until it makes a + successful connection.

+ +

Once a connection has been made to a server, that + connection remains active for the life of the + httpd process, or until the LDAP server goes + down.

+ +

If the LDAP server goes down and breaks an existing + connection, mod_auth_ldap will attempt to + re-connect, starting with the primary server, and trying + each redundant server in turn. Note that this is different + than a true round-robin search.

+
+ +
basedn
+ +
The DN of the branch of the + directory where all searches should start from. At the very + least, this must be the top of your directory tree, but + could also specify a subtree in the directory.
+ +
attribute
+ +
The attribute to search for. + Although RFC 2255 allows a comma-separated list of + attributes, only the first attribute will be used, no + matter how many are provided. If no attributes are + provided, the default is to use uid. It's a good + idea to choose an attribute that will be unique across all + entries in the subtree you will be using.
+ +
scope
+ +
The scope of the search. Can be either one or + sub. Note that a scope of base is + also supported by RFC 2255, but is not supported by this + module. If the scope is not provided, or if base scope + is specified, the default is to use a scope of + sub.
+ +
filter
+ +
A valid LDAP search filter. If + not provided, defaults to (objectClass=*), which + will search for all objects in the tree. Filters are + limited to approximately 8000 characters (the definition of + MAX_STRING_LEN in the Apache source code). This + should be than sufficient for any application.
+
+ +

When doing searches, the attribute, filter and username passed + by the HTTP client are combined to create a search filter that + looks like + (&(filter)(attribute=username)).

+ +

For example, consider an URL of + ldap://ldap.airius.com/o=Airius?cn?sub?(posixid=*). When + a client attempts to connect using a username of Babs + Jenson, the resulting search filter will be + (&(posixid=*)(cn=Babs Jenson)).

+ +

See above for examples of AuthLDAPURL URLs.

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_autoindex.html b/rubbos/app/apache2/manual/mod/mod_autoindex.html new file mode 100644 index 00000000..80687cd6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_autoindex.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_autoindex.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_autoindex.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_autoindex.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: mod_autoindex.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_autoindex.html.en b/rubbos/app/apache2/manual/mod/mod_autoindex.html.en new file mode 100644 index 00000000..6aafb84b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_autoindex.html.en @@ -0,0 +1,897 @@ + + + +mod_autoindex - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_autoindex

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Generates directory indexes, + automatically, similar to the Unix ls command or the + Win32 dir shell command
Status:Base
ModuleIdentifier:autoindex_module
SourceFile:mod_autoindex.c
+

Summary

+ +

The index of a directory can come from one of two + sources:

+ +
    +
  • A file written by the user, typically called + index.html. The DirectoryIndex directive sets the + name of this file. This is controlled by + mod_dir.
  • + +
  • Otherwise, a listing generated by the server. The other + directives control the format of this listing. The AddIcon, AddIconByEncoding and + AddIconByType are + used to set a list of icons to display for various file types; + for each file listed, the first icon listed that matches the + file is displayed. These are controlled by + mod_autoindex.
  • +
+

The two functions are separated so that you can completely + remove (or replace) automatic index generation should you want + to.

+ +

Automatic index generation is enabled with using + Options +Indexes. See the + Options directive for + more details.

+ +

If the FancyIndexing option is given with the IndexOptions directive, + the column headers are links that control the order of the + display. If you select a header link, the listing will be + regenerated, sorted by the values in that column. Selecting the + same header repeatedly toggles between ascending and descending + order. These column header links are suppressed with + IndexOptions directive's + SuppressColumnSorting option.

+ +

Note that when the display is sorted by "Size", it's the + actual size of the files that's used, not the + displayed value - so a 1010-byte file will always be displayed + before a 1011-byte file (if in ascending order) even though + they both are shown as "1K".

+
+ +
top
+
+

Autoindex Request Query Arguments

+ + +

Apache 2.0.23 reorganized the Query Arguments for Column + Sorting, and introduced an entire group of new query options. + To effectively eliminate all client control over the output, + the IndexOptions + IgnoreClient option was introduced.

+ +

The column sorting headers themselves are self-referencing + hyperlinks that add the sort query options shown below. Any + option below may be added to any request for the directory + resource.

+ +
    +
  • C=N sorts the directory by file name
  • + +
  • C=M sorts the directory by last-modified + date, then file name
  • + +
  • C=S sorts the directory by size, then file + name
  • + +
  • C=D sorts the directory by description, then + file name
  • + +
  • O=A sorts the listing in Ascending + Order
  • + +
  • O=D sorts the listing in Descending + Order
  • + +
  • F=0 formats the listing as a simple list + (not FancyIndexed)
  • + +
  • F=1 formats the listing as a FancyIndexed + list
  • + +
  • F=2 formats the listing as an + HTMLTable FancyIndexed list
  • + +
  • V=0 disables version sorting
  • + +
  • V=1 enables version sorting
  • + +
  • P=pattern lists only files matching + the given pattern
  • +
+ +

Note that the 'P'attern query argument is tested + after the usual IndexIgnore directives are processed, + and all file names are still subjected to the same criteria as + any other autoindex listing. The Query Arguments parser in + mod_autoindex will stop abruptly when an unrecognized + option is encountered. The Query Arguments must be well formed, + according to the table above.

+ +

The simple example below, which can be clipped and saved in + a header.html file, illustrates these query options. Note that + the unknown "X" argument, for the submit button, is listed last + to assure the arguments are all parsed before mod_autoindex + encounters the X=Go input.

+ +

+ <form action="" method="get">
+ + Show me a <select name="F">
+ + <option value="0"> Plain list</option>
+ <option value="1" selected="selected"> Fancy list</option>
+ <option value="2"> Table list</option>
+
+ </select>
+ Sorted by <select name="C">
+ + <option value="N" selected="selected"> Name</option>
+ <option value="M"> Date Modified</option>
+ <option value="S"> Size</option>
+ <option value="D"> Description</option>
+
+ </select>
+ <select name="O">
+ + <option value="A" selected="selected"> Ascending</option>
+ <option value="D"> Descending</option>
+
+ </select>
+ <select name="V">
+ + <option value="0" selected="selected"> in Normal order</option>
+ <option value="1"> in Version order</option>
+
+ </select>
+ Matching <input type="text" name="P" value="*" />
+ <input type="submit" name="X" value="Go" />
+
+ </form> +

+ +
+
top
+

AddAlt Directive

+ + + + + + + +
Description:Alternate text to display for a file, instead of an +icon selected by filename
Syntax:AddAlt string file [file] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

AddAlt provides the alternate text to + display for a file, instead of an icon, for FancyIndexing. + File is a file extension, partial filename, wild-card + expression or full filename for files to describe. + If String contains any whitespace, you have to enclose it + in quotes (" or '). This alternate text + is displayed if the client is image-incapable, has image loading + disabled, or fails to retrieve the icon.

+ +

Examples

+ AddAlt "PDF file" *.pdf
+ AddAlt Compressed *.gz *.zip *.Z +

+ +
+
top
+

AddAltByEncoding Directive

+ + + + + + + +
Description:Alternate text to display for a file instead of an icon +selected by MIME-encoding
Syntax:AddAltByEncoding string MIME-encoding +[MIME-encoding] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

AddAltByEncoding provides the alternate + text to display for a file, instead of an icon, for FancyIndexing. + MIME-encoding is a valid content-encoding, such as + x-compress. If String contains any whitespace, + you have to enclose it in quotes (" or '). + This alternate text is displayed if the client is image-incapable, + has image loading disabled, or fails to retrieve the icon.

+ +

Example

+ AddAltByEncoding gzip x-gzip +

+ +
+
top
+

AddAltByType Directive

+ + + + + + + +
Description:Alternate text to display for a file, instead of an +icon selected by MIME content-type
Syntax:AddAltByType string MIME-type +[MIME-type] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

AddAltByType sets the alternate text to + display for a file, instead of an icon, for FancyIndexing. + MIME-type is a valid content-type, such as + text/html. If String contains any whitespace, + you have to enclose it in quotes (" or '). + This alternate text is displayed if the client is image-incapable, + has image loading disabled, or fails to retrieve the icon.

+ +

Example

+ AddAltByType 'plain text' text/plain +

+ +
+
top
+

AddDescription Directive

+ + + + + + + +
Description:Description to display for a file
Syntax:AddDescription string file [file] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

This sets the description to display for a file, for + FancyIndexing. + File is a file extension, partial filename, wild-card + expression or full filename for files to describe. + String is enclosed in double quotes (").

+ +

Example

+ AddDescription "The planet Mars" /web/pics/mars.gif +

+ +

The typical, default description field is 23 bytes wide. 6 + more bytes are added by the IndexOptions SuppressIcon option, 7 bytes are + added by the IndexOptions SuppressSize option, and 19 bytes are + added by the IndexOptions SuppressLastModified option. + Therefore, the widest default the description column is ever + assigned is 55 bytes.

+ +

See the DescriptionWidth IndexOptions keyword for details on overriding the size + of this column, or allowing descriptions of unlimited length.

+ +

Caution

+

Descriptive text defined with AddDescription + may contain HTML markup, such as tags and character entities. If the + width of the description column should happen to truncate a tagged + element (such as cutting off the end of a bolded phrase), the + results may affect the rest of the directory listing.

+
+ +
+
top
+

AddIcon Directive

+ + + + + + + +
Description:Icon to display for a file selected by name
Syntax:AddIcon icon name [name] +...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

This sets the icon to display next to a file ending in + name for FancyIndexing. Icon is either a (%-escaped) + relative URL to the icon, or of the format + (alttext,url) where alttext + is the text tag given for an icon for non-graphical browsers.

+ +

Name is either ^^DIRECTORY^^ for directories, + ^^BLANKICON^^ for blank lines (to format the list + correctly), a file extension, a wildcard expression, a partial + filename or a complete filename.

+ +

Examples

+ AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
+ AddIcon /icons/dir.xbm ^^DIRECTORY^^
+ AddIcon /icons/backup.xbm *~ +

+ +

AddIconByType + should be used in preference to AddIcon, + when possible.

+ +
+
top
+

AddIconByEncoding Directive

+ + + + + + + +
Description:Icon to display next to files selected by MIME +content-encoding
Syntax:AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

This sets the icon to display next to files with FancyIndexing. + Icon is either a (%-escaped) relative URL to the icon, + or of the format (alttext,url) + where alttext is the text tag given for an icon for + non-graphical browsers.

+ +

MIME-encoding is a wildcard expression matching + required the content-encoding.

+ +

Example

+ AddIconByEncoding /icons/compress.xbm x-compress +

+ +
+
top
+

AddIconByType Directive

+ + + + + + + +
Description:Icon to display next to files selected by MIME +content-type
Syntax:AddIconByType icon MIME-type +[MIME-type] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

This sets the icon to display next to files of type + MIME-type for FancyIndexing. + Icon is either a (%-escaped) relative URL to the icon, + or of the format (alttext,url) + where alttext is the text tag given for an icon for + non-graphical browsers.

+ +

MIME-type is a wildcard expression matching + required the mime types.

+ +

Example

+ AddIconByType (IMG,/icons/image.xbm) image/* +

+ +
+
top
+

DefaultIcon Directive

+ + + + + + + +
Description:Icon to display for files when no specific icon is +configured
Syntax:DefaultIcon url-path
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The DefaultIcon directive sets the icon + to display for files when no specific icon is known, for FancyIndexing. + Url-path is a (%-escaped) relative URL to the icon.

+ +

Example

+ DefaultIcon /icon/unknown.xbm +

+ +
+
top
+

HeaderName Directive

+ + + + + + + +
Description:Name of the file that will be inserted at the top +of the index listing
Syntax:HeaderName filename
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The HeaderName directive sets the name + of the file that will be inserted at the top of the index + listing. Filename is the name of the file to include.

+ +

Example

+ HeaderName HEADER.html +

+ +
+

Both HeaderName and ReadmeName now treat + Filename as a URI path relative to the one used to + access the directory being indexed. If Filename begins + with a slash, it will be taken to be relative to the DocumentRoot.

+ +

Example

+ HeaderName /include/HEADER.html +

+ +

Filename must resolve to a document with a major + content type of text/* (e.g., + text/html, text/plain, etc.). This means + that filename may refer to a CGI script if the script's + actual file type (as opposed to its output) is marked as + text/html such as with a directive like:

+ +

+ AddType text/html .cgi +

+ +

Content negotiation + will be performed if Options + MultiViews is in effect. If filename resolves + to a static text/html document (not a CGI script) and + either one of the options + Includes or IncludesNOEXEC is enabled, + the file will be processed for server-side includes (see the + mod_include documentation).

+
+ +

If the file specified by HeaderName contains + the beginnings of an HTML document (<html>, <head>, etc.) + then you will probably want to set IndexOptions + +SuppressHTMLPreamble, so that these tags are not + repeated.

+ +
+
top
+

IndexIgnore Directive

+ + + + + + + +
Description:Adds to the list of files to hide when listing +a directory
Syntax:IndexIgnore file [file] ...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The IndexIgnore directive adds to the + list of files to hide when listing a directory. File is a + shell-style wildcard expression or full + filename. Multiple IndexIgnore directives add + to the list, rather than the replacing the list of ignored + files. By default, the list contains . (the current + directory).

+ +

+ IndexIgnore README .htaccess *.bak *~ +

+ +
+
top
+

IndexOptions Directive

+ + + + + + + +
Description:Various configuration settings for directory +indexing
Syntax:IndexOptions [+|-]option [[+|-]option] +...
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The IndexOptions directive specifies the + behavior of the directory indexing. Option can be one + of

+ +
+
Charset=character-set (Apache 2.0.61 and + later)
+ +
The Charset keyword allows you to + specify the character set of the generated page. The + default is either ISO-8859-1 or UTF-8, + depending on whether the underlying file system is unicode + or not. + +

Example:

+ IndexOptions Charset=UTF-8 +

+
+ +
Type=MIME content-type (Apache 2.0.61 and + later)
+ +
The Type keyword allows you to + specify the MIME content-type of the generated page. The default + is text/html. + +

Example:

+ IndexOptions Type=text/plain +

+
+ +
DescriptionWidth=[n | *] (Apache 2.0.23 and + later)
+ +
The DescriptionWidth keyword allows you to + specify the width of the description column in + characters.
+ +
-DescriptionWidth (or unset) allows + mod_autoindex to calculate the best width.
+ +
DescriptionWidth=n fixes the column width to + n bytes wide.
+ +
DescriptionWidth=* grows the column to the + width necessary to accommodate the longest description + string.
+ +
See the section on AddDescription for dangers + inherent in truncating descriptions.
+ +
FancyIndexing
+ +
This turns on fancy indexing of directories.
+ +
FoldersFirst (Apache + 2.0.23 and later)
+ +
If this option is enabled, subdirectory listings will + always appear first, followed by normal files in the + directory. The listing is basically broken into two + components, the files and the subdirectories, and each is + sorted separately and then displayed subdirectories-first. + For instance, if the sort order is descending by name, and + FoldersFirst is enabled, subdirectory + Zed will be listed before subdirectory + Beta, which will be listed before normal files + Gamma and Alpha. This option + only has an effect if FancyIndexing is also enabled.
+ +
HTMLTable (Experimental, + Apache 2.0.23 and later)
+ +
This experimental option with FancyIndexing + constructs a simple table for the fancy directory listing. Note this + will confuse older browsers. It is particularly necessary if file + names or description text will alternate between + left-to-right and right-to-left reading order, as can happen + on WinNT or other utf-8 enabled platforms.
+ +
IconsAreLinks
+ +
This makes the icons part of the anchor for the filename, for + fancy indexing.
+ +
IconHeight[=pixels]
+ +
Presence of this option, when used with IconWidth, + will cause the server to include height and + width attributes in the img tag for the + file icon. This allows browser to precalculate the page layout + without having to wait until all the images have been loaded. If no + value is given for the option, it defaults to the standard height of + the icons supplied with the Apache software.
+ +
IconWidth[=pixels]
+ +
Presence of this option, when used with IconHeight, + will cause the server to include height and + width attributes in the img tag for + the file icon. This allows browser to precalculate the page + layout without having to wait until all the images have been + loaded. If no value is given for the option, it defaults to + the standard width of the icons supplied with the Apache + software.
+ +
IgnoreCase
+ +
If this option is enabled, names are sorted in a case-insensitive + manner. For instance, if the sort order is ascending by name, and + IgnoreCase is enabled, file Zeta will be listed after + file alfa (Note: file GAMMA will always be listed before file gamma). +
+ +
IgnoreClient
+ +
This option causes mod_autoindex to ignore all + query variables from the client, including sort order (implies + SuppressColumnSorting.)
+ +
NameWidth=[n + | *]
+ +
The NameWidth keyword allows you to specify the width + of the filename column in bytes.
+ +
-NameWidth (or unset) allows mod_autoindex to calculate the best width.
+ +
NameWidth=n fixes the column width to + n bytes wide.
+ +
NameWidth=* grows the column to the necessary + width.
+ +
ScanHTMLTitles
+ +
This enables the extraction of the title from HTML documents + for fancy indexing. If the file does not have a description + given by AddDescription + then httpd will read the document for the value of the + title element. This is CPU and disk intensive.
+ +
SuppressColumnSorting
+ +
If specified, Apache will not make the column headings in a + FancyIndexed directory listing into links for sorting. The + default behavior is for them to be links; selecting the + column heading will sort the directory listing by the values + in that column. Prior to Apache 2.0.23, this also + disabled parsing the Query Arguments for the sort + string. That behavior is now controlled by IndexOptions + IgnoreClient in Apache 2.0.23.
+ +
SuppressDescription
+ +
This will suppress the file description in fancy indexing + listings. By default, no file descriptions are defined, and + so the use of this option will regain 23 characters of screen + space to use for something else. See AddDescription for information about setting the file + description. See also the DescriptionWidth + index option to limit the size of the description column.
+ +
SuppressHTMLPreamble
+ +
If the directory actually contains a file specified by the + HeaderName + directive, the module usually includes the contents of the file + after a standard HTML preamble (<html>, + <head>, et cetera). The + SuppressHTMLPreamble option disables this behaviour, + causing the module to start the display with the header file + contents. The header file must contain appropriate HTML instructions + in this case. If there is no header file, the preamble is generated + as usual.
+ +
SuppressIcon (Apache + 2.0.23 and later)
+ +
This will suppress the icon in fancy indexing listings. + Combining both SuppressIcon and + SuppressRules yields proper HTML 3.2 output, which + by the final specification prohibits img and + hr elements from the pre block (used to + format FancyIndexed listings.)
+ +
SuppressLastModified
+ +
This will suppress the display of the last modification date, + in fancy indexing listings.
+ +
SuppressRules + (Apache 2.0.23 and later)
+ +
This will suppress the horizontal rule lines (hr + elements) in directory listings. Combining both SuppressIcon and + SuppressRules yields proper HTML 3.2 output, which + by the final specification prohibits img and + hr elements from the pre block (used to + format FancyIndexed listings.)
+ +
SuppressSize
+ +
This will suppress the file size in fancy indexing listings.
+ +
TrackModified (Apache + 2.0.23 and later)
+ +
This returns the Last-Modified and ETag + values for the listed directory in the HTTP header. It is only valid + if the operating system and file system return appropriate stat() + results. Some Unix systems do so, as do OS2's JFS and Win32's + NTFS volumes. OS2 and Win32 FAT volumes, for example, do not. + Once this feature is enabled, the client or proxy can track + changes to the list of files when they perform a HEAD + request. Note some operating systems correctly track new and + removed files, but do not track changes for sizes or dates of + the files within the directory. Changes to the size + or date stamp of an existing file will not update the + Last-Modified header on all Unix platforms. + If this is a concern, leave this option disabled.
+ +
VersionSort + (Apache 2.0a3 and later)
+ +
The VersionSort keyword causes files containing + version numbers to sort in a natural way. Strings are sorted as + usual, except that substrings of digits in the name and + description are compared according to their numeric value. + +

Example:

+ foo-1.7
+ foo-1.7.2
+ foo-1.7.12
+ foo-1.8.2
+ foo-1.8.2a
+ foo-1.12 +

+ +

If the number starts with a zero, then it is considered to + be a fraction:

+ +

+ foo-1.001
+ foo-1.002
+ foo-1.030
+ foo-1.04 +

+
+ +
XHTML + (Apache 2.0.49 and later)
+ +
The XHTML keyword forces mod_autoindex + to emit XHTML 1.0 code instead of HTML 3.2.
+
+ + +
Incremental IndexOptions
+
+

Apache 1.3.3 introduced some significant changes in the + handling of IndexOptions directives. In + particular:

+ +
    +
  • Multiple IndexOptions directives for a + single directory are now merged together. The result of: + +

    + <Directory /foo> + + IndexOptions HTMLTable
    + IndexOptions SuppressColumnsorting +
    + </Directory> +

    + +

    will be the equivalent of

    + +

    + IndexOptions HTMLTable SuppressColumnsorting +

    +
  • + +
  • The addition of the incremental syntax (i.e., prefixing + keywords with + or -).
  • +
+ +

Whenever a '+' or '-' prefixed keyword is encountered, it + is applied to the current IndexOptions + settings (which may have been inherited from an upper-level + directory). However, whenever an unprefixed keyword is processed, it + clears all inherited options and any incremental settings encountered + so far. Consider the following example:

+ +

+ IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
+ IndexOptions +SuppressSize +

+ +

The net effect is equivalent to IndexOptions FancyIndexing + +SuppressSize, because the unprefixed FancyIndexing + discarded the incremental keywords before it, but allowed them to + start accumulating again afterward.

+ +

To unconditionally set the IndexOptions for + a particular directory, clearing the inherited settings, specify + keywords without any + or - prefixes.

+
+
+ +
+
top
+

IndexOrderDefault Directive

+ + + + + + + + +
Description:Sets the default ordering of the directory index
Syntax:IndexOrderDefault Ascending|Descending +Name|Date|Size|Description
Default:IndexOrderDefault Ascending Name
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The IndexOrderDefault directive is used + in combination with the FancyIndexing index option. By default, fancyindexed + directory listings are displayed in ascending order by filename; the + IndexOrderDefault allows you to change this + initial display order.

+ +

IndexOrderDefault takes two + arguments. The first must be either Ascending or + Descending, indicating the direction of the sort. + The second argument must be one of the keywords Name, + Date, Size, or Description, + and identifies the primary key. The secondary key is + always the ascending filename.

+ +

You can force a directory listing to only be displayed in a + particular order by combining this directive with the SuppressColumnSorting index option; this will prevent + the client from requesting the directory listing in a different + order.

+ +
+
top
+

ReadmeName Directive

+ + + + + + + +
Description:Name of the file that will be inserted at the end +of the index listing
Syntax:ReadmeName filename
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_autoindex
+

The ReadmeName directive sets the name + of the file that will be appended to the end of the index + listing. Filename is the name of the file to include, and + is taken to be relative to the location being indexed. If + Filename begins with a slash, it will be taken to be + relative to the DocumentRoot. +

+ +

Example

+ ReadmeName FOOTER.html +

+ +

Example 2

+ ReadmeName /include/FOOTER.html +

+ +

See also HeaderName, where this behavior is described in greater + detail.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_autoindex.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_autoindex.html.ja.utf8 new file mode 100644 index 00000000..399c1a41 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_autoindex.html.ja.utf8 @@ -0,0 +1,963 @@ + + + +mod_autoindex - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_autoindex

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:Unix の ls コマンドや + Win32 の dir シェルコマンドに似た + ディレクトリインデックスを生成する
ステータス:Base
モジュール識別子:autoindex_module
ソースファイル:mod_autoindex.c
+

概要

+ +

ディレクトリのインデックスは二つの情報源のうちの + 一つから生成できます:

+ +
    +
  • 普通は index.html と呼ばれる + ユーザによって書かれたファイル。 + DirectoryIndex + ディレクティブでこのファイル名を設定します。 + これは mod_dir で制御されます。
  • + +
  • もしくは、サーバによって生成された一覧。 + その他のディレクティブでこの一覧の書式を制御します。 + AddIcon, AddIconByEncoding と + AddIconByType + を使うことで、様々なファイルタイプに対してアイコン一覧を + セットします。つまり、リストされたファイル毎に、 + ファイルにマッチした一番最初のアイコンが表示されます。 + これらは mod_autoindex で制御されます。
  • +
+

望むならば、自動インデックス生成を完全に除去 (あるいは置換) + できるように、この二つの機能は分離されています。

+ +

自動インデックス生成は Options +Indexes + を使うことで有効になります。詳細については、 + Options + ディレクティブをご覧下さい。

+ +

もし FancyIndexingオプションが + IndexOptions + ディレクティブに与えられているならば、 + 列の先頭は表示の順番を制御するリンクになります。 + 先頭のリンクを選択すると、一覧は再生成されて + その列の値でソートされます。 + 同じ先頭を続けて選択すると、交互に昇順と降順とになります。 + これらの列の先頭のリンクは、 + IndexOptions + ディレクティブの + SuppressColumnSorting + オプションで消すことができます。

+ +

"Size" でソートした場合は、用いられるのは + 実際のファイルのサイズであって、 + 表示の値ではないことに注意してください - + たとえ両方ともが "1K" と表示されていたとしても、 + 1010 バイトのファイルは必ず 1011 + バイトのファイルよりも前 (昇順の場合) に表示されます。

+
+ +
top
+
+

Autoindex リクエストクエリー引数

+ + +

Apache 2.0.23 で、 + コラムソートのためにクエリー引数を再編成して、 + 新しいクエリーオプションのグループを導入しました。 + 出力に対するクライアントのすべての制御を効率的に抹消 + できるように、 + IndexOptions + IgnoreClient が導入されました。

+ +

コラムソートのヘッダそれ自体が、 + 下記のソートクエリーオプションを付加する + 自分自身を参照するリンクです。 + 下記のオプションのどれでも、 + ディレクトリリソースへのリクエストに加えることができます。

+ +
    +
  • C=N は、ファイル名でソートします。
  • + +
  • C=M は、更新日時、 + ディレクトリ、ファイル名の順でソートします。
  • + +
  • C=S は、サイズ、 + ディレクトリ、ファイル名の順でソートします。
  • + +
  • C=D は、説明、 + ディレクトリ、ファイル名の順でソートします。
  • + +
  • O=A は、昇順で表をソートします。
  • + +
  • O=D は、降順で表をソートします。
  • + +
  • F=0 は、単純な表の書式にします。 + (FancyIndex ではありません。)
  • + +
  • F=1 は、FancyIndex + 表示の表の書式にします。
  • + +
  • F=2 は、表を HTML + のテーブルを使った FancyIndex の書式にします。
  • + +
  • V=0 + は、バージョンによるソートを無効にします。
  • + +
  • V=1 + は、バージョンによるソートを有効にします。
  • + +
  • P=pattern + は、与えられた pattern + に適合したファイルのみを表示します。
  • +
+ +

"P (パターンの P)" クエリー引数は、 + 通常の IndexIgnore + ディレクティブが処理されたに検査され、 + ファイル名全てが、他の autoindex + リスト処理と同様の判定基準下に置かれ続ける + ことに注意してください。 + mod_autoindex のクエリー引数パーサ (解析) は、 + 認識不能なオプションにぶつかると即座に停止します。 + クエリー引数は上の表に従って + 正しい形式になっていなければなりません。

+ +

下の単純な例は、これらのクエリーオプションを + 表します。これをそのまま切り取って HEADER.html + ファイルに保存することもできます。 + mod_autoindex が X=Go 入力にぶつかる前に + 引数が全て解釈されるように、 + 未知の引数 "X" はリストの最後に置かれています。

+ +

+ <form action="" method="get">
+ + Show me a <select name="F">
+ + <option value="0"> Plain list</option>
+ <option value="1" selected="selected"> Fancy list</option>
+ <option value="2"> Table list</option>
+
+ </select>
+ Sorted by <select name="C">
+ + <option value="N" selected="selected"> Name</option>
+ <option value="M"> Date Modified</option>
+ <option value="S"> Size</option>
+ <option value="D"> Description</option>
+
+ </select>
+ <select name="O">
+ + <option value="A" selected="selected"> Ascending</option>
+ <option value="D"> Descending</option>
+
+ </select>
+ <select name="V">
+ + <option value="0" selected="selected"> in Normal order</option>
+ <option value="1"> in Version order</option>
+
+ </select>
+ Matching <input type="text" name="P" value="*" />
+ <input type="submit" name="X" value="Go" />
+
+ </form> +

+ +
+
top
+

AddAlt ディレクティブ

+ + + + + + + +
説明:アイコンの代わりに +表示される、ファイル名で選択された代替テキスト
構文:AddAlt string file [file] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

AddAlt は、FancyIndexing + において、アイコンの代わりに表示する代替テキストを提供します。 + file は、説明するファイルのファイル拡張子、 + ファイル名の一部、ワイルドカード表現、完全なファイル名の + どれかになります。 + string に空白がある場合は引用符 (" + か ') で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。

+ +

+ AddAlt "PDF file" *.pdf
+ AddAlt Compressed *.gz *.zip *.Z +

+ +
+
top
+

AddAltByEncoding ディレクティブ

+ + + + + + + +
説明:アイコンの代わりに表示される、MIME 符号化方法で選択された +代替テキスト
構文:AddAltByEncoding string MIME-encoding +[MIME-encoding] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

AddAltByEncoding は、 + FancyIndexing + において、アイコンの代わりに表示する代替文字列を提供します。 + MIME-encoding は有効な符号化、例えば + x-compress + です。 + string に空白があるときは、引用符 (" か + ') で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。

+ +

+ AddAltByEncoding gzip x-gzip +

+ +
+
top
+

AddAltByType ディレクティブ

+ + + + + + + +
説明:アイコンの代わりに +表示される、MIME タイプで選択された代替テキスト
構文:AddAltByType string MIME-type +[MIME-type] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

AddAltByType は、 + FancyIndexing + において、アイコンの代わりに表示する代替文字列を設定します。 + MIME-type は有効なタイプ、例えば + text/html + です。 + string に空白があるときは、引用符 (" か + ') で囲む必要があります。 + この文字列は、クライアントが画像を表示できない場合や + 画像のロードを無効にしている場合や + アイコンの取得に失敗したときに表示されます。

+ +

+ AddAltByType 'plain text' text/plain +

+ +
+
top
+

AddDescription ディレクティブ

+ + + + + + + +
説明:ファイルに対して表示する説明
構文:AddDescription string file [file] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

FancyIndexing + において、ファイルに対して表示する説明を設定します。 + file は説明するファイルのファイル拡張子、 + ファイル名の一部、ワイルドカード表現、完全なファイル名の + どれかになります。 + string は二重引用符 (") で囲まれます。

+ +

+ AddDescription "The planet Mars" /web/pics/mars.gif +

+ +

通常のデフォルトの説明領域は 23 バイトの幅です。 + IndexOptions SuppressIcon + オプションで 6 バイト追加、 + IndexOptions SuppressSize + オプションで 7 バイト追加、 + IndexOptions SuppressLastModified + オプションで 19 バイト追加されます。 + ですから、デフォルトの説明コラムの最大幅は + 55 バイトになります。

+ +

このコラムの大きさを上書きしたり、 + 説明が無制限長でもよいようにするための詳細に関しては、 + DescriptionWidth + という + IndexOptions + のキーワードをご覧下さい。

+ +

警告

+

AddDescription + で定義された説明テキストは、タグや文字列といった + HTML マークアップを含むことができます。 + もし、説明コラムの幅によってタグ付けされた要素が丸め込まれた + (太字の語句の最後が切れるといった) 場合、 + 出力結果は、ディレクトリ一覧の残りの部分に影響を与えるでしょう。

+
+ +
+
top
+

AddIcon ディレクティブ

+ + + + + + + +
説明:ファイルに表示するアイコンを名前で選択
構文:AddIcon icon name +[name] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

FancyIndexing + において、 + name で終わるファイルの隣に表示するアイコンを設定します。 + icon は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 (alttext, url) です。 + ここで alttext + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 +

+ +

name は、ディレクトリに対応する ^^DIRECTORY^^ + か、空白行に対応する ^^BLANKICON^^ (一覧が正しく表示されるために) か、 + ファイル拡張子か、ワイルドカード表現か、ファイル名の一部か + 完全なファイル名です。

+ +

+ AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
+ AddIcon /icons/dir.xbm ^^DIRECTORY^^
+ AddIcon /icons/backup.xbm *~ +

+ +

もし可能なら、 + AddIcon + より + AddIconByType + を優先的に使うべきでしょう。

+ +
+
top
+

AddIconByEncoding ディレクティブ

+ + + + + + + +
説明:ファイルに表示するアイコンを MIME +符号化方法で選択
構文:AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

FancyIndexing + において、ファイルの隣に表示するアイコンを設定します。 + icon は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 (alttext, url) です。 + ここで alttext + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 +

+ +

MIME-encoding は、要求されたエンコードに該当する + ワイルドカード表現です。

+ +

+ AddIconByEncoding /icons/compress.xbm x-compress +

+ +
+
top
+

AddIconByType ディレクティブ

+ + + + + + + +
説明:ファイルの隣に表示するアイコンを +MIME タイプによって選択
構文:AddIconByType icon MIME-type +[MIME-type] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

FancyIndexing + において、ファイルの隣に表示するアイコンを設定します。 + icon は、(% でエスケープされた) アイコンへの相対 URL + か、他の書式 (alttext, url) です。 + ここで alttext + は、非グラフィカルブラウザ向けにアイコンに付けられたテキストタグです。 +

+ +

MIME-type は、要求されたタイプに該当する + ワイルドカード表現です。

+ +

+ AddIconByType (IMG,/icons/image.xbm) image/* +

+ +
+
top
+

DefaultIcon ディレクティブ

+ + + + + + + +
説明:特定のアイコンが何も設定されていない時に +ファイルに表示するアイコン
構文:DefaultIcon url-path
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

FancyIndexing + において、 + 特定のアイコンがない場合にファイルに表示するアイコンを設定します。 + url-path は、(% でエスケープされた) アイコンへの相対 URL + です。

+ +

+ DefaultIcon /icon/unknown.xbm +

+ +
+
top
+

HeaderName ディレクティブ

+ + + + + + + +
説明: +インデックス一覧の先頭に挿入されるファイルの名前
構文:HeaderName filename
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

HeaderName + ディレクティブは、 + インデックス一覧の先頭に挿入するファイルの名前を設定します。 + Filename は取り込むファイルの名前です。

+ +

+ HeaderName HEADER.html +

+ +
+

HeaderName も ReadmeName + も両方とも現在は、filename + をインデックスされているディレクトリに用いられた URI + に対する相対 URI パスとして扱います。 + filename がスラッシュで始まる場合は、 + DocumentRoot + からの相対パスとなります。

+ +

+ HeaderName /include/HEADER.html +

+ +

filename は + メジャーコンテントタイプが "text/*" + (例えばtext/html, + text/plain 等です。) + のドキュメントとして解決 + されなければなりません。これはつまり、 + もし CGI スクリプトの実際のファイルタイプが + 次のディレクティブのようにして実際の出力とは異なって + text/html としてマークされている場合、 + filename + は CGI スクリプトを参照するかも知れない、 + ということを意味します:

+ +

+ AddType text/html .cgi +

+ +

Options MultiViews が + 有効になっている場合は、 + コンテントネゴシエーション + が行なわれます。 + もし filename が (CGI スクリプトでない) 静的な + text/html ドキュメントで解決され、 + options + IncludesIncludesNOEXEC + が有効になっている場合は、 + ファイルはサーバーサイドインクルードで処理されます + (mod_include ドキュメントを参照して下さい)。

+
+ +

もし HeaderName で指定されたファイルが + HTML ドキュメントの開始部分 (<html>, <head>, + 等) を含んでいたら、 + IndexOptions + +SuppressHTMLPreamble + を設定して、これらのタグが繰り返されないようにしたいと思うでしょう。

+ +
+
top
+

IndexIgnore ディレクティブ

+ + + + + + + +
説明:ディレクトリ一覧を行なう際に無視すべき +ファイルリストに追加
構文:IndexIgnore file [file] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

IndexIgnore ディレクティブは、 + ディレクトリの一覧を行う際に無視すべきファイルリストに追加します。 + file は、 + シェル形式のワイルドカード表現か完全なファイル名です。 + IndexIgnore が複数ある場合は、無視するリストに追加が行われ、 + 置換は行われません。デフォルトではリストには . + (カレントディレクトリ) が含まれています。

+ +

+ IndexIgnore README .htaccess *.bak *~ +

+ +
+
top
+

IndexOptions ディレクティブ

+ + + + + + + +
説明:ディレクトリインデックスの様々な設定項目 +
構文:IndexOptions [+|-]option [[+|-]option] ...
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

IndexOptions + は、ディレクトリインデックスの挙動を指定します。 + option は次のどれかです:

+ +
+
DescriptionWidth=[n | *] + (2.0.23 以降)
+ +
DescriptionWidth + キーワードは説明コラムの幅を文字数で指定することができます。
+ +
-DescriptionWidth (または非設定) で、 + mod_autoindex が最適な幅を計算するようにできます。
+ +
DescriptionWidth=n + で、コラム幅を n バイトに固定します。
+ +
DescriptionWidth=* + は、最長の説明に合わせて必要な長さまでコラムを延ばします。
+ +
説明を丸め込んだ場合特有の危険については + AddDescription + セクションをお読み下さい。
+ +
FancyIndexing
+ +
飾り付きインデックスをオンにします。
+ +
FoldersFirst + (2.0.23 以降)
+ +
このオプションが有効になった場合、サブディレクトリの一覧は + 必ず最初に現われて、そのディレクトリの通常のファイルは + その後に続きます。 + 一覧は基本的には、ファイルとディレクトリの二つの部分に分けられて、 + それぞれは別々にソートされ、その後サブディレクトリを先にして + 表示が行なわれます。例えばソート順が名前の降順になっていて、 + FoldersFirst が有効になっている場合は、 + サブディレクトリ Zed はサブディレクトリ + Beta よりも前にリストされ、通常のファイル + GammaAlpha + よりも前にリストされます。このオプションは + FancyIndexing + も有効になっているときにのみ、効果があります。
+ +
HTMLTable (実験的、 + Apache 2.0.23 以降)
+ +
この実験的なオプションは FancyIndexing とともに指定することで、 + 飾りの付いたディレクトリ一覧のためにテーブルを使った単純な表を作ります。 + これは古いブラウザを混乱させるかもしれないことに注意してください。 + WinNT やその他 utf-8 + が有効なプラットホームのように、ファイル名や説明テキストが + 右読みになったり左読みになりえる場合は特に必要です。
+ +
IconsAreLinks
+ +
これは、FancyIndexing において、 + アイコンもファイル名へのリンクの一部にします。
+ +
IconHeight[=pixels]
+ +
このオプションが、IconWidth とともに使われている場合は、 + サーバはファイルアイコンのための img + タグに heightwidth + 属性を取り込むようになります。 + これによって、イメージ全てをロードし終わるまで待たなくても、 + ブラウザはページレイアウトをあらかじめ計算することができます。 + このオプションに何も値が与えられなければ、Apache + ソフトウェアで提供されているアイコンの標準の高さが + デフォルトなります。
+ +
IconWidth[=pixels]
+ +
このオプションが、IconHeight とともに使われている場合は、 + サーバはファイルアイコンのための img + タグに heightwidth + 属性を取り込むようになります。 + これによって、イメージ全てをロードし終わるまで待たなくても、 + ブラウザはページレイアウトをあらかじめ計算することができます。 + このオプションに何も値が与えられなければ、Apache + ソフトウェアで提供されているアイコンの標準の高さが + デフォルトなります。
+ +
IgnoreCase
+ +
このオプションが有効であると、ファイル名は大文字小文字を区別せずにソートされます。 + 例えばファイル名が昇順でソートされ、IgnoreCase が有効であれば、 + Zeta は alfa の後にリストされます + (注意: GAMMA は常に gamma の前になります)。
+ +
IgnoreClient
+ +
このオプションで mod_autoindex は、 + クライアントからの全てのクエリー変数を無視するようになります。 + これはソート順も含みます。 + (つまり SuppressColumnSorting + を暗に意味します。)
+ +
NameWidth=[n + | *]
+ +
NameWidth キーワードでファイル名コラムの幅をバイト数で + 指定できます。
+ +
-NameWidth (または非設定) で、 + mod_autoindex が最適な幅を計算するようにできます。
+ +
NameWidth=n + で、コラム幅を n バイトに固定します。
+ +
NameWidth=* + は、必要な長さまでコラムを延ばします。
+ +
ScanHTMLTitles
+ +
FancyIndexing のために、 + HTML ドキュメントからタイトルを取り出すことを可能にします。 + もしファイルに + AddDescription + で説明が与えられていなければ、 + httpd は title タグの値を読むためにドキュメントを読み始めます。 + これは CPU や disk に負荷をかけます。
+ +
SuppressColumnSorting
+ +
もし指定されていれば、Apache は + FancyIndexing で表示されているディレクトリ一覧での + コラムの先頭を、ソートのためのリンクにしなくなります。 + デフォルトの挙動は、リンクとします。 + コラムの先頭を選ぶとコラムの値に従ってディレクトリリストを + ソートします。 + Apache 2.0.23 以前では、これは同時に + ソート文字列のためのクエリー引数の解析も無効にします。 + + この挙動は Apache 2.0.23 では + IndexOptions + IgnoreClient で制御されるようになっています。
+ +
SuppressDescription
+ +
これは FancyIndexing におけるファイルの説明を消去します。 + デフォルトでは、説明は定義されておらず、 + このオプションを使うと他のために 23 + 文字の空白を稼ぐことができます。 ファイルの説明に関する情報は、 + AddDescription + をご覧下さい。また、説明のコラムサイズを制限する + DescriptionWidth + インデックスオプションもご覧下さい。
+ +
SuppressHTMLPreamble
+ +
通常、 + HeaderName + ディレクティブで指定したファイルを + ディレクトリが実際に含んでいれば、標準的な HTML プリアンブル + (<html>, <head>, ) の後に、 + モジュールはファイルの中身をインクルードします。 + SuppressHTMLPreamble オプションは、 + この挙動を無効にできて、 + モジュールがヘッダーファイルの中身から表示を始めます。 + この場合、ヘッダーファイルは正しい HTML + 命令を含んでいなければなりません。 + ヘッダーファイルが存在しない場合は、プリアンブルは通常通り + 生成されます。
+ +
SuppressIcon (Apache + 2.0.23 以降)
+ +
+ これは FancyIndexing の一覧からアイコンを消去します。 + SuppressIconSuppressRules + と組合わせることによって正しい HTML 3.2 の出力が得られます。 + 正しい HTML 3.2 出力は、最終規格において imghr + が pre ブロックに入る (FancyIndexing 一覧で書式に使われています) + ことを禁止しています。
+ +
SuppressLastModified
+ +
FancyIndexing 一覧において最終更新日時の表示を消去します。
+ +
SuppressRules + (Apache 2.0.23 以降)
+ +
ディレクトリ一覧において水平区切り線 (hr タグ) を消去します。 + SuppressIconSuppressRules + と組合わせることによって正しい HTML 3.2 の出力が得られます。 + 正しい HTML 3.2 出力は、最終規格において imghr + が pre ブロックに入る (FancyIndexing 一覧で書式に使われています) + ことを禁止しています。
+ +
SuppressSize
+ +
FancyIndexing 一覧においてファイルサイズの表示を消去します。
+ +
TrackModified + (Apache 2.0.23 以降)
+ +
これは HTTP ヘッダ中に、 + リストされたディレクトリの最終更新日や ETag 値を含めます。 + これは、オペレーティングシステムやファイルシステムが + 適切な stat() の返り値を返す場合にのみ有効です。 + いくつかの UNIX システム、OS2 の JFS や Win32 の NTFS + ボリュームはそうなっています。 + 例えば、OS2 と Win32 FAT ボリュームはそうではありません。 + この機能が有効になると、クライアントやプロキシは + HEAD リクエストを行うことによって、 + ファイル一覧の変化を追跡することができるようになります。 + いくつかのオペレーティングシステムは、新規ファイルや + 移動ファイルは正しく追跡するけれども、 + ディレクトリ中のファイルのサイズや日付は追跡ないということに + 注意してください。 + 既に存在するファイルのサイズや日付のスタンプが変化しても、 + 全ての Unix プラットホームでは、 + 最終更新日ヘッダーを更新しません。 + もしこれが重要であれば、 + このオプションを無効のままにしてください。
+ +
VersionSort + (Apache 2.0a3 以降)
+ +
VersionSort キーワードはバージョン番号を含んだファイルが + 自然な方法でソートされるようにします。 + 文字列は通常通りソートされ、 + それ以外の、説明や名前中の数となる部分文字列は + その数値で比較されます。 + +

例:

+ foo-1.7
+ foo-1.7.2
+ foo-1.7.12
+ foo-1.8.2
+ foo-1.8.2a
+ foo-1.12 +

+ +

番号が 0 から始まる場合は、端数と考えられます

+ +

+ foo-1.001
+ foo-1.002
+ foo-1.030
+ foo-1.04 +

+
+ +
XHTML + (Apache 2.0.49 以降)
+ +
XHTML キーワードを指定すると、mod_autoindex + は HTML 3.2 の代わりに XHTML 1.0 のコードを出力するようになります。
+
+ + +
増減指定できる IndexOptions
+
+

Apache 1.3.3 では、 + IndexOptions + ディレクティブの扱いで幾つかの大きな変化が導入されました。 + 特に、

+ +
    +
  • 一つのディレクトリに対する複数の + IndexOptions + ディレクティブは、現在では一つにマージされます。 + 上の例の結果は、 + +

    + <Directory /foo> + + IndexOptions HTMLTable
    + IndexOptions SuppressColumnsorting +
    + </Directory> +

    + +

    と同一になります。

    + +

    + IndexOptions HTMLTable SuppressColumnsorting +

    +
  • + +
  • 増減構文 + (すなわち、'+' や '-' + の接頭辞が付くキーワード) の追加。
  • +
+ +

'+' や '-' 接頭辞の付いたキーワードに出会うとそれは、 + その時点での IndexOptions + の設定 (これは上流のディレクトリを受け継ぎます) + に対して適応されます。 + しかしながら、接頭辞の付かないキーワードが処理された場合は、 + 受け継いだオプション全てとそれまで出会った増減設定全てが + 消去されます。次の例を考えてみてください:

+ +

+ IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
+ IndexOptions +SuppressSize +

+ +

中身の効果は + IndexOptions FancyIndexing +SuppressSize + と同一です。 + 接頭辞の付かない FancyIndexing + でそれ以前の増減キーワードを無効にされて、 + その後の累積が始まるからです。

+ +

無条件に IndexOptions + をあるディレクトリで設定することによって + 継承した設定を消去して、+- + 接頭辞の付かないキーワードで設定してください。

+
+
+ +
+
top
+

IndexOrderDefault ディレクティブ

+ + + + + + + + +
説明: +ディレクトリインデックスの標準の順番付けを設定
構文:IndexOrderDefault Ascending|Descending +Name|Date|Size|Description
デフォルト:IndexOrderDefault Ascending Name
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

IndexOrderDefault ディレクティブは + FancyIndexing + インデックスオプションと併せて用いれれます。 + デフォルトでは、FancyIndexing + のディレクトリ一覧はファイル名の昇順で表示されます。 + IndexOrderDefault + で、初期状態の表示順番を変えることができます。

+ +

IndexOrderDefault + は二つの引数をとります。一つ目はソートの方向を指示する + AscendingDescending のいずれかです。 + 二つ目の引数は Name, Date, + SizeDescription + のいずれか一つのキーワードであって、プライマリキーを指定します。 + 二つ目のキーは常にファイル名の昇順になります。

+ +

このディレクティブと SuppressColumnSorting + インデックスオプションとを組み合わせることで、 + ディレクトリ一覧をある特定の順番でのみ表示するようにできます。 + これは、 + クライアントが別の順番でディレクトリ一覧をリクエストすることを防ぎます。

+ +
+
top
+

ReadmeName ディレクティブ

+ + + + + + + +
説明:インデックス一覧の最後に挿入されるファイルの名前
構文:ReadmeName filename
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess
上書き:Indexes
ステータス:Base
モジュール:mod_autoindex
+

ReadmeName ディレクティブは、 + インデックスの終わりに付け加えられるファイルの名前を設定します。 + filename は挿入するファイルの名前で、 + 一覧の行われている位置から相対的なものとして解釈されます。 + filename がスラッシュで始まる場合は、 + DocumentRoot + からの相対パスとなります。

+ +

+ ReadmeName FOOTER.html +

+ +

例 2

+ ReadmeName /include/FOOTER.html +

+ +

より詳細にまでこの挙動について記述している HeaderName + もご覧下さい。

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_autoindex.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_autoindex.html.ko.euc-kr new file mode 100644 index 00000000..a1558d53 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_autoindex.html.ko.euc-kr @@ -0,0 +1,817 @@ + + + +mod_autoindex - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_autoindex

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:ڵ н ls ɾ Win32 + dir ɾ 丮
:Base
:autoindex_module
ҽ:mod_autoindex.c
+

+ +

丮 ΰ:

+ + +

, Ѵٸ ڵ + (Ȥ ü) ִ.

+ +

ڵ Options +Indexes ϴ. + ڼ Options + þ ϶.

+ +

IndexOptions + þ FancyIndexing ɼ ָ, ̸ + ٲٴ ũ . ̸ ũ ϸ + ٽ . ̸ ݺؼ ϸ + ̸ . IndexOptions þ + SuppressColumnSorting ɼ ̷ ̸ ũ + ʴ´.

+ +

"Size(ũ)" µǴ ƴ϶ + ũ ϶. , 1010 Ʈ ϰ 1011 + Ʈ Ѵ "1K" ̴ ׻ 1010 Ʈ + տ ´.

+
+ +
top
+
+

Autoindex û ƱԸƮ

+ + +

ġ 2.0.23 û ƱԸƮ ϰ, + ο ɼǵ ߰ߴ. Ŭ̾Ʈ + IndexOptions + IgnoreClient ɼ ߰Ǿ.

+ +

̸ Ʒ û ɼ ڱ + ũ. Ʒ ɼ 丮 ڿ  û + ִ.

+ +
    +
  • C=N ϸ ̴
  • + +
  • C=M ֱ , ׸ ϸ ̴
  • + +
  • C=S ũ , ׸ ϸ ̴
  • + +
  • C=D , ׸ ϸ + ̴
  • + +
  • O=A Ѵ
  • + +
  • O=D Ѵ
  • + +
  • F=0 (FancyIndexed ƴ) ̴
  • + +
  • F=1 FancyIndexed ̴
  • + +
  • F=2 HTMLTable FancyIndexed + ̴
  • + +
  • V=0 ʴ´
  • + +
  • V=1 Ѵ
  • + +
  • P=pattern ־ pattern + شϴ ϸ
  • +
+ +

'P'attern ƱԸƮ Ϲ IndexIgnore þ ó Ŀ + ˻ϱ⶧, ٸ autoindex ϶. + mod_autoindex û ƱԸƮ о϶ + ɼ ߰ϸ ̻ ʴ´. û ƱԸƮ + ǥ Ѵ.

+ +

header.html Ͽ ִ Ʒ + ɼǵ Ѵ. submit "X" ƱԸƮ + mod_autoindex X=Go ƱԸƮ о + Ȯϱ ߴ.

+ +

+ <form action="" method="get">
+ + Show me a <select name="F">
+ + <option value="0"> Plain list</option>
+ <option value="1" selected="selected"> Fancy list</option>
+ <option value="2"> Table list</option>
+
+ </select>
+ Sorted by <select name="C">
+ + <option value="N" selected="selected"> Name</option>
+ <option value="M"> Date Modified</option>
+ <option value="S"> Size</option>
+ <option value="D"> Description</option>
+
+ </select>
+ <select name="O">
+ + <option value="A" selected="selected"> Ascending</option>
+ <option value="D"> Descending</option>
+
+ </select>
+ <select name="V">
+ + <option value="0" selected="selected"> in Normal order</option>
+ <option value="1"> in Version order</option>
+
+ </select>
+ Matching <input type="text" name="P" value="*" />
+ <input type="submit" name="X" value="Go" />
+
+ </form> +

+ +
+
top
+

AddAlt þ

+ + + + + + + +
:ϸ ܴ
:AddAlt string file [file] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

AddAlt FancyIndexing + Ͽ ܴ Ѵ. File + Ȯ, ϸ Ϻ, ϵī ǥ, + ü ϸ ִ. String + ٸ ǥ(" Ȥ ') + Ѵ. Ŭ̾Ʈ ̹ ų, ̹ + ʰų, ߰ ̰ ȴ.

+ +

+ AddAlt "PDF file" *.pdf
+ AddAlt Compressed *.gz *.zip *.Z +

+ +
+
top
+

AddAltByEncoding þ

+ + + + + + + +
:MIME-encoding ܴ +
:AddAltByEncoding string MIME-encoding +[MIME-encoding] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

AddAltByEncoding FancyIndexing + Ͽ ܴ Ѵ. MIME-encoding + x-compress ȿ content-encoding̴. + String ٸ ǥ(" + Ȥ ') Ѵ. Ŭ̾Ʈ ̹ + ų, ̹ ʰų, + ߰ ̰ ȴ.

+ +

+ AddAltByEncoding gzip x-gzip +

+ +
+
top
+

AddAltByType þ

+ + + + + + + +
:MIME content-type ܴ +
:AddAltByType string MIME-type +[MIME-type] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

AddAltByType FancyIndexing + Ͽ ܴ Ѵ. MIME-type + text/html ȿ content-type̴. + String ٸ ǥ(" + Ȥ ') Ѵ. Ŭ̾Ʈ ̹ + ų, ̹ ʰų, + ߰ ̰ ȴ.

+ +

+ AddAltByType 'plain text' text/plain +

+ +
+
top
+

AddDescription þ

+ + + + + + + +
:Ͽ
:AddDescription string file [file] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

þ FancyIndexing Ͽ Ѵ. + File Ȯ, ϸ Ϻ, + ϵī ǥ, ü ϸ ִ. String + ǥ(") Ѵ.

+ +

+ AddDescription "The planet Mars" /web/pics/mars.gif +

+ +

⺻ ʵ 23 Ʈ. IndexOptions + SuppressIcon ɼ ϸ ⺻ 6 Ʈ + ߰ϰ, IndexOptions SuppressSize ɼ 7 Ʈ, + IndexOptions SuppressLastModified ɼ 19 + Ʈ ߰Ѵ. ׷Ƿ 55 Ʈ.

+ +

ʵ ٲٰų ̸ Ѵ + DescriptionWidth IndexOptions Ű带 ϶.

+ +

+

AddDescription ۿ + ±׳ character entity(; &lt;, &amp; + Ī) HTML ִ. ׷ + ±װ ִ κ ©ԵǸ ( ü κ + ©) 丮 Ͽ ִ.

+
+ +
+
top
+

AddIcon þ

+ + + + + + + +
:̸ Ͽ
:AddIcon icon name [name] +...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

þ FancyIndexing name + Ѵ. Icon + (%-escaped) URL Ȥ + (alttext,url) ̴. + ⼭ alttext ׸ + ܴ ̴.

+ +

Name 丮 Ÿ ^^DIRECTORY^^, + ( ùٷ ߱) Ÿ + ^^BLANKICON^^, Ȯ, ϵī ǥ, + ϸ Ϻ Ȥ ü ִ.

+ +

+ AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
+ AddIcon /icons/dir.xbm ^^DIRECTORY^^
+ AddIcon /icons/backup.xbm *~ +

+ +

ϸ AddIconٴ AddIconByType ؾ Ѵ.

+ +
+
top
+

AddIconByEncoding þ

+ + + + + + + +
:MIME content-encoding Ͽ
:AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

þ FancyIndexing + Ѵ. Icon + (%-escaped) URL Ȥ + (alttext,url) ̴. + ⼭ alttext ׸ + ܴ ̴.

+ +

MIME-encoding content-encoding شϴ + ϵī ǥ̴.

+ +

+ AddIconByEncoding /icons/compress.xbm x-compress +

+ +
+
top
+

AddIconByType þ

+ + + + + + + +
:MIME content-type Ͽ
:AddIconByType icon MIME-type +[MIME-type] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

þ FancyIndexing + MIME-type Ѵ. + Icon (%-escaped) URL Ȥ + (alttext,url) ̴. + ⼭ alttext ׸ + ܴ ̴.

+ +

MIME-type mime type شϴ ϵī + ǥ̴.

+ +

+ AddIconByType (IMG,/icons/image.xbm) image/* +

+ +
+
top
+

DefaultIcon þ

+ + + + + + + +
:Ư Ͽ
:DefaultIcon url-path
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

DefaultIcon þ FancyIndexing + Ư ̴. + Icon (%-escaped) URL̴.

+ +

+ DefaultIcon /icon/unknown.xbm +

+ +
+
top
+

HeaderName þ

+ + + + + + + +
:ϸ ̸
:HeaderName filename
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

HeaderName þ ϸ տ + ̸ Ѵ. Filename + ϸ̴.

+ +

+ HeaderName HEADER.html +

+ +
+

HeaderName ReadmeName + Filename Ϸ 丮 URI η + ޾Ƶδ. Filename ϸ DocumentRoot η + ޾Ƶδ.

+ +

+ HeaderName /include/HEADER.html +

+ +

Filename major content type text/* + ( , text/html, text/plain, + ) ؾ Ѵ. , ũƮ ( ƴ) + type text/html Ѵٸ + filename CGI ũƮ ִ:

+ +

+ AddType text/html .cgi +

+ +

Options + MultiViews ϸ Ѵ. + filename (CGI ũƮ ƴ) + text/html ̰ options Includes + IncludesNOEXEC ϳ Ѵٸ + server-side includes óѴ. (mod_include + )

+
+ +

HeaderName Ͽ + (<html>, <head>, ) HTML ۺκ Եִٸ + IndexOptions + +SuppressHTMLPreamble Ͽ κ ߰ʴ + .

+ +
+
top
+

IndexIgnore þ

+ + + + + + + +
:丮 Ͽ ϸ ߰Ѵ
:IndexIgnore file [file] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

IndexIgnore þ 丮 + Ͽ ϸ ߰Ѵ. File + ( ϴ) ȭϵī ǥ̳ ü ϸ + ִ. IndexIgnore þ ϸ + ϸ üʰ Ͽ ϵ ߰Ѵ. + ⺻ . ( 丮) Ѵ.

+ +

+ IndexIgnore README .htaccess *.bak *~ +

+ +
+
top
+

IndexOptions þ

+ + + + + + + +
:
:IndexOptions [+|-]option [[+|-]option] +...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

IndexOptions þ 丮 + Ѵ. Option ϳ̴

+ +
+
DescriptionWidth=[n | *] (ġ + 2.0.23 )
+ +
DescriptionWidth Ű带 Ͽ ڴ + ִ.
+ +
-DescriptionWidth ϸ (Ȥ ƹ͵ + ) mod_autoindex + Ѵ.
+ +
DescriptionWidth=n + n Ʈ Ѵ.
+ +
DescriptionWidth=* + ִ¸ŭ ø.
+ +
© ִ AddDescription + ϶.
+ +
FancyIndexing
+ +
丮 fancy .
+ +
FoldersFirst + (ġ 2.0.23 )
+ +
ɼ ϸ 丮 ׻ + , 丮 ִ Ϲ ڿ ´. + ⺻ ϰ 丮 , + Ͽ 丮 δ. + , ̸ ϰ FoldersFirst + Ѵٸ 丮 Zed 丮 + Beta տ , 丮 Beta + Ϲ Gamma Alpha տ + ´. ɼ FancyIndexing Բ Ҷ ȿ + ִ.
+ +
HTMLTable (, + ġ 2.0.23 )
+ +
FancyIndexing ɼ HTML ǥ + fancy 丮 . ɼ + ȥ ϶. ɼ WinNT ٸ + utf-8 ÷ ϸ̳ б (ʿ + Ȥ ʿ ) ٸ Ư ϴ.
+ +
IconsAreLinks
+ +
fancy Ͽ ϸ ũ Ѵ.
+ +
IconHeight[=pixels]
+ +
ɼ IconWidth ϸ + img ±׿ height width + Ӽ Ѵ. ׷ ̹ + Ȳ ̸ ִ. ɼǿ + ġ ϴ ǥ ̸ Ѵ.
+ +
IconWidth[=pixels]
+ +
ɼ IconHeight ϸ + img ±׿ + height width Ӽ Ѵ. + ׷ ̹ Ȳ + ̸ ִ. ɼǿ ġ + ϴ ǥ Ѵ.
+ +
IgnoreCase
+ +
ɼ ϸ ҹ ʰ ̸ Ѵ. + , ̸ ̰ IgnoreCase ϸ + Zeta alfa ڿ ´ (: GAMMA + ׻ gamma տ ´).
+ +
IgnoreClient
+ +
ɼ ϸ mod_autoindex + Ͽ Ŭ̾Ʈ Ǻ Ѵ. + (SuppressColumnSorting Ѵ.)
+ +
NameWidth=[n + | *]
+ +
NameWidth Ű Ʈ ϸ + Ѵ.
+ +
-NameWidth ϸ (Ȥ ƹ͵ + ) mod_autoindex + Ѵ.
+ +
NameWidth=n n + Ʈ Ѵ.
+ +
NameWidth=* ʿѸŭ ø.
+ +
ScanHTMLTitles
+ +
fancy Ͽ HTML title ̴´. Ͽ + AddDescription + ٸ title + Ұ оδ. ۾ CPU ũ Ѵ.
+ +
SuppressColumnSorting
+ +
ɼ ϸ ġ FancyIndexed 丮 + Ͽ ̸ ٲٴ ũ ʴ´. + ̸ ũ , ̸ ϸ + ִ 丮 . ġ + 2.0.23 ƱԸƮ ʾҴ. + ġ 2.0.23 IndexOptions + IgnoreClient Ͽ ƱԸƮ ʴ´.
+ +
SuppressDescription
+ +
fancy Ͽ ʴ´. ⺻ +  ǵʰ, ɼ ϸ 23 + ٸ 뵵 Ѵ. ϴ + AddDescription ϶. ũ⸦ + ϴ DescriptionWidth + ɼǵ ϶.
+ +
SuppressHTMLPreamble
+ +
HeaderName þ + ִ ǥ HTML ۺκ + (<html>, <head>, + et cetera) ڿ ÷Ѵ. ׷ + SuppressHTMLPreamble ɼ ϸ ó + header Ѵ. header Ͽ + HTML ־ Ѵ. header ٸ Ϲ + ۺκ .
+ +
SuppressIcon + (ġ 2.0.23 )
+ +
fancy Ͽ . SuppressIcon + SuppressRules ϸ, (FancyIndexed + ) pre ȿ img + hr ǥ HTML 3.2 + ˸ ȴ.
+ +
SuppressLastModified
+ +
fancy Ͽ ǥ ʴ´.
+ +
SuppressRules + (ġ 2.0.23 )
+ +
丮 Ͽ (hr ) + ʴ´. SuppressIcon + SuppressRules ϸ, (FancyIndexed + ) pre ȿ img + hr ǥ HTML 3.2 + ˸ ȴ.
+ +
SuppressSize
+ +
fancy Ͽ ũ⸦ ǥ ʴ´.
+ +
TrackModified + (ġ 2.0.23 )
+ +
丮 HTTP Last-Modified ETag + Ѵ. ɼ ü Ͻýۿ stat() + ȿϴ. н ý۰ OS2 + JFS, Win32 NTFS ϴ. , OS2 Win32 + FAT Ұϴ. ϸ Ŭ̾Ʈ Ͻô + HEAD û Ͽ ϸ ȭ + ִ.  ü ο ϰ ùٷ + , 丮 ִ ũ⳪ ¥ ȭ + ϶. н ÷ + ũ⳪ ¥ ȭ Last-Modified + ٲʴ´. ̷ ȭ ߿ϴٸ ɼ + .
+ +
VersionSort + (ġ 2.0a3 )
+ +
VersionSort Ű ȣ + ϸ ڿ Ѵ. κ + , ϰ ִ κ ڰ + Ѵ. + +

:

+ foo-1.7
+ foo-1.7.2
+ foo-1.7.12
+ foo-1.8.2
+ foo-1.8.2a
+ foo-1.12 +

+ +

0 ϸ, м Ѵ:

+ +

+ foo-1.001
+ foo-1.002
+ foo-1.030
+ foo-1.04 +

+
+ +
XHTML + (ġ 2.0.49 )
+ +
XHTML Ű带 ϸ + mod_autoindex HTML 3.2 XHTML 1.0 + ڵ带 Ѵ.
+
+ + +
IndexOptions
+
+

ġ 1.3.3 IndexOptions + þ ó ũ ȭǾ. Ư:

+ +
    +
  • 丮 + IndexOptions þ Ѵ. + : + +

    + <Directory /foo> + + IndexOptions HTMLTable
    + IndexOptions SuppressColumnsorting +
    + </Directory> +

    + +

    + +

    + IndexOptions HTMLTable SuppressColumnsorting +

    +
  • + +
  • ( , Ű տ + + - ̴) ߰Ǿ.
  • +
+ +

Ű տ '+' '-' ش Ű尡 + ( 丮 ӵǾ) IndexOptions + ݿȴ. ׷ տ ƹ͵ Ű带 + ӵǰų . + 캸:

+ +

+ IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
+ IndexOptions +SuppressSize +

+ +

տ ƹ͵ FancyIndexing + ٽ ߰ǿ + IndexOptions FancyIndexing +SuppressSize .

+ +

Ư 丮 + IndexOptions Ϸ Ű + տ + - + ӵ .

+
+
+ +
+
top
+

IndexOrderDefault þ

+ + + + + + + + +
:丮 ⺻ Ѵ
:IndexOrderDefault Ascending|Descending +Name|Date|Size|Description
⺻:IndexOrderDefault Ascending Name
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

IndexOrderDefault þ FancyIndexing + ɼǰ Բ Ѵ. ⺻ fancyindexed 丮 + ϸ ̴. IndexOrderDefault + ʱ ִ.

+ +

IndexOrderDefault ƱԸƮ + ޴´. ù° ϴ Ascending + () ̳ Descending () ϳ. + ι° ƱԸƮ Ÿ Ű Name, + Date, Size, Description + ϳ. ׻ ϸ ̴.

+ +

þ SuppressColumnSorting ɼ ϸ + Ư θ 丮 . Ŭ̾Ʈ + ٸ 丮 û Ѵ.

+ +
+
top
+

ReadmeName þ

+ + + + + + + +
:ϸ ̸
:ReadmeName filename
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_autoindex
+

ReadmeName þ ϸ + ̸ Ѵ. Filename + ϸ̰, ġ η ޾Ƶδ. + Filename ϸ DocumentRoot η ޾Ƶδ. +

+ +

+ ReadmeName FOOTER.html +

+ +

2

+ ReadmeName /include/FOOTER.html +

+ +

ڼ HeaderName ϶.

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_autoindex.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_autoindex.html.tr.utf8 new file mode 100644 index 00000000..508220af --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_autoindex.html.tr.utf8 @@ -0,0 +1,889 @@ + + + +mod_autoindex - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_autoindex

+
+

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

+
+ + + +
Açıklama:Unix ls veya Win32 dir kabuk komutunun +yaptığı gibi dizin içeriğini listeler.
Durum:Temel
Modül Betimleyici:autoindex_module
Kaynak Dosyası:mod_autoindex.c
+

Özet

+ +

Bir dizin içerik dosyası iki kaynaktan gelebilir:

+ +
    +
  • Kullanıcı tarafından yazılmış ve genellikle index.html + adında bir dosya olarak. Dosyanın ismi DirectoryIndex yönergesi ile belirlenir ve + mod_dir tarafından denetlenir.
  • + +
  • Kullanıcı tarafından böyle bir dosya sağlanmadığı takdirde dizin + içerik listesini sunucu üretir. Diğer yönergeler bu listenin biçemini + belirler. Listede gösterilen dosya türü simgeleri AddIcon, AddIconByEncoding ve AddIconByType yönergeleri ile + belirlenir. Bunlar mod_autoindex tarafından + denetlenir.
  • +
+ +

İki işlev birbirinden ayrı tutulmuştur, böylece kendiliğinden içerik + listesi üretimi tamamen iptal edilebilir (veya değiştirilebilir).

+ +

Kendiliğinden içerik listesi üretimi Options +Indexes ile + etkin kılınabilir. Daha fazla bilgi için Options yönergesinin açıklamasına bakınız.

+ +

IndexOptions yönergesi + FancyIndexing + seçeneği ile kullanılmışsa sütun başlıkları listenin sıralamasını + sütundaki sıralamaya göre değiştirecek hiper bağlar haline getirilir + (süslü liste). Aynı başlığa peşpeşe tıklamak suretiyle sıralamayı + büyükten küçüğe veya tersine değiştirebilirsiniz. Bu sütun başlığı + bağlarının oluşturulması IndexOptions yönergesi SuppressColumnSorting seçeneği ile kullanılarak + engellenebilir.

+ +

Boyuta göre sıralamada daima dosyanın asıl boyutuna bakılır. + Dolayısıyla ikisi de "1K" olarak gösterilen iki dosyadan 1010 baytlık + olanı küçükten büyüğe sıralamada 1011 baytlıktan önce + gösterilecektir.

+
+ +
top
+
+

Sütun Sıralamada Sorgu Seçenekleri

+ + +

Apache 2.0.23’te Sütun Sıralama için Sorgu Seçenekleri yeniden + düzenlenip tamamen yeni bir sorgu seçenekleri grubu oluşturulmuştur. + Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için + IndexOptions yönergesinin + IgnoreClient + seçeneği kullanılabilir.

+ +

Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper + bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu + seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.

+ +
    +
  • C=N dizini dosya adına göre sıralar
  • + +
  • C=M dizini son değişiklik zamanına ve ardından dosya + ismine göre sıralar.
  • + +
  • C=S dizini boyuta ve ardından dosya adına göre + sıralar
  • + +
  • C=D dizini açıklamaya ve ardından + dosya adına göre sıralar.
  • + +
  • O=A artan sıralama uygulanır.
  • + +
  • O=D azalan sıralama uygulanır.
  • + +
  • F=0 listeleme basit listeleme biçiminde yapılır + (FancyIndexing seçeneği ile etkinleştirilen biçimde + değil)
  • + +
  • F=1 listeleme FancyIndexing seçeneği ile + etkinleştirilen biçimde yapılır
  • + +
  • F=2 listeleme FancyIndexing ve + HTMLTable seçeneği + ile etkinleştirilen biçimde yapılır.
  • + +
  • V=0 sürüme göre sıralama iptal edilir.
  • + +
  • V=1 sürüme göre sıralama etkin + kılınır.
  • + +
  • P=kalıp sadece belirtilen + kalıp ile eşleşen dosyalar istelenir.
  • +
+ +

P=kalıp sorgu seçeneğinin normalde IndexIgnore yönergesi işleme + sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer + kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine + dikkat ediniz. mod_autoindex modülündeki Sorgu + Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz + işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi + biçimli olmak zorundadır.

+ +

Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir. + Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine + dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra + mod_autoindex tarafından son argüman olarak ele + alınacak ve çözümleme işlemi o noktada duracaktır.

+ +
+<form action="" method="get">
+  <input type="text" name="P" value="*" /> ile eşleşen
+  <select name="C">
+    <option value="N" selected="selected">isme</option>
+    <option value="M"> değişiklik tarihine</option>
+    <option value="S"> boyuta</option>
+    <option value="D"> açıklamaya</option>
+  </select> göre
+  <select name="O">
+    <option value="A" selected="selected"> artan</option>
+    <option value="D"> azalan</option>
+  </select>
+  <select name="V">
+    <option value="0" selected="selected">normal</option>
+    <option value="1"> sürümlü</option>
+  </select> sıralamayla bir
+  <select name="F">
+    <option value="0"> basit liste</option>
+    <option value="1" selected="selected"> süslü liste</option>
+    <option value="2"> tablolu liste</option>
+  </select>
+  <input type="submit" name="X" value="Göster" />
+</form>
+ +
+
top
+

AddAlt Yönergesi

+ + + + + + + +
Açıklama:Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler. +
Sözdizimi:AddAlt metin dosya [dosya] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

AddAlt yönergesi, FancyIndexing seçeneğiyle + üretilen dizin listesinde bir dosya simgesinin yerinde gösterilecek + metni belirler. dosya olarak dosya türünü + betimleyecek bir dosya uzantısı, dosya isminin bir kısmı, bir dosya ismi + kalıbı veya tam yoluyla bir dosya ismi belirtilebilir. Eğer + metin boşluk karakterleri içeriyorsa tırnak içine + (" veya ') alınmalıdır. Simge metni, simge + bulunamadığı veya istemci resim gösteremediği takdirde ya da kullanıcı + resim yüklememeyi tercih etmişse gösterilir.

+ +

Örnekler

+ AddAlt "PDF dosya" *.pdf
+ AddAlt Sıkıştırılmış *.gz *.zip *.Z +

+ +
+
top
+

AddAltByEncoding Yönergesi

+ + + + + + + +
Açıklama:Dosyanın MIME kodlamasına göre seçilen simgenin yerinde +gösterilecek metni belirler.
Sözdizimi:AddAltByEncoding metin MIME-kodlaması +[MIME-kodlaması] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

AddAltByEncoding yönergesi, FancyIndexing seçeneğiyle + üretilen dizin listesinde bir dosya simgesinin yerinde gösterilecek + metni belirler. MIME-kodlaması olarak + x-compress gibi geçerli bir içerik kodlaması + belirtilmelidir. Eğer metin boşluk karakterleri + içeriyorsa tırnak içine (" veya ') + alınmalıdır. Simge metni simge bulunamadığı veya istemci resim + gösteremediği takdirde ya da kullanıcı resim yüklememeyi tercih etmişse + gösterilir.

+ +

Örnek

+ AddAltByEncoding gzip x-gzip +

+ +
+
top
+

AddAltByType Yönergesi

+ + + + + + + +
Açıklama:Dosyanın MIME türüne göre seçilen simgenin yerinde gösterilecek +metni belirler.
Sözdizimi:AddAltByType metin MIME-türü +[MIME-türü] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

AddAltByType yönergesi, FancyIndexing seçeneğiyle + üretilen dizin listesinde bir dosya simgesinin yerinde gösterilecek + metni belirler. MIME-türü olarak + text/html gibi geçerli bir içerik türü belirtilmelidir. + Eğer metin boşluk karakterleri içeriyorsa tırnak + içine (" veya ') alınmalıdır. Simge metni + simge bulunamadığı veya istemci resim gösteremediği takdirde ya da + kullanıcı resim yüklememeyi tercih etmişse gösterilir.

+ +

Örnek

+ AddAltByType 'salt metin' text/plain +

+ +
+
top
+

AddDescription Yönergesi

+ + + + + + + +
Açıklama:Bir dosya için gösterilecek açıklama belirtilir.
Sözdizimi:AddDescription metin dosya [dosya] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

Yönerge, FancyIndexing seçeneğiyle üretilen dizin listesinde bir + dosya için gösterilecek açıklamayı belirler. dosya + olarak dosya türünü betimleyecek bir dosya uzantısı, dosya isminin bir + kısmı, bir dosya ismi kalıbı veya tam yoluyla bir dosya ismi + belirtilebilir. Eğer dosya açıklamasını içeren + metin boşluk karakterleri içeriyorsa çift tırnak + (") içine alınmalıdır.

+ +

Örnek

+ AddDescription "Mars Gezegeni" /resimler/mars.gif +

+ +

Normalde öntanımlı açıklama alanının genişliği 23 bayttır. IndexOptions SuppressIcon + seçeneği buna 6 bayt daha ekler; IndexOptions SuppressSize + seçeneği 7 bayt, IndexOptions SuppressLastModified seçeneği ise 19 bayt + ekler. Böylece en fazla 55 karakterlik öntanımlı sütun genişliğine + ulaşılabilir.

+ +

Açıklama sütununun öntanımlı genişliği geçersiz kılınabilir hatta + sınırsız açıklama uzunluğu atanabilir. Bu konu için IndexOptions yönergesinin DescriptionWidth + seçeneğinin açıklamasına bakınız.

+ +

Önemli

+

AddDescription ile tanımlanan açıklama metni + HTML etiketleri ve karakter öğeleri içerebilir. Eğer açıklama + sütununun genişlik sınırlamasından dolayı bir HTML etiketinin içeriği + kırpılırsa bu durum dizin listesinin kalanını etkileyebilir (örneğin, + kalın gösterim listenin kalanına yayılabilir).

+
+ +
+
top
+

AddIcon Yönergesi

+ + + + + + + +
Açıklama:Bir dosya için gösterilecek simgeyi dosya adına göre belirler. +
Sözdizimi:AddIcon simge isim [isim] +...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

Yönerge, FancyIndexing seçeneğiyle üretilen dizin listesinde adı + isim ile biten bir dosya için gösterilecek simgeyi + belirler. simge ya simgenin göreli URL’si (% + öncelemeli) ya da (alt-metin,url) + biçeminde olmalıdır; buradaki alt-metin simge + gösterilemediği durumda tarayıcı tarafından simgenin yerinde + gösterilecek metindir.

+ +

isim olarak ya (listeyi düzgün biçemlemek + amacıyla) dizinler için ^^DIRECTORY^^, boş satırlar için + ^^BLANKICON^^ ya da dosya türünü betimleyecek bir dosya + uzantısı, dosya isminin bir kısmı, bir dosya ismi kalıbı veya tam + yoluyla bir dosya ismi belirtilebilir.

+ +

Örnekler

+ AddIcon (IMG,/icons/image.xbm) .gif .jpg .xbm
+ AddIcon /icons/dir.xbm ^^DIRECTORY^^
+ AddIcon /icons/backup.xbm *~ +

+ +

Mümkünse AddIcon yerine AddIconByType yönergesi tercih + edilmelidir.

+ +
+
top
+

AddIconByEncoding Yönergesi

+ + + + + + + +
Açıklama:Bir dosya için gösterilecek simgeyi dosyanın MIME kodlamasına +göre belirler.
Sözdizimi:AddIconByEncoding simge MIME-kodlaması +[MIME-kodlaması] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

Yönerge, FancyIndexing seçeneğiyle üretilen dizin listesinde bir + dosya için gösterilecek simgeyi belirler. simge ya + simgenin göreli URL’si (% öncelemeli) ya da + (alt-metin,url) biçeminde olmalıdır; + buradaki alt-metin simge gösterilemediği durumda + tarayıcı tarafından simgenin yerinde gösterilecek metindir.

+ +

MIME-kodlaması olarak x-compress + gibi geçerli bir içerik kodlaması belirtilmelidir.

+ +

Örnek

+ AddIconByEncoding /icons/compress.xbm x-compress +

+ +
+
top
+

AddIconByType Yönergesi

+ + + + + + + +
Açıklama:Bir dosya için gösterilecek simgeyi dosyanın MIME türüne göre +belirler.
Sözdizimi:AddIconByType simge MIME-türü +[MIME-türü] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

Yönerge, FancyIndexing seçeneğiyle üretilen dizin listesinde MIME + türü MIME-türü olarak belirtilen bir dosya için + gösterilecek simgeyi belirler. simge ya simgenin + göreli URL’si (% öncelemeli) ya da + (alt-metin,url) biçeminde olmalıdır; + buradaki alt-metin simge gösterilemediği durumda + tarayıcı tarafından simgenin yerinde gösterilecek metindir.

+ +

MIME-türü MIME türleri ile eşleşen bir dosya kalıbı ifadesi + olabilir.

+ +

Örnek

+ AddIconByType (IMG,/icons/image.xbm) image/* +

+ +
+
top
+

DefaultIcon Yönergesi

+ + + + + + + +
Açıklama:Özel bir simge atanmamış dosyalar için gösterilecek simgeyi +belirler.
Sözdizimi:DefaultIcon URL-yolu
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

The DefaultIcon yönergesi FancyIndexing seçeneğiyle + üretilen dizin listesinde özel bir simge atanmamış dosyalar için + gösterilecek simgeyi belirler. URL-yolu simgeye + bir göreli URL (% öncelemeli) belirtir.

+ +

Örnek

+ DefaultIcon /icon/unknown.xbm +

+ +
+
top
+

HeaderName Yönergesi

+ + + + + + + +
Açıklama:Dizin listesinin tepesine yerleştirilecek dosyanın ismini +belirler.
Sözdizimi:HeaderName dosya-ismi
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

HeaderName yönergesi, dizin listesinin tepesine + yerleştirilecek dosyanın ismini belirler. Dosyanın ismi + dosya-ismi ile belirtilir.

+ +

Örnek

+ HeaderName HEADER.html +

+ +
+

HeaderName and ReadmeName yönergelerinde + dosya-ismi artık içeriği listelenecek dizine + erişmek için kullanılan bir göreli URL yolu olarak ele alınmaktadır. + Eğer dosya-ismi bir bölü çizgisi ("/") ile + başlıyorsa DocumentRoot + yönergesinde belirtilen dizine göre belirtildiği varsayılır.

+ +

Örnek

+ HeaderName /include/HEADER.html +

+ +

dosya-ismi, içerik türü text/* + (text/html, text/plain gibi) olan bir belge + olarak çözümlenmelidir. Yani, aşağıdaki örnekteki gibi betiğin asıl + dosya türü text/html olarak imlenmişse + dosya-ismi bir CGI betiğinin ismi bile + olabilir:

+ +

+ AddType text/html .cgi +

+ +

Options ile + MultiViews etkin kılınmışsa dosyaya içerik dili uzlaşımı da + uygulanabilir. dosya-ismi ile belirtilen dosya + text/html türünde durağan bir belge (bir CGI betiği + değil) ise ve options ile + Includes ve IncludesNOEXEC seçeneklerinden + biri belirtilmişse dosya bir SSI sayfası olarak ele alınır + (mod_include belgesine bakınız).

+
+ +

Eğer yönergede belirtilen dosya bir HTML belge gibi başlıyorsa + (<html>, <head>, vs.) ve bu etiketlerin yinelenmemesini + istiyorsanız IndexOptions +SuppressHTMLPreamble ataması yapmanız + gerekecektir.

+ +
+
top
+

IndexIgnore Yönergesi

+ + + + + + + +
Açıklama:Dizin içerik listesinden gizlenecek dosyaların listesi belirtilir. +
Sözdizimi:IndexIgnore dosya [dosya] ...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

IndexIgnore yönergesi, dizin içerik listesinden + gizlenecek dosyaların listesini belirtmek için kullanılır. + dosya olarak kabuk tarzı bir dosya ismi kalıbı + veya tam yoluyla bir dosya ismi belirtilebilir. Evvelce yapılmış bir + atamada değişiklik yapmak yerine birden fazla + IndexIgnore ataması yapabilirsiniz. Liste + öntanımlı olarak içinde bulunulan dizini (./) içerir.

+ +

+ IndexIgnore README .htaccess *.bak *~ +

+ +
+
top
+

IndexOptions Yönergesi

+ + + + + + + +
Açıklama:Dizin içerik listesini yapılandıracak seçenekler belirtilir. +
Sözdizimi:IndexOptions [+|-]seçenek [[+|-]seçenek] +...
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

IndexOptions yönergesi dizin içerik listesinin + davranışını belirler. seçenek olarak şunlar + belirtilebilir:

+ +
+
Charset=karakter-kümesi (Apache 2.0.61 + ve sonrası)
+ +
Charset seçeneği üretilen sayfa için bir karakter + kümesi belirtebilmenizi sağlar. Dizinin bulunduğu dosya sisteminin + karakter kodlamasına bağlı olarak öntanımlı değeri ya + ISO-8859-1 ya da UTF-8’dir. + +

Örnek

+ IndexOptions Charset=UTF-8 +

+
+ +
Type=MIME-türü (Apache 2.0.61 ve + sonrası)
+ +
Type seçeneği üretilen sayfa için bir MIME türü + belirtebilmenizi sağlar. Öntanımlı değer text/html’dir. + +

Örnek

+ IndexOptions Type=text/plain +

+
+ +
DescriptionWidth=[n | *] + (Apache 2.0.23 ve sonrası)
+ +

DescriptionWidth seçeneği üretilen sayfada açıklama + sütununun genişliğini sizin belirleyebilmenizi sağlar. Bu seçenek + kullanılmadığında veya -DescriptionWidth olarak + belirtildiğinde uygun genişliği mod_autoindex + hesaplar.

+ +

DescriptionWidth=n ile açıklama sütununun + genişliği n baytla sınırlanır.

+ +

DescriptionWidth=* ile açıklama sütununun genişliği en + uzun açıklama metni sığacak şekilde arttırılır.

+ +

Sütun genişliğinin sabitliği nedeniyle metnin + kırpılmasından kaynaklanan sorunlar için AddDescription yönergesinin + açıklamasına bakınız.

+ +
FancyIndexing
+ +
Dizin içerik listesi süslü olur.
+ +
FoldersFirst + (Apache 2.0.23 ve sonrası)
+ +
Bu seçenek etkin kılındığında dizin içerik listesinde alt dizinler + dosyalardan önce listelenir. Listelemede genel olarak iki bileşen + vardır: Alt dizinler ve dosyalar. Her biri kendi arasında sıraya + dizilir ve alt dizinlerin tamamı dosyalardan önce gösterilir. Örneğin + sıralama isme göre azalan sırada yapılıyorsa ve + FoldersFirst etkinse Zed dizini listede + Beta dizininden ve Gamma ve + Alpha dosyalarından önce yer alacaktır. Bu + seçenek sadece FancyIndexing seçeneği etkinse etkili + olacaktır.
+ +
HTMLTable + (Deneysel, Apache 2.0.23 ve sonrası)
+ +
Bu deneysel seçenek FancyIndexing seçeneği ile birlikte süslü listeleme + için basit bir tablo oluşturur. Fakat bu eski tarayıcıları yanıltır. + Bununla birlikte, Linux, WinNT gibi sağdan sola veya soldan sağa yazım + yönünün UTF-8 karakter koduna göre değiştiği platformlarda dosya + isimleri ve açıklamalar için bu özellikle gerekli olabilir.
+ +
IconsAreLinks
+ +
Bu seçenek FancyIndexing seçeneği ile birlikte süslü + listelemede dosya simgesini dosyaya bir hiper bağ haline getirir.
+ +
IconHeight[=benek-sayısı]
+ +
Bu seçeneğin varlığı IconWidth seçeneği ile + kullanıldığında dosya simgesinin img etiketinin + height ve width özniteliklerini içermesine + sebep olur. Böylece tarayıcının tüm simgelerin yüklenmesini beklemeden + sayfa yerleşimi için bir ön hesaplama yapabilmesi mümkün olur. Seçenek + bir değer belirtilmeksizin kullanıldığında Apache tarafından atanmış + standart simge yüksekliği öntanımlıdır.
+ +
IconWidth[=benek-sayısı]
+ +
Bu seçeneğin varlığı IconHeight seçeneği ile + kullanıldığında dosya simgesinin img etiketinin + height ve width özniteliklerini içermesine + sebep olur. Böylece tarayıcının tüm simgelerin yüklenmesini beklemeden + sayfa yerleşimi için bir ön hesaplama yapabilmesi mümkün olur. Seçenek + bir değer belirtilmeksizin kullanıldığında Apache tarafından atanmış + standart simge genişliği öntanımlıdır.
+ +
IgnoreCase
+ +
Bu seçenek etkin kılındığında isimler harf büyüklüğüne duyarsız + sıralanır. Örneğin, isme göre artan sıralamada IgnoreCase + etkinse Zeta dosyası alfa dosyasından sonra listelenir (Dikkat: GAMMA + daima gamma’dan önce listelenir.)
+ +
IgnoreClient
+ +
Bu seçenek mod_autoindex’in listenin sıralanmasına + etki edenler dahil tüm sorgu değişkenlerini yoksaymasına sebep olur + (örtük olarak SuppressColumnSorting uygulanır).
+ +
NameWidth=[n | *]
+ +

NameWidth seçeneği dosya ismi sütunu için bir + genişlik belirtebilmenizi mümkün kılar.

+ +

Hiç belirtilmediğinde veya -NameWidth biçeminde + belirtildiğinde mod_autoindex uygun genişliği kendisi + hesaplayacaktır.

+ +

NameWidth=n ile sütun genişliği + n bayt genişlikte sabitlenir.

+ +

NameWidth=* olduğunda ise sütun genişliği en geniş + satırın sığacağı kadar arttırılır.

+ +
ScanHTMLTitles
+ +
Bu seçenek süslü listeleme için HTML belgelerden sayfa başlığının + okunmasını sağlar. Dosya için AddDescription ile bir açıklama tanımlanmımışsa httpd + belgenin title etiketinin içeriğini okuyacaktır. Bu + seçenek işlemciyi ve diski fazla meşgul eder.
+ +
SuppressColumnSorting
+ +
Bu seçenek belirtilmişse Apache, süslü dizin listesinde sütun + başlıklarını sıralama için hiper bağ haline getirmeyecektir. Sütun + başlıkları için öntanımlı davranış hiper bağ olmak olup bunlar + seçilerek dizin listesinin o sütundaki değerlere göre sıralanması + sağlanır. Apache 2.0.23 öncesinde, bu seçenek ayrıca, sıralama + dizgesi için sorgu sözcüklerinin çözümlenmesini de iptal + ederdi. Bu davranış Apache 2.0.23’ten beri IndexOptions + IgnoreClient ile sağlanmaktadır.
+ +
SuppressDescription
+ +
Süslü listelemede dosya açıklamalarının gösterilmesini engeller. + Öntanımlı olarak hiçbir dosya açıklaması tanımlı değildir, dolayısıyla + bu seçenek kullanılarak ekran genişliğinden 23 karakterlik yer + kazanılabilir. Dosya açıklamalarının nasıl belirlendiğini öğrenmek + için AddDescription + yönergesinin açıklamasına bakınız. Ayrıca, açıklama sütununun + genişliğini ayarlayan DescriptionWidth dizin listeleme seçeneğine de + bakınız.
+ +
SuppressHTMLPreamble
+ +
Eğer dizin aslında HeaderName yönergesi ile belirtilmiş bir dosya içeriyorsa + modül normal olarak bu dosyanın içeriğinin öncesine HTML başlangıç + etiketlerini (<html>, <head>, + vs.) yerleştirir. Bu seçenek bu davranışı iptal ederek modülün dosya + içeriğinin başlangıcına bir şey eklememesini sağlar. Bu durumda başlık + dosyasının uygun HTML etiketlerini içermesi gerekir. Böyle bir başlık + dosyası yoksa normal olarak HTML başlangıç etiketleri üretilir.
+ +
SuppressIcon + (Apache 2.0.23 ve sonrası)
+ +
Süslü dizin listesinde dosya simgelerinin gösterilmesini engeller. + Son belirtim, süslü dizin listelemede kullanılan pre + etiketinin içeriğinde img ve hr + etiketlerinin bulunmasına izin vermediğinden SuppressIcon + ve SuppressRules seçenekleri birlikte kullanılarak HTML + 3.2 belirtimine uyum sağlanır.
+ +
SuppressLastModified
+ +
Süslü dizin listelemede son değişiklik tarihinin gösterilmesi + engellenir.
+ +
SuppressRules + (Apache 2.0.23 ve sonrası)
+ +
Dizin listelemede hr etiketinin kullanımını engeller. + Son belirtim, süslü dizin listelemede kullanılan pre + etiketinin içeriğinde img ve hr + etiketlerinin bulunmasına izin vermediğinden SuppressIcon + ve SuppressRules seçenekleri birlikte kullanılarak HTML + 3.2 belirtimine uyum sağlanır.
+ +
SuppressSize
+ +
Süslü dizin listelemede dosya boyutunun gösterilmesi engellenir.
+ +
TrackModified + (Apache 2.0.23 ve sonrası)
+ +
Bu seçenek listelenen dizin için HTTP başlığında + Last-Modified ve ETag alanlarının dönmesini + sağlar. Sadece işletim sistemi veya dosya sistemi uygun stat() + sonuçlarını döndürüyorsa bu geçerlidir. Bazı Unix sistemleri, OS2’nin + JFS’si ve Win32’nin NTFS’i böyledir. Ancak OS2 ve Win32 FAT dosya + sistemleri böyle değildir. Bu özellik etkin kılındığında istemci veya + vekil HEAD istekleriyle dosya listesindeki değişiklikleri + izleyebilirler. Yalnız, bazı işletim sistemlerinin yeni ve silinmiş + dosyaların izini iyi sürdüğü halde dizin içindeki dosyaların boyut ve + tarih değişikliklerini izlemediklerine dikkat ediniz. Mevcut + bir dosyanın boyut ve zaman damgasındaki değişiklikler + Last-Modified başlığının güncellenmesini tüm Unix + sistemlerinde sağlamaz. Bu gibi durumlarda bu seçeneğin + kapalı kalması daha iyidir.
+ +
VersionSort + (Apache 2.0a3 ve sonrası)
+ +
VersionSort seçeneği isimlerinde sürüm numarası bulunan + dosyaların sayısal sıralamaya uygun olarak sıralanmalarını sağlar. + Normalde sıralama karakter sıralamasına göre yapılır, ardından sürüm + numaralı dosyalar veya açıklamalar kendi aralarında sayısal sıralamaya + tabi tutulur. + +

Örnek:

+ foo-1.7
+ foo-1.7.2
+ foo-1.7.12
+ foo-1.8.2
+ foo-1.8.2a
+ foo-1.12 +

+ +

Sıfır ile başlalan numaralara ondalık sayı muamelesi yapılır:

+ +

+ foo-1.001
+ foo-1.002
+ foo-1.030
+ foo-1.04 +

+
+ +
XHTML + (Apache 2.0.49 ve sonrası)
+ +
XHTML seçeneği mod_autoindex’in kodu + HTML 3.2’ye değil XHTML 1.0’a uygun üretmesini sağlar.
+
+ + +
+ veya - Önekli Seçenekler
+
+

Apache 1.3.3’te IndexOptions yönergelerinin ele + alınışıyla ilgili önemil değişiklikler yapılmıştır. Bunlar:

+ +
    +
  • Tek bir dizin için çok sayıda IndexOptions + yönergesi belirtilmişse bunlar ayrı ayrı değil birlikte ele alınır. + Yani, + +

    + <Directory /foo> + + IndexOptions HTMLTable
    + IndexOptions SuppressColumnsorting +
    + </Directory> +

    + +

    yapılandırmasındaki IndexOptions + yönergeleri

    + +

    + IndexOptions HTMLTable SuppressColumnsorting +

    + +

    yönergesine eşdeğerdir.

    +
  • + +
  • Seçeneklerde + veya - önekleri + kullanılabilmektedir.
  • +
+ +

+ veya - önekli seçeneklere rastlandığında + bunlar mevcut (üst dizinden miras alınanlar ve/veya önceki atamalar) + IndexOptions yönergelerine uygulanır. Ancak, + önek kullanılmamış bir seçeneğe raslandığında, o noktada önceki ve + miras alınmış bu tür seçenekler iptal edilir. Şu örneği ele alalım:

+ +

+ IndexOptions +ScanHTMLTitles -IconsAreLinks FancyIndexing
+ IndexOptions +SuppressSize +

+ +

Bunun net etkisi IndexOptions FancyIndexing +SuppressSize + atamasına eşdeğerdir, çünkü öneksiz FancyIndexing seçeneği + kendinden önceki önekli seçenekleri iptal etmiş fakat hemen ardından + eklenmelerine izin vermiştir.

+ +

Belli bir dizine önceki seçenekleri temizleyerek koşulsuz olarak + tamamen yeni seçenekler atamak istiyorsanız + IndexOptions yönergesinde seçenekleri + + veya - öneklerini kullanmadan + belirtiniz.

+
+
+ +
+
top
+

IndexOrderDefault Yönergesi

+ + + + + + + + +
Açıklama:Dizin içerik listesinin öntanımlı sıralamasını belirler. +
Sözdizimi:IndexOrderDefault Ascending|Descending +Name|Date|Size|Description
Öntanımlı:IndexOrderDefault Ascending Name
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

IndexOrderDefault yönergesi FancyIndexing seçeneğinin + etkin olduğu durumda işe yarar. Öntanımlı olarak süslü listelemede dizin + içeriği dosya ismine göre artan sıralamayla listelenir. + IndexOrderDefault yönergesi bu öntanımlı + sıralamanın değiştirilmesini mümkün kılar.

+ +

IndexOrderDefault yönergesi iki değer alır. İlki + sıralama yönünü belirtmek üzere Ascending (küçükten büyüğe) + veya Descending (büyükten küçüğe) olmak zorundadır. İkinci + değer ise birincil sıralama anahtarını belirtmek üzere Name, + Date, Size ve Description + sözcüklerinden biri olmalıdır (anlamları sırayla: İsim, Tarih, Boyut, + Açıklama). İkincil sıralama anahtarı daima artan sıralamayla + dosya ismidir.

+ +

Dizin listesinin belli bir sırada gösterilmesini zorunlu kılmak için + yönergeyi SuppressColumnSorting sıralama seçeneği ile birlikte + belirtebilirsiniz; böylece, istemcinin farklı sıralamalara sahip içerik + isteğini engellemiş olursunuz.

+ +
+
top
+

ReadmeName Yönergesi

+ + + + + + + +
Açıklama:Dizin listesinin sonuna yerleştirilecek dosyanın ismini +belirler.
Sözdizimi:ReadmeName dosya-ismi
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_autoindex
+

ReadmeName yönergesi dizin listesinin sonuna + eklenecek dosyanın ismini belirler. dosya-ismi ile + listeye dahil edilecek dosyanın ismi listelenen dizine göreli olarak + belirtilir. Eğer dosya ismi bir bölü çizgisi ile başlıyorsa DocumentRoot’a göreli belirtildiği + varsayılır.

+ +

1. Örnek

+ ReadmeName FOOTER.html +

+ +

2. Örnek

+ ReadmeName /include/FOOTER.html +

+ +

Ayrıca bu davranışın daha ayrıntılı ele alındığı HeaderName yönergesine de + bakınız.

+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cache.html b/rubbos/app/apache2/manual/mod/mod_cache.html new file mode 100644 index 00000000..1960e89c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cache.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_cache.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_cache.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_cache.html.en b/rubbos/app/apache2/manual/mod/mod_cache.html.en new file mode 100644 index 00000000..8be49fbb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cache.html.en @@ -0,0 +1,387 @@ + + + +mod_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_cache

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Content cache keyed to URIs.
Status:Experimental
ModuleIdentifier:cache_module
SourceFile:mod_cache.c
+

Summary

+ +
+ This module is experimental. Documentation is still under development... +
+ +

mod_cache implements an RFC 2616 compliant HTTP + content cache that can be used to cache either local or proxied content. + mod_cache requires the services of one or more storage + management modules. Two storage management modules are included in + the base Apache distribution:

+
+
mod_disk_cache
+
implements a disk based storage manager.
+ +
mod_mem_cache
+
implements a memory based storage manager. + mod_mem_cache can be configured to operate in two + modes: caching open file descriptors or caching objects in heap storage. + mod_mem_cache can be used to cache locally generated content + or to cache backend server content for mod_proxy when + configured using ProxyPass + (aka reverse proxy)
+
+ +

Content is stored in and retrieved from the cache using URI based keys. Content with + access protection is not cached.

+
+ +
top
+
top
+
+

Sample Configuration

+

Sample httpd.conf

+ #
+ # Sample Cache Configuration
+ #
+ LoadModule cache_module modules/mod_cache.so
+
+ <IfModule mod_cache.c>
+ + #LoadModule disk_cache_module modules/mod_disk_cache.so
+ <IfModule mod_disk_cache.c>
+ + CacheRoot c:/cacheroot
+ CacheSize 256
+ CacheEnable disk /
+ CacheDirLevels 5
+ CacheDirLength 3
+
+ </IfModule>
+
+ LoadModule mem_cache_module modules/mod_mem_cache.so
+ <IfModule mod_mem_cache.c>
+ + CacheEnable mem /
+ MCacheSize 4096
+ MCacheMaxObjectCount 100
+ MCacheMinObjectSize 1
+ MCacheMaxObjectSize 2048
+
+ </IfModule>
+
+ </IfModule> +

+
+
top
+

CacheDefaultExpire Directive

+ + + + + + + +
Description:The default duration to cache a document when no expiry date is specified.
Syntax:CacheDefaultExpire seconds
Default:CacheDefaultExpire 3600 (one hour)
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

The CacheDefaultExpire directive specifies a default time, + in seconds, to cache a document if neither an expiry date nor last-modified date are provided + with the document. The value specified with the CacheMaxExpire + directive does not override this setting.

+ +

+ CacheDefaultExpire 86400 +

+ +
+
top
+

CacheDisable Directive

+ + + + + + +
Description:Disable caching of specified URLs
Syntax:CacheDisable url-string
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

The CacheDisable directive instructs + mod_cache to not cache urls at or below + url-string.

+ +

Example

+ CacheDisable /local_files +

+ +
+
top
+

CacheEnable Directive

+ + + + + + +
Description:Enable caching of specified URLs using a specified storage +manager
Syntax:CacheEnable cache_type url-string
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

The CacheEnable directive instructs + mod_cache to cache urls at or below + url-string. The cache storage manager is specified with the + cache_type argument. cache_type mem + instructs mod_cache to use the memory based storage + manager implemented by mod_mem_cache. + cache_type disk instructs + mod_cache to use the disk based storage manager + implemented by mod_disk_cache. + cache_type fd instructs + mod_cache to use the file descriptor cache implemented + by mod_mem_cache.

+

In the event that the URL space overlaps between different + CacheEnable directives (as in the example below), + each possible storage manager will be run until the first one that + actually processes the request. The order in which the storage managers are + run is determined by the order of the CacheEnable + directives in the configuration file.

+ +

+ CacheEnable mem /manual
+ CacheEnable fd /images
+ CacheEnable disk /
+

+ +
+
top
+

CacheForceCompletion Directive

+ + + + + + + +
Description:Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
Syntax:CacheForceCompletion Percentage
Default:CacheForceCompletion 60
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

Ordinarily, if a request is cancelled while the response is being + cached and delivered to the client the processing of the response will + stop and the cache entry will be removed. The + CacheForceCompletion directive specifies a + threshold beyond which the document will continue to be cached to + completion, even if the request is cancelled.

+ +

The threshold is a percentage specified as a value between + 1 and 100. A value of 0 + specifies that the default be used. A value of 100 + will only cache documents that are served in their entirety. A value + between 60 and 90 is recommended.

+ +

+ CacheForceCompletion 80 +

+ +

Note:

+ This feature is currently not implemented. +
+ +
+
top
+

CacheIgnoreCacheControl Directive

+ + + + + + + +
Description:Ignore the fact that the client requested the content not be +cached.
Syntax:CacheIgnoreCacheControl On|Off
Default:CacheIgnoreCacheControl Off
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

Ordinarily, documents with no-cache or no-store header values will not be stored in the cache. + The CacheIgnoreCacheControl directive allows this behavior to be overridden. + CacheIgnoreCacheControl On tells the server to attempt to cache the document + even if it contains no-cache or no-store header values. Documents requiring authorization will + never be cached.

+ +

+ CacheIgnoreCacheControl On +

+ +
+
top
+

CacheIgnoreHeaders Directive

+ + + + + + + +
Description:Do not store the given HTTP header(s) in the cache. +
Syntax:CacheIgnoreHeaders header-string [header-string] ...
Default:CacheIgnoreHeaders None
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

According to RFC 2616, hop-by-hop HTTP headers are not stored in + the cache. The following HTTP headers are hop-by-hop headers and thus + do not get stored in the cache in any case regardless of the + setting of CacheIgnoreHeaders:

+ +
    +
  • Connection
  • +
  • Keep-Alive
  • +
  • Proxy-Authenticate
  • +
  • Proxy-Authorization
  • +
  • TE
  • +
  • Trailers
  • +
  • Transfer-Encoding
  • +
  • Upgrade
  • +
+ +

CacheIgnoreHeaders specifies additional HTTP + headers that should not to be stored in the cache. For example, it makes + sense in some cases to prevent cookies from being stored in the cache.

+ +

CacheIgnoreHeaders takes a space separated list + of HTTP headers that should not be stored in the cache. If only hop-by-hop + headers not should be stored in the cache (the RFC 2616 compliant + behaviour), CacheIgnoreHeaders can be set to + None.

+ +

Example 1

+ CacheIgnoreHeaders Set-Cookie +

+ +

Example 2

+ CacheIgnoreHeaders None +

+ +

Warning:

+ If headers like Expires which are needed for proper cache + management are not stored due to a + CacheIgnoreHeaders setting, the behaviour of + mod_cache is undefined. +
+ +
+
top
+

CacheIgnoreNoLastMod Directive

+ + + + + + + +
Description:Ignore the fact that a response has no Last Modified +header.
Syntax:CacheIgnoreNoLastMod On|Off
Default:CacheIgnoreNoLastMod Off
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

Ordinarily, documents without a last-modified date are not cached. + Under some circumstances the last-modified date is removed (during + mod_include processing for example) or not provided + at all. The CacheIgnoreNoLastMod directive + provides a way to specify that documents without last-modified dates + should be considered for caching, even without a last-modified date. + If neither a last-modified date nor an expiry date are provided with + the document then the value specified by the + CacheDefaultExpire directive will be used to + generate an expiration date.

+ +

+ CacheIgnoreNoLastMod On +

+ +
+
top
+

CacheLastModifiedFactor Directive

+ + + + + + + +
Description:The factor used to compute an expiry date based on the +LastModified date.
Syntax:CacheLastModifiedFactor float
Default:CacheLastModifiedFactor 0.1
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

In the event that a document does not provide an expiry date but does + provide a last-modified date, an expiry date can be calculated based on + the time since the document was last modified. The + CacheLastModifiedFactor directive specifies a + factor to be used in the generation of this expiry date + according to the following formula: + + expiry-period = time-since-last-modified-date * factor + expiry-date = current-date + expiry-period + + For example, if the document was last modified 10 hours ago, and + factor is 0.1 then the expiry-period will be set to + 10*0.1 = 1 hour. If the current time was 3:00pm then the computed + expiry-date would be 3:00pm + 1hour = 4:00pm. + + If the expiry-period would be longer than that set by + CacheMaxExpire, then the latter takes + precedence.

+ +

+ CacheLastModifiedFactor 0.5 +

+ +
+
top
+

CacheMaxExpire Directive

+ + + + + + + +
Description:The maximum time in seconds to cache a document
Syntax:CacheMaxExpire seconds
Default:CacheMaxExpire 86400 (one day)
Context:server config, virtual host
Status:Experimental
Module:mod_cache
+

The CacheMaxExpire directive specifies the maximum number of + seconds for which cachable HTTP documents will be retained without checking the origin + server. Thus, documents will be out of date at most this number of seconds. This maximum + value is enforced even if an expiry date was supplied with the document.

+ +

+ CacheMaxExpire 604800 +

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cache.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_cache.html.ko.euc-kr new file mode 100644 index 00000000..0e67c69a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cache.html.ko.euc-kr @@ -0,0 +1,323 @@ + + + +mod_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_cache

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:Content cache keyed to URIs.
:Experimental
:cache_module
ҽ:mod_cache.c
+

+ +
+ ̴. ۾̴... +
+ +

mod_cache ǻͿ ִ ̳ + Ͻõ ij ִ RFC 2616 + ȣȯ HTTP ij Ѵ. mod_cache + Ϸ (storage management module) ʿϴ. + ⺻ ġ ΰ ִ:

+
+
mod_disk_cache
+
ũ ڸ Ѵ.
+ +
mod_mem_cache
+
޸𸮱 ڸ Ѵ. + mod_mem_cache ϱڸ ijϰų + (heap) ü ijϴ ΰ Ѱ + ϵ ִ. mod_mem_cache + ڽ ijϰų, (Ͻ(reverse proxy) + ˷) ProxyPass + Ͽ mod_proxy ޴ + ij ִ.
+
+ +

URI Ű ij ϰ ´. + ٺȣ ijʴ´.

+
+ +
top
+
top
+
+

+

Sample httpd.conf

+ #
+ # ij
+ #
+ LoadModule cache_module modules/mod_cache.so
+
+ <IfModule mod_cache.c>
+ + #LoadModule disk_cache_module modules/mod_disk_cache.so
+ <IfModule mod_disk_cache.c>
+ + CacheRoot c:/cacheroot
+ CacheSize 256
+ CacheEnable disk /
+ CacheDirLevels 5
+ CacheDirLength 3
+
+ </IfModule>
+
+ LoadModule mem_cache_module modules/mod_mem_cache.so
+ <IfModule mod_mem_cache.c>
+ + CacheEnable mem /
+ MCacheSize 4096
+ MCacheMaxObjectCount 100
+ MCacheMinObjectSize 1
+ MCacheMaxObjectSize 2048
+
+ </IfModule>
+
+ </IfModule> +

+
+
top
+

CacheDefaultExpire þ

+ + + + + + + +
:ð ij ⺻ Ⱓ.
:CacheDefaultExpire seconds
⺻:CacheDefaultExpire 3600 (one hour)
:ּ, ȣƮ
:Experimental
:mod_cache
+

CacheDefaultExpire þ + ð ֱټð ij ʴ + ⺻ ð Ѵ. CacheMaxExpire + ʴ´.

+ +

+ CacheDefaultExpire 86400 +

+ +
+
top
+

CacheDisable þ

+ + + + + + +
:Ư URL ij ʴ´
:CacheDisable url-string
:ּ, ȣƮ
:Experimental
:mod_cache
+

CacheDisable þ ϸ + mod_cache url-string + url ij ʴ´.

+ +

+ CacheDisable /local_files +

+ +
+
top
+

CacheEnable þ

+ + + + + + +
: ڸ Ͽ URL ijѴ
:CacheEnable cache_type url-string
:ּ, ȣƮ
:Experimental
:mod_cache
+

CacheEnable þ ϸ + mod_cache url-string + url ijѴ. ij ڴ cache_type + ƱԸƮ Ѵ. cache_type mem + mod_mem_cache ϴ ޸𸮱 + ڸ Ѵ. cache_type disk + mod_disk_cache ϴ ũ + ڸ Ѵ. cache_type fd + mod_mem_cache ϴ ϱ ij + Ѵ.

+

(Ʒ ) URL ٸ + CacheEnable þ ġ + ڰ û óҶ ڸ + Ѵ. Ͽ CacheEnable + þ ڰ ȴ.

+ +

+ CacheEnable mem /manual
+ CacheEnable fd /images
+ CacheEnable disk /
+

+ +
+
top
+

CacheForceCompletion þ

+ + + + + + + +
:û ҵǴ ijϱ +ʿ 񽺷.
:CacheForceCompletion Percentage
⺻:CacheForceCompletion 60
:ּ, ȣƮ
:Experimental
:mod_cache
+

ijϰ Ŭ̾Ʈ ߿ û + ҵǸ ó ߴܵǰ ij ׸ . + CacheForceCompletion þ û + ҵǴ ij Ѵ.

+ +

Ÿ 1 100 + ̴. 0 ϸ ⺻ Ѵ. + 100 ijѴ. + 60 90 õѴ.

+ +

+ CacheForceCompletion 80 +

+ +

:

+ ʾҴ. +
+ +
+
top
+

CacheIgnoreCacheControl þ

+ + + + + + + +
:Ŭ̾Ʈ ijʴ û Ѵ.
:CacheIgnoreCacheControl On|Off
⺻:CacheIgnoreCacheControl Off
:ּ, ȣƮ
:Experimental
:mod_cache
+

no-cache no-store ij + ʴ´. CacheIgnoreCacheControl + þ ̷ ൿ Ѵ. + CacheIgnoreCacheControl On ϸ + no-cache no-store ־ + ijѴ. ʿ ij + ʴ´.

+ +

+ CacheIgnoreCacheControl On +

+ +
+
top
+

CacheIgnoreNoLastMod þ

+ + + + + + + +
:信 Last Modified ٴ Ѵ.
:CacheIgnoreNoLastMod On|Off
⺻:CacheIgnoreNoLastMod Off
:ּ, ȣƮ
:Experimental
:mod_cache
+

ֱټ ij ʴ´.  + ֱټ ( mod_include ó߿) + ų ó ִ. + CacheIgnoreNoLastMod þ ֱټ + ݵ ijϵ . ֱټϰ + ð CacheDefaultExpire + þ ð Ѵ.

+ +

+ CacheIgnoreNoLastMod On +

+ +
+
top
+

CacheLastModifiedFactor þ

+ + + + + + + +
:LastModified ð ð ϴµ ϴ +.
:CacheLastModifiedFactor float
⺻:CacheLastModifiedFactor 0.1
:ּ, ȣƮ
:Experimental
:mod_cache
+

ð ֱټ ִ ֱټ + ð ð Ѵ. + CacheLastModifiedFactor þ + ð ϴ Ŀ factor + Ѵ: + + expiry-period = time-since-last-modified-date * factor + expiry-date = current-date + expiry-period + + , 10 ð Ǿ factor + 0.1̶ Ⱓ 10*01 = 1 ð ȴ. ð + 3:00pm̶ ð 3:00pm + 1ð = 4:00pm̴. + + Ⱓ CacheMaxExpire ٸ + CacheMaxExpire Ѵ.

+ +

+ CacheLastModifiedFactor 0.5 +

+ +
+
top
+

CacheMaxExpire þ

+ + + + + + + +
: ijϴ ʴ ִð
:CacheMaxExpire seconds
⺻:CacheMaxExpire 86400 (Ϸ)
:ּ, ȣƮ
:Experimental
:mod_cache
+

CacheMaxExpire þ + ˻ʰ ij HTTP ִ ʴ + ִð Ѵ. , ִ ŭ Ǿ. + ð Ͽ ִ밪 Ų.

+ +

+ CacheMaxExpire 604800 +

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cern_meta.html b/rubbos/app/apache2/manual/mod/mod_cern_meta.html new file mode 100644 index 00000000..65878639 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cern_meta.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_cern_meta.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_cern_meta.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_cern_meta.html.en b/rubbos/app/apache2/manual/mod/mod_cern_meta.html.en new file mode 100644 index 00000000..22e4b78b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cern_meta.html.en @@ -0,0 +1,128 @@ + + + +mod_cern_meta - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_cern_meta

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:CERN httpd metafile semantics
Status:Extension
ModuleIdentifier:cern_meta_module
SourceFile:mod_cern_meta.c
+

Summary

+ +

Emulate the CERN HTTPD Meta file semantics. Meta files are HTTP + headers that can be output in addition to the normal range of + headers for each file accessed. They appear rather like the + Apache .asis files, and are able to provide a crude way of + influencing the Expires: header, as well as providing other + curiosities. There are many ways to manage meta information, + this one was chosen because there is already a large number of + CERN users who can exploit this module.

+ +

More information on the CERN metafile semantics is available.

+
+

Directives

+ +

See also

+
+ +
top
+

MetaDir Directive

+ + + + + + + + +
Description:Name of the directory to find CERN-style meta information +files
Syntax:MetaDir directory
Default:MetaDir .web
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_cern_meta
+

Specifies the name of the directory in which Apache can find + meta information files. The directory is usually a 'hidden' + subdirectory of the directory that contains the file being + accessed. Set to "." to look in the same directory + as the file:

+ +

MetaDir .

+ +

Or, to set it to a subdirectory of the directory containing the + files:

+ +

MetaDir .meta

+ +
+
top
+

MetaFiles Directive

+ + + + + + + + +
Description:Activates CERN meta-file processing
Syntax:MetaFiles on|off
Default:MetaFiles off
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_cern_meta
+

Turns on/off Meta file processing on a per-directory basis.

+ +
+
top
+

MetaSuffix Directive

+ + + + + + + + +
Description:File name suffix for the file containg CERN-style +meta information
Syntax:MetaSuffix suffix
Default:MetaSuffix .meta
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_cern_meta
+

Specifies the file name suffix for the file containing the + meta information. For example, the default values for the two + directives will cause a request to + DOCUMENT_ROOT/somedir/index.html to look in + DOCUMENT_ROOT/somedir/.web/index.html.meta and + will use its contents to generate additional MIME header + information.

+ +

Example:

+ MetaSuffix .meta +

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cern_meta.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_cern_meta.html.ko.euc-kr new file mode 100644 index 00000000..8b48f85f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cern_meta.html.ko.euc-kr @@ -0,0 +1,120 @@ + + + +mod_cern_meta - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_cern_meta

+
+

:  en  | + ko 

+
+ + + +
:CERN Ÿ
:Extension
:cern_meta_module
ҽ:mod_cern_meta.c
+

+ +

CERN Ÿ 䳻. Ÿ ϴ + Ͽ Ϲ ܿ ߰ HTTP + ִ. ġ .asis ϰ ϰ, Expires: + ϰų ٸ ű ϵ ִ. Ÿ ٷ + پ, ̹ ϴ CERN ڵ + ߴ.

+ +

ڼ CERN metafile semantics ϶.

+
+ + +
top
+

MetaDir þ

+ + + + + + + + +
:CERN Ÿ ã 丮 ̸
:MetaDir directory
⺻:MetaDir .web
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_cern_meta
+

ġ Ÿ ã 丮 Ѵ. + 丮 ִ 丮 '' + 丮. "." ϸ 丮 + ã´:

+ +

MetaDir .

+ +

ƴϸ ִ 丮 Ѵ:

+ +

MetaDir .meta

+ +
+
top
+

MetaFiles þ

+ + + + + + + + +
:CERN Ÿ óѴ
:MetaFiles on|off
⺻:MetaFiles off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_cern_meta
+

丮 Ÿ óθ Ѵ.

+ +
+
top
+

MetaSuffix þ

+ + + + + + + + +
:CERN Ÿ ϴ ̻
:MetaSuffix suffix
⺻:MetaSuffix .meta
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_cern_meta
+

Ÿ ϴ ̻縦 Ѵ. , + þ ⺻ + DOCUMENT_ROOT/somedir/index.html ûϸ + DOCUMENT_ROOT/somedir/.web/index.html.meta + Ͽ MIME ߰Ѵ.

+ +

:

+ MetaSuffix .meta +

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgi.html b/rubbos/app/apache2/manual/mod/mod_cgi.html new file mode 100644 index 00000000..f57e574b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgi.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_cgi.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_cgi.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_cgi.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_cgi.html.en b/rubbos/app/apache2/manual/mod/mod_cgi.html.en new file mode 100644 index 00000000..3924f6ed --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgi.html.en @@ -0,0 +1,246 @@ + + + +mod_cgi - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_cgi

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Execution of CGI scripts
Status:Base
ModuleIdentifier:cgi_module
SourceFile:mod_cgi.c
+

Summary

+ + + +

Any file that has the mime type + application/x-httpd-cgi or handler + cgi-script (Apache 1.1 or later) will be treated + as a CGI script, and run by the server, with its output being + returned to the client. Files acquire this type either by + having a name containing an extension defined by the + AddType directive, or by being + in a ScriptAlias + directory.

+ +

When the server invokes a CGI script, it will add a variable + called DOCUMENT_ROOT to the environment. This + variable will contain the value of the + DocumentRoot configuration + variable.

+ +

For an introduction to using CGI scripts with Apache, see + our tutorial on Dynamic Content + With CGI.

+ +

When using a multi-threaded MPM under unix, the module + mod_cgid should be used in place of + this module. At the user level, the two modules are essentially + identical.

+
+ +
top
+
+

CGI Environment variables

+

The server will set the CGI environment variables as described + in the CGI + specification, with the following provisions:

+ +
+
PATH_INFO
+ +
This will not be available if the AcceptPathInfo directive is explicitly set to + off. The default behavior, if AcceptPathInfo is not given, is that mod_cgi will accept path info (trailing + /more/path/info following the script filename in the URI), + while the core server will return a 404 NOT FOUND error for requests + with additional path info. Omitting the AcceptPathInfo directive has the same effect as setting + it On for mod_cgi requests.
+ +
REMOTE_HOST
+ +
This will only be set if HostnameLookups is set to on (it + is off by default), and if a reverse DNS lookup of the accessing + host's address indeed finds a host name.
+ +
REMOTE_IDENT
+ +
This will only be set if IdentityCheck is set to + on and the accessing host supports the ident + protocol. Note that the contents of this variable cannot be + relied upon because it can easily be faked, and if there is a + proxy between the client and the server, it is usually + totally useless.
+ +
REMOTE_USER
+ +
This will only be set if the CGI script is subject to + authentication.
+
+
top
+
+

CGI Debugging

+

Debugging CGI scripts has traditionally been difficult, mainly + because it has not been possible to study the output (standard + output and error) for scripts which are failing to run + properly. These directives, included in Apache 1.2 and later, + provide more detailed logging of errors when they occur.

+ +

CGI Logfile Format

+

When configured, the CGI error log logs any CGI which does not + execute properly. Each CGI script which fails to operate causes + several lines of information to be logged. The first two lines + are always of the format:

+ +

+ %% [time] request-line
+ %% HTTP-status CGI-script-filename +

+ +

If the error is that CGI script cannot be run, the log file + will contain an extra two lines:

+ +

+ %%error
+ error-message +

+ +

Alternatively, if the error is the result of the script + returning incorrect header information (often due to a bug in + the script), the following information is logged:

+ +

+ %request
+ All HTTP request headers received
+ POST or PUT entity (if any)
+ %response
+ All headers output by the CGI script
+ %stdout
+ CGI standard output
+ %stderr
+ CGI standard error
+

+ +

(The %stdout and %stderr parts may be missing if the script did + not output anything on standard output or standard error).

+ +
+
top
+

ScriptLog Directive

+ + + + + + +
Description:Location of the CGI script error logfile
Syntax:ScriptLog file-path
Context:server config, virtual host
Status:Base
Module:mod_cgi, mod_cgid
+

The ScriptLog directive sets the CGI + script error logfile. If no ScriptLog is given, + no error log is created. If given, any CGI errors are logged into the + filename given as argument. If this is a relative file or path it is + taken relative to the ServerRoot. +

+ +

Example

+ ScriptLog logs/cgi_log +

+ +

This log will be opened as the user the child processes run + as, i.e. the user specified in the main User directive. This means that + either the directory the script log is in needs to be writable + by that user or the file needs to be manually created and set + to be writable by that user. If you place the script log in + your main logs directory, do NOT change the + directory permissions to make it writable by the user the child + processes run as.

+ +

Note that script logging is meant to be a debugging feature + when writing CGI scripts, and is not meant to be activated + continuously on running servers. It is not optimized for speed + or efficiency, and may have security problems if used in a + manner other than that for which it was designed.

+ +
+
top
+

ScriptLogBuffer Directive

+ + + + + + + +
Description:Maximum amount of PUT or POST requests that will be recorded +in the scriptlog
Syntax:ScriptLogBuffer bytes
Default:ScriptLogBuffer 1024
Context:server config, virtual host
Status:Base
Module:mod_cgi, mod_cgid
+

The size of any PUT or POST entity body that is logged to + the file is limited, to prevent the log file growing too big + too quickly if large bodies are being received. By default, up + to 1024 bytes are logged, but this can be changed with this + directive.

+ +
+
top
+

ScriptLogLength Directive

+ + + + + + + +
Description:Size limit of the CGI script logfile
Syntax:ScriptLogLength bytes
Default:ScriptLogLength 10385760
Context:server config, virtual host
Status:Base
Module:mod_cgi, mod_cgid
+

ScriptLogLength can be used to limit the + size of the CGI script logfile. Since the logfile logs a lot of + information per CGI error (all request headers, all script output) + it can grow to be a big file. To prevent problems due to unbounded + growth, this directive can be used to set an maximum file-size for + the CGI logfile. If the file exceeds this size, no more + information will be written to it.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgi.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_cgi.html.ja.utf8 new file mode 100644 index 00000000..053b6b56 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgi.html.ja.utf8 @@ -0,0 +1,254 @@ + + + +mod_cgi - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_cgi

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
説明:CGI スクリプトの実行
ステータス:Base
モジュール識別子:cgi_module
ソースファイル:mod_cgi.c
+

概要

+ + + +

Mime タイプが application/x-httpd-cgi + であるか、ハンドラ cgi-script (Apache 1.1 以降) + が指定されているファイルは CGI スクリプトとして扱われ、 + サーバにより実行され、その出力がクライアントに返されます。 + ファイルは、AddType + ディレクティブに指定された 拡張子を名前に含むか、 + ScriptAlias + ディレクトリに存在することによりこのタイプになります。

+ +

サーバが CGI スクリプトを実行するときには、 + DOCUMENT_ROOT + と呼ばれる変数を環境に追加します。この変数は + DocumentRoot + の値を保持します。

+ +

Apache で CGI スクリプトを使用するためのイントロダクションは、 + CGI による動的コンテンツ + を参照してください。

+ +

Unix でマルチスレッドの MPM を使っている場合は、このモジュールの + 代わりに mod_cgid を使う必要があります。 + ユーザレベルではこの二つのモジュールは本質的には同一です。

+
+ +
top
+
+

CGI 環境変数

+

サーバは CGI + 規格 で決められている CGI + 環境変数を設定します。以下のものは、条件付きで設定されます。

+ +
+
PATH_INFO
+ +
これは AcceptPathInfo ディレクティブが明示的に off + に設定されている場合は設定されません。デフォルトの、 + AcceptPathInfo が + 指定されていないときの振る舞いでは、mod_cgi はパス情報 + (URI のスクリプトのファイル名の後に続く /more/path/info) を + 受け付けますが、コアはサーバはパス情報のあるリクエストに + 対して 404 NOT FOUND エラーを返します。AcceptPathInfo + ディレクティブを + 省略すると、mod_cgi へのリクエストに対して + On を + 設定したのと同じ効果になります。
+ +
REMOTE_HOST
+ +
HostnameLookups + が on (デフォルトでは off です) + で、アクセスしているホストのアドレスの DNS + の逆引きが実際にホスト名を見つけたときにのみ設定されます。
+ +
REMOTE_IDENT
+ +
IdentityCheck + が on に設定されていて、アクセスしているホストが + ident プロトコルをサポートしているときにのみ設定されます。 + これは簡単に偽ることができ、クライアントとサーバの間に + プロキシがあればまったく役に立たないので、 + この変数の値は信用できないということに注意してください。 +
+ +
REMOTE_USER
+ +
CGI + スクリプトに認証が必要なときにのみ設定されます。
+
+
top
+
+

CGI のデバッグ

+

CGI スクリプトのデバッグは、正しく動作していないスクリプトの出力 + (標準出力とエラー) + を調べることができないために、難しい状態が続いていました。 + これらの Apache 1.2 以降にある + ディレクティブはより詳細なエラーのログ収集を提供します。

+ +

CGI ログファイルの書式

+

設定されているときには、CGI エラーログは適切に動作しないすべての + CGI をログ収集します。それぞれの正しく動作しない CGI + スクリプトは 複数の行にわたる情報がログ収集されます。最初の + 2 行は常に以下の書式です:

+ +

+ %% [time] request-line
+ %% HTTP-status CGI-script-filename +

+ +

エラーが、CGI スクリプトが実行できないというものである場合は、 + ログファイルはさらにもう 2 行書かれます:

+ +

+ %%error
+ error-message +

+ +

そうではなく、エラーが正しくないヘッダ情報を返す結果である場合 + (スクリプトのバグであることがよくあります)、 + 以下の情報がログ収集されます:

+ +

+ %request
+ 受け取ったすべての HTTP リクエストヘッダ
+ (もしあれば) POST や PUT の中身
+ %response
+ CGI スクリプトにより出力されたすべてのヘッダ
+ %stdout
+ CGI 標準出力
+ %stderr
+ CGI 標準エラー
+

+ +

(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、 + %stdout や %stderr はありません)。

+ +
+
top
+

ScriptLog ディレクティブ

+ + + + + + +
説明:CGI スクリプトのエラーログファイルの場所
構文:ScriptLog file-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_cgi, mod_cgid
+

ScriptLog ディレクティブは CGI スクリプトの + エラーログファイルを設定します。ScriptLog が + 設定されていないときは、 + エラーログは作成されません。設定されているときは、CGI + のエラーはすべて引数として与えられているファイル名にログされます。 + 相対パスで指定されているときは、 + ServerRootからの相対パスとして + 扱われます。

+ +

+ ScriptLog logs/cgi_log +

+ +

このログは子プロセスが実行されているユーザとしてオープンされます。 + すなわちUser ディレクティブで指定された + ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで + 書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで + 書き込み可能になっている必要があるということです。スクリプトログを + アクセスログなどのためのログディレクトリに書かれるようにしたときは、 + そのディレクトリを子プロセスを実行しているユーザの権限で + 書き込み可能にはしないようにしてください。

+ +

スクリプトのログ収集は CGI スクリプトを書くときの + デバッグ用の機能として意図されていて、通常のサーバで + 常に使用されるようには意図されていないということに注意してください。 + 速度や効率は最適化されておらず、設計された以外の方法で使用されると + セキュリティの問題があるかもしれません。

+ +
+
top
+

ScriptLogBuffer ディレクティブ

+ + + + + + + +
説明:スクリプトログに記録される PUT や POST リクエストの内容の上限
構文:ScriptLogBuffer bytes
デフォルト:ScriptLogBuffer 1024
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_cgi, mod_cgid
+

大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる + 問題を避けるために、ファイルにログ収集される PUT と POST + の本体の大きさは制限されています。デフォルトでは、1024 + バイトまでがログ収集されますが、 + このディレクティブはそれを変更することができます。 +

+ +
+
top
+

ScriptLogLength ディレクティブ

+ + + + + + + +
説明:CGI スクリプトのログファイルの大きさの上限
構文:ScriptLogLength bytes
デフォルト:ScriptLogLength 10385760
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_cgi, mod_cgid
+

ScriptLogLength は CGI スクリプトのログファイル + の大きさを制限するために使用することができます。ログファイルは + CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、 + すべての出力)をログしますので、すぐに大きなファイルになります。 + この大きさの制限がないことによる問題を防ぐために、 + このディレクティブを使って CGI のログファイルの + 最大のファイルサイズを設定することができます。 + ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgi.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_cgi.html.ko.euc-kr new file mode 100644 index 00000000..c5851baa --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgi.html.ko.euc-kr @@ -0,0 +1,232 @@ + + + +mod_cgi - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_cgi

+
+

:  en  | + ja  | + ko 

+
+ + + +
:CGI ũƮ
:Base
:cgi_module
ҽ:mod_cgi.c
+

+ + + +

mime type application/x-httpd-cgḭų + (ġ 1.1 ) ڵ鷯 cgi-script + CGI ũƮ νϿ, ϰ, Ŭ̾Ʈ + . AddType + þ Ȯڸ ų, ScriptAlias 丮 ȿ + CGI óȴ.

+ +

CGI ũƮ θ DOCUMENT_ROOT + ȯ溯 ߰Ѵ. DocumentRoot .

+ +

ġ CGI ũƮ ϴ Ұ + CGI 丮 + ϶.

+ +

н ߾ MPM Ѵٸ + mod_cgid ؾ Ѵ. + 忡 ⺻ ϴ.

+
+ +
top
+
+

CGI ȯ溯

+

CGI ǥ ϴ + CGI ȯ溯 Ѵ:

+ +
+
PATH_INFO
+ +
AcceptPathInfo þ off + 쿡 Ѵ. AcceptPathInfo ⺻ + ִ û 404 NOT FOUND , + mod_cgi (URI ũƮ + ϸ ڿ /more/path/info) ޴´. + AcceptPathInfo þ ϸ + mod_cgi û ؼ AcceptPathInfo On + Ͱ .
+ +
REMOTE_HOST
+ +
HostnameLookups on̰ (⺻ + off), ȣƮ ּҸ DNS ˻Ͽ ȣƮ + ã 쿡 Ѵ.
+ +
REMOTE_IDENT
+ +
IdentityCheck on̰, + ȣƮ ident ϴ 쿡 Ѵ. + ֱ⶧ + ȵǰ, Ŭ̾Ʈ ̿ Ͻð ִٸ + ǹ ϶.
+ +
REMOTE_USER
+ +
CGI ũƮ ľϴ 쿡 Ѵ.
+
+
top
+
+

CGI

+

𿡼 ߸ Ǵ ũƮ (ǥ° + ǥؿ) ⶧ CGI ũƮ ϱ + . ġ 1.2 Ŀ ߰ þ ϸ ߻ + ڼ α׿ ִ.

+ +

CGI α

+

CGI α״ CGI Ѵ. + ߻ CGI ũƮ α׿ . + ù° ׻ Ʒ ̴:

+ +

+ %% [ð] û
+ %% HTTP- CGI-ũƮ-ϸ +

+ +

CGI ũƮ αϿ + ߰ Ѵ:

+ +

+ %%error
+ +

+ +

ũƮ ( ũƮ ׶) ߸ + ȯϴ , α׿ Ѵ:

+ +

+ %request
+ HTTP
+ (ִٸ) POST PUT
+ %response
+ CGI ũƮ
+ %stdout
+ CGI ǥ
+ %stderr
+ CGI ǥؿ
+

+ +

(ũƮ ǥ̳ ǥؿ ƹ 뵵 + ʾҴٸ %stdout %stderr κ ִ).

+ +
+
top
+

ScriptLog þ

+ + + + + + +
:CGI ũƮ α ġ
:ScriptLog file-path
:ּ, ȣƮ
:Base
:mod_cgi, mod_cgid
+

ScriptLog þ CGI ũƮ + α Ѵ. ScriptLog + α׸ ʴ´. ϸ ƱԸƮ + Ͽ CGI Ѵ. θ ϸ + ServerRoot η + ޾Ƶδ. +

+ +

+ ScriptLog logs/cgi_log +

+ +

ڽ μ ϴ , User þ + α׸ . ׷ ڰ ũƮ αװ + ִ 丮 ִ, ̸  + ڿ Ѵ. ũƮ α׸ α + 丮 дٸ ڽ μ ϴ ڿ + ֱ 丮 .

+ +

ũƮ α״ CGI ũƮ ۼҶ + 뵵 ϴ ϱ ƴ + ϶. ӵ ȿ鿡 ȭ ȵְ, + ̿ ϸ Ȼ ִ.

+ +
+
top
+

ScriptLogBuffer þ

+ + + + + + + +
:ũƮ α׿ PUT Ȥ POST û ִ뷮
:ScriptLogBuffer bytes
⺻:ScriptLogBuffer 1024
:ּ, ȣƮ
:Base
:mod_cgi, mod_cgid
+

ū ޾Ƽ α ʹ Ŀ + Ͽ PUT Ȥ POST ũ⸦ Ѵ. ⺻ + 1024 Ʈ α׿ , þ Ͽ + ִ.

+ +
+
top
+

ScriptLogLength þ

+ + + + + + + +
:CGI ũƮ α ũ
:ScriptLogLength bytes
⺻:ScriptLogLength 10385760
:ּ, ȣƮ
:Base
:mod_cgi, mod_cgid
+

ScriptLogLength CGI ũƮ + α ũ⸦ Ѵ. CGI ߻Ҷ ( + û , ũƮ ) α׿ + ϵDZ⶧ ſ Ŀ ִ. Ŀ + þ Ͽ CGI α ִ + ũ⸦ Ѵ. ũⰡ + ̻ ʴ´.

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgid.html b/rubbos/app/apache2/manual/mod/mod_cgid.html new file mode 100644 index 00000000..33fcb349 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgid.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_cgid.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_cgid.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_cgid.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_cgid.html.en b/rubbos/app/apache2/manual/mod/mod_cgid.html.en new file mode 100644 index 00000000..7ef1f93f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgid.html.en @@ -0,0 +1,104 @@ + + + +mod_cgid - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_cgid

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + + +
Description:Execution of CGI scripts using an + external CGI daemon
Status:Base
ModuleIdentifier:cgid_module
SourceFile:mod_cgid.c
Compatibility:Unix threaded MPMs only
+

Summary

+ +

Except for the optimizations and the additional ScriptSock directive noted below, + mod_cgid behaves similarly to mod_cgi. + See the mod_cgi summary for additional details + about Apache and CGI.

+ +

On certain unix operating systems, forking a process from a + multi-threaded server is a very expensive operation because the + new process will replicate all the threads of the parent + process. In order to avoid incurring this expense on each CGI + invocation, mod_cgid creates an external daemon that is + responsible for forking child processes to run CGI scripts. The + main server communicates with this daemon using a unix domain + socket.

+ +

This module is used by default instead of + mod_cgi whenever a multi-threaded MPM + is selected during the compilation process. At the user level, + this module is identical in configuration and operation to + mod_cgi. The only exception is the + additional directive ScriptSock which gives the + name of the socket to use for communication with the cgi + daemon.

+
+ + +
top
+

ScriptSock Directive

+ + + + + + + +
Description:The name of the socket to use for communication with +the cgi daemon
Syntax:ScriptSock file-path
Default:ScriptSock logs/cgisock
Context:server config, virtual host
Status:Base
Module:mod_cgid
+

This directive sets the name of the socket to use for + communication with the CGI daemon. The socket will be opened + using the permissions of the user who starts Apache (usually + root). To maintain the security of communications with CGI + scripts, it is important that no other user has permission to + write in the directory where the socket is located.

+ +

Example

+ ScriptSock /var/run/cgid.sock +

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgid.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_cgid.html.ja.utf8 new file mode 100644 index 00000000..07e14b49 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgid.html.ja.utf8 @@ -0,0 +1,98 @@ + + + +mod_cgid - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_cgid

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + + +
説明:外部 CGI デーモンを使った CGI スクリプトの実行
ステータス:Base
モジュール識別子:cgid_module
ソースファイル:mod_cgid.c
互換性:Unix のスレッド MPM のみ
+

概要

+ +

最適化が施されていることと、以下で説明されている追加の ScriptSock ディレクティブを除いては、 + mod_cgidmod_cgi と同様の + 動作をします。Apache と CGI に関する詳細は + mod_cgi の概要を読んでください。

+ +

Unix オペレーティングシステムの中には、マルチスレッドのサーバから + プロセスを fork するのが非常にコストの高い動作になっているものがあります。 + 理由は、新しいプロセスが親プロセスのスレッドすべてを複製するからです。 + 各 CGI 起動時にこのコストがかかるのを防ぐために、mod_cgid + は子プロセスを fork して CGI スクリプトを実行するための + 外部デーモンを実行します。 + 主サーバは unix ドメインソケットを使ってこのデーモンと通信します。

+ +

コンパイル時にマルチスレッド MPM が選ばれたときは + mod_cgi の代わりに必ずこのモジュールが使用されます。 + ユーザのレベルではこのモジュールの設定と動作は mod_cgi + とまったく同じです。唯一の例外は ScriptSock ディレクティブの + 追加で、このディレクティブは CGI デーモンとの通信用のソケットの名前を + 指定します。

+
+ + +
top
+

ScriptSock ディレクティブ

+ + + + + + + +
説明:CGI デーモンとの通信に使われるソケットの名前
構文:ScriptSock file-path
デフォルト:ScriptSock logs/cgisock
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_cgid
+

このディレクティブは CGI デーモンとの通信に使われるソケットの + 名前を設定します。ソケットは Apache が起動されたユーザ (通常 root) の + パーミッションを用いてオープンされます。CGI スクリプトとの通信の + セキュリティを保つために、ソケットの存在するディレクトリに + 他のユーザが書き込み権限を持っていないようにすることが重要です。

+ +

+ ScriptSock /var/run/cgid.sock +

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_cgid.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_cgid.html.ko.euc-kr new file mode 100644 index 00000000..6c126f6f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_cgid.html.ko.euc-kr @@ -0,0 +1,97 @@ + + + +mod_cgid - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_cgid

+
+

:  en  | + ja  | + ko 

+
+ + + + +
:ܺ CGI Ͽ CGI ũƮ
:Base
:cgid_module
ҽ:mod_cgid.c
:н 带 ϴ MPMs
+

+ +

Ʒ ϴ ߰ ScriptSock þ ϰ + mod_cgid mod_cgi + ϰ Ѵ. ġ CGI ڼ + mod_cgi ϶.

+ +

 н ü ߾ μ + ũ(fork)ϸ ο μ θ μ 带 + ؾ ϹǷ δ ȴ. CGI ึ ̷ δ + ʱ mod_cgid CGI ũƮ ϴ + ڽ μ ũϴ ܺ . ּ + н(unix domain socket) Ͽ Ѵ.

+ +

Ҷ ߾ MPM ϸ ⺻ + mod_cgi Ѵ. + 忡 mod_cgi + ϴ. cgi + ̸ ϴ ScriptSock þ + ߰ ̴.

+
+ + +
top
+

ScriptSock þ

+ + + + + + + +
:cgi ̸
:ScriptSock file-path
⺻:ScriptSock logs/cgisock
:ּ, ȣƮ
:Base
:mod_cgid
+

þ CGI ̸ + Ѵ. ġ ( root) + . CGI ũƮ ٸ ڰ + ִ 丮 ʴ ߿ϴ.

+ +

+ ScriptSock /var/run/cgid.sock +

+ + +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_charset_lite.html b/rubbos/app/apache2/manual/mod/mod_charset_lite.html new file mode 100644 index 00000000..626fcac8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_charset_lite.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_charset_lite.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_charset_lite.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_charset_lite.html.en b/rubbos/app/apache2/manual/mod/mod_charset_lite.html.en new file mode 100644 index 00000000..fbab5e62 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_charset_lite.html.en @@ -0,0 +1,209 @@ + + + +mod_charset_lite - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_charset_lite

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Specify character set translation or recoding
Status:Experimental
ModuleIdentifier:charset_lite_module
SourceFile:mod_charset_lite.c
+

Summary

+ +

This is an experimental module and should + be used with care. Experiment with your + mod_charset_lite configuration to ensure that it + performs the desired function.

+ +

mod_charset_lite allows the administrator to + specify the source character set of objects as well as the + character set they should be translated into before sending to the + client. mod_charset_lite does not translate the + data itself but instead tells Apache what translation to + perform. mod_charset_lite is applicable to EBCDIC + and ASCII host environments. In an EBCDIC environment, Apache + normally translates text content from the code page of the Apache + process locale to ISO-8859-1. mod_charset_lite + can be used to specify that a different translation is to be + performed. In an ASCII environment, Apache normally performs no + translation, so mod_charset_lite is needed in + order for any translation to take place.

+ +

This module provides a small subset of configuration + mechanisms implemented by Russian Apache and its associated + mod_charset.

+
+ +
top
+
+

Common Problems

+ +

Invalid character set names

+ +

The character set name parameters of CharsetSourceEnc and + CharsetDefault + must be acceptable to the translation mechanism used by APR on the + system where mod_charset_lite is deployed. These + character set names are not standardized and are usually not the + same as the corresponding values used in http headers. Currently, + APR can only use iconv(3), so you can easily test your character + set names using the iconv(1) program, as follows:

+ +

+ iconv -f charsetsourceenc-value -t charsetdefault-value +

+ + +

Mismatch between character set of content and translation + rules

+ +

If the translation rules don't make sense for the content, + translation can fail in various ways, including:

+ +
    +
  • The translation mechanism may return a bad return code, + and the connection will be aborted.
  • + +
  • The translation mechanism may silently place special + characters (e.g., question marks) in the output buffer when + it cannot translate the input buffer.
  • +
+ +
+
top
+

CharsetDefault Directive

+ + + + + + + +
Description:Charset to translate into
Syntax:CharsetDefault charset
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Experimental
Module:mod_charset_lite
+

The CharsetDefault directive specifies the + charset that content in the associated container should be + translated to.

+ +

The value of the charset argument must be accepted + as a valid character set name by the character set support in + APR. Generally, this means that it must be supported by + iconv.

+ +

Example

+ <Directory /export/home/trawick/apacheinst/htdocs/convert>
+ + CharsetSourceEnc UTF-16BE
+ CharsetDefault ISO-8859-1
+
+ </Directory> +

+ +
+
top
+

CharsetOptions Directive

+ + + + + + + + +
Description:Configures charset translation behavior
Syntax:CharsetOptions option [option] ...
Default:CharsetOptions DebugLevel=0 NoImplicitAdd
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Experimental
Module:mod_charset_lite
+

The CharsetOptions directive configures certain + behaviors of mod_charset_lite. Option can + be one of

+ +
+
DebugLevel=n
+ +
The DebugLevel keyword allows you to specify + the level of debug messages generated by + mod_charset_lite. By default, no messages are + generated. This is equivalent to DebugLevel=0. + With higher numbers, more debug messages are generated, and + server performance will be degraded. The actual meanings of + the numeric values are described with the definitions of the + DBGLVL_ constants near the beginning of + mod_charset_lite.c.
+ +
ImplicitAdd | NoImplicitAdd
+ +
The ImplicitAdd keyword specifies that + mod_charset_lite should implicitly insert its + filter when the configuration specifies that the character + set of content should be translated. If the filter chain is + explicitly configured using the AddOutputFilter directive, NoImplicitAdd + should be specified so that mod_charset_lite + doesn't add its filter.
+
+ +
+
top
+

CharsetSourceEnc Directive

+ + + + + + + +
Description:Source charset of files
Syntax:CharsetSourceEnc charset
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Experimental
Module:mod_charset_lite
+

The CharsetSourceEnc directive specifies the + source charset of files in the associated container.

+ +

The value of the charset argument must be accepted + as a valid character set name by the character set support in + APR. Generally, this means that it must be supported by + iconv.

+ +

Example

+ <Directory /export/home/trawick/apacheinst/htdocs/convert>
+ + CharsetSourceEnc UTF-16BE
+ CharsetDefault ISO-8859-1
+
+ </Directory> +

+ +

The character set names in this example work with the iconv + translation support in Solaris 8.

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_charset_lite.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_charset_lite.html.ko.euc-kr new file mode 100644 index 00000000..d18aa502 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_charset_lite.html.ko.euc-kr @@ -0,0 +1,196 @@ + + + +mod_charset_lite - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_charset_lite

+
+

:  en  | + ko 

+
+ + + +
: ȯ
:Experimental
:charset_lite_module
ҽ:mod_charset_lite.c
+

+ +

̰, ְ + ؾ Ѵ. ϴ ϴ + mod_charset_lite غ.

+ +

mod_charset_lite Ͽ + հ Ŭ̾Ʈ ȯ + ִ. mod_charset_lite + ڷḦ ȯʰ ġ ȯ϶ ûѴ. + mod_charset_lite EBCDIC ASCII ȯ濡 + ִ. EBCDIC ȯ濡 ġ ġ μ + ڵ ISO-8859-1 ȯѴ. + mod_charset_lite Ͽ ٸ ȯ + ִ. ASCII ȯ濡 ġ ⺻ ȯ + ʱ⶧,  ȯ ؼ + mod_charset_lite ʿϴ.

+ +

þ ġ mod_charset + ϴ Ϻθ Ѵ.

+
+ +
top
+
+

Ϲ

+ +

߸ ̸

+ +

mod_charset_lite ϴ ý + ARP CharsetSourceEnc + CharsetDefault + Ķ ̸ ó ־ Ѵ. + ̸ ǥȭ ʾҰ, http ϴ ׻ + ʴ. APR iconv(3) ϱ⶧, + iconv(1) α׷ Ͽ Ư + ̸ ִ ִ:

+ +

+ iconv -f charsetsourceenc-value -t charsetdefault-value +

+ + +

ȯĢ ٸ

+ +

ȯĢ Ȳ + ȯ ִ:

+ +
    +
  • ȯ ȯڵ带 ȯϰ + ִ.
  • + +
  • Է¹۸ ȯ Ҷ ¹ۿ Ư + ڸ (, ǥ) ִ.
  • +
+ +
+
top
+

CharsetDefault þ

+ + + + + + + +
:ȯ
:CharsetDefault charset
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Experimental
:mod_charset_lite
+

CharsetDefault þ þ + ġ ִ ȯ Ѵ.

+ +

charset ƱԸƮ APR ϴ + ̸ ؾ Ѵ. Ϲ iconv ϴ + ǹѴ.

+ +

+ <Directory /export/home/trawick/apacheinst/htdocs/convert>
+ + CharsetSourceEnc UTF-16BE
+ CharsetDefault ISO-8859-1
+
+ </Directory> +

+ +
+
top
+

CharsetOptions þ

+ + + + + + + + +
: ȯ
:CharsetOptions option [option] ...
⺻:CharsetOptions DebugLevel=0 NoImplicitAdd
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Experimental
:mod_charset_lite
+

CharsetOptions þ + mod_charset_lite Ѵ. + Option Ʒ ׸ ִ

+ +
+
DebugLevel=n
+ +
DebugLevel Ű + mod_charset_lite ϴ ׹ + Ѵ. ⺻  ͵ ʴ´. + ̴ DebugLevel=0 . ڸ Ҽ + ׹ ϰԵǾ . + ڰ ǹ̴ mod_charset_lite.c պκ + DBGLVL_ Ǹ ϶.
+ +
ImplicitAdd | NoImplicitAdd
+ +
ImplicitAdd Ű ȯ + ϸ ڵ mod_charset_lite + Ϳ ߰Ѵ. AddOutputFilter þ ͼ + Ѵٸ, NoImplicitAdd Ͽ + mod_charset_lite ڵ Ϳ + ߰ʵ ؾ Ѵ.
+
+ +
+
top
+

CharsetSourceEnc þ

+ + + + + + + +
:
:CharsetSourceEnc charset
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Experimental
:mod_charset_lite
+

CharsetSourceEnc þ þ + ġ ִ ϵ Ѵ.

+ +

charset ƱԸƮ APR ϴ + ̸ ؾ Ѵ. Ϲ iconv ϴ + ǹѴ.

+ +

+ <Directory /export/home/trawick/apacheinst/htdocs/convert>
+ + CharsetSourceEnc UTF-16BE
+ CharsetDefault ISO-8859-1
+
+ </Directory> +

+ +

Solaris 8 iconv Ѵ.

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav.html b/rubbos/app/apache2/manual/mod/mod_dav.html new file mode 100644 index 00000000..5cdb02d8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_dav.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_dav.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_dav.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_dav.html.en b/rubbos/app/apache2/manual/mod/mod_dav.html.en new file mode 100644 index 00000000..60ed3155 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav.html.en @@ -0,0 +1,268 @@ + + + +mod_dav - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_dav

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Distributed Authoring and Versioning +(WebDAV) functionality
Status:Extension
ModuleIdentifier:dav_module
SourceFile:mod_dav.c
+

Summary

+ +

This module provides class 1 and class 2 WebDAV ('Web-based Distributed + Authoring and Versioning') functionality for Apache. This + extension to the HTTP protocol allows creating, moving, + copying, and deleting resources and collections on a remote web + server.

+
+ +
top
+
+

Enabling WebDAV

+

To enable mod_dav, add the following to a + container in your httpd.conf file:

+ +

Dav On

+ +

This enables the DAV file system provider, which is implemented + by the mod_dav_fs module. Therefore, that module + must be compiled into the server or loaded at runtime using the + LoadModule directive.

+ +

In addition, a location for the DAV lock database must be + specified in the global section of your httpd.conf + file using the DavLockDB + directive:

+ +

+ DavLockDB /usr/local/apache2/var/DavLock +

+ +

The directory containing the lock database file must be + writable by the User + and Group under which + Apache is running.

+ +

You may wish to add a <Limit> clause inside the <Location> directive to limit access to + DAV-enabled locations. If you want to set the maximum amount of + bytes that a DAV client can send at one request, you have to use + the LimitXMLRequestBody + directive. The "normal" LimitRequestBody directive has no effect on DAV + requests.

+ +

Full Example

+ DavLockDB /usr/local/apache2/var/DavLock
+
+ <Location /foo>
+ + Dav On
+
+ AuthType Basic
+ AuthName DAV
+ AuthUserFile user.passwd
+
+ <LimitExcept GET OPTIONS>
+ + require user admin
+
+ </LimitExcept>
+
+ </Location>
+

+ +

mod_dav is a descendent of Greg Stein's mod_dav for Apache 1.3. More + information about the module is available from that site.

+
top
+
+

Security Issues

+ +

Since DAV access methods allow remote clients to manipulate + files on the server, you must take particular care to assure that + your server is secure before enabling mod_dav.

+ +

Any location on the server where DAV is enabled should be + protected by authentication. The use of HTTP Basic Authentication + is not recommended. You should use at least HTTP Digest + Authentication, which is provided by the + mod_auth_digest module. Nearly all WebDAV clients + support this authentication method. An alternative is Basic + Authentication over an SSL enabled + connection.

+ +

In order for mod_dav to manage files, it must + be able to write to the directories and files under its control + using the User and + Group under which + Apache is running. New files created will also be owned by this + User and Group. For this reason, it is + important to control access to this account. The DAV repository + is considered private to Apache; modifying files outside of Apache + (for example using FTP or filesystem-level tools) should not be + allowed.

+ +

mod_dav may be subject to various kinds of + denial-of-service attacks. The LimitXMLRequestBody directive can be + used to limit the amount of memory consumed in parsing large DAV + requests. The DavDepthInfinity directive can be + used to prevent PROPFIND requests on a very large + repository from consuming large amounts of memory. Another + possible denial-of-service attack involves a client simply filling + up all available disk space with many large files. There is no + direct way to prevent this in Apache, so you should avoid giving + DAV access to untrusted users.

+
top
+
+

Complex Configurations

+ +

One common request is to use mod_dav to + manipulate dynamic files (PHP scripts, CGI scripts, etc). This is + difficult because a GET request will always run the + script, rather than downloading its contents. One way to avoid + this is to map two different URLs to the content, one of which + will run the script, and one of which will allow it to be + downloaded and manipulated with DAV.

+ +

+Alias /phparea /home/gstein/php_files
+Alias /php-source /home/gstein/php_files
+<Location /php-source> + + DAV On
+ ForceType text/plain
+
+</Location> +

+ +

With this setup, http://example.com/phparea can be + used to access the output of the PHP scripts, and + http://example.com/php-source can be used with a DAV + client to manipulate them.

+
+
top
+

Dav Directive

+ + + + + + + +
Description:Enable WebDAV HTTP methods
Syntax:Dav On|Off|provider-name
Default:Dav Off
Context:directory
Status:Extension
Module:mod_dav
+

Use the Dav directive to enable the + WebDAV HTTP methods for the given container:

+ +

+ <Location /foo>
+ + Dav On
+
+ </Location> +

+ +

The value On is actually an alias for the default + provider filesystem which is served by the mod_dav_fs module. Note, that once you have DAV enabled + for some location, it cannot be disabled for sublocations. + For a complete configuration example have a look at the section above.

+ +
+ Do not enable WebDAV until you have secured your server. Otherwise + everyone will be able to distribute files on your system. +
+ +
+
top
+

DavDepthInfinity Directive

+ + + + + + + +
Description:Allow PROPFIND, Depth: Infinity requests
Syntax:DavDepthInfinity on|off
Default:DavDepthInfinity off
Context:server config, virtual host, directory
Status:Extension
Module:mod_dav
+

Use the DavDepthInfinity directive to + allow the processing of PROPFIND requests containing the + header 'Depth: Infinity'. Because this type of request could constitute + a denial-of-service attack, by default it is not allowed.

+ +
+
top
+

DavMinTimeout Directive

+ + + + + + + +
Description:Minimum amount of time the server holds a lock on +a DAV resource
Syntax:DavMinTimeout seconds
Default:DavMinTimeout 0
Context:server config, virtual host, directory
Status:Extension
Module:mod_dav
+

When a client requests a DAV resource lock, it can also + specify a time when the lock will be automatically removed by + the server. This value is only a request, and the server can + ignore it or inform the client of an arbitrary value.

+ +

Use the DavMinTimeout directive to specify, in + seconds, the minimum lock timeout to return to a client. + Microsoft Web Folders defaults to a timeout of 120 seconds; the + DavMinTimeout can override this to a higher value + (like 600 seconds) to reduce the chance of the client losing + the lock due to network latency.

+ +

Example

+ <Location /MSWord>
+ + DavMinTimeout 600
+
+ </Location> +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_dav.html.ja.utf8 new file mode 100644 index 00000000..b54b90c0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav.html.ja.utf8 @@ -0,0 +1,274 @@ + + + +mod_dav - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_dav

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
説明:分散オーサリングとバージョン管理 +(WebDAV) 機能
ステータス:Extension
モジュール識別子:dav_module
ソースファイル:mod_dav.c
+

概要

+ +

このモジュールはクラス 1 とクラス 2 の + WebDAV + ('ウェブベースの分散オーサリングとバージョン管理') + 機能を Apache に提供します。 + この HTTP プロトコルの拡張により、リモートのウェブサーバ上にある + リソースやコレクションを + 作成、移動、複製、削除できるようになります。

+
+ +
top
+
+

Enabling WebDAV

+

mod_dav を有効にするには、httpd.conf + ファイル中のコンテナに次を加えます:

+ +

Dav On

+ +

これは DAV ファイルシステムプロバイダを有効にします。DAV + ファイルシステムプロバイダは mod_dav_fs + モジュールで実装されています。ですから、このモジュールはコンパイル時に + サーバに組み込まれているか、あるいは + LoadModule + を使用して実行時にロードされている必要があります。

+ +

さらに、DAV ロックデータベースの場所が + DavLockDB ディレクティブを使って + httd.conf ファイルのグローバルセクションに指定されている + 必要があります。

+ +

+ DavLockDB /usr/local/apache2/var/DavLock +

+ +

ロックデータベースファイルのあるディレクトリは Apache が実行されている + UserGroup に書き込み権限がある必要があります。

+ +

<Limit> + 節を <Location> + ディレクティブ内部に追加して、DAV が有効な場所への + アクセスを制限することもできます。DAV クライアントが + 一度のリクエストで送信できる最大バイト数を指定したいときは、 + LimitXMLRequestBody + ディレクティブを使用する必要があります。「通常の」 + LimitRequestBody + ディレクティブは DAV リクエストに対しては効力を持ちません。

+ +

完全な例

+ DavLockDB /usr/local/apache2/var/DavLock
+
+ <Location /foo>
+ + Dav On
+
+ AuthType Basic
+ AuthName DAV
+ AuthUserFile user.passwd
+
+ <LimitExcept GET OPTIONS>
+ + require user admin
+
+ </LimitExcept>
+
+ </Location>
+

+ +

mod_dav は Greg Stein さんの Apache 1.3 用の mod_dav に + 由来するものです。そのサイトからより多くの情報を手に入れることができます。

+
top
+
+

セキュリティの問題

+ +

DAV のアクセスメソッドは遠隔クライアントがサーバのファイルを + 操作することを可能にしますので、 mod_dav を使用する + 前に、サーバが安全であることを特に注意して確認しなければなりません。

+ +

サーバ上の DAV が使用可能になっている場所はすべて認証で保護してください。 + HTTP 基本認証の使用は推奨できません。少なくとも + mod_auth_digest モジュールで提供される HTTP + ダイジェスト認証を用いるべきです。WebDAV クライアントのほとんどは + この認証方法に対応しています。代わりに、SSL が + 有効なコネクションを通した基本認証を使うこともできます。

+ +

mod_dav がファイルを操作できるようにするためには、 + 管理下のディレクトリとファイルとに Apache が実行されている UserGroup で書き込み可能である必要があります。 + 新しく作成されるファイルもこの User + と Group に所有される + ことになります。この理由から、そのアカウントへのアクセスを制御することは + 重要です。DAV リポジトリは Apache 専用のものだとみなされています。 + Apache 以外の方法でファイルを修正すること (例えば FTP やファイルシステム + 用のツールなどを使って) は許可されていません。

+ +

mod_dav はいろいろな種類のサービス拒否攻撃にさらされる + かもしれません。LimitXMLRequestBody ディレクティブを使うと + 大きな DAV リクエストを解析するときに消費されるメモリの量を制限することが + できます。DavDepthInfinity ディレクティブは + PROPFIND リクエストが巨大リポジトリで大量のメモリを消費するのを + 防ぐことができます。他のサービス拒否攻撃には単純に使用可能なディスク領域を + 多くの大きなファイルで埋めてしまうんものがあります。これを直接防ぐ方法は + Apache にはありませんので、信用できないユーザに DAV アクセスを提供するのは + 避けた方が良いでしょう。

+
top
+
+

複雑な設定

+ +

よくある要求に、mod_dav を使って動的なファイル + (PHP スクリプト、CGI スクリプトなど) を操作したいというものがあります。 + これの実現は、GET リクエストはスクリプトの内容をダウンロードさせる + 代わりに、スクリプトを常に実行させてしまうので難しくなっています。 + これを回避する方法には、二つの違う URL を同じコンテンツにマップし、 + 一つはスクリプトを実行させ、もう一つはダウンロードさせたり、DAV から + 操作されたりするように設定するというものがあります。

+ +

+Alias /phparea /home/gstein/php_files
+Alias /php-source /home/gstein/php_files
+<Location /php-source> + + DAV On
+ ForceType text/plain
+
+</Location> +

+ +

この設定により、http://example.com/phparea を PHP スクリプトの + 出力をアクセスするために使うことができ、 + http://example.com/php-source を DAV クライアントによる + が操作のために使うことができます。

+
+
top
+

Dav ディレクティブ

+ + + + + + + +
説明:WebDAV HTTP メソッドを有効にします
構文:Dav On|Off|provider-name
デフォルト:Dav Off
コンテキスト:ディレクトリ
ステータス:Extension
モジュール:mod_dav
+

与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには + 次のようにします。

+ +

+ <Location /foo>
+ + Dav On
+
+ </Location> +

+ +

On という指定は実際には mod_dav_fs + で提供されているデフォルトのプロバイダ、filesystem + へのエイリアスになっています。一度あるロケーションで DAV + を有効にした後は、そのサブロケーションで無効化することはできない + ということに注意してください。完全な設定例は上記のセクション をご覧下さい。

+ +
+ サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。 + そうしなければ誰でもそのサーバでファイルを配布することができるように + なってしまいます。 +
+ +
+
top
+

DavDepthInfinity ディレクティブ

+ + + + + + + +
説明:PROPFIND, Depth: Infinity リクエストを許可します
構文:DavDepthInfinity on|off
デフォルト:DavDepthInfinity off
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Extension
モジュール:mod_dav
+

'Depth: Infinity' を含んでいる + PROPFIND リクエストを処理できるようにするには、 + DavDepthInfinity + ディレクティブを使います。このタイプのリクエストは + denial-of-service アタックとなりうるので、 + デフォルトでは許可されていません。

+ +
+
top
+

DavMinTimeout ディレクティブ

+ + + + + + + +
説明:サーバが DAV リソースのロックを維持する最小時間です。 +
構文:DavMinTimeout seconds
デフォルト:DavMinTimeout 0
コンテキスト:サーバ設定ファイル, バーチャルホスト, ディレクトリ
ステータス:Extension
モジュール:mod_dav
+

クライアントが DAV リソースロックを要求した場合、 + ロックがサーバによって自動的に解除されるまでの時間を + 同時に指定することができます。この値は単なるリクエストであって、 + サーバはこれを無視することもできますし、 + 任意の値をクライアントに通知することもできます。

+ +

クライアントに戻すロックタイムアウトの最小時間を、 + 秒で、指定するために DavMinTimeout + ディレクティブを使います。 + マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが; + ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、 + DavMinTimeout を使って + これをもっと大きな値 (例えば 600 秒) に上書きできます。

+ +

+ <Location /MSWord>
+ + DavMinTimeout 600
+
+ </Location> +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_dav.html.ko.euc-kr new file mode 100644 index 00000000..a2576195 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav.html.ko.euc-kr @@ -0,0 +1,263 @@ + + + +mod_dav - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_dav

+
+

:  en  | + ja  | + ko 

+
+ + + +
:Distributed Authoring and Versioning +(WebDAV)
:Extension
:dav_module
ҽ:mod_dav.c
+

+ +

ġ WebDAV + ('Web-based Distributed Authoring and Versioning') class 1 + class 2 ߰Ѵ. WebDAV ڿ + ݷ(collection) (; ݷ Ͻý 丮 + ̴) , ű, ϰ, + ֵ HTTP Ȯ ̴.

+
+ +
top
+
+

WebDAV ϱ

+

mod_dav Ϸ httpd.conf + Ͽ Ʒ ߰Ѵ:

+ +

Dav On

+ +

׷ mod_dav_fs ϴ DAV + Ͻý (provider) Ѵ. ׷Ƿ ⵵ + ϵְų LoadModule þ ߿ + о鿩 Ѵ.

+ +

, DAV (lock) ͺ̽ ġ httpd.conf + κп DavLockDB þ Ͽ + ؾ Ѵ:

+ +

+ DavLockDB /usr/local/apache2/var/DavLock +

+ +

ġ ϴ User Group ͺ̽ + ִ 丮 Ѵ.

+ +

DAV ϴ ġ ϱ <Location> þ + ȿ <Limit> + þ ִ. DAV Ŭ̾Ʈ ѹ û + ִ ִ Ʈ Ϸ LimitXMLRequestBody þ Ѵ. + "Ϲ" LimitRequestBody + þ DAV û .

+ +

ü

+ DavLockDB /usr/local/apache2/var/DavLock
+
+ <Location /foo>
+ + Dav On
+
+ AuthType Basic
+ AuthName DAV
+ AuthUserFile user.passwd
+
+ <LimitExcept GET OPTIONS>
+ + require user admin
+
+ </LimitExcept>
+
+ </Location>
+

+ +

mod_dav Greg Stein Apache 1.3 mod_dav + . ⿡ ڼ Ʈ + ϶.

+
top
+
+

+ +

DAV ϸ Ŭ̾Ʈ + ֱ⶧, mod_dav ϱ + Ư Ѵ.

+ +

DAV ġ ȣؾ Ѵ. + HTTP Basic Authentication õ ʴ´. ּ + mod_auth_digest ϴ HTTP Digest + Authentication ؾ Ѵ. WebDAV Ŭ̾Ʈ + Ѵ. ƴϸ SSL + ῡ Basic Authentication ִ.

+ +

mod_dav Ϸ, ġ + ϴ User + Group ش + 丮 Ͽ Ѵ. , + User + Group ϰ + ȴ. ׷ ƹ ϶. DAV + Ҵ ġ ִٰ Ѵ. ġ ʰ + ( FTP Ͻý Ͽ) + ϸ ȵȴ.

+ +

mod_dav 񽺰ź + ִ. LimitXMLRequestBody þ + Ͽ ū DAV û ޸𸮷 ִ. + DavDepthInfinity + þ Ͽ ޸𸮸 Ҹϱ ſ ū + PROPFIND û ִ. ܼ Ŭ̾Ʈ + ū ϵ ũ ä 񽺰ź ݵ ϴ. + ġ ̸ . ׷Ƿ ŷʴ + ڿ DAV ʵ϶.

+
top
+
+

+ +

Ϲ ϳ (PHP ũƮ, CGI ũƮ ) + ۾ mod_dav ϴ + ̴. ̴ GET û ٿε + ʰ ׻ ũƮ ϹǷ ƴ. ذ ϳ + 뿡 ΰ URL ϴ ̴. URL ũƮ + ϰ, ٸ URLδ ٿεϿ DAV ۾ + ִ.

+ +

+Alias /phparea /home/gstein/php_files
+Alias /php-source /home/gstein/php_files
+<Location /php-source> + + DAV On
+ ForceType text/plain
+
+</Location> +

+ +

http://example.com/phparea + PHP ũƮ ְ, + http://example.com/php-sourceδ DAV Ŭ̾Ʈ + ũƮ ִ.

+
+
top
+

Dav þ

+ + + + + + + +
:WebDAV HTTP ޽带 Ѵ
:Dav On|Off|provider-name
⺻:Dav Off
:directory
:Extension
:mod_dav
+

ġ WebDAV HTTP ޽带 Ϸ + Dav þ Ѵ:

+ +

+ <Location /foo>
+ + Dav On
+
+ </Location> +

+ +

On mod_dav_fs + ϴ ⺻ filesystem + Ī̴.  ġ DAV ϸ DAV + ϵ ϶. + ϶.

+ +
+ ϰ Ҷ WebDAV . ׷ + й ְ ȴ. +
+ +
+
top
+

DavDepthInfinity þ

+ + + + + + + +
:PROPFIND Depth: Infinity û 㰡Ѵ
:DavDepthInfinity on|off
⺻:DavDepthInfinity off
:ּ, ȣƮ, directory
:Extension
:mod_dav
+

DavDepthInfinity þ ϸ + 'Depth: Infinity' PROPFIND û + 㰡Ѵ. ̷ û Ͽ 񽺰ź ϱ + ⺻ ʴ´.

+ +
+
top
+

DavMinTimeout þ

+ + + + + + + +
: DAV ڿ ּҽð
:DavMinTimeout seconds
⺻:DavMinTimeout 0
:ּ, ȣƮ, directory
:Extension
:mod_dav
+

Ŭ̾Ʈ DAV ڿ (lock) ûҶ + ˾Ƽ ִ ð ˷ ִ. + ûϻ̸, Ŭ̾Ʈ û ϰ + Ŭ̾Ʈ ð ˷ ִ.

+ +

DavMinTimeout þ Ŭ̾Ʈ + ּ ð (ʴ) Ѵ. Microsoft Web Folders + ⺻ 120 ʸ Ѵ. DavMinTimeout + (600 ʿ ) ϸ Ŭ̾Ʈ Ʈ + ҰԵǴ 츦 ִ.

+ +

+ <Location /MSWord>
+ + DavMinTimeout 600
+
+ </Location> +

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav_fs.html b/rubbos/app/apache2/manual/mod/mod_dav_fs.html new file mode 100644 index 00000000..08525a40 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav_fs.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_dav_fs.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_dav_fs.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_dav_fs.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_dav_fs.html.en b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.en new file mode 100644 index 00000000..bb21d237 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.en @@ -0,0 +1,97 @@ + + + +mod_dav_fs - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_dav_fs

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:filesystem provider for mod_dav
Status:Extension
ModuleIdentifier:dav_fs_module
SourceFile:mod_dav_fs.c
+

Summary

+ +

This module requires the service of mod_dav. It acts as a support module for mod_dav and provides access to resources located in the + server's file system. The formal name of this provider is + filesystem. mod_dav backend providers + will be invoked by using the Dav + directive:

+ +

Example

+ Dav filesystem +

+ +

Since filesystem is the default provider for + mod_dav, you may simply use the value + On instead.

+
+

Directives

+ +

See also

+
+ +
top
+

DavLockDB Directive

+ + + + + + +
Description:Location of the DAV lock database
Syntax:DavLockDB file-path
Context:server config, virtual host
Status:Extension
Module:mod_dav_fs
+

Use the DavLockDB directive to specify + the full path to the lock database, excluding an extension. If + the path is not absolute, it will be taken relative to ServerRoot. The implementation of + mod_dav_fs uses a SDBM database to track user + locks.

+ + + +

Example

+ DavLockDB var/DavLock +

+ +

The directory containing the lock database file must be + writable by the User + and Group under which + Apache is running. For security reasons, you should create a + directory for this purpose rather than changing the permissions on + an existing directory. In the above example, Apache will create + files in the var/ directory under the ServerRoot with the base filename + DavLock and extension name chosen by the server.

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ja.utf8 new file mode 100644 index 00000000..217f565a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ja.utf8 @@ -0,0 +1,89 @@ + + + +mod_dav_fs - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_dav_fs

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
説明:mod_dav のためのファイルシステムプロバイダ
ステータス:Extension
モジュール識別子:dav_fs_module
ソースファイル:mod_dav_fs.c
+

概要

+ +

このモジュールは mod_dav + のサービスを必要としますmod_dav + のサポートモジュールとして動作し、サーバファイルシステム上に + 位置するリソースへのアクセスを提供します。このプロバイダの正式な名前は + filesystem です。mod_dav + バックエンドプロバイダは Dav + ディレクティブを使用して起動されます。

+ +

+ Dav filesystem +

+ +

filesystemmod_dav + のデフォルトプロバイダになっていますから、代わりに単に + On と指定することもできます。

+
+

ディレクティブ

+ +

参照

+
+ +
top
+

DavLockDB ディレクティブ

+ + + + + + +
説明:DAV ロックデータベースの位置
構文:DavLockDB file-path
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Extension
モジュール:mod_dav_fs
+

ロックデータベースへのフルパスを、拡張子を除いた形で + 指定するには、DavLockDB + を使います。パスが絶対パスでなければ、ServerRoot からの相対パスと解釈されます。 + mod_dav_fs 実装では、ユーザロックを + 追跡するために SDBM データベースを使います。

+ + + +

+ DavLockDB logs/DavLock +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ko.euc-kr new file mode 100644 index 00000000..d439c06d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dav_fs.html.ko.euc-kr @@ -0,0 +1,96 @@ + + + +mod_dav_fs - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_dav_fs

+
+

:  en  | + ja  | + ko 

+
+ + + +
:mod_dav Ͻý
:Extension
:dav_fs_module
ҽ:mod_dav_fs.c
+

+ +

mod_dav 񽺿 ʿϴ. + mod_dav ϴ Ͻýۿ + ִ ڿ ֵ Ѵ. (provider) + ĸĪ filesystem̴. Dav þ Ͽ + mod_dav ޴ ڸ Ѵ:

+ +

+ Dav filesystem +

+ +

filesystem mod_dav + ⺻ ̹Ƿ On ִ.

+
+

þ

+ +

+
+ +
top
+

DavLockDB þ

+ + + + + + +
:DAV ͺ̽ ġ
:DavLockDB file-path
:ּ, ȣƮ
:Extension
:mod_dav_fs
+

DavLockDB þ ͺ̽ + ü θ Ȯڸ ϰ Ѵ. ΰ ƴϸ + ServerRoot η + óѴ. mod_dav_fs SDBM ͺ̽ + Ѵ.

+ + + +

+ DavLockDB var/DavLock +

+ +

ġ ϴ User + Group + ͺ̽ ִ 丮 Ѵ. + Ȼ 丮 ٲٱ⺸ٴ + ͺ̽ 丮 Ѵ. ġ + ServerRoot Ʒ + var/ 丮 Ȯ + DavLock .

+ + +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_deflate.html b/rubbos/app/apache2/manual/mod/mod_deflate.html new file mode 100644 index 00000000..9bb00b5f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_deflate.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_deflate.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_deflate.html.en b/rubbos/app/apache2/manual/mod/mod_deflate.html.en new file mode 100644 index 00000000..c61f25a9 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_deflate.html.en @@ -0,0 +1,356 @@ + + + +mod_deflate - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_deflate

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Compress content before it is delivered to the +client
Status:Extension
ModuleIdentifier:deflate_module
SourceFile:mod_deflate.c
+

Summary

+ +

The mod_deflate module provides + the DEFLATE output filter that allows output from + 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> +

+ +
top
+
+

Enabling Compression

+ +

Output Compression

+

Compression is implemented by the DEFLATE + filter. The following directive + will enable compression for documents in the container where it + is placed:

+ +

+ SetOutputFilter DEFLATE +

+ +

Some popular browsers cannot handle compression of all content + so you may want to set the gzip-only-text/html note to + 1 to only allow html files to be compressed (see + below). If you set this to anything but 1 it + will be ignored.

+ +

If you want to restrict the compression to particular MIME types + in general, you may use the AddOutputFilterByType directive. Here is an example of + enabling compression only for the html files of the Apache + documentation:

+ +

+ <Directory "/your-server-root/manual">
+ + AddOutputFilterByType DEFLATE text/html
+
+ </Directory> +

+ +

For browsers that have problems even with compression of all file + types, use the BrowserMatch directive to set the no-gzip + note for that particular browser so that no compression will be + performed. You may combine no-gzip with gzip-only-text/html to get the best results. In that case + the former overrides the latter. Take a look at the following + excerpt from the configuration example + defined in the section above:

+ +

+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+ BrowserMatch \bMSIE !no-gzip !gzip-only-text/html +

+ +

At first we probe for a User-Agent string that + indicates a Netscape Navigator version of 4.x. These versions + cannot handle compression of types other than + text/html. The versions 4.06, 4.07 and 4.08 also + have problems with decompressing html files. Thus, we completely + turn off the deflate filter for them.

+ +

The third BrowserMatch + directive fixes the guessed identity of the user agent, because + the Microsoft Internet Explorer identifies itself also as "Mozilla/4" + but is actually able to handle requested compression. Therefore we + match against the additional string "MSIE" (\b means + "word boundary") in the User-Agent Header and turn off + the restrictions defined before.

+ +

Note

+ The DEFLATE filter is always inserted after RESOURCE + filters like PHP or SSI. It never touches internal subrequests. +
+ + +

Input Decompression

+

The mod_deflate module also provides a filter for + decompressing a gzip compressed request body . In order to activate + this feature you have to insert the DEFLATE filter into + the input filter chain using SetInputFilter or AddInputFilter, for example:

+ +

+ <Location /dav-area>
+ + SetInputFilter DEFLATE
+
+ </Location> +

+ +

Now if a request contains a Content-Encoding: + gzip header, the body will be automatically decompressed. + Few browsers have the ability to gzip request bodies. However, + some special applications actually do support request + compression, for instance some WebDAV clients.

+ +

Note on Content-Length

+

If you evaluate the request body yourself, don't trust + the Content-Length header! + The Content-Length header reflects the length of the + incoming data from the client and not the byte count of + the decompressed data stream.

+
+ +
top
+
+

Dealing with proxy servers

+ +

The mod_deflate module sends a Vary: + Accept-Encoding HTTP response header to alert proxies that + a cached response should be sent only to clients that send the + appropriate Accept-Encoding request header. This + prevents compressed content from being sent to a client that will + not understand it.

+ +

If you use some special exclusions dependent + on, for example, the User-Agent header, you must + manually configure an addition to the Vary header + to alert proxies of the additional restrictions. For example, + in a typical configuration where the addition of the DEFLATE + filter depends on the User-Agent, you should add:

+ +

+ Header append Vary User-Agent +

+ +

If your decision about compression depends on other information + than request headers (e.g. HTTP version), you have to set the + Vary header to the value *. This prevents + compliant proxies from caching entirely.

+ +

Example

+ Header set Vary * +

+
+
top
+

DeflateBufferSize Directive

+ + + + + + + +
Description:Fragment size to be compressed at one time by zlib
Syntax:DeflateBufferSize value
Default:DeflateBufferSize 8096
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateBufferSize directive specifies + the size in bytes of the fragments that zlib should compress at one + time.

+ +
+
top
+

DeflateCompressionLevel Directive

+ + + + + + + + +
Description:How much compression do we apply to the output
Syntax:DeflateCompressionLevel value
Default:Zlib's default
Context:server config, virtual host
Status:Extension
Module:mod_deflate
Compatibility:This directive is available since Apache 2.0.45
+

The DeflateCompressionLevel directive specifies + what level of compression should be used, the higher the value, + the better the compression, but the more CPU time is required to + achieve this.

+

The value must between 1 (less compression) and 9 (more compression).

+ +
+
top
+

DeflateFilterNote Directive

+ + + + + + + +
Description:Places the compression ratio in a note for logging
Syntax:DeflateFilterNote [type] notename
Context:server config, virtual host
Status:Extension
Module:mod_deflate
Compatibility:type is available since Apache 2.0.45
+

The DeflateFilterNote directive + specifies that a note about compression ratios should be attached + to the request. The name of the note is the value specified for + the directive. You can use that note for statistical purposes by + adding the value to your access log.

+ +

Example

+ DeflateFilterNote ratio
+
+ LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
+ CustomLog logs/deflate_log deflate +

+ +

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:

+ +
+
Input
+
Store the byte count of the filter's input stream in the note.
+ +
Output
+
Store the byte count of the filter's output stream in the note.
+ +
Ratio
+
Store the compression ratio (output/input * 100) + in the note. This is the default, if the type argument + is omitted.
+
+ +

Thus you may log it this way:

+ +

Accurate Logging

+ DeflateFilterNote Input instream
+ DeflateFilterNote Output outstream
+ DeflateFilterNote Ratio ratio
+
+ LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
+ CustomLog logs/deflate_log deflate +

+ +

See also

+ +
+
top
+

DeflateMemLevel Directive

+ + + + + + + +
Description:How much memory should be used by zlib for compression
Syntax:DeflateMemLevel value
Default:DeflateMemLevel 9
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateMemLevel directive specifies + how much memory should be used by zlib for compression + (a value between 1 and 9).

+ +
+
top
+

DeflateWindowSize Directive

+ + + + + + + +
Description:Zlib compression window size
Syntax:DeflateWindowSize value
Default:DeflateWindowSize 15
Context:server config, virtual host
Status:Extension
Module:mod_deflate
+

The DeflateWindowSize directive specifies the + zlib compression window size (a value between 1 and 15). Generally, the + higher the window size, the higher can the compression ratio be expected.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_deflate.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_deflate.html.ja.utf8 new file mode 100644 index 00000000..03c50b8b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_deflate.html.ja.utf8 @@ -0,0 +1,357 @@ + + + +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-gzipgzip-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 フィルタは内部的なサブリクエストを関知しません。 +
+ + + +

入力の伸張

+

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/rubbos/app/apache2/manual/mod/mod_deflate.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_deflate.html.ko.euc-kr new file mode 100644 index 00000000..f9edbe42 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_deflate.html.ko.euc-kr @@ -0,0 +1,341 @@ + + + +mod_deflate - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_deflate

+
+

:  en  | + ja  | + ko 

+
+ + + +
: Ŭ̾Ʈ Ѵ
:Extension
:deflate_module
ҽ:mod_deflate.c
+

+ +

mod_deflate Ʈ + Ŭ̾Ʈ ϴ DEFLATE ͸ + Ѵ.

+
+ +
top
+
+

ϴ

+

ߺ ̴.

+ +

Ϻ type

+ AddOutputFilterByType DEFLATE text/html text/plain text/xml +

+ +

Ʒ Ͽ ׷ ϴ. + ϶.

+ +

̹

+ <Location />
+ + # ͸ ߰Ѵ
+ SetOutputFilter DEFLATE
+
+ # Netscape 4.x ִ...
+ BrowserMatch ^Mozilla/4 gzip-only-text/html
+
+ # Netscape 4.06-4.08 ִ
+ BrowserMatch ^Mozilla/4\.0[678] no-gzip
+
+ # MSIE Netscape ڽ ˸,
+ # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
+
+ # : ġ 2.0.48 mod_setenvif ׶
+ # ǥ ʴ´. ϴ ȿ
+ # Ͽ Ѵ:
+ BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
+
+ # ̹ ʴ´
+ SetEnvIfNoCase Request_URI \
+ + \.(?:gif|jpe?g|png)$ no-gzip dont-vary
+
+
+ # Ͻð ߸ ʵ Ѵ
+ Header append Vary User-Agent env=!dont-vary
+
+ </Location> +

+ +
top
+
+

ϱ

+ +

+

DEFLATE + Ѵ. þ þ ִ ġ + Ѵ:

+ +

+ SetOutputFilter DEFLATE +

+ +

ϸ ó ϴ ֱ⶧ + html ϸ ϱ (Ʒ ) + gzip-only-text/html 1 + 𸥴. ̸ 1 ƴ ϸ + Ѵ.

+ +

Ư MIME type Ϸ AddOutputFilterByType þ Ѵ. + 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 + ƴ type ó Ѵ. 4.06, 4.07, 4.08 + html óϴ´뵵 ִ. ׷ 츮 + deflate ͸ ʴ´.

+ +

° BrowserMatch + þ Microsoft Internet Explorer ڽ "Mozilla/4" + ˸ û ó ֱ⶧ user agent + Ѵ. User-Agent "MSIE" + (\b "ܾ " Ѵ) ڿ ߰ϸ + տ Ǭ.

+ +

+ DEFLATE ʹ ׻ PHP SSI RESOURCE + ڿ . , û(subrequest) + ʴ´. +
+ + +

Է Ǯ

+

mod_deflate gzip û + Ǫ ͵ Ѵ. Ϸ + SetInputFilter + AddInputFilter + Ͽ Էͼ DEFLATE ͸ + ߰Ѵ.

+ +

+ <Location /dav-area>
+ + SetInputFilter DEFLATE
+
+ </Location> +

+ +

û Content-Encoding: gzip ִٸ + ڵ Ǭ. gzip û ִ + 幰. ׷  WebDAV Ŭ̾Ʈ + Ư α׷ û Ѵ.

+ +

Content-Length

+

û 캻ٸ, Content-Length + ! Content-Length Ŭ̾Ʈ + , Ǭ Ʈ + ƴϴ.

+
+ +
top
+
+

Ͻ ٷ

+ +

mod_deflate Ͻð ڽ ij + Accept-Encoding û + Ŭ̾ƮԸ Vary: + Accept-Encoding HTTP ߰Ѵ. ׷ + Ŭ̾Ʈ + ʵ Ѵ.

+ +

, User-Agent  Ư + Ѵٸ, Ͻÿ ̷ ˷ֱ + Vary ߰ؾ Ѵ. , + User-Agent DEFLATE + ͸ ߰Ѵٸ Ѵ:

+ +

+ Header append Vary User-Agent +

+ +

û ٸ ( , HTTP ) + ΰ ȴٸ, Vary + * ؾ Ѵ. ׷ ǥ Ͻô + ij ʰ ȴ.

+ +

+ Header set Vary * +

+
+
top
+

DeflateBufferSize þ

+ + + + + + + +
:zlib ѹ ũ
:DeflateBufferSize value
⺻:DeflateBufferSize 8096
:ּ, ȣƮ
:Extension
:mod_deflate
+

DeflateBufferSize þ zlib + ѹ Ʈ Ѵ.

+ +
+
top
+

DeflateCompressionLevel þ

+ + + + + + + + +
: ϴ°
:DeflateCompressionLevel value
⺻:Zlib's default
:ּ, ȣƮ
:Extension
:mod_deflate
:ġ 2.0.45
+

DeflateCompressionLevel þ + Ѵ. Ŭ , + CPU Ѵ.

+

( ) 1 ( ) 9 Ѵ.

+ +
+
top
+

DeflateFilterNote þ

+ + + + + + + +
: α׿ Ѵ
:DeflateFilterNote [type] notename
:ּ, ȣƮ
:Extension
:mod_deflate
:type ġ 2.0.45
+

DeflateFilterNote þ û + α׿ ϴ ȣ Ѵ. ȣ ̸ þ + ̴. 踦 + α ȣ ִ.

+ +

+ DeflateFilterNote ratio
+
+ LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate
+ CustomLog logs/deflate_log deflate +

+ +

α׿ Ȯ Ϸ type ƱԸƮ + ڷḦ Ѵ. type ϳ̴:

+ +
+
Input
+
Է½Ʈ Ʈ Ѵ.
+ +
Output
+
½Ʈ Ʈ Ѵ..
+ +
Ratio
+
(output/input * 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 + )

+ +
+
top
+

DeflateWindowSize þ

+ + + + + + + +
:Zlib window size
:DeflateWindowSize value
⺻:DeflateWindowSize 15
:ּ, ȣƮ
:Extension
:mod_deflate
+

DeflateWindowSize þ zlib + window size (1 15 ) Ѵ. Ϲ + window size Ŭ Ѵ.

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dir.html b/rubbos/app/apache2/manual/mod/mod_dir.html new file mode 100644 index 00000000..3daf13e1 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dir.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_dir.html.en b/rubbos/app/apache2/manual/mod/mod_dir.html.en new file mode 100644 index 00000000..e4f57e76 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dir.html.en @@ -0,0 +1,171 @@ + + + +mod_dir - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_dir

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Provides for "trailing slash" redirects and + serving directory index files
Status:Base
ModuleIdentifier:dir_module
SourceFile:mod_dir.c
+

Summary

+ +

The index of a directory can come from one of two sources:

+ +
    +
  • A file written by the user, typically called + index.html. The DirectoryIndex directive sets the + name of this file. This is controlled by + mod_dir.
  • + +
  • Otherwise, a listing generated by the server. This is + provided by mod_autoindex.
  • +
+

The two functions are separated so that you can completely + remove (or replace) automatic index generation should you want + to.

+ +

A "trailing slash" redirect is issued when the server + receives a request for a URL + http://servername/foo/dirname where + dirname is a directory. Directories require a + trailing slash, so mod_dir issues a redirect to + http://servername/foo/dirname/.

+
+

Directives

+ +
+ +
top
+

DirectoryIndex Directive

+ + + + + + + + +
Description:List of resources to look for when the client requests +a directory
Syntax:DirectoryIndex + local-url [local-url] ...
Default:DirectoryIndex index.html
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_dir
+

The DirectoryIndex directive sets the + list of resources to look for, when the client requests an index + of the directory by specifying a / at the end of the directory + name. Local-url is the (%-encoded) URL of a document on + the server relative to the requested directory; it is usually the + name of a file in the directory. Several URLs may be given, in + which case the server will return the first one that it finds. If + none of the resources exist and the Indexes option is + set, the server will generate its own listing of the + directory.

+ +

Example

+ DirectoryIndex index.html +

+ +

then a request for http://myserver/docs/ would + return http://myserver/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 + directory;

+ +

+ DirectoryIndex index.html index.txt /cgi-bin/index.pl +

+ +

would cause the CGI script /cgi-bin/index.pl to be + executed if neither index.html or index.txt + existed in a directory.

+ +
+
top
+

DirectorySlash Directive

+ + + + + + + + + +
Description:Toggle trailing slash redirects on or off
Syntax:DirectorySlash On|Off
Default:DirectorySlash On
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_dir
Compatibility:Available in version 2.0.51 and later
+

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 + resource, but with trailing slash for some good reasons:

+ +
    +
  • The user is finally requesting the canonical URL of the resource
  • +
  • mod_autoindex works correctly. Since it doesn't emit + the path in the link, it would point to the wrong path.
  • +
  • DirectoryIndex will be evaluated + only for directories requested with trailing slash.
  • +
  • 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:

+ +

+ # see security warning below!
+ <Location /some/path>
+ + DirectorySlash Off
+ SetHandler some-handler
+
+ </Location> +

+ +

Security Warning

+

Turning off the trailing slash redirect may result in an information + disclosure. Consider a situation where mod_autoindex is + active (Options +Indexes) and DirectoryIndex is set to a valid resource (say, + index.html) and there's no other special handler defined for + that URL. In this case a request with a trailing slash would show the + index.html file. But a request without trailing slash + would list the directory contents.

+
+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dir.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_dir.html.ja.utf8 new file mode 100644 index 00000000..e8d61929 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dir.html.ja.utf8 @@ -0,0 +1,184 @@ + + + +mod_dir - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_dir

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:「最後のスラッシュ」のリダイレクトと、ディレクトリの +インデックスファイルを扱う機能を提供する
ステータス: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.htmlindex.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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dir.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_dir.html.ko.euc-kr new file mode 100644 index 00000000..6ff50bba --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dir.html.ko.euc-kr @@ -0,0 +1,171 @@ + + + +mod_dir - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_dir

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:" " ̷ ϰ 丮 +index Ѵ
:Base
:dir_module
ҽ:mod_dir.c
+

+ +

丮 index Ѱ ȴ:

+ + +

Ѵٸ ڵ index + (Ȥ ü) ִ.

+ +

dirname 丮 URL + http://servername/foo/dirname û + " " ̷ . 丮 + ʿϴ. ׷ mod_dir + http://servername/foo/dirname/ ̷ + .

+
+ + +
top
+

DirectoryIndex þ

+ + + + + + + + +
:Ŭ̾Ʈ 丮 ûҶ ãƺ ڿ
:DirectoryIndex + local-url [local-url] ...
⺻:DirectoryIndex index.html
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_dir
+

DirectoryIndex þ Ŭ̾Ʈ + 丮 / ٿ 丮 index ûҶ ãƺ + ڿ Ѵ. Local-url û 丮 + (% ڵ) URL̴. 丮 + ִ ϸ̴. URL ְ, + ù° ã . ڿ ã + Indexes ɼ Ͽٸ 丮 + .

+ +

+ DirectoryIndex index.html +

+ +

http://myserver/docs/ ûҶ + http://myserver/docs/index.html ̸ + , ٸ 丮 .

+ +

ݵ 丮 ʿ .

+ +

+ 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
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_dir
:ġ 2.0.51 ĺ
+

DirectorySlash þ + mod_dir 丮 Ű URL + θ Ѵ.

+ +

ڰ 丮 شϴ ڿ + ûϸ, mod_dir + ڸ ڿ + ̷Ѵ.

+ + + +

׷ ʰ + ſ ˸ ʴٸ ̷ + ִ.

+ +

+ # Ʒ !
+ <Location /some/path>
+ + DirectorySlash Off
+ SetHandler some-handler
+
+ </Location> +

+ +

+

̷ ִ. + (Options +Indexes) mod_autoindex + ϰ DirectoryIndex + (index.html ) ȿ ڿ Ͽ + ش URL ٸ Ư ڵ鷯 Ȳ غ. + ִ û index.html + ش. ׷ û + 丮 ش.

+
+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dir.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_dir.html.tr.utf8 new file mode 100644 index 00000000..12f457f0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dir.html.tr.utf8 @@ -0,0 +1,170 @@ + + + +mod_dir - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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.

+
+

Yönergeler

+ +
+ +
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://sunucum/belgeler/ isteğine karşılık, sunucu, + mevcutsa http://sunucum/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 ne index.html ne de + index.txt mevcut olduğunda /cgi-bin/index.pl + CGI betiği çalıştırılacaktır.

+ +
+
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 şöyle kapatabilirsiniz:

+ +

+ # 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ı.

+
+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_disk_cache.html b/rubbos/app/apache2/manual/mod/mod_disk_cache.html new file mode 100644 index 00000000..247749f3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_disk_cache.html @@ -0,0 +1,9 @@ +# 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.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_disk_cache.html.en b/rubbos/app/apache2/manual/mod/mod_disk_cache.html.en new file mode 100644 index 00000000..40a88871 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_disk_cache.html.en @@ -0,0 +1,368 @@ + + + +mod_disk_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_disk_cache

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Content cache storage manager keyed to URIs
Status:Experimental
ModuleIdentifier:disk_cache_module
SourceFile:mod_disk_cache.c
+

Summary

+ +
+ This module is experimental. Documentation is still under development... +
+ +

mod_disk_cache implements a disk based storage + manager. It is primarily of use in conjunction with + mod_proxy.

+ +

Content is stored in and retrieved from the cache using URI based + keys. Content with access protection is not cached.

+ +

Note:

+

mod_disk_cache requires the services of + mod_cache.

+
+
+ + +
top
+

CacheDirLength Directive

+ + + + + + + +
Description:The number of characters in subdirectory names
Syntax:CacheDirLength length
Default:CacheDirLength 2
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheDirLength directive sets the number + of characters for each subdirectory name in the cache hierarchy.

+ +
+

The result of CacheDirLevels* CacheDirLength + must not be higher than 20.

+
+ +

+ CacheDirLength 4 +

+ +
+
top
+

CacheDirLevels Directive

+ + + + + + + +
Description:The number of levels of subdirectories in the +cache.
Syntax:CacheDirLevels levels
Default:CacheDirLevels 3
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheDirLevels directive sets the number + of subdirectory levels in the cache. Cached data will be saved this + many directory levels below the CacheRoot directory.

+ +
+

The result of CacheDirLevels* + CacheDirLength must + not be higher than 20.

+
+ +

+ CacheDirLevels 5 +

+ +
+
top
+

CacheExpiryCheck Directive

+ + + + + + + +
Description:Indicates if the cache observes Expires dates when seeking +files
Syntax:CacheExpiryCheck On|Off
Default:CacheExpiryCheck On
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheExpiryCheck Off
+

+ +
+ The CacheExpiryCheck directive is currently + not implemented. +
+ +
+
top
+

CacheGcClean Directive

+ + + + + + + +
Description:The time to retain unchanged cached files that match a +URL
Syntax:CacheGcClean hours url-string
Default:CacheGcClean ?
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheGcClean 12 /daily_scripts +

+ +
+ The CacheGcClean directive is currently + not implemented. +
+ +
+
top
+

CacheGcDaily Directive

+ + + + + + + +
Description:The recurring time each day for garbage collection to be run. +(24 hour clock)
Syntax:CacheGcDaily time
Default:CacheGcDaily ?
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheGcDaily 23:59 +

+ +
+ The CacheGcDaily directive is currently + not implemented. +
+ +
+
top
+

CacheGcInterval Directive

+ + + + + + +
Description:The interval between garbage collection attempts.
Syntax:CacheGcInterval hours
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheGcInterval directive specifies the + number of hours to wait between attempts to free up disk space.

+

More detail will be added here, when the function is implemented.

+ +

+ CacheGcInterval 24
+

+ +
+ The CacheGcInterval directive is currently + not implemented. +
+ +
+
top
+

CacheGcMemUsage Directive

+ + + + + + + +
Description:The maximum kilobytes of memory used for garbage +collection
Syntax:CacheGcMemUsage KBytes
Default:CacheGcMemUsage ?
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheGcMemUsage 16 +

+ +
+ The CacheGcMemUsage directive is currently + not implemented. +
+ +
+
top
+

CacheGcUnused Directive

+ + + + + + + +
Description:The time to retain unreferenced cached files that match a +URL.
Syntax:CacheGcUnused hours url-string
Default:CacheGcUnused ?
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheGcUnused 12 /local_images +

+ +
+ The CacheGcUnused directive is currently + not implemented. +
+ +
+
top
+

CacheMaxFileSize Directive

+ + + + + + + +
Description:The maximum size (in bytes) of a document to be placed in the +cache
Syntax:CacheMaxFileSize bytes
Default:CacheMaxFileSize 1000000
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheMaxFileSize directive sets the + maximum size, in bytes, for a document to be considered for storage in + the cache.

+ +

+ CacheMaxFileSize 64000 +

+ +
+
top
+

CacheMinFileSize Directive

+ + + + + + + +
Description:The minimum size (in bytes) of a document to be placed in the +cache
Syntax:CacheMinFileSize bytes
Default:CacheMinFileSize 1
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheMinFileSize directive sets the + minimum size, in bytes, for a document to be considered for storage + in the cache.

+ +

+ CacheMinFileSize 64 +

+ +
+
top
+

CacheRoot Directive

+ + + + + + +
Description:The directory root under which cache files are +stored
Syntax:CacheRoot directory
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheRoot directive defines the name of + the directory on the disk to contain cache files. If the mod_disk_cache module has been loaded or compiled in to the + Apache server, this directive must be defined. Failing to + provide a value for CacheRoot will result in + a configuration file processing error. The CacheDirLevels and CacheDirLength directives define + the structure of the directories under the specified root directory.

+ +

+ CacheRoot c:/cacheroot +

+ +
+
top
+

CacheSize Directive

+ + + + + + + +
Description:The maximum amount of disk space that will be used by the +cache in KBytes
Syntax:CacheSize KBytes
Default:CacheSize 1000000
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

The CacheSize directive sets the desired + disk space usage of the cache, in KBytes (1024-byte units). This + directive does not put a hard limit on the size of the cache. The + garbage collector will delete files until the usage is at or below the + settings. Always use a value that is lower than the available disk + space.

+ +

+ CacheSize 5000000 +

+ +
+
top
+

CacheTimeMargin Directive

+ + + + + + + +
Description:The minimum time margin to cache a document
Syntax:CacheTimeMargin ?
Default:CacheTimeMargin ?
Context:server config, virtual host
Status:Experimental
Module:mod_disk_cache
+

More detail will be added here, when the function is implemented.

+ +

+ CacheTimeMargin X +

+ +
+ The CacheTimeMargin directive is currently + not implemented. +
+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_disk_cache.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_disk_cache.html.ko.euc-kr new file mode 100644 index 00000000..4ad81ee0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_disk_cache.html.ko.euc-kr @@ -0,0 +1,355 @@ + + + +mod_disk_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_disk_cache

+
+

:  en  | + ko 

+
+ + + +
:Content cache storage manager keyed to URIs
:Experimental
:disk_cache_module
ҽ:mod_disk_cache.c
+

+ +
+ ̴. ۾̴... +
+ +

mod_disk_cache ũ ڸ + Ѵ. ⺻ mod_proxy + Ѵ.

+ +

URI Ű ij ϰ ´. + ٺȣ ijʴ´.

+ +

:

+

mod_disk_cache + mod_cache ʿϴ.

+
+
+ + +
top
+

CacheDirLength þ

+ + + + + + + +
:丮 ڰ
:CacheDirLength length
⺻:CacheDirLength 2
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheDirLength þ ij + 丮 ڼ Ѵ.

+ +
+

CacheDirLevels + CacheDirLength Ͽ 20 + ũ ȵȴ.

+
+ +

+ CacheDirLength 4 +

+ +
+
top
+

CacheDirLevels þ

+ + + + + + + +
:ij 丮 .
:CacheDirLevels levels
⺻:CacheDirLevels 3
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheDirLevels þ ij + 丮 ̸ Ѵ. ij ڷḦ CacheRoot 丮 + Ʒ ̱ Ѵ.

+ +
+

CacheDirLevels CacheDirLength + Ͽ 20 ũ ȵȴ.

+
+ +

+ CacheDirLevels 5 +

+ +
+
top
+

CacheExpiryCheck þ

+ + + + + + + +
:ij ã ð
:CacheExpiryCheck On|Off
⺻:CacheExpiryCheck On
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheExpiryCheck Off
+

+ +
+ CacheExpiryCheck þ + ʾҴ. +
+ +
+
top
+

CacheGcClean þ

+ + + + + + + +
:URL شϴ ij ð
:CacheGcClean hours url-string
⺻:CacheGcClean ?
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheGcClean 12 /daily_scripts +

+ +
+ CacheGcClean þ + ʾҴ. +
+ +
+
top
+

CacheGcDaily þ

+ + + + + + + +
: ÷͸ ݺ ð (24 ð)
:CacheGcDaily time
⺻:CacheGcDaily ?
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheGcDaily 23:59 +

+ +
+ CacheGcDaily þ + ʾҴ. +
+ +
+
top
+

CacheGcInterval þ

+ + + + + + +
:÷͸ ϴ .
:CacheGcInterval hours
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheGcInterval þ ī÷Ͱ + ũ ð ð Ѵ.

+

Լ Ǹ ڼ ´.

+ +

+ CacheGcInterval 24
+

+ +
+ CacheGcInterval þ + ʾҴ. +
+ +
+
top
+

CacheGcMemUsage þ

+ + + + + + + +
:÷Ͱ ִ ޸𸮷 (kilobyte )
:CacheGcMemUsage KBytes
⺻:CacheGcMemUsage ?
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheGcMemUsage 16 +

+ +
+ CacheGcMemUsage þ + ʾҴ. +
+ +
+
top
+

CacheGcUnused þ

+ + + + + + + +
:URL شϴ ij Ⱓ.
:CacheGcUnused hours url-string
⺻:CacheGcUnused ?
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheGcUnused 12 /local_images +

+ +
+ CacheGcUnused þ + ʾҴ. +
+ +
+
top
+

CacheMaxFileSize þ

+ + + + + + + +
:ij ִũ (Ʈ )
:CacheMaxFileSize bytes
⺻:CacheMaxFileSize 1000000
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheMaxFileSize þ ij + ִũ⸦ Ʈ Ѵ.

+ +

+ CacheMaxFileSize 64000 +

+ +
+
top
+

CacheMinFileSize þ

+ + + + + + + +
:ij ּũ (Ʈ )
:CacheMinFileSize bytes
⺻:CacheMinFileSize 1
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheMinFileSize þ ij + ּũ⸦ Ʈ Ѵ.

+ +

+ CacheMinFileSize 64 +

+ +
+
top
+

CacheRoot þ

+ + + + + + +
:ij 丮 root
:CacheRoot directory
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheRoot þ ũ + ij 丮 Ѵ. mod_disk_cache ġ Ͽų + о ݵ þ ؾ Ѵ. + CacheRoot + ó ʴ´. CacheDirLevels CacheDirLength þ + þ root 丮 丮 Ѵ.

+ +

+ CacheRoot c:/cacheroot +

+ +
+
top
+

CacheSize þ

+ + + + + + + +
:ij ִ ũ (KByte )
:CacheSize KBytes
⺻:CacheSize 1000000
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

CacheSize þ ij + ũ ũ⸦ KByte (1024 Ʈ) Ѵ. + þ ij ũ⸦ ʴ´. ÷Ͱ ij + 뷮 ۰Եɶ . ׻ + 밡 ũ ϶.

+ +

+ CacheSize 5000000 +

+ +
+
top
+

CacheTimeMargin þ

+ + + + + + + +
: ij ּҽð Ѱ
:CacheTimeMargin ?
⺻:CacheTimeMargin ?
:ּ, ȣƮ
:Experimental
:mod_disk_cache
+

Լ Ǹ ڼ ´.

+ +

+ CacheTimeMargin X +

+ +
+ CacheTimeMargin þ + ʾҴ. +
+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_dumpio.html b/rubbos/app/apache2/manual/mod/mod_dumpio.html new file mode 100644 index 00000000..50979675 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dumpio.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_dumpio.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_dumpio.html.en b/rubbos/app/apache2/manual/mod/mod_dumpio.html.en new file mode 100644 index 00000000..1003f45f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_dumpio.html.en @@ -0,0 +1,106 @@ + + + +mod_dumpio - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_dumpio

+
+

Available Languages:  en 

+
+ + + +
Description:Dumps all I/O to error log as desired.
Status:Experimental
ModuleIdentifier:dumpio_module
SourceFile:mod_dumpio.c
+

Summary

+ +

mod_dumpio allows for the logging of + all input received by Apache and/or all output sent by + Apache to be logged (dumped) to the error.log file. +

+ +

The data logging is done right after SSL decoding (for + input) and right before SSL encoding (for output). As can + be expected, this can produce extreme volumes of data, + and should only be used when debugging problems.

+
+

Directives

+ +

Topics

+
+
top
+
+

Enabling dumpio Support

+ + +

To enable the module, it should be compiled and + loaded in to your running Apache configuration. Logging + can then be enabled or disabled via the below directives.

+ +

In order for dumping to work LogLevel must be set to debug.

+
+
top
+

DumpIOInput Directive

+ + + + + + + + +
Description:Dump all input data to the error log
Syntax:DumpIOInput On|Off
Default:DumpIOInput Off
Context:server config
Status:Experimental
Module:mod_dumpio
Compatibility:DumpIOInput is only available in Apache 2.0.53 and +later.
+

Enable dumping of all input.

+ +

Example

+ DumpIOInput On +

+ +
+
top
+

DumpIOOutput Directive

+ + + + + + + + +
Description:Dump all output data to the error log
Syntax:DumpIOOutput On|Off
Default:DumpIOOutput Off
Context:server config
Status:Experimental
Module:mod_dumpio
Compatibility:DumpIOOutput is only available in Apache 2.0.53 and +later.
+

Enable dumping of all output.

+ +

Example

+ DumpIOOutput On +

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_echo.html b/rubbos/app/apache2/manual/mod/mod_echo.html new file mode 100644 index 00000000..fb021cc7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_echo.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_echo.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_echo.html.en b/rubbos/app/apache2/manual/mod/mod_echo.html.en new file mode 100644 index 00000000..1a476635 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_echo.html.en @@ -0,0 +1,74 @@ + + + +mod_echo - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_echo

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + + +
Description:A simple echo server to illustrate protocol +modules
Status:Experimental
ModuleIdentifier:echo_module
SourceFile:mod_echo.c
Compatibility:Available in Apache 2.0 and later
+

Summary

+ +

This module provides an example protocol module to illustrate the + concept. It provides a simple echo server. Telnet to it and type + stuff, and it will echo it.

+
+

Directives

+ +
+ +
top
+

ProtocolEcho Directive

+ + + + + + + + +
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
Compatibility:ProtocolEcho is only available in 2.0 and +later.
+

The ProtocolEcho directive enables or + disables the echo server.

+ +

Example

+ ProtocolEcho On +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_echo.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_echo.html.ja.utf8 new file mode 100644 index 00000000..566ca838 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_echo.html.ja.utf8 @@ -0,0 +1,74 @@ + + + +mod_echo - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_echo

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:プロトコルモジュールの概要を示すための単純なエコーサーバ +
ステータス: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/rubbos/app/apache2/manual/mod/mod_echo.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_echo.html.ko.euc-kr new file mode 100644 index 00000000..d178fe4d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_echo.html.ko.euc-kr @@ -0,0 +1,73 @@ + + + +mod_echo - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_echo

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + + +
: ϱ echo
:Experimental
:echo_module
ҽ:mod_echo.c
:Apache 2.0 ĺ
+

+ +

ϱ ̴. + echo Ѵ. telnetϿ + 𰡸 Էϸ, Է ״ ȯѴ.

+
+

þ

+ +
+ +
top
+

ProtocolEcho þ

+ + + + + + + +
:echo Ű
:ProtocolEcho On|Off
:ּ, ȣƮ
:Experimental
:mod_echo
:ProtocolEcho 2.0 Ŀ ִ.
+

ProtocolEcho þ echo + Ű .

+ +

+ ProtocolEcho On +

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_env.html b/rubbos/app/apache2/manual/mod/mod_env.html new file mode 100644 index 00000000..df910311 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_env.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_env.html.en b/rubbos/app/apache2/manual/mod/mod_env.html.en new file mode 100644 index 00000000..7b1db2b3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_env.html.en @@ -0,0 +1,119 @@ + + + +mod_env - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_env

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Modifies the environment which is passed to CGI scripts and +SSI pages
Status:Base
ModuleIdentifier:env_module
SourceFile: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.

+
+

Directives

+ +

See also

+
+ +
top
+

PassEnv Directive

+ + + + + + + +
Description:Passes environment variables from the shell
Syntax:PassEnv env-variable [env-variable] +...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
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.

+ +

Example

+ PassEnv LD_LIBRARY_PATH +

+ +
+
top
+

SetEnv Directive

+ + + + + + + +
Description:Sets environment variables
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.

+ +

Example

+ SetEnv SPECIAL_PATH /foo/bin +

+ +
+
top
+

UnsetEnv Directive

+ + + + + + + +
Description:Removes variables from the environment
Syntax:UnsetEnv env-variable [env-variable] +...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_env
+

Removes one or more environment variables from those passed + on to CGI scripts and SSI pages.

+ +

Example

+ UnsetEnv LD_LIBRARY_PATH +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_env.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_env.html.ja.utf8 new file mode 100644 index 00000000..9835e866 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_env.html.ja.utf8 @@ -0,0 +1,121 @@ + + + +mod_env - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_env

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明: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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_env.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_env.html.ko.euc-kr new file mode 100644 index 00000000..e5dfdfef --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_env.html.ko.euc-kr @@ -0,0 +1,116 @@ + + + +mod_env - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_env

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:CGI ũƮ SSI ȯ溯 +Ѵ
:Base
:env_module
ҽ:mod_env.c
+

+ +

CGI ũƮ SSI ȯ溯 + Ѵ. ȯ溯 ִ. + ƴϸ ߿ ȯ溯 ϰ ִ.

+
+

þ

+ +

+
+ +
top
+

PassEnv þ

+ + + + + + + +
: ȯ溯 ´
:PassEnv env-variable [env-variable] +...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_env
+

Ư ȯ溯 CGI ũƮ + SSI Ѵ.

+ +

+ PassEnv LD_LIBRARY_PATH +

+ +
+
top
+

SetEnv þ

+ + + + + + + +
:ȯ溯 Ѵ
:SetEnv env-variable value
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_env
+

CGI ũƮ SSI ȯ溯 Ѵ.

+ +

+ SetEnv SPECIAL_PATH /foo/bin +

+ +
+
top
+

UnsetEnv þ

+ + + + + + + +
:ȯ溯 Ѵ
:UnsetEnv env-variable [env-variable] +...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_env
+

CGI ũƮ SSI ȯ溯 ʴ´.

+ +

+ UnsetEnv LD_LIBRARY_PATH +

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_env.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_env.html.tr.utf8 new file mode 100644 index 00000000..4de81ddf --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_env.html.tr.utf8 @@ -0,0 +1,117 @@ + + + +mod_env - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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 CGI betiklerine ve SSI sayfalarına aktarılan ortama müdahale + etmeyi mümkün kılar. Ortam değişkenleri httpd süreci + başlatılırken kabuktan aktarılabilir. 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 CGI betiklerine ve SSI + sayfalarına kabuktan aktarılabilecek ortam değişkenleri belirtilir.

+ +

Ö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
+

CGI betiklerine ve SSI sayfalarına aktarılmak üzere bir ortam değişkeni + tanımlanmasını sağlar.

+ +

Örnek

+ SetEnv SPECIAL_PATH /foo/bin +

+ +
+
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 ortam + değişkenini ortamdan siler.

+ +

Örnek

+ UnsetEnv LD_LIBRARY_PATH +

+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_example.html b/rubbos/app/apache2/manual/mod/mod_example.html new file mode 100644 index 00000000..6da80488 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_example.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_example.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_example.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_example.html.en b/rubbos/app/apache2/manual/mod/mod_example.html.en new file mode 100644 index 00000000..af92125a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_example.html.en @@ -0,0 +1,154 @@ + + + +mod_example - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_example

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Illustrates the Apache module API
Status:Experimental
ModuleIdentifier:example_module
SourceFile:mod_example.c
+

Summary

+ +
+ This document has not been updated + to take into account changes made in the 2.0 version of the + Apache HTTP Server. Some of the information may still be + relevant, but please use it with care. +
+ +

The files in the src/modules/example directory + under the Apache distribution directory tree are provided as an + example to those that wish to write modules that use the Apache + API.

+ +

The main file is mod_example.c, which + illustrates all the different callback mechanisms and call + syntaxes. By no means does an add-on module need to include + routines for all of the callbacks - quite the contrary!

+ +

The example module is an actual working module. If you link + it into your server, enable the "example-handler" handler for a + location, and then browse to that location, you will see a + display of some of the tracing the example module did as the + various callbacks were made.

+
+ +
top
+
+

Compiling the example module

+ +

To include the example module in your server, follow the + steps below:

+ +
    +
  1. + Uncomment the "AddModule modules/example/mod_example" line + near the bottom of the src/Configuration file. + If there isn't one, add it; it should look like this: +

    + AddModule modules/example/mod_example.o +

    +
  2. + +
  3. Run the src/Configure script + ("cd src; ./Configure"). This will + build the Makefile for the server itself, and update the + src/modules/Makefile for any additional modules + you have requested from beneath that subdirectory.
  4. + +
  5. Make the server (run "make" in the + src directory).
  6. +
+ +

To add another module of your own:

+ +
    +
  1. mkdir src/modules/mymodule
  2. + +
  3. cp src/modules/example/* + src/modules/mymodule
  4. + +
  5. Modify the files in the new directory.
  6. + +
  7. Follow steps [1] through [3] above, with appropriate + changes.
  8. +
+
top
+
+

Using the mod_example Module

+ +

To activate the example module, include a block similar to + the following in your srm.conf file:

+

+ <Location /example-info>
+ SetHandler example-handler
+ </Location> +

+ +

As an alternative, you can put the following into a .htaccess file + and then request the file "test.example" from that location:

+

+ AddHandler example-handler .example +

+ +

After reloading/restarting your server, you should be able + to browse to this location and see the brief display mentioned + earlier.

+
+
top
+

Example Directive

+ + + + + + +
Description:Demonstration directive to illustrate the Apache module +API
Syntax:Example
Context:server config, virtual host, directory, .htaccess
Status:Experimental
Module:mod_example
+

The Example directive just sets a demonstration + flag which the example module's content handler displays. It + takes no arguments. If you browse to an URL to which the + example content-handler applies, you will get a display of the + routines within the module and how and in what order they were + called to service the document request. The effect of this + directive one can observe under the point "Example + directive declared here: YES/NO".

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_example.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_example.html.ko.euc-kr new file mode 100644 index 00000000..b5a7936d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_example.html.ko.euc-kr @@ -0,0 +1,145 @@ + + + +mod_example - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_example

+
+

:  en  | + ko 

+
+ + + +
:ġ API Ѵ
:Experimental
:example_module
ҽ:mod_example.c
+

+ +
+ ġ 2.0 + ʴ. ȿ , ؼ ϱ + ٶ. +
+ +

ġ src/modules/example 丮 + ִ ϵ ġ API Ͽ ۼϷ + .

+ +

mod_example.c ݹ(callback) + ȣ ϴ ̴. ⿡ ݹ + ʿ䰡 . ݴ!

+ +

example ϴ ̴. + ϰ Ư ġ "example-handler" ڵ鷯 ҴϿ + װ ¡ϸ example ݹ Ȯ + ִ.

+
+

þ

+ +

+
+
top
+
+

example ϱ

+ +

example Ϸ ģ:

+ +
    +
  1. + src/Configuration Ʒ κп ִ + "AddModule modules/example/mod_example" ּó + ش. ̷ ٸ, ߰Ѵ. +

    + AddModule modules/example/mod_example.o +

    +
  2. + +
  3. src/Configure ũƮ Ѵ + ("cd src; ./Configure"). ׷ + ü Makefile , 丮 ִ û + ߰ src/modules/Makefile ߰Ѵ.
  4. + +
  5. Ѵ (src 丮 ִ + "make" Ѵ).
  6. +
+ +

ڽ ߰Ϸ:

+ +
    +
  1. mkdir src/modules/mymodule
  2. + +
  3. cp src/modules/example/* + src/modules/mymodule
  4. + +
  5. 丮 ִ Ѵ.
  6. + +
  7. Ͽ [1] [3] Ѵ.
  8. +
+
top
+
+

mod_example ϱ

+ +

example Ϸ srm.conf Ͽ + ߰϶:

+

+ <Location /example-info>
+ SetHandler example-handler
+ </Location> +

+ +

ƴϸ .htaccess + Ͽ ߰ϰ, ġ "test.example" + û϶:

+

+ AddHandler example-handler .example +

+ +

ġ ¡ϸ տ + Ե ̴.

+
+
top
+

Example þ

+ + + + + + +
:ġ API ϱ þ
:Example
:ּ, ȣƮ, directory, .htaccess
:Experimental
:mod_example
+

Example þ example + ڵ鷯 θ Ѵ. þ + ƱԸƮ ʴ´. example ڵ鷯 URL + ϸ û ϱ ȿ Լ  + ׸  Ҹ ִ. þ ȿ + "Example directive declared here: YES/NO" + Ȯ ִ.

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_expires.html b/rubbos/app/apache2/manual/mod/mod_expires.html new file mode 100644 index 00000000..77b906ef --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_expires.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_expires.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_expires.html.en b/rubbos/app/apache2/manual/mod/mod_expires.html.en new file mode 100644 index 00000000..638d9ad1 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_expires.html.en @@ -0,0 +1,247 @@ + + + +mod_expires - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_expires

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Generation of Expires and +Cache-Control HTTP headers according to user-specified +criteria
Status:Extension
ModuleIdentifier:expires_module
SourceFile:mod_expires.c
+

Summary

+ +

This module controls the setting of the Expires + HTTP header and the max-age directive of the + Cache-Control HTTP header in server responses. The + expiration date can set to be relative to either the time the + source file was last modified, or to the time of the client + access.

+ +

These HTTP headers are an instruction to the client about the + document's validity and persistence. If cached, the document may + be fetched from the cache rather than from the source until this + time has passed. After that, the cache copy is considered + "expired" and invalid, and a new copy must be obtained from the + source.

+ +

To modify Cache-Control directives other than + max-age (see RFC + 2616 section 14.9), you can use the Header directive.

+ +
+ +
top
+
+

Alternate Interval Syntax

+

The ExpiresDefault and + ExpiresByType directives + can also be defined in a more readable syntax of the form:

+ +

+ ExpiresDefault "<base> [plus] {<num> + <type>}*"
+ ExpiresByType type/encoding "<base> [plus] + {<num> <type>}*" +

+ +

where <base> is one of:

+ +
    +
  • access
  • + +
  • now (equivalent to + 'access')
  • + +
  • modification
  • +
+ +

The plus keyword is optional. <num> + should be an integer value [acceptable to atoi()], + and <type> is one of:

+ +
    +
  • years
  • +
  • months
  • +
  • weeks
  • +
  • days
  • +
  • hours
  • +
  • minutes
  • +
  • seconds
  • +
+ +

For example, any of the following directives can be used to + make documents expire 1 month after being accessed, by + default:

+ +

+ ExpiresDefault "access plus 1 month"
+ ExpiresDefault "access plus 4 weeks"
+ ExpiresDefault "access plus 30 days" +

+ +

The expiry time can be fine-tuned by adding several + '<num> <type>' clauses:

+ +

+ ExpiresByType text/html "access plus 1 month 15 + days 2 hours"
+ ExpiresByType image/gif "modification plus 5 hours 3 + minutes" +

+ +

Note that if you use a modification date based setting, the + Expires header will not be added to content + that does not come from a file on disk. This is due to the fact + that there is no modification time for such content.

+
+
top
+

ExpiresActive Directive

+ + + + + + + +
Description:Enables generation of Expires +headers
Syntax:ExpiresActive On|Off
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_expires
+

This directive enables or disables the generation of the + Expires and Cache-Control headers for + the document realm in question. (That is, if found in an + .htaccess file, for instance, it applies only to + documents generated from that directory.) If set to + Off, the headers will not be generated for any + document in the realm (unless overridden at a lower level, such as + an .htaccess file overriding a server config + file). If set to On, the headers will be added to + served documents according to the criteria defined by the + ExpiresByType and + ExpiresDefault + directives (q.v.).

+ +

Note that this directive does not guarantee that an + Expires or Cache-Control header will be + generated. If the criteria aren't met, no header will be sent, and + the effect will be as though this directive wasn't even + specified.

+ +
+
top
+

ExpiresByType Directive

+ + + + + + + +
Description:Value of the Expires header configured +by MIME type
Syntax:ExpiresByType MIME-type +<code>seconds
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_expires
+

This directive defines the value of the Expires + header and the max-age directive of the + Cache-Control header generated for documents of the + specified type (e.g., text/html). The second + argument sets the number of seconds that will be added to a base + time to construct the expiration date. The Cache-Control: + max-age is calculated by subtracting the request time from + the expiration date and expressing the result in seconds.

+ +

The base time is either the last modification time of the + file, or the time of the client's access to the document. Which + should be used is specified by the + <code> field; M + means that the file's last modification time should be used as + the base time, and A means the client's access + time should be used.

+ +

The difference in effect is subtle. If M is used, + all current copies of the document in all caches will expire at + the same time, which can be good for something like a weekly + notice that's always found at the same URL. If A is + used, the date of expiration is different for each client; this + can be good for image files that don't change very often, + particularly for a set of related documents that all refer to + the same images (i.e., the images will be accessed + repeatedly within a relatively short timespan).

+ +

Example:

+ # 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 +

+ +

Note that this directive only has effect if + ExpiresActive On has been specified. It overrides, + for the specified MIME type only, any expiration date + set by the ExpiresDefault + directive.

+ +

You can also specify the expiration time calculation using + an alternate syntax, described earlier in + this document.

+ +
+
top
+

ExpiresDefault Directive

+ + + + + + + +
Description:Default algorithm for calculating expiration time
Syntax:ExpiresDefault <code>seconds
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Extension
Module:mod_expires
+

This directive sets the default algorithm for calculating the + expiration time for all documents in the affected realm. It can be + overridden on a type-by-type basis by the ExpiresByType directive. See the + description of that directive for details about the syntax of the + argument, and the alternate syntax + description as well.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_expires.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_expires.html.ja.utf8 new file mode 100644 index 00000000..794b3955 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_expires.html.ja.utf8 @@ -0,0 +1,233 @@ + + + +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
+

このディレクティブは対応するドキュメントの領域で + ExpiresCache-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/rubbos/app/apache2/manual/mod/mod_expires.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_expires.html.ko.euc-kr new file mode 100644 index 00000000..ebd26c2f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_expires.html.ko.euc-kr @@ -0,0 +1,225 @@ + + + +mod_expires - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_expires

+
+

:  en  | + ja  | + ko 

+
+ + + +
:ڰ ؿ Expires +Cache-Control HTTP Ѵ
:Extension
:expires_module
ҽ:mod_expires.c
+

+ +

Expires HTTP + Cache-Control HTTP max-age + þ Ѵ. ð + Ȥ Ŭ̾Ʈ ð ִ.

+ +

HTTP Ŭ̾Ʈ + ȿ Ӽ ˷ش. ð ʾҴٸ, + ij ͵ ȴ. ٸ ij + "ǰ" ȿ ʴٰ Ͽ, ҽ + ; Ѵ.

+ +

Header þ + Ͽ max-age ٸ + Cache-Control þ(RFC + 2616, 14.9 ) ִ.

+ +
+ +
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" +

+ +

ð(modification) ð ϴ + ũ ִ Ͽ ʴ´ٸ Expires + ʴ´. 뿡 ð + ̴.

+
+
top
+

ExpiresActive þ

+ + + + + + + +
:Expires Ѵ
:ExpiresActive On|Off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_expires
+

þ ش (, .htaccess + Ͽ Ѵٸ 丮 Ʒ ִ 鸸 شȴ.) + Expires Cache-Control + Ѵ. (.htaccess + ܰ迡 ʴ ) + Off̸ ش ִ ̵ + ʴ´. On̸ ExpiresByType ExpiresDefault þ + (ش ׸ ϶) Ģ Ϸ + Ѵ.

+ +

þ Expires Cache-Control + ʴ´. Ģ ش ʴٸ ġ + þ ó ʴ´.

+ +
+
top
+

ExpiresByType þ

+ + + + + + + +
:MIME type Expires Ѵ
:ExpiresByType MIME-type +<code>seconds
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_expires
+

þ Ư ( , + text/html) Expires + Cache-Control max-age + þ Ѵ. ι° ƱԸƮ ð Ҷ + ð ʴ Ѵ. Cache-Control: + max-age ð û ð ϰ, + ʴ ǥѴ.

+ +

ð ֱ ð Ȥ Ŭ̾Ʈ + ð̴. ̶ + <code> ʵ ؾ Ѵ. + M ð ֱ ð + ϰ, A Ŭ̾Ʈ ð Ѵ.

+ +

̴ ̹ϴ. M ϸ ij ִ + 纻 ð ȴ. ׷ ׻ URL + ãƺ ִ ְ 뵵 . A + ϸ 纻 ð ٸ. ̴ ʴ + ׸Ͽ, Ư ׸ Ҷ ( + , ̹ ª Ⱓ ݺؼ ٵȴ), + ϴ.

+ +

:

+ # Ѵ
+ ExpiresActive On
+ # Ŭ̾Ʈ ij GIF ׸ Ŀ Ѵ
+ ExpiresByType image/gif A2592000
+ # HTML ϰ ȿϴ + ExpiresByType text/html M604800 +

+ +

þ ExpiresActive On Ҷ + ȿ ϶. ExpiresDefault þ + Ͽ Ư MIME type ؼ ð + ִ.

+ +

տ ٸ Ͽ + ð ִ.

+ +
+
top
+

ExpiresDefault þ

+ + + + + + + +
:ð ϴ ⺻ ˰
:ExpiresDefault <code>seconds
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Extension
:mod_expires
+

þ ش ִ ð + ϴ ⺻ ˰ Ѵ. ExpiresByType þ + Ͽ ִ. ƱԸƮ + ڼ þ ٸ + ϶.

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_ext_filter.html b/rubbos/app/apache2/manual/mod/mod_ext_filter.html new file mode 100644 index 00000000..db5ac8ff --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ext_filter.html @@ -0,0 +1,9 @@ +# 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.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_ext_filter.html.en b/rubbos/app/apache2/manual/mod/mod_ext_filter.html.en new file mode 100644 index 00000000..d57cec21 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ext_filter.html.en @@ -0,0 +1,373 @@ + + + +mod_ext_filter - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_ext_filter

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Pass the response body through an external program before +delivery to the client
Status:Extension
ModuleIdentifier:ext_filter_module
SourceFile:mod_ext_filter.c
+

Summary

+ +

mod_ext_filter presents a simple and familiar + programming model for filters. With + this module, a program which reads from stdin and writes to stdout + (i.e., a Unix-style filter command) can be a filter for + Apache. This filtering mechanism is much slower than using a + filter which is specially written for the Apache API and runs + inside of the Apache server process, but it does have the + following benefits:

+ +
    +
  • the programming model is much simpler
  • + +
  • any programming/scripting language can be used, provided + that it allows the program to read from standard input and + write to standard output
  • + +
  • existing programs can be used unmodified as Apache + filters
  • +
+ +

Even when the performance characteristics are not suitable + for production use, mod_ext_filter can be used as + a prototype environment for filters.

+ +
+

Directives

+ +

Topics

+

See also

+
+
top
+
+

Examples

+ +

Generating HTML from some other type of response

+

+ # 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> +

+ + +

Implementing a content encoding filter

+

Note: this gzip example is just for the purposes of illustration. + Please refer to mod_deflate for a practical + implementation.

+ +

+ # 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> +

+ + +

Slowing down the server

+

+ # 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> +

+ + +

Using sed to replace text in the response

+

+ # 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> +

+ + +

Tracing another filter

+

+ # 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> +

+ +

Here is the filter which traces the data:

+ #!/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 Directive

+ + + + + + +
Description:Define an external filter
Syntax:ExtFilterDefine filtername parameters
Context:server config
Status:Extension
Module:mod_ext_filter
+

The ExtFilterDefine directive defines the + characteristics of an external filter, including the program to + run and its arguments.

+ +

filtername specifies the name of the filter being + defined. This name can then be used in SetOutputFilter + directives. It must be unique among all registered filters. + At the present time, no error is reported by the + register-filter API, so a problem with duplicate names isn't + reported to the user.

+ +

Subsequent parameters can appear in any order and define the + external command to run and certain other characteristics. The + only required parameter is cmd=. These parameters + are:

+ +
+
cmd=cmdline
+ +
The cmd= keyword allows you to specify the + external command to run. If there are arguments after the + program name, the command line should be surrounded in + quotation marks (e.g., cmd="/bin/mypgm + arg1 arg2". Normal shell quoting is + not necessary since the program is run directly, bypassing the shell. + Program arguments are blank-delimited. A backslash can be used to + escape blanks which should be part of a program argument. Any + backslashes which are part of the argument must be escaped with + backslash themselves. In addition to the standard CGI environment + variables, DOCUMENT_URI, DOCUMENT_PATH_INFO, and + QUERY_STRING_UNESCAPED will also be set for the program.
+ +
mode=mode
+ +
mode should be output for now (the + default). In the future, mode=input will be used to + specify a filter for request bodies.
+ +
intype=imt
+ +
This parameter specifies the internet media type (i.e., + MIME type) of documents which should be filtered. By default, + all documents are filtered. If intype= is + specified, the filter will be disabled for documents of other + types.
+ +
outtype=imt
+ +
This parameter specifies the internet media type (i.e., + MIME type) of filtered documents. It is useful when the + filter changes the internet media type as part of the + filtering operation. By default, the internet media type is + unchanged.
+ +
PreservesContentLength
+ +
The PreservesContentLength keyword specifies + that the filter preserves the content length. This is not the + default, as most filters change the content length. In the + event that the filter doesn't modify the length, this keyword + should be specified.
+ +
ftype=filtertype
+ +
This parameter specifies the numeric value for filter type + that the filter should be registered as. The default value, + AP_FTYPE_RESOURCE, is sufficient in most cases. If the filter + needs to operate at a different point in the filter chain than + resource filters, then this parameter will be necessary. See + the AP_FTYPE_foo definitions in util_filter.h for appropriate + values.
+ +
disableenv=env
+ +
This parameter specifies the name of an environment variable + which, if set, will disable the filter.
+ +
enableenv=env
+ +
This parameter specifies the name of an environment variable + which must be set, or the filter will be disabled.
+
+ +
+
top
+

ExtFilterOptions Directive

+ + + + + + + +
Description:Configure mod_ext_filter options
Syntax:ExtFilterOptions option [option] ...
Default:ExtFilterOptions DebugLevel=0 NoLogStderr
Context:directory
Status:Extension
Module:mod_ext_filter
+

The ExtFilterOptions directive specifies + special processing options for mod_ext_filter. + Option can be one of

+ +
+
DebugLevel=n
+ +
+ The DebugLevel keyword allows you to specify + the level of debug messages generated by + mod_ext_filter. By default, no debug messages + are generated. This is equivalent to + DebugLevel=0. With higher numbers, more debug + messages are generated, and server performance will be + degraded. The actual meanings of the numeric values are + described with the definitions of the DBGLVL_ constants + near the beginning of mod_ext_filter.c. + +

Note: The core directive LogLevel should be used to cause debug messages to + be stored in the Apache error log.

+
+ +
LogStderr | NoLogStderr
+ +
The LogStderr keyword specifies that + messages written to standard error by the external filter + program will be saved in the Apache error log. + NoLogStderr disables this feature.
+
+ +

Example

+ ExtFilterOptions LogStderr DebugLevel=0 +

+ +

Messages written to the filter's standard error will be stored + in the Apache error log. No debug messages will be generated by + mod_ext_filter.

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_ext_filter.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_ext_filter.html.ko.euc-kr new file mode 100644 index 00000000..b8d6ad9a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ext_filter.html.ko.euc-kr @@ -0,0 +1,350 @@ + + + +mod_ext_filter - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_ext_filter

+
+

:  en  | + ko 

+
+ + + +
: ܺ α׷ ó Ŭ̾Ʈ +
:Extension
:ext_filter_module
ҽ:mod_ext_filter.c
+

+ +

mod_ext_filter ϸ ϰ ͼ + ִ. + ǥԷ¿ а ǥ¿ α׷(, н + ɾ) ġ ͷ ִ. ̷ ʹ + ġ API ġ μ ȿ Ǵ + Ϳ ſ , ִ:

+ +
    +
  • α׷ ſ ϴ
  • + +
  • α׷ ǥԷ¿ а ǥ¿ ִٸ +  α׷/ũƮ ִ
  • + +
  • ̹ ִ α׷ ġ ͷ + ִ
  • +
+ +

ϱ⿡ , + mod_ext_filter Ͽ ͸  + ִ.

+ +
+

þ

+ +

+
    +
  • +

+
    +
  • +
+
top
+
+

+ +

ٸ type HTML

+

+ # mod_ext_filter þ
+ # ܺ α׷ /usr/bin/enscript Ͽ
+ # ϰ text/c HTML
+ # type 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 þ
+ SetOutputFilter c-to-html
+
+ # .c type text/c mod_mime
+ # þ
+ AddType text/c .c
+
+ # û
+ # ˷ִ α׹ ϴ mod_ext_filter
+ # þ
+ ExtFilterOptions DebugLevel=1
+
+ </Directory> +

+ + +

content ڵ ϱ

+

Note: Ʒ gzip ̴. + 񽺿 Ϸ mod_deflate + ϱ ٶ.

+ +

+ # ܺ ͸ ϴ mod_ext_filter þ
+ ExtFilterDefine gzip mode=output cmd=/bin/gzip
+
+ <Location /gzipped>
+ + # Ҷ gzip ͸ ϴ core þ
+ SetOutputFilter gzip
+
+ # "Content-Encoding: gzip" ߰ϴ
+ # mod_header þ
+ Header set Content-Encoding gzip
+
+ </Location> +

+ + +

ϱ

+

+ # cat ϴ ͸ ϴ
+ # mod_ext_filter þ; cat ƹ͵
+ # ʴ´; óθ Ͽ ڿ ҸѴ
+ ExtFilterDefine slowdown mode=output cmd=/bin/cat \
+ + preservescontentlength
+
+
+ <Location />
+ + # Ҷ slowdown ͸ ϴ core þ
+ #
+ SetOutputFilter slowdown;slowdown;slowdown
+
+ </Location> +

+ + +

sed Ͽ 信 üϱ

+

+ # 信 üϴ ͸ ϴ
+ # mod_ext_filter þ
+ #
+ ExtFilterDefine fixtext mode=output intype=text/html \
+ + cmd="/bin/sed s/verdana/arial/g"
+
+
+ <Location />
+ + # Ҷ fixtext ͸ ϴ core þ
+ SetOutputFilter fixtext
+
+ </Location> +

+ + +

ٸ ͸ ϱ

+

+ # ִ Ư Ŭ̾Ʈ(IP 192.168.1.31)
+ # mod_deflate а ڷḦ Ѵ.
+ # ʹ mod_deflate ڷḦ Ѵ.
+ ExtFilterDefine tracebefore \
+ + cmd="/bin/tracefilter.pl /tmp/tracebefore" \
+ EnableEnv=trace_this_client
+
+
+ # ʹ mod_deflate ڷḦ Ѵ.
+ # ftype Ķ͸ ʴ , ⺻
+ # AP_FTYPE_RESOURCE mod_deflate **
+ # д. AP_FTYPE_CONTENT_SET ڰ
+ # ϸ 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, QUERY_STRING_UNESCAPED Ѵ.
+ +
mode=mode
+ +
mode (⺻) output + ϴ. ̷ mode=input Ͽ + û óϴ ͸ ̴.
+ +
intype=imt
+ +
Ķʹ ͷ ó ͳ media + type(, MIME type) Ѵ. ⺻ + ͷ óѴ. intype= ϸ + ٸ type ͷ ó ʴ´.
+ +
outtype=imt
+ +
Ķʹ ͷ ó ͳ media + type(, MIME type) Ѵ. ó ۾߿ + ͳ media type Ҷ ϴ. ⺻, ͳ + media type ʴ´.
+ +
PreservesContentLength
+ +
PreservesContentLength Ű Ͱ + content length ϵ Ѵ. κ Ͱ content + length ϹǷ Ű ⺻ ƴϴ. Ͱ + ̸ Ҷ Ű带 ؾ Ѵ.
+ +
ftype=filtertype
+ +
Ķʹ ڰ Ѵ. + κ ⺻ AP_FTYPE_RESOURCE ϴ. + ͸ ϴ ڿͿ ޶ϴ + ĶͰ ʿϴ. ˷ util_filter.h + ִ AP_FTYPE_* Ǹ ϶.
+ +
disableenv=env
+ +
Ķͷ ȯ溯 ǵǾٸ ͸ + ʴ´.
+ +
enableenv=env
+ +
Ķͷ ȯ溯 ǵ ͸ + Ѵ.
+
+ +
+
top
+

ExtFilterOptions þ

+ + + + + + + +
:mod_ext_filter ɼ Ѵ
:ExtFilterOptions option [option] ...
⺻:ExtFilterOptions DebugLevel=0 NoLogStderr
:directory
:Extension
:mod_ext_filter
+

ExtFilterOptions þ + mod_ext_filter Ư óɼ Ѵ. + Option ϳ.

+ +
+
DebugLevel=n
+ +
+ DebugLevel Ű + mod_ext_filter ϴ + Ѵ. ⺻ ׹ ʴ´. + ̴ DebugLevel=0 . ڸ + Ҽ, ׹ ϵǰ + . ڰ ǹ̴ mod_ext_filter.c + պκп ִ DBGLVL_ ǿ ִ. + +

: α׸ Ϸ core þ LogLevel Ͽ ׹ + ġ α׿ ؾ Ѵ.

+
+ +
LogStderr | NoLogStderr
+ +
LogStderr Ű ܺ α׷ + ǥؿ ϴ ġ α׿ Ѵ. + NoLogStderr ʴ´.
+
+ +

+ ExtFilterOptions LogStderr DebugLevel=0 +

+ +

ϸ Ͱ ǥؿ ϴ + ġ α׿ ϰ, mod_ext_filter + ü ׹ ʴ´.

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_file_cache.html b/rubbos/app/apache2/manual/mod/mod_file_cache.html new file mode 100644 index 00000000..e9da936d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_file_cache.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_file_cache.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_file_cache.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_file_cache.html.en b/rubbos/app/apache2/manual/mod/mod_file_cache.html.en new file mode 100644 index 00000000..7dcc1d2b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_file_cache.html.en @@ -0,0 +1,212 @@ + + + +mod_file_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_file_cache

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Caches a static list of files in memory
Status:Experimental
ModuleIdentifier:file_cache_module
SourceFile:mod_file_cache.c
+

Summary

+ + +
+ This module should be used with care. You can easily create a broken + site using mod_file_cache, so read this document + carefully. +
+ +

Caching frequently requested files that change very + infrequently is a technique for reducing server load. + mod_file_cache provides two techniques for caching + frequently requested static files. Through configuration + directives, you can direct mod_file_cache to either + open then mmap() a file, or to pre-open a file and save + the file's open file handle. Both techniques reduce server + load when processing requests for these files by doing part of the work + (specifically, the file I/O) for serving the file when the + server is started rather than during each request.

+ +

Notice: You cannot use this for speeding up CGI programs or + other files which are served by special content handlers. It + can only be used for regular files which are usually served by + the Apache core content handler.

+ +

This module is an extension of and borrows heavily from the + mod_mmap_static module in Apache 1.3.

+
+

Directives

+ +

Topics

+
+
top
+
+

Using mod_file_cache

+ +

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 + 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 + that support both directives, you should experiment with both to + see which works best for you.

+ +

MMapFile Directive

+ +

The MMapFile + directive of mod_file_cache maps a list of + statically configured files into memory through the system call + mmap(). This system call is available on most modern + Unix derivates, but not on all. There are sometimes system-specific + limits on the size and number of files that can be + mmap()ed, experimentation is probably the easiest way + to find out.

+ +

This mmap()ing is done once at server start or + restart, only. So whenever one of the mapped files changes on the + filesystem you have to restart the server (see the Stopping and Restarting documentation). + To reiterate that point: if the files are modified in place + without restarting the server you may end up serving requests that + are completely bogus. You should update files by unlinking the old + copy and putting a new copy in place. Most tools such as + rdist and mv do this. The reason why this + modules doesn't take care of changes to the files is that this check + would need an extra stat() every time which is a waste + and against the intent of I/O reduction.

+ + +

CacheFile Directive

+ +

The CacheFile + directive of mod_file_cache opens an active + handle or file descriptor to the file (or files) + listed in the configuration directive and places these open file + handles in the cache. When the file is requested, the server + retrieves the handle from the cache and passes it to the + sendfile() (or TransmitFile() on Windows), + socket API.

+ + + +

This file handle caching is done once at server start or + restart, only. So whenever one of the cached files changes on + the filesystem you have to restart the server (see the + Stopping and Restarting + documentation). To reiterate that point: if the files are + modified in place without restarting the server you + may end up serving requests that are completely bogus. You + should update files by unlinking the old copy and putting a new + copy in place. Most tools such as rdist and + mv do this.

+ + +

Note

+

Don't bother asking for a directive which recursively + caches all the files in a directory. Try this instead... See the + Include directive, and consider + this command:

+ +

+ find /www/htdocs -type f -print \
+ | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf +

+
+
+
top
+

CacheFile Directive

+ + + + + + +
Description:Cache a list of file handles at startup time
Syntax:CacheFile file-path [file-path] ...
Context:server config
Status:Experimental
Module:mod_file_cache
+

The CacheFile directive opens handles to + one or more files (given as whitespace separated arguments) and + 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.

+ +

Be careful with the file-path arguments: They have + to literally match the filesystem path Apache's URL-to-filename + translation handlers create. We cannot compare inodes or other + stuff to match paths through symbolic links etc. + because that again would cost extra stat() system + calls which is not acceptable. This module may or may not work + with filenames rewritten by mod_alias or + mod_rewrite.

+ +

Example

+ CacheFile /usr/local/apache/htdocs/index.html +

+ +
+
top
+

MMapFile Directive

+ + + + + + +
Description:Map a list of files into memory at startup time
Syntax:MMapFile file-path [file-path] ...
Context:server config
Status:Experimental
Module:mod_file_cache
+

The MMapFile directive maps one or more files + (given as whitespace separated arguments) into memory at server + startup time. They are automatically unmapped on a server + shutdown. When the files have changed on the filesystem at + least a HUP or USR1 signal should be send to + the server to re-mmap() them.

+ +

Be careful with the file-path arguments: They have + to literally match the filesystem path Apache's URL-to-filename + translation handlers create. We cannot compare inodes or other + stuff to match paths through symbolic links etc. + because that again would cost extra stat() system + calls which is not acceptable. This module may or may not work + with filenames rewritten by mod_alias or + mod_rewrite.

+ +

Example

+ MMapFile /usr/local/apache/htdocs/index.html +

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_file_cache.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_file_cache.html.ko.euc-kr new file mode 100644 index 00000000..851f202b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_file_cache.html.ko.euc-kr @@ -0,0 +1,200 @@ + + + +mod_file_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_file_cache

+
+

:  en  | + ko 

+
+ + + +
:޸𸮿 ϵ ij
:Experimental
:file_cache_module
ҽ:mod_file_cache.c
+

+ + +
+ ؼ ؾ Ѵ. mod_file_cache + Ͽ Ʈ ⶧ + IJ б ٶ. +
+ +

ʰ ûǴ ij + Ͽ ϸ ִ. mod_file_cache + ûǴ ΰ ij + Ѵ. þ Ͽ mod_file_cache + (open) mmap() ƴϸ + ڵ Ѵ. + ϱ ʿ ۾ Ϻθ (Ư + ۾) û Ź ϴ Ҷ + ѹ Ͽ ϰ Ѵ.

+ +

: CGI α׷̳ Ư ڵ鷯 + ϴ ӵ . + ġ core ڵ鷯 ϴ ϹϿ + ȴ.

+ +

ġ 1.3 ִ mod_mmap_static + Ȯ .

+
+ +
top
+
+

mod_file_cache ϱ

+ +

mod_file_cache ּ MMapFile CacheFile þ Ͽ + ϵ ij Ѵ.

+ +

÷ þ ϴ ƴϴ. + , ġ MMapStatic þ + , AIX ٸ ÷ θ Ѵ. + ʴ þ α׿ + . ʴ þ ص + ij ʴ´. þ ϴ + ÷ Ѵٸ  غ.

+ +

MMapFile þ

+ +

mod_file_cache MMapFile þ + ϵ mmap() ýȣ + Ͽ ޸𸮿 Ѵ. ֽ н ü + ýȣ , ü ִ. , + mmap() ִ ũ ý + Ƿ ̸ غ .

+ +

Ҷ Ҷ mmap()Ѵ. + ׷ Ͻýۿ ش ϳ Ǹ + ؾ Ѵ (ߴܰ + ). ٽ ؼ Ǿµ + ̻ϰ û + 𸥴. (unlink) ڸ ο + ؾ Ѵ. rdist + mv ټ ̷ Ѵ. + Ź ߰ ʿ stat() ˻簡 ʿϰ + Ҷ ǵ ϱ⶧ + ȭ Ѵ.

+ + +

CacheFile þ

+ +

mod_file_cache CacheFile þ + þ ( ϵ)  + ڵ(handle) Ȥ (file descriptor) + ij Ѵ. ûϸ ij ڵ + ãƼ API sendfile() ( + TransmitFile()) ѱ.

+ + + +

Ҷ Ҷ ڵ ijѴ. + ׷ Ͻýۿ ij ϳ Ǹ + ؾ Ѵ (ߴܰ ). + ٽ ؼ Ǿµ + ̻ϰ û 𸥴. + (unlink) ڸ ο + ؾ Ѵ. rdist mv + ټ ̷ Ѵ.

+ + +

+

丮 ij ϴ þ + . غ... Include þ Ͽ + ɾ Ѵ:

+ +

+ find /www/htdocs -type f -print \
+ | sed -e 's/.*/mmapfile &/' > /www/conf/mmap.conf +

+
+
+
top
+

CacheFile þ

+ + + + + + +
:۽ ڵ ijѴ
:CacheFile file-path [file-path] ...
:ּ
:Experimental
:mod_file_cache
+

CacheFile þ Ҷ + (open) ϵ ڵ ij Ѵ. + ڵ ij ڵ ݴ´(close). + Ͻýۿ Ǹ ٽ ijϱ + ؾ Ѵ.

+ +

file-path ƱԸƮ ض. ƱԸƮ + ġ URL-ϸ ȯ ڵ鷯 Ͻý ο + Ȯ ġؾ Ѵ. ѹ ʿ stat() + ýȣ ʿϱ⶧ inode ɺũ + θ . mod_alias + mod_rewrite ۼ ϸ ٷ + ֱ⵵ ⵵ ϴ.

+ +

+ CacheFile /usr/local/apache/htdocs/index.html +

+ +
+
top
+

MMapFile þ

+ + + + + + +
:۽ ޸𸮿 Ѵ
:MMapFile file-path [file-path] ...
:ּ
:Experimental
:mod_file_cache
+

MMapFile þ Ҷ + ( ƱԸƮ ) ޸𸮿 + Ѵ(map). ڵ Ǭ(unmap). + Ͻýۿ Ǹ ϵ ٽ + mmap()ϱ ּ HUP̳ + USR1 ñ׳ Ѵ.

+ +

file-path ƱԸƮ ض. ƱԸƮ + ġ URL-ϸ ȯ ڵ鷯 Ͻý ο + Ȯ ġؾ Ѵ. ѹ ʿ stat() + ýȣ ʿϱ⶧ inode ɺũ + θ . mod_alias + mod_rewrite ۼ ϸ ٷ + ֱ⵵ ⵵ ϴ.

+ +

+ MMapFile /usr/local/apache/htdocs/index.html +

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_headers.html b/rubbos/app/apache2/manual/mod/mod_headers.html new file mode 100644 index 00000000..1e425039 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_headers.html @@ -0,0 +1,9 @@ +# 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.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_headers.html.en b/rubbos/app/apache2/manual/mod/mod_headers.html.en new file mode 100644 index 00000000..625f3aa7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_headers.html.en @@ -0,0 +1,323 @@ + + + +mod_headers - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_headers

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Customization of HTTP request and response +headers
Status:Extension
ModuleIdentifier:headers_module
SourceFile:mod_headers.c
+

Summary

+ +

This module provides directives to control and modify HTTP + request and response headers. Headers can be merged, replaced + or removed.

+
+

Directives

+ +

Topics

+
+
top
+
+

Order of Processing

+ +

The directives provided by mod_headers can occur + almost anywhere within the server configuration. They are valid in the + main server config and virtual host sections, inside + <Directory>, + <Location> and + <Files> sections, + and within .htaccess files.

+ +

The directives are processed in the following order:

+ +
    +
  1. main server
  2. +
  3. virtual host
  4. +
  5. <Directory> sections and + .htaccess
  6. +
  7. <Files>
  8. +
  9. <Location>
  10. +
+ +

Order is important. These two headers have a different + effect if reversed:

+ +

+ RequestHeader append MirrorID "mirror 12"
+ RequestHeader unset MirrorID +

+ +

This way round, the MirrorID header is not set. If + reversed, the MirrorID header is set to "mirror 12".

+
top
+
+

Examples

+ +
    +
  1. + Copy all request headers that begin with "TS" to the + response headers: + +

    + Header echo ^TS +

    +
  2. + +
  3. + Add a header, MyHeader, to the response including a + timestamp for when the request was received and how long it + took to begin serving the request. This header can be used by + the client to intuit load on the server or in isolating + bottlenecks between the client and the server. + +

    + Header add MyHeader "%D %t" +

    + +

    results in this header being added to the response:

    + +

    + MyHeader: D=3775428 t=991424704447256 +

    +
  4. + +
  5. + Say hello to Joe + +

    + Header add MyHeader "Hello Joe. It took %D microseconds \
    + for Apache to serve this request." +

    + +

    results in this header being added to the response:

    + +

    + MyHeader: Hello Joe. It took D=3775428 microseconds for Apache + to serve this request. +

    +
  6. + +
  7. + 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 + 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
    +

    + +

    If the header MyRequestHeader: value is present on + the HTTP request, the response will contain the following header:

    + +

    + MyHeader: D=3775428 t=991424704447256 mytext +

    +
  8. +
+
+
top
+

Header Directive

+ + + + + + + + +
Description:Configure HTTP response headers
Syntax:Header [condition] set|append|add|unset|echo +header [value] [env=[!]variable]
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_headers
Compatibility:Condition is available in version 2.0.51 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:

+ +
+
set
+
The response header is set, replacing any previous header + with this name. The value may be a format string.
+ +
append
+
The response header is appended to any existing header of + the same name. 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.
+ +
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.
+ +
unset
+
The response header of this name is removed, if it exists. + If there are multiple headers of the same name, all will be + removed.
+ +
echo
+
Request headers with this name are echoed back in the + response headers. header may be a regular expression.
+
+ +

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. + value may be a character string, a string containing format + specifiers or a combination of both. The following format specifiers + are supported in value:

+ + + + + + + + + + + +
%tThe time the request was received in Universal Coordinated Time + since the epoch (Jan. 1, 1970) measured in microseconds. The value + is preceded by t=.
%DThe 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=.
%{FOOBAR}eThe contents of the environment + variable FOOBAR.
+ +

When the Header directive is used with the + add, append, or set + argument, a fourth argument may be used to specify conditions + under which the action will be taken. If the environment variable specified in the + env=... argument exists (or if the environment + variable does not exist and env=!... is specified) + then the action specified by the Header directive + will take effect. Otherwise, the directive will have no effect + on the request.

+ +

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.

+ +
+
top
+

RequestHeader Directive

+ + + + + + + +
Description:Configure HTTP request headers
Syntax:RequestHeader set|append|add|unset header +[value [env=[!]variable]]
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_headers
+

This directive can replace, merge 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 + of the following values:

+ +
+
set
+
The request header is set, replacing any previous header + with this name
+ +
append
+
The request header is appended to any existing header of the + same name. 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.
+ +
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.
+ +
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.
+
+ +

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 + value contains spaces, it should be surrounded by double + quotes. For unset, no value should be given.

+ +

When the RequestHeader directive is used with the + add, append, or set + argument, a fourth argument may be used to specify conditions + under which the action will be taken. If the environment variable specified in the + env=... argument exists (or if the environment + variable does not exist and env=!... is specified) + then the action specified by the RequestHeader directive + will take effect. Otherwise, the directive will have no effect + on the request.

+ +

The RequestHeader directive is processed + just before the request is run by its handler in the fixup phase. + This should allow headers generated by the browser, or by Apache + input filters to be overridden or modified.

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_headers.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_headers.html.ko.euc-kr new file mode 100644 index 00000000..31732bd9 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_headers.html.ko.euc-kr @@ -0,0 +1,299 @@ + + + +mod_headers - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_headers

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:HTTP û
:Extension
:headers_module
ҽ:mod_headers.c
+

+ +

HTTP û ϰ ϴ + þ Ѵ. ġų ü, ִ.

+
+

þ

+ +

+
+
top
+
+

ó

+ +

mod_headers ϴ þ + ҿ ִ. þ ּ, + ȣƮ , <Directory>, <Location>, <Files> , .htaccess + Ͽ ִ.

+ +

þ Ʒ óȴ.

+ +
    +
  1. ּ
  2. +
  3. ȣƮ
  4. +
  5. <Directory> ǰ + .htaccess
  6. +
  7. <Files>
  8. +
  9. <Location>
  10. +
+ +

߿ϴ. + þ ݴ ȿ ޶.

+ +

+ RequestHeader append MirrorID "mirror 12"
+ RequestHeader unset MirrorID +

+ +

MirrorID + ʴ´. ݴ MirrorID "mirror 12" Ѵ.

+
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] [env=[!]variable]
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Extension
:mod_headers
:Condition ġ 2.0.51
+

þ HTTP ġų ü, Ѵ. + ڵ鷯 Ͱ Ŀ ϱ⶧ + ִ.

+ +

condition ϸ, + onsuccess Ȥ always Ѵ. + ̴  ǥ Ѵ. + onsuccess 2xx ڵ带 + ϰ, always (2xx + ) ڵ带 Ѵ. Ư  + ϰ ʹٸ,  + Ѵ.

+ +

ι° ƱԸƮ ٸ. ι° ƱԸƮ + Ʒ ϳ ִ.

+ +
+
set
+
Ѵ. ̸ ̹ ִٸ + üѴ. value Ĺڿ ִ.
+ +
append
+
̹ ϴ ̸ ߰Ѵ. + ο ġ, ο ̿ + ǥ δ. ̴ ϴ HTTP ǥ ̴.
+ +
add
+
̹ ִ ߰Ѵ. ׷ + ̸ ΰ (Ȥ ) ִ. ǿ + ߻ ֱ⶧ append + ؾ Ѵ.
+ +
unset
+
̷ ̸ ִٸ Ѵ. ̸ + ִٸ Ѵ.
+ +
echo
+
̷ ̸ û ״ . + header ǥ ִ.
+
+ +

ƱԸƮ ڿ header ̸ ´. + ڿ ݷ ,  ȴ. set, + append, add, unset + ҹڴ Ѵ. echo header + ̸ ڸ ϰ ǥ ִ.

+ +

add, append, set + Ҷ ° ƱԸƮ value ʿϴ. + value ȿ ִٸ ֵǥ Ѵ. + value Ϲ ڿ̳ ϴ ڿ̸, + ΰ ִ. value ϴ + ıڴ .

+ + + + + + + + + + + +
%tû ð ǥؽ÷ epoch (1970 1 + 1) ũ . տ t= + ٴ´.
%Dû ð Ʈ ɸ + ð. û Ⱓ . տ D= + ٴ´.
%{FOOBAR}eȯ溯 FOOBAR + .
+ +

Header þ add, + append, set ƱԸƮ ϴ + ׹° ƱԸƮ ۾ ʿ ִ. + env=... ƱԸƮ ϸ ش ȯ溯 ϴ 쿡 (ƴϸ + env=!... ȯ溯 ʴٸ) + Header þ Ѵ. + ׷ þ û ƹ ġ ʴ´.

+ +

Ʈ + Header þ óѴ. + ׷ Ͱ ߰ϴ κ + ϰų  ִ.

+ +
+
top
+

RequestHeader þ

+ + + + + + + +
:HTTP û Ѵ
:RequestHeader set|append|add|unset header +[value]
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Extension
:mod_headers
+

þ HTTP û ġų ü, Ѵ. + ڵ鷯 ϱ ϱ⶧ + ִ. ù° ƱԸƮ ٸ. + ù° ƱԸƮ Ʒ ϳ ִ.

+ +
+
set
+
û Ѵ. ̸ ̹ ִٸ + üѴ
+ +
append
+
̹ ϴ ̸ û ߰Ѵ. + ο ġ, ο ̿ + ǥ δ. ̴ ϴ HTTP ǥ ̴.
+ +
add
+
̹ ִ û ߰Ѵ. ׷ + ̸ ΰ (Ȥ ) ִ. ǿ + ߻ ֱ⶧ append + ؾ Ѵ.
+ +
unset
+
̷ ̸ û ִٸ Ѵ. ̸ + ִٸ Ѵ.
+
+ +

ƱԸƮ ڿ ´. ڿ ݷ + ,  ȴ. ҹڴ Ѵ. add, + append, set Ҷ ° + ƱԸƮ value ʿϴ. value ȿ + ִٸ ֵǥ Ѵ. unset Ҷ + value ȵȴ.

+ +

fixup ܰ迡 + û شϴ ڵ鷯 ϱ + RequestHeader þ óѴ. + ׷ Ȥ ġ ԷͰ ų + ִ.

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_imap.html b/rubbos/app/apache2/manual/mod/mod_imap.html new file mode 100644 index 00000000..24d31679 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_imap.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_imap.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_imap.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_imap.html.en b/rubbos/app/apache2/manual/mod/mod_imap.html.en new file mode 100644 index 00000000..4348baf2 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_imap.html.en @@ -0,0 +1,382 @@ + + + +mod_imap - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_imap

+
+

Available Languages:  en  | + ko 

+
+ + + +
Description:Server-side imagemap processing
Status:Base
ModuleIdentifier:imap_module
SourceFile:mod_imap.c
+

Summary

+ +

This module processes .map files, thereby + replacing the functionality of the imagemap CGI + program. Any directory or document type configured to use the + handler imap-file (using either + AddHandler or + SetHandler) + will be processed by this module.

+ +

The following directive will activate files ending with + .map as imagemap files:

+ +

AddHandler imap-file map

+ +

Note that the following is still supported:

+ +

AddType application/x-httpd-imap map

+ +

However, we are trying to phase out "magic MIME types" so we + are deprecating this method.

+
+ +
top
+
+

New Features

+ +

The imagemap module adds some new features that were not + possible with previously distributed imagemap programs.

+ +
    +
  • URL references relative to the Referer: information.
  • + +
  • Default <base> assignment through a new map + directive base.
  • + +
  • No need for imagemap.conf file.
  • + +
  • Point references.
  • + +
  • Configurable generation of imagemap menus.
  • +
+
top
+
+

Imagemap File

+ +

The lines in the imagemap files can have one of several + formats:

+ +

+ directive value [x,y ...]
+ directive value "Menu text" [x,y + ...]
+ directive value x,y ... "Menu text" +

+ +

The directive is one of base, + default, poly, circle, + rect, or point. The value is an + absolute or relative URL, or one of the special values listed + below. The coordinates are x,y + pairs separated by whitespace. The quoted text is used as the text of + the link if a imagemap menu is generated. Lines beginning with '#' are + comments.

+ +

Imagemap File Directives

+

There are six directives allowed in the imagemap file. The + directives can come in any order, but are processed in the + order they are found in the imagemap file.

+ +
+
base Directive
+ +

Has the effect of <base href="value"> + . The non-absolute URLs of the map-file are taken relative + to this value. The base directive overrides + ImapBase as set in a + .htaccess file or in the server configuration files. + In the absence of an ImapBase configuration + directive, base defaults to + http://server_name/.

+

base_uri is synonymous with base. + Note that a trailing slash on the URL is significant.

+ +
default Directive
+ +
The action taken if the coordinates given do not fit any + of the poly, circle or + rect directives, and there are no + point directives. Defaults to nocontent + in the absence of an ImapDefault configuration setting, causing a status + code of 204 No Content to be returned. The client + should keep the same page displayed.
+ +
poly Directive
+ +
Takes three to one-hundred points, and is obeyed if the + user selected coordinates fall within the polygon defined by + these points.
+ +
circle
+ +
Takes the center coordinates of a circle and a point on + the circle. Is obeyed if the user selected point is with the + circle.
+ +
rect Directive
+ +
Takes the coordinates of two opposing corners of a + rectangle. Obeyed if the point selected is within this + rectangle.
+ +
point Directive
+ +
Takes a single point. The point directive closest to the + user selected point is obeyed if no other directives are + satisfied. Note that default will not be + followed if a point directive is present and + valid coordinates are given.
+
+ + +

Values

+ +

The values for each of the directives can any of the following:

+ +
+
a URL
+ +

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 + current value. A statement base mailto: will + work properly, though.

+ +
map
+ +
Equivalent to the URL of the imagemap file itself. No + coordinates are sent with this, so a menu will be generated + unless ImapMenu is set to + none.
+ +
menu
+
Synonymous with map.
+ +
referer
+ +
Equivalent to the URL of the referring document. Defaults + to http://servername/ if no Referer: + header was present.
+ +
nocontent
+ +
Sends a status code of 204 No Content, + telling the client to keep the same page displayed. Valid for + all but base.
+ +
error
+ +
Fails with a 500 Server Error. Valid for all + but base, but sort of silly for anything but + default.
+
+ + +

Coordinates

+ +
+
0,0 200,200
+ +
A coordinate consists of an x and a y + value separated by a comma. The coordinates are separated + from each other by whitespace. To accommodate the way Lynx + handles imagemaps, should a user select the coordinate + 0,0, it is as if no coordinate had been + selected.
+
+ + + +

Quoted Text

+ +
+
"Menu Text"
+ +

After the value or after the coordinates, the line + optionally may contain text within double quotes. This string + is used as the text for the link if a menu is + generated:

+ +

+ <a href="http://foo.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> +

+ +

If you want to use double quotes within this text, you have to + write them as &quot;.

+
+ + +
top
+
+

Example Mapfile

+ +

+ #Comments are printed in a 'formatted' or 'semiformatted' menu.
+ #And can contain html tags. <hr>
+ 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
+ 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?"
+

+ +
top
+
+

Referencing your mapfile

+ +

HTML example

+ <a href="/maps/imagemap1.map">
+ + <img ismap src="/images/imagemap1.gif">
+
+ </a> +

+ +

XHTML example

+ <a href="/maps/imagemap1.map">
+ + <img ismap="ismap" src="/images/imagemap1.gif" />
+
+ </a> +

+ +
+
top
+

ImapBase Directive

+ + + + + + + + +
Description:Default base for imagemap files
Syntax:ImapBase map|referer|URL
Default:ImapBase http://servername/
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_imap
+

The ImapBase directive sets the default + base used in the imagemap files. Its value is + overridden by a base directive within the imagemap + file. If not present, the base defaults to + http://servername/.

+ +

See also

+ +
+
top
+

ImapDefault Directive

+ + + + + + + + +
Description:Default action when an imagemap is called with coordinates +that are not explicitly mapped
Syntax:ImapDefault error|nocontent|map|referer|URL
Default:ImapDefault nocontent
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_imap
+

The ImapDefault directive sets the default + default used in the imagemap files. Its value is + overridden by a default directive within the + imagemap file. If not present, the default action + is nocontent, which means that a 204 No + Content is sent to the client. In this case, the client + should continue to display the original page.

+ +
+
top
+

ImapMenu Directive

+ + + + + + + +
Description:Action if no coordinates are given when calling +an imagemap
Syntax:ImapMenu none|formatted|semiformatted|unformatted
Context:server config, virtual host, directory, .htaccess
Override:Indexes
Status:Base
Module:mod_imap
+

The ImapMenu directive determines the + action taken if an imagemap file is called without valid + coordinates.

+ +
+
none
+
If ImapMenu is none, no menu is generated, + and the default action is performed.
+ +
formatted
+
A formatted menu is the simplest menu. + Comments in the imagemap file are ignored. A level one header + is printed, then an hrule, then the links each on a separate + line. The menu has a consistent, plain look close to that of + a directory listing.
+ +
semiformatted
+
In the semiformatted menu, comments are + printed where they occur in the imagemap file. Blank lines + are turned into HTML breaks. No header or hrule is printed, + but otherwise the menu is the same as a + formatted menu.
+ +
unformatted
+
Comments are printed, blank lines are ignored. Nothing is + printed that does not appear in the imagemap file. All breaks + and headers must be included as comments in the imagemap + file. This gives you the most flexibility over the appearance + of your menus, but requires you to treat your map files as + HTML instead of plaintext.
+
+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_imap.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_imap.html.ko.euc-kr new file mode 100644 index 00000000..0f3d4e62 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_imap.html.ko.euc-kr @@ -0,0 +1,361 @@ + + + +mod_imap - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_imap

+
+

:  en  | + ko 

+
+ + + +
: ̹(imagemap) ó
:Base
:imap_module
ҽ:mod_imap.c
+

+ +

imagemap CGI α׷ Ͽ + .map óѴ. (AddHandler SetHandler Ͽ) + imap-file ڵ鷯 ϵ 丮 + óѴ.

+ +

Ʒ þ .map ̹ + Ϸ Ѵ.

+ +

AddHandler imap-file map

+ +

Ʒ Ѵ.

+ +

AddType application/x-httpd-imap map

+ +

׷ 츮 " Ư ǹ̰ ִ MIME + type" Ϸ ϱ⶧ ̴.

+
+

þ

+ +

+
+
top
+
+

ο

+ +

̹ ⿡ ̹ α׷  + ο ִ.

+ +
    +
  • Referer: URL .
  • + +
  • ο base þ Ͽ ⺻ + <base> .
  • + +
  • imagemap.conf ʿ.
  • + +
  • (point) .
  • + +
  • ̹ ޴ .
  • +
+
top
+
+

̹

+ +

̹ Ʒ ۼѴ.

+ +

+ directive value [x,y ...]
+ directive value "Menu text" [x,y + ...]
+ directive value x,y ... "Menu text" +

+ +

directive base, default, + poly, circle, rect, + point ϳ. value URL̳ + URL Ȥ Ʒ Ư Ѵ. ǥ + x,y ̴. ǥ + ̹ ޴ 鶧 ũ Ѵ. + '#' ϴ ̴ּ.

+ +

̹ þ

+

̹ Ͽ 6 þ ִ. þ + Ư , ̹ Ͽ + óѴ.

+ +
+
base þ
+ +

<base href="value"> + Ѵ. Ͽ URL URL ƴ϶ + URL Ѵ. base þ + .htaccess ̳ Ͽ + ImapBase + Ѵ. ImapBase þ + ٸ ⺻ base + http://server_name/̴.

+

base_uri base . URL + .

+ +
default þ
+ +
ش ǥ poly, circle, + rect þ ش ʰ point + þ ൿ Ѵ. ImapDefault ٸ + ⺻ 204 No Content ڵ带 ȯϴ + nocontent̴. Ŭ̾Ʈ + Ѵ.
+ +
poly þ
+ +
鰳 ִ. ڰ + ̷ ٰ ǥ 쿡 Ѵ.
+ +
circle
+ +
߽ɰ ǥ ޴´. ڰ + ǥ 쿡 Ѵ.
+ +
rect þ
+ +
簢 𼭸 ǥ ޴´. 簢 + ǥ 쿡 Ѵ.
+ +
point þ
+ +
ǥ ޴´. ٸ þ + ڰ ǥ point þ + Ѵ. point þ ϰ ȿ + ǥ default + ʴ´.
+
+ + +

þ ִ

+ +

þ Ʒ value ִ.

+ +
+
URL
+ +

URL̳ URL ִ. URL + '..' , base + ã´.

+

base Ҷ base Ѵ. + ׷, base mailto: ִ.

+ +
map
+ +
̹ ü URL . ǥ ImapMenu none + ƴ϶ ޴ .
+ +
menu
+
map .
+ +
referer
+ +
(ũ ) URL . + Referer: ٸ ⺻ + http://servername/̴.
+ +
nocontent
+ +
Ŭ̾Ʈ ״ ֶ + 204 No Content ڵ带 . + base þ ִ.
+ +
error
+ +
и Ÿ 500 Server Error . + base þ , + default ܿ .
+
+ + +

ǥ

+ +
+
0,0 200,200
+ +
ǥ ǥ x y ̴. + ǥ Ѵ. ̹ ٷ Ļ + Lynx Ǹ ڰ 0,0 ǥ Ͽٸ + ǥ ó Ѵ.
+
+ + + +

ǥ

+ +
+
"Menu Text"
+ +

value ڳ ǥ ڿ ֵǥ + ִ. ڿ ޴ 鶧 ũ Ѵ.

+ +

+ <a href="http://foo.com/">Menu text</a> +

+ +

ǥ ٸ ũ ũ + Ѵ.

+ +

+ <a href="http://foo.com/">http://foo.com</a> +

+ +

ֵǥ &quot; + Ѵ.

+
+ + +
top
+
+

+ +

+ #'formatted' 'semiformatted' ޴ ּ Ѵ.
+ #׸ ּ html ±׸ ִ. <hr>
+ base referer
+ poly map "޴ ּ." 0,0 0,10 10,10 10,0
+ rect .. 0,0 77,27 " ִ 丮"
+ circle http://www.inetnebr.com/lincoln/feedback/ 195,0 305,27
+ rect another_file " 丮 ִ" 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 "?"
+

+ +
top
+
+

ϱ

+ +

HTML

+ <a href="/maps/imagemap1.map">
+ + <img ismap src="/images/imagemap1.gif">
+
+ </a> +

+ +

XHTML

+ <a href="/maps/imagemap1.map">
+ + <img ismap="ismap" src="/images/imagemap1.gif" />
+
+ </a> +

+ +
+
top
+

ImapBase þ

+ + + + + + + + +
:̹ Ͽ base
:ImapBase map|referer|URL
⺻:ImapBase http://servername/
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_imap
+

ImapBase þ ̹ Ͽ + base ⺻ Ѵ. ̹ + ȿ base þ ϸ ⼭ + Ѵ. ٸ, base ⺻ + http://servername/̴.

+ +

+ +
+
top
+

ImapDefault þ

+ + + + + + + + +
:̹ʿ ش ʴ ǥ + ⺻ ൿ
:ImapDefault error|nocontent|map|referer|URL
⺻:ImapDefault nocontent
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_imap
+

ImapDefault þ ̹ + Ͽ default ⺻ Ѵ. + ̹ ȿ default þ ϸ + ⼭ Ѵ. ٸ, default + ൿ Ŭ̾Ʈ 204 No Content + nocontent̴. Ŭ̾Ʈ + ״ Ѵ.

+ +
+
top
+

ImapMenu þ

+ + + + + + + +
:ǥ ̹ û ൿ
:ImapMenu none|formatted|semiformatted|unformatted
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Indexes
:Base
:mod_imap
+

ImapMenu þ ̹ Ͽ + ȿ ǥ ൿ Ѵ.

+ +
+
none
+
ImapMenu none̸, ޴ ʰ + default ൿ Ѵ.
+ +
formatted
+
formatted ޴ ޴. + ̹ ּ Ѵ. ū ǥ + ϰ, ũ پ Ѵ. ޴ ϰǰ ϸ, + 丮 ϰ ϴ.
+ +
semiformatted
+
semiformatted ޴ ̹ Ͽ + ּ Ѵ. HTML ٲ ȯѴ. + ǥ ׸ , formatted + ޴ .
+ +
unformatted
+
ּ ϰ, Ѵ. ̹ Ͽ + ִ 븸 Ѵ. ̹ ּ ʿ + ٲް ǥ Ѵ. ޴ ܰ + ٹ , ̹ ǻ Ϲ + ƴ HTML Ѵ.
+
+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_include.html b/rubbos/app/apache2/manual/mod/mod_include.html new file mode 100644 index 00000000..db272ac7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_include.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_include.html.en b/rubbos/app/apache2/manual/mod/mod_include.html.en new file mode 100644 index 00000000..1d828132 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_include.html.en @@ -0,0 +1,785 @@ + + + +mod_include - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_include

+
+

Available Languages:  en  | + ja 

+
+ + + + +
Description:Server-parsed html documents (Server Side Includes)
Status:Base
ModuleIdentifier:include_module
SourceFile:mod_include.c
Compatibility:Implemented as an output filter since Apache +2.0
+

Summary

+ +

This module provides a filter which will process files + before they are sent to the client. The processing is + controlled by specially formatted SGML comments, referred to as + elements. These elements allow conditional text, the + inclusion of other files or programs, as well as the setting and + printing of environment variables.

+
+ +
top
+
+

Enabling Server-Side Includes

+ + +

Server Side Includes are implemented by the + INCLUDES filter. If + documents containing server-side include directives are given + the extension .shtml, the following directives will make Apache + parse them and assign the resulting document the mime type of + text/html:

+ +

+ AddType text/html .shtml
+ AddOutputFilter INCLUDES .shtml +

+ +

The following directive must be given for the directories + containing the shtml files (typically in a + <Directory> section, + but this directive is also valid in .htaccess files if + AllowOverride Options + is set):

+ +

+ Options +Includes +

+ +

For backwards compatibility, the server-parsed + handler also activates the + INCLUDES filter. As well, Apache will activate the INCLUDES + filter for any document with mime type + text/x-server-parsed-html or + text/x-server-parsed-html3 (and the resulting + output will have the mime type text/html).

+ +

For more information, see our Tutorial on Server Side Includes.

+
top
+
+

PATH_INFO with Server Side Includes

+ + +

Files processed for server-side includes no longer accept + requests with PATH_INFO (trailing pathname information) + by default. You can use the AcceptPathInfo directive to + configure the server to accept requests with PATH_INFO.

+
top
+
+

Basic Elements

+

The document is parsed as an HTML document, with special + commands embedded as SGML comments. A command has the syntax:

+ +

+ <!--#element attribute=value + attribute=value ... --> +

+ +

The value will often be enclosed in double quotes, but single + quotes (') and backticks (`) are also + possible. Many commands only allow a single attribute-value pair. + Note that the comment terminator (-->) should be + preceded by whitespace to ensure that it isn't considered part of + an SSI token. Note that the leading <!--# is one + token and may not contain any whitespaces.

+ +

The allowed elements are listed in the following table:

+ + + + + + + + + + + + + + + + + + + +
ElementDescription
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 elements may be defined by modules other than + mod_include. In fact, the exec element is provided by + mod_cgi, and will only be available if this + module is loaded.

+ +

The config Element

+

This command controls various aspects of the parsing. The + valid attributes are:

+ +
+
errmsg
+
The value is a message that is sent back to the + client if an error occurs while parsing the + document. This overrides any SSIErrorMsg directives.
+ +
sizefmt
+
The value sets the format to be used which 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 + will be printed as "1K".
+ +
timefmt
+
The value is a string to be used by the + strftime(3) library routine when printing + dates.
+
+ + +

The echo Element

+

This command prints one of the include + 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.

+ +

Attributes:

+ +
+
var
+
The value is the name of the variable to print.
+ +
encoding
+

Specifies how Apache should encode special characters + contained in the variable before outputting them. If set + to none, no encoding will be done. If set to + url, then URL encoding (also known as %-encoding; + this is appropriate for use within URLs in links, etc.) will be + performed. At the start of an echo element, + the default is set to entity, resulting in entity + encoding (which is appropriate in the context of a block-level + HTML element, e.g. a paragraph of text). This can be + changed by adding an encoding attribute, which will + remain in effect until the next encoding attribute + is encountered or the element ends, whichever comes first.

+ +

The encoding attribute must precede the + corresponding var attribute to be effective, and + only special characters as defined in the ISO-8859-1 character + encoding will be encoded. This encoding process may not have the + desired result if a different character encoding is in use.

+ +
+ In order to avoid cross-site scripting issues, you should + always encode user supplied data. +
+
+
+ + +

The exec Element

+

The exec command executes a given shell command or + CGI script. It requires mod_cgi to be present + in the server. If Options + IncludesNOEXEC is set, this command is completely + disabled. The valid attributes are:

+ +
+
cgi
+

The value specifies a (%-encoded) URL-path to + the CGI script. If the path does not begin with a slash (/), + then it is taken to be relative to the current + document. The document referenced by this path is + invoked as a CGI script, even if the server would not + normally recognize it as such. However, the directory + containing the script must be enabled for CGI scripts + (with ScriptAlias + or Options + ExecCGI).

+ +

The CGI script is given the PATH_INFO and query + string (QUERY_STRING) of the original request from the + client; these cannot be specified in the URL path. The + include variables will be available to the script in addition to + the standard CGI environment.

+ +

Example

+ <!--#exec cgi="/cgi-bin/example.cgi" --> +

+ +

If the script returns a Location: header instead of + output, then this will be translated into an HTML anchor.

+ +

The include virtual + element should be used in preference to exec cgi. In + particular, if you need to pass additional arguments to a CGI program, + using the query string, this cannot be done with exec + cgi, but can be done with include virtual, as + shown here:

+ +

+ <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> +

+
+ +
cmd
+

The server will execute the given string using + /bin/sh. The include variables are available to the command, in addition + to the usual set of CGI variables.

+ +

The use of #include virtual is almost always prefered to using + either #exec cgi or #exec cmd. The former + (#include virtual) uses the standard Apache sub-request + mechanism to include files or scripts. It is much better tested and + maintained.

+ +

In addition, on some platforms, like Win32, and on unix when + using suexec, you cannot pass arguments + to a command in an exec directive, or otherwise include + spaces in the command. Thus, while the following will work under a + non-suexec configuration on unix, it will not produce the desired + result under Win32, or when running suexec:

+ +

+ <!--#exec cmd="perl /path/to/perlscript arg1 arg2" --> +

+
+
+ + +

The fsize Element

+

This command prints the size of the specified file, subject + to the sizefmt format specification. Attributes:

+ +
+
file
+
The value is a path relative to the directory + containing the current document being parsed.
+ +
virtual
+
The value is a (%-encoded) URL-path. If it does not begin with + a slash (/) then it is taken to be relative to the current document. + Note, that this does not print the size of any CGI output, + but the size of the CGI script itself.
+
+ + +

The flastmod Element

+

This command prints the last modification date of the + specified file, subject to the timefmt format + specification. The attributes are the same as for the + fsize command.

+ + +

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.

+ +

An attribute defines the location of the document; the + inclusion is done for each attribute given to the include + command. The valid attributes are:

+ +
+
file
+
The value is a path relative to the directory + containing the current document being parsed. It cannot + contain ../, nor can it be an absolute path. + Therefore, you cannot include files that are outside of the + document root, or above the current document in the directory + structure. The virtual attribute should always be + used in preference to this one.
+ +
virtual
+

The value is a (%-encoded) URL-path. The URL cannot contain a + scheme or hostname, only a path and an optional query string. If it + does not begin with a slash (/) then it is taken to be relative to the + current document.

+ +

A URL is constructed from the attribute, and the output the + server would return if the URL were accessed by the client is + included in the parsed output. Thus included files can be nested.

+ +

If the specified URL is a CGI program, the program will be + executed and its output inserted in place of the directive in the + parsed file. You may include a query string in a CGI url:

+ +

+ <!--#include virtual="/cgi-bin/example.cgi?argument=value" --> +

+ +

include virtual should be used in preference + to exec cgi to include the output of CGI programs + into an HTML document.

+
+
+ + +

The printenv Element

+

This prints out a listing of all existing variables and + their values. Special characters are entity encoded (see the echo element for details) + before being output. There are no attributes.

+ +

Example

+ <!--#printenv --> +

+ + +

The set Element

+

This sets the value of a variable. Attributes:

+ +
+
var
+
The name of the variable to set.
+ +
value
+
The value to give a variable.
+
+ +

Example

+ <!--#set var="category" value="help" --> +

+ +
top
+
+

Include Variables

+ + +

In addition to the variables in the standard CGI environment, + these are available for the echo command, for + if and elif, and to any program + invoked by the document.

+ +
+
DATE_GMT
+
The current date in Greenwich Mean Time.
+ +
DATE_LOCAL
+
The current date in the local time zone.
+ +
DOCUMENT_NAME
+
The filename (excluding directories) of the document + requested by the user.
+ +
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. 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 + the user.
+ +
QUERY_STRING_UNESCAPED
+
If a query string is present, this variable contains the + (%-decoded) query string, which is escaped for shell + usage (special characters like & etc. are + preceded by backslashes).
+
+
top
+
+

Variable Substitution

+ +

Variable substitution is done within quoted strings in most + cases where they may reasonably occur as an argument to an SSI + directive. This includes the config, + exec, flastmod, fsize, + include, echo, and set + directives, as well as the arguments to conditional operators. + You can insert a literal dollar sign into the string using backslash + quoting:

+ +

+ <!--#if expr="$a = \$test" --> +

+ +

If a variable reference needs to be substituted in the + middle of a character sequence that might otherwise be + considered a valid identifier in its own right, it can be + disambiguated by enclosing the reference in braces, + a la shell substitution:

+ +

+ <!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --> +

+ +

This will result in the Zed variable being set + to "X_Y" if REMOTE_HOST is + "X" and REQUEST_METHOD is + "Y".

+ +

The below example will print "in foo" if the + DOCUMENT_URI is /foo/file.html, "in bar" + if it is /bar/file.html and "in neither" otherwise:

+ +

+ <!--#if expr='"$DOCUMENT_URI" = "/foo/file.html"' -->
+ + in foo
+
+ <!--#elif expr='"$DOCUMENT_URI" = "/bar/file.html"' -->
+ + in bar
+
+ <!--#else -->
+ + in neither
+
+ <!--#endif --> +

+
top
+
+

Flow Control Elements

+ + +

The basic flow control elements are:

+ +

+ <!--#if expr="test_condition" -->
+ <!--#elif expr="test_condition" -->
+ <!--#else -->
+ <!--#endif --> +

+ +

The if element works like an if statement in a + programming language. The test condition is evaluated and if + the result is true, then the text until the next elif, + else or endif element is included in the + output stream.

+ +

The elif or else statements are be used + to put text into the output stream if the original + test_condition was false. These elements are optional.

+ +

The endif element ends the if element + and is required.

+ +

test_condition is one of the following:

+ +
+
string
+
true if string is not empty
+ +
string1 = string2
+ string1 != string2
+ +

Compare string1 with string2. If + string2 has the form /string2/ + then it is treated as a regular expression. Regular expressions are + implemented by the PCRE engine and + have the same syntax as those in perl + 5.

+ +

If you are matching positive (=), you can capture + grouped parts of the regular expression. The captured parts are + stored in the special variables $1 .. + $9.

+ +

Example

+ <!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" -->
+ + <!--#set var="session" value="$1" -->
+
+ <!--#endif --> +

+
+ +
string1 < string2
+ string1 <= string2
+ string1 > string2
+ string1 >= string2
+ +
Compare string1 with string2. Note, that + strings are compared literally (using + strcmp(3)). Therefore the string "100" is less than + "20".
+ +
( test_condition )
+
true if test_condition is true
+ +
! test_condition
+
true if test_condition is false
+ +
test_condition1 && + test_condition2
+
true if both test_condition1 and + test_condition2 are true
+ +
test_condition1 || + test_condition2
+
true if either test_condition1 or + test_condition2 is true
+
+ +

"=" and "!=" bind more tightly than + "&&" and "||". "!" binds + most tightly. Thus, the following are equivalent:

+ +

+ <!--#if expr="$a = test1 && $b = test2" -->
+ <!--#if expr="($a = test1) && ($b = test2)" --> +

+ +

The boolean operators && and || + share the same priority. So if you want to bind such an operator more + tightly, you should use parentheses.

+ +

Anything that's not recognized as a variable or an operator + is treated as a string. Strings can also be quoted: + 'string'. Unquoted strings can't contain whitespace + (blanks and tabs) because it is used to separate tokens such as + variables. If multiple strings are found in a row, they are + concatenated using blanks. So,

+ +

string1    string2 results in string1 string2
+
+ and
+
+ 'string1    string2' results in string1    string2.

+ +

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
+

SSIEndTag Directive

+ + + + + + + + +
Description:String that ends an include element
Syntax:SSIEndTag tag
Default:SSIEndTag "-->"
Context:server config, virtual host
Status:Base
Module:mod_include
Compatibility:Available in version 2.0.30 and later.
+

This directive changes the string that mod_include + looks for to mark the end of an include element.

+ +

Example

+ SSIEndTag "%>" +

+ + +

See also

+ +
+
top
+

SSIErrorMsg Directive

+ + + + + + + + + +
Description:Error message displayed when there is an SSI +error
Syntax:SSIErrorMsg message
Default:SSIErrorMsg "[an error occurred while processing this +directive]"
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Base
Module:mod_include
Compatibility:Available in version 2.0.30 and later.
+

The SSIErrorMsg directive changes the error + message displayed when mod_include encounters an + error. For production servers you may consider changing the default + error message to "<!-- Error -->" so that + the message is not presented to the user.

+ +

This directive has the same effect as the <!--#config + errmsg=message --> element.

+ +

Example

+ SSIErrorMsg "<!-- Error -->" +

+ +
+
top
+

SSIStartTag Directive

+ + + + + + + + +
Description:String that starts an include element
Syntax:SSIStartTag tag
Default:SSIStartTag "<!--#"
Context:server config, virtual host
Status:Base
Module:mod_include
Compatibility:Available in version 2.0.30 and later.
+

This directive changes the string that mod_include + looks for to mark an include element to process.

+ +

You may want to use this option if you have 2 servers parsing the + output of a file each processing different commands (possibly at + different times).

+ +

Example

+ SSIStartTag "<%"
+ SSIEndTag "%>" +

+ +

The example given above, which also specifies a matching + SSIEndTag, will + allow you to use SSI directives as shown in the example + below:

+ +

SSI directives with alternate start and end tags

+ <%printenv %> +

+ +

See also

+ +
+
top
+

SSITimeFormat Directive

+ + + + + + + + + +
Description:Configures the format in which date strings are +displayed
Syntax:SSITimeFormat formatstring
Default:SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Base
Module:mod_include
Compatibility:Available in version 2.0.30 and later.
+

This directive changes the format in which date strings are displayed + when echoing DATE environment variables. The + formatstring is as in strftime(3) from the + C standard library.

+ +

This directive has the same effect as the <!--#config + timefmt=formatstring --> element.

+ +

Example

+ SSITimeFormat "%R, %B %d, %Y" +

+ +

The above directive would cause times to be displayed in the + format "22:26, June 14, 2002".

+ +
+
top
+

SSIUndefinedEcho Directive

+ + + + + + + + +
Description:String displayed when an unset variable is echoed
Syntax:SSIUndefinedEcho string
Default:SSIUndefinedEcho "(none)"
Context:server config, virtual host
Status:Base
Module:mod_include
Compatibility:Available in version 2.0.34 and later.
+

This directive changes the string that mod_include + displays when a variable is not set and "echoed".

+ +

Example

+ SSIUndefinedEcho "<!-- undef -->" +

+ +
+
top
+

XBitHack Directive

+ + + + + + + + +
Description:Parse SSI directives in files with the execute bit +set
Syntax:XBitHack on|off|full
Default:XBitHack off
Context:server config, virtual host, directory, .htaccess
Override:Options
Status:Base
Module:mod_include
+

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:

+ +
+
off
+
No special treatment of executable files.
+ +
on
+
Any text/html file that has the user-execute bit + set will be treated as a server-parsed html document.
+ +
full
+
As for on but also test the group-execute bit. + If it is set, then set the Last-modified date of the + returned file to be the last modified time of the file. If + it is not set, then no last-modified date is sent. Setting + this bit allows clients and proxies to cache the result of + the request. + +

Note

+

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).

+
+
+
+ + +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_include.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_include.html.ja.utf8 new file mode 100644 index 00000000..5ba814a5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_include.html.ja.utf8 @@ -0,0 +1,762 @@ + + + +mod_include - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_include

+
+

Available Languages:  en  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:サーバがパースする 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 要素

+

次のコマンドは解析の様々な側面を制御します。属性は次の通りです。

+ +
+
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 コマンドや、 + ifelif, それにドキュメントから呼び出される + すべてのプログラムから使用できる変数があります。

+ +
+
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 文と同じように動作します。条件が評価され、結果が真であれば次の + elifelseendif + 要素までの文字列が出力に挿入されます。

+ +

elifelse 文は test_condition + が偽のときにテキストを出力に挿入するために使われます。 + これらの要素はあってもなくても構いません。

+ +

endif 要素は if + 要素を終了させます。この要素は必須です。

+ +

test_condition は以下のどれかです:

+ +
+
string
+
string が空でない場合に真です
+ +
string1 = string2
+ string1 == string2
+ string1 != string2
+ +

string1string2 を比較します。 + 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
+ +
string1string2 を比較します。 + 文字列として比較される (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    string2string1 string2 になります。
+
+ また、
+
+ 'string1    string2'string1    string2 + になります。

+
+
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)"
コンテキスト:サーバ設定ファイル, バーチャルホスト
上書き: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 は使わない方が良い + でしょう。
+
+
+ + +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_info.html b/rubbos/app/apache2/manual/mod/mod_info.html new file mode 100644 index 00000000..2b70dae6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_info.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_info.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_info.html.en b/rubbos/app/apache2/manual/mod/mod_info.html.en new file mode 100644 index 00000000..b7ad45a3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_info.html.en @@ -0,0 +1,128 @@ + + + +mod_info - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_info

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Provides a comprehensive overview of the server +configuration
Status:Extension
ModuleIdentifier:info_module
SourceFile:mod_info.c
+

Summary

+ +

To configure mod_info, add the following to your + httpd.conf file.

+ +

+ <Location /server-info>
+ + SetHandler server-info
+
+ </Location> +

+ +

You may wish to use mod_access inside the + <Location> + directive to limit access to your server configuration + information:

+ +

+ <Location /server-info>
+ + SetHandler server-info
+ Order deny,allow
+ Deny from all
+ Allow from yourcompany.com
+
+ </Location> +

+ +

Once configured, the server information is obtained by + accessing http://your.host.dom/server-info

+ +
+ Note that the configuration files are read by the + module at run-time, and therefore the display may + not reflect the running server's active + configuration if the files have been changed since the server + was last reloaded. Also, the configuration files must be + readable by the user as which the server is running (see the + User directive), or + else the directive settings will not be listed. + +

It should also be noted that if + mod_info is compiled into the server, its + handler capability is available in all configuration + files, including per-directory files (e.g., + .htaccess). This may have security-related + ramifications for your site.

+ +

In particular, this module can leak sensitive information + from the configuration directives of other Apache modules such as + system paths, usernames/passwords, database names, etc. Due to + the way this module works there is no way to block information + from it. Therefore, this module should only be + used in a controlled environment and always with caution.

+
+
+

Directives

+ +
+ +
top
+

AddModuleInfo Directive

+ + + + + + + +
Description:Adds additional information to the module +information displayed by the server-info handler
Syntax:AddModuleInfo module-name string
Context:server config, virtual host
Status:Extension
Module:mod_info
Compatibility:Apache 1.3 and above
+

This allows the content of string to be shown as + HTML interpreted, Additional Information for + the module module-name. Example:

+ +

+ AddModuleInfo mod_auth.c 'See <a \
+ + href="http://www.apache.org/docs/2.0/mod/mod_auth.html">\
+ http://www.apache.org/docs/2.0/mod/mod_auth.html</a>' +
+

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_info.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_info.html.ja.utf8 new file mode 100644 index 00000000..eeca181e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_info.html.ja.utf8 @@ -0,0 +1,118 @@ + + + +mod_info - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_info

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:サーバの設定の包括的な概観を提供する
ステータス:Extension
モジュール識別子:info_module
ソースファイル:mod_info.c
+

概要

+ + +

mod_info を設定するには、以下を httpd.conf + ファイルに加えます。

+ +

+<Location /server-info>
+SetHandler server-info
+</Location>
+

+ +

サーバ設定の情報へのアクセスを制限するために、 + <Location> + ディレクティブの中に <Limit> + 節を入れるとよいかもしれません。

+ +

一旦設定すると、http://your.host.dom/server-info + をアクセスすることでサーバの情報を得られるようになります。

+ +
+

このモジュールは実行時に設定ファイルを読み込みます。 + サーバの設定ファイルが最後にサーバに読み込まれた後に変更されている + 場合には、表示されている内容は実行されているサーバの設定を反映して + いないかもしれないことに注意してください。 + また、設定ファイルはサーバが実行されているユーザの権限で + 読み込み許可が与えられている必要があります + (User + ディレクティブを参照してください)。 + でなければ、ディレクティブの設定は表示されません。

+ +

mod_info + がサーバに組み込まれている場合は、ディレクトリのファイル + (例えば、.htaccess) を含むすべての設定ファイルで + ハンドラを使用可能であるということにも注意してください。 + これは、あなたのサイトではセキュリティに関連した問題があるかもしれません。 +

+ +

特に、このモジュールはシステムパス、ユーザ名/パスワード、 + データベース名など、他の Apache モジュールの設定ディレクティブから + セキュリティ上微妙な情報を漏らす可能性があります。 + このモジュールの動作方法のせいで、情報の流出を防ぐ方法はありません。 + ですから、このモジュールはちゃんとアクセスが制御された環境で、 + 注意して使ってください。

+
+
+

ディレクティブ

+ +
+ +
top
+

AddModuleInfo ディレクティブ

+ + + + + + + +
説明:server-info ハンドラにより表示されるモジュールの情報に +追加の情報を付け加える
構文:AddModuleInfo module-name string
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Extension
モジュール:mod_info
互換性:Apache 1.3 以降
+

これは、string の内容がモジュール module-name + の追加情報 として HTML + として解釈され、表示されるようにします。例:

+ +

+ AddModuleInfo mod_authn_file.c 'See <a \
+ + href="http://www.apache.org/docs/2.0/mod/mod_authn_file.html">\
+ http://www.apache.org/docs/2.0/mod/mod_authn_file.html</a>' +
+

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_info.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_info.html.ko.euc-kr new file mode 100644 index 00000000..8619c013 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_info.html.ko.euc-kr @@ -0,0 +1,112 @@ + + + +mod_info - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_info

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
: ش
:Extension
:info_module
ҽ:mod_info.c
+

+ +

mod_info Ϸ httpd.conf + Ͽ ߰Ѵ.

+ +

+ <Location /server-info>
+ + SetHandler server-info
+
+ </Location> +

+ +

ƹ <Location> þ ȿ <Limit> ߰ + ִ.

+ +

̷ ϸ + http://your.host.dom/server-info + Ͽ ִ.

+ +
+ Ҷ б⶧, + Ŀ Ͽٸ ȭ鿡 ǥõ + ٸ ִ. , + ϴ (User þ ) + ־ Ѵ. ٸ þ + Ѵ. + +

mod_info ϵִٸ, + 丮 ( , + .htaccess) Ͽ + ڵ鷯 ִ. ׷ Ʈ Ȱ + ִ.

+ +

Ư ý , ڸ/ȣ, ͺ̽ + ̸ ġ þ ΰ + ִ. ϴ Ļ ̸ + . ׷ ׻ ؾ ϸ + ȯ濡 ؾ Ѵ.

+
+
+

þ

+ +
+ +
top
+

AddModuleInfo þ

+ + + + + + + +
:⿡ ߰ server-info ڵ鷯 ֵ +߰Ѵ
:AddModuleInfo module-name string
:ּ, ȣƮ
:Extension
:mod_info
:ġ 1.3
+

module-name߰ + string HTML ش. ,

+ +

+ AddModuleInfo mod_auth.c 'See <a \
+ + href="http://www.apache.org/docs/2.0/mod/mod_auth.html">\
+ http://www.apache.org/docs/2.0/mod/mod_auth.html</a>' +
+

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_isapi.html b/rubbos/app/apache2/manual/mod/mod_isapi.html new file mode 100644 index 00000000..d80ca339 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_isapi.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_isapi.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mod_isapi.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_isapi.html.en b/rubbos/app/apache2/manual/mod/mod_isapi.html.en new file mode 100644 index 00000000..3af3db2d --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_isapi.html.en @@ -0,0 +1,343 @@ + + + +mod_isapi - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_isapi

+
+

Available Languages:  en  | + ko 

+
+ + + + +
Description:ISAPI Extensions within Apache for Windows
Status:Base
ModuleIdentifier:isapi_module
SourceFile:mod_isapi.c
Compatibility:Win32 only
+

Summary

+ +

This module implements the Internet Server extension API. It + allows Internet Server extensions (e.g. ISAPI .dll + modules) to be served by Apache for Windows, subject to the + noted restrictions.

+ +

ISAPI extension modules (.dll files) are written by third + parties. The Apache Group does not author these modules, so we + provide no support for them. Please contact the ISAPI's author + directly if you are experiencing problems running their ISAPI + 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-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-handler .dll +

+ +
In versions of the Apache server prior to 2.0.37, use + isapi-isa instead of isapi-handler. The new + handler name is not available prior to version 2.0.37. 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 + httpd.conf:

+

+ ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll +

+ +

Whether or not you have preloaded an ISAPI extension, all + ISAPI extensions are governed by the same permissions and + restrictions as CGI scripts. That is, Options ExecCGI must be set for the + directory that contains the ISAPI .dll file.

+ +

Review the Additional Notes and the Programmer's Journal for additional details + and clarification of the specific ISAPI support offered by + mod_isapi.

+
top
+
+

Additional Notes

+ +

Apache's ISAPI implementation conforms to all of the ISAPI + 2.0 specification, except for some "Microsoft-specific" + extensions dealing with asynchronous I/O. Apache's I/O model + does not allow asynchronous reading and writing in a manner + that the ISAPI could access. If an ISA tries to access + unsupported features, including async I/O, a message is placed + in the error log to help with debugging. Since these messages + can become a flood, the directive ISAPILogNotSupported + Off exists to quiet this noise.

+ +

Some servers, like Microsoft IIS, load the ISAPI extension + into the server and keep it loaded until memory usage is too + high, or unless configuration options are specified. Apache + currently loads and unloads the ISAPI extension each time it is + requested, unless the ISAPICacheFile directive is specified. + This is inefficient, but Apache's memory model makes this the + most effective method. Many ISAPI modules are subtly + incompatible with the Apache server, and unloading these + modules helps to ensure the stability of the server.

+ +

Also, remember that while Apache supports ISAPI Extensions, + it does not support ISAPI Filters. Support for + filters may be added at a later date, but no support is planned + at this time.

+
top
+
+

Programmer's Journal

+ +

If you are programming Apache 2.0 mod_isapi + modules, you must limit your calls to ServerSupportFunction + to the following directives:

+ +
+
HSE_REQ_SEND_URL_REDIRECT_RESP
+
Redirect the user to another location.
+ This must be a fully qualified URL (e.g. + http://server/location).
+ +
HSE_REQ_SEND_URL
+
Redirect the user to another location.
+ This cannot be a fully qualified URL, you are not allowed to + pass the protocol or a server name (e.g. simply + /location).
+ This redirection is handled by the server, not the + browser.
+

Warning

+

In their recent documentation, Microsoft appears to have + abandoned the distinction between the two + HSE_REQ_SEND_URL functions. Apache continues to treat + them as two distinct functions with different requirements + and behaviors.

+
+ +
HSE_REQ_SEND_RESPONSE_HEADER
+
Apache accepts a response body following the header if it + follows the blank line (two consecutive newlines) in the + headers string argument. This body cannot contain NULLs, + since the headers argument is NULL terminated.
+ +
HSE_REQ_DONE_WITH_SESSION
+
Apache considers this a no-op, since the session will be + finished when the ISAPI returns from processing.
+ +
HSE_REQ_MAP_URL_TO_PATH
+
Apache will translate a virtual name to a physical + name.
+ +
HSE_APPEND_LOG_PARAMETER
+
+ This logged message may be captured in any of the following + logs: + + + +

The first option, the %{isapi-parameter}n component, + is always available and preferred.

+
+ +
HSE_REQ_IS_KEEP_CONN
+
Will return the negotiated Keep-Alive status.
+ +
HSE_REQ_SEND_RESPONSE_HEADER_EX
+
Will behave as documented, although the fKeepConn + flag is ignored.
+ +
HSE_REQ_IS_CONNECTED
+
Will report false if the request has been aborted.
+
+ +

Apache returns FALSE to any unsupported call to + ServerSupportFunction, and sets the + GetLastError value to + ERROR_INVALID_PARAMETER.

+ +

ReadClient retrieves the request body exceeding the + initial buffer (defined by ISAPIReadAheadBuffer). Based on the + ISAPIReadAheadBuffer setting (number of bytes + to buffer prior to calling the ISAPI handler) shorter requests are sent + complete to the extension when it is invoked. If the request is + longer, the ISAPI extension must use ReadClient to + retrieve the remaining request body.

+ +

WriteClient is supported, but only with the + HSE_IO_SYNC flag or no option flag (value of + 0). Any other WriteClient request + will be rejected with a return value of FALSE, and a + GetLastError value of + ERROR_INVALID_PARAMETER.

+ +

GetServerVariable is supported, although extended server + variables do not exist (as defined by other servers.) All the + usual Apache CGI environment variables are available from + GetServerVariable, as well as the ALL_HTTP + and ALL_RAW values.

+ +

Apache 2.0 mod_isapi supports additional + features introduced in later versions of the ISAPI specification, + as well as limited emulation of async I/O and the + TransmitFile semantics. Apache also supports preloading + ISAPI .dlls for performance, neither of which were not available under + Apache 1.3 mod_isapi.

+
+
top
+

ISAPIAppendLogToErrors Directive

+ + + + + + + + +
Description:Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the error log
Syntax:ISAPIAppendLogToErrors on|off
Default:ISAPIAppendLogToErrors off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_isapi
+

Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extensions to the server error log.

+ +
+
top
+

ISAPIAppendLogToQuery Directive

+ + + + + + + + +
Description:Record HSE_APPEND_LOG_PARAMETER requests from +ISAPI extensions to the query field
Syntax:ISAPIAppendLogToQuery on|off
Default:ISAPIAppendLogToQuery on
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_isapi
+

Record HSE_APPEND_LOG_PARAMETER requests from ISAPI + extensions to the query field (appended to the CustomLog %q + component).

+ +
+
top
+

ISAPICacheFile Directive

+ + + + + + +
Description:ISAPI .dll files to be loaded at startup
Syntax:ISAPICacheFile file-path [file-path] +...
Context:server config, virtual host
Status:Base
Module:mod_isapi
+

Specifies a space-separated list of file names to be loaded + when the Apache server is launched, and remain loaded until the + server is shut down. This directive may be repeated for every + ISAPI .dll file desired. The full path name of each file should + be specified. If the path name is not absolute, it will be treated + relative to ServerRoot.

+ +
+
top
+

ISAPIFakeAsync Directive

+ + + + + + + + +
Description:Fake asynchronous support for ISAPI callbacks
Syntax:ISAPIFakeAsync on|off
Default:ISAPIFakeAsync off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_isapi
+

While set to on, asynchronous support for ISAPI callbacks is + simulated.

+ +
+
top
+

ISAPILogNotSupported Directive

+ + + + + + + + +
Description:Log unsupported feature requests from ISAPI +extensions
Syntax:ISAPILogNotSupported on|off
Default:ISAPILogNotSupported off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_isapi
+

Logs all requests for unsupported features from ISAPI + extensions in the server error log. This may help administrators + to track down problems. Once set to on and all desired ISAPI modules + are functioning, it should be set back to off.

+ +
+
top
+

ISAPIReadAheadBuffer Directive

+ + + + + + + + +
Description:Size of the Read Ahead Buffer sent to ISAPI +extensions
Syntax:ISAPIReadAheadBuffer size
Default:ISAPIReadAheadBuffer 49152
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_isapi
+

Defines the maximum size of the Read Ahead Buffer sent to + ISAPI extensions when they are initially invoked. All remaining + data must be retrieved using the ReadClient callback; some + ISAPI extensions may not support the ReadClient function. + Refer questions to the ISAPI extension's author.

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_isapi.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_isapi.html.ko.euc-kr new file mode 100644 index 00000000..04ff98a1 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_isapi.html.ko.euc-kr @@ -0,0 +1,319 @@ + + + +mod_isapi - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_isapi

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + + +
:Windows ġ ISAPI Extension
:Base
:isapi_module
ҽ:mod_isapi.c
:Win32 only
+

+ +

Internet Server extension API Ѵ. ׷ + Windows ġ Internet Server extension + (, ISAPI .dll ) ִ.

+ +

ISAPI extension (.dll ) ڰ ۼѴ. + Apache Group ̵ ʾ, + ʴ´. ISAPI extension 뿡 ISAPI ڿ + ϱ ٶ. ̷ ġ + ϸƮ ׺ ø .

+
+ +
top
+
+

+ +

Ͽ AddHandler þ Ͽ + ISAPI Ȯڿ isapi-isa ڵ鷯 Ѵ. + .dll ISAPI extension óϷ httpd.conf Ͽ + ߰Ѵ.

+

+ AddHandler isapi-isa .dll +

+ +

ġ û ޸𸮿 . + ׷ httpd.conf Ư ̸ + о ִ.

+

+ ISAPICacheFile c:/WebWork/Scripts/ISAPI/mytest.dll +

+ +

ISAPI extension ̸ о̴ ̸ о ʴ + ISAPI extension CGI ũƮ Ѱ + . , ISAPI .dll ִ 丮 Options ExecCGI + ʿϴ.

+ +

mod_isapi ISAPI ڼ + ߰ ϶.

+
top
+
+

߰

+ +

ġ ISAPI 񵿱 ¿ "ũμƮ + Ư" Ȯ ISAPI 2.0 Ծ Ѵ. + ġ δ ISAPI ִ + 񵿱 . ISA 񵿱 ° + ʴ Ϸ Ѵٸ, 뿡 ֱ + α׿ . αװ ſ Ŀ ֱ⶧ + ISAPILogNotSupported Off þ ϸ + α׿ ʴ´.

+ +

Microsoft IIS ISAPI extension ޸𸮷 + о鿩 ޸ 뷮 ſ ʰų Ư + ʴ ״ ޸𸮿 д. ġ ISAPICacheFile þ + ʴ´ٸ û ISAPI extension ޸𸮿 о̰ + . ȿ, ġ ޸ ̰ + ȿ ̴. ISAPI ġ ణ + ȣȯ ȸ±⶧ ޸𸮿 + .

+ +

, ġ ISAPI Extension , ISAPI + Filter ϶. ߿ ͸ + , ȹ .

+
top
+
+

+ +

ġ 2.0 mod_isapi α׷Ѵٸ, + ServerSupportFunction ȣ þ + ؾ Ѵ.

+ +
+
HSE_REQ_SEND_URL_REDIRECT_RESP
+
ڸ ٸ ġ ̷Ѵ.
+ URL ؾ Ѵ ( , + http://server/location).
+ +
HSE_REQ_SEND_URL
+
ڸ ٸ ġ ̷Ѵ.
+ URL ƴϸ, ݰ ѱ + ( , /location ͸ ).
+ ƴ϶ ̷ óѴ.
+

+

ֱ Microsoft HSE_REQ_SEND_URL + ɰ ̸ ó δ. ġ + ƱԸƮ ǰ ൿ ٸ ó ̴.

+
+ +
HSE_REQ_SEND_RESPONSE_HEADER
+
headers ڿ ƱԸƮ (ٹٲ޹ڰ ι + ) ִٸ ġ Ѵ. + headers ƱԸƮ NULL ⶧, 뿡 NULL + .
+ +
HSE_REQ_DONE_WITH_SESSION
+
ISAPI ó ġ ⶧ ġ + ƹ ϵ ʴ´.
+ +
HSE_REQ_MAP_URL_TO_PATH
+
ġ ̸ () ̸ ȯѴ.
+ +
HSE_APPEND_LOG_PARAMETER
+
+ Ʒ α Ѱ . + + + +

ù° %{isapi-parameter}n ׸ + Ѵ.

+
+ +
HSE_REQ_IS_KEEP_CONN
+
Keep-Alive ¸ ȯѴ.
+ +
HSE_REQ_SEND_RESPONSE_HEADER_EX
+
fKeepConn ɼ ϴ ϰ + µ Ѵ.
+ +
HSE_REQ_IS_CONNECTED
+
û ߰ ٸ false ȯѴ.
+
+ +

ʴ ServerSupportFunction ȣ + ϸ ġ FALSE ȯϰ + GetLastError + ERROR_INVALID_PARAMETER Ѵ.

+ +

ReadClient (ISAPIReadAheadBuffer ) + ʱũ⸦ Ѿ û ´. + ISAPIReadAheadBuffer (ISAPI + ڵ鷯 θ Ʈ) ª û extension + θ ޵ȴ. û , ISAPI extension + ReadClient û ; Ѵ.

+ +

WriteClient , + HSE_IO_SYNC ɼǸ ϰų (0 + ) ƹ ɼǵ ʾƾ Ѵ. ٸ + WriteClient û FALSE ȯϸ + ϰ, GetLastError + ERROR_INVALID_PARAMETER ȴ.

+ +

GetServerVariable , (ٸ + ϴ) Ȯ . + GetServerVariable Ϲ ġ + CGI ȯ溯 ALL_HTTP, ALL_RAW + ִ.

+ +

ġ 2.0 mod_isapi ISAPI Ծ࿡ + ߰ ϰ, 񵿱 ° + TransmitFile 䳻. , ISAPI + .dll ̸ о鿩 ̴ ġ 1.3 + mod_isapi Ѵ.

+
+
top
+

ISAPIAppendLogToErrors þ

+ + + + + + + + +
:ISAPI exntension HSE_APPEND_LOG_PARAMETER +û α׿ Ѵ
:ISAPIAppendLogToErrors on|off
⺻:ISAPIAppendLogToErrors off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_isapi
+

ISAPI exntension HSE_APPEND_LOG_PARAMETER + û α׿ Ѵ.

+ +
+
top
+

ISAPIAppendLogToQuery þ

+ + + + + + + + +
:ISAPI exntension HSE_APPEND_LOG_PARAMETER +û ǹڿ Ѵ
:ISAPIAppendLogToQuery on|off
⺻:ISAPIAppendLogToQuery on
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_isapi
+

ISAPI exntension HSE_APPEND_LOG_PARAMETER + û ǹڿ Ѵ (CustomLog %q + ׸ δ).

+ +
+
top
+

ISAPICacheFile þ

+ + + + + + +
: Ҷ ޸𸮷 о ISAPI .dll ϵ
:ISAPICacheFile file-path [file-path] +...
:ּ, ȣƮ
:Base
:mod_isapi
+

ġ Ҷ ޸𸮷 о鿩 Ҷ + ޸𸮿 ϸ Ͽ Ѵ. + þ ISAPI .dll Ϻ ִ. + ü θ ´. ΰ ƴϸ ServerRoot η ޾Ƶδ.

+ +
+
top
+

ISAPIFakeAsync þ

+ + + + + + + + +
:񵿱 ISAPI ݹ ϴ ôѴ
:ISAPIFakeAsync on|off
⺻:ISAPIFakeAsync off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_isapi
+

on ϸ 񵿱 ISAPI ݹ 䳻.

+ +
+
top
+

ISAPILogNotSupported þ

+ + + + + + + + +
:ISAPI extension ʴ ûϸ +α׿ Ѵ
:ISAPILogNotSupported on|off
⺻:ISAPILogNotSupported off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_isapi
+

ISAPI extension ʴ ûϸ + α׿ Ѵ. ߿ ڰ ϴµ + ȴ. ϴ ISAPI ϸ + ٽ off ǵ Ѵ.

+ +
+
top
+

ISAPIReadAheadBuffer þ

+ + + + + + + + +
:ISAPI extension ̸б(read ahead buffer) +ũ
:ISAPIReadAheadBuffer size
⺻:ISAPIReadAheadBuffer 49152
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_isapi
+

ISAPI extension ó ȣҶ ̸б ִ ũ⸦ + Ѵ. ( ũ⺸ ū) ڷ ReadClient + ݹ Ͽ о Ѵ.  ISAPI extension + ReadClient ʴ´. + ISAPI extension ڿ ϶.

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_ldap.html b/rubbos/app/apache2/manual/mod/mod_ldap.html new file mode 100644 index 00000000..5aee964c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ldap.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_ldap.html.en b/rubbos/app/apache2/manual/mod/mod_ldap.html.en new file mode 100644 index 00000000..2671424f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ldap.html.en @@ -0,0 +1,390 @@ + + + +mod_ldap - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_ldap

+
+

Available Languages:  en 

+
+ + + + +
Description:LDAP connection pooling and result caching services for use +by other LDAP modules
Status:Experimental
ModuleIdentifier:ldap_module
SourceFile:util_ldap.c
Compatibility:Available in version 2.0.41 and later
+

Summary

+ +

This module was created to improve the performance of + websites relying on backend connections to LDAP servers. In + addition to the functions provided by the standard LDAP + libraries, this module adds an LDAP connection pool and an LDAP + shared memory cache.

+ +

To enable this module, LDAP support must be compiled into + apr-util. This is achieved by adding the --with-ldap + flag to the configure script when building + Apache.

+ +

SSL support requires that mod_ldap be linked + with one of the following LDAP SDKs: + OpenLDAP SDK (both 1.x and 2.x), + Novell LDAP SDK or the + iPlanet(Netscape) SDK.

+ +
+ +
top
+
+

Example Configuration

+

The following is an example configuration that uses + mod_ldap to increase the performance of HTTP Basic + authentication provided by mod_auth_ldap.

+ +

+ # Enable the LDAP connection pool and shared
+ # memory cache. Enable the LDAP cache status
+ # handler. Requires that mod_ldap and mod_auth_ldap
+ # be loaded. Change the "yourdomain.example.com" to
+ # match your domain.
+
+ LDAPSharedCacheSize 200000
+ LDAPCacheEntries 1024
+ LDAPCacheTTL 600
+ LDAPOpCacheEntries 1024
+ LDAPOpCacheTTL 600
+
+ <Location /ldap-status>
+ + SetHandler ldap-status
+ 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
+
+ </Location> +

+
top
+
+

LDAP Connection Pool

+ +

LDAP connections are pooled from request to request. This + allows the LDAP server to remain connected and bound ready for + the next request, without the need to unbind/connect/rebind. + The performance advantages are similar to the effect of HTTP + keepalives.

+ +

On a busy server it is possible that many requests will try + and access the same LDAP server connection simultaneously. + Where an LDAP connection is in use, Apache will create a new + connection alongside the original one. This ensures that the + connection pool does not become a bottleneck.

+ +

There is no need to manually enable connection pooling in + the Apache configuration. Any module using this module for + access to LDAP services will share the connection pool.

+
top
+
+

LDAP Cache

+ +

For improved performance, mod_ldap uses an aggressive + caching strategy to minimize the number of times that the LDAP + server must be contacted. Caching can easily double or triple + the throughput of Apache when it is serving pages protected + with mod_auth_ldap. In addition, the load on the LDAP server + will be significantly decreased.

+ +

mod_ldap supports two types of LDAP caching during + the search/bind phase with a search/bind cache and + during the compare phase with two operation + caches. Each LDAP URL that is used by the server has + its own set of these three caches.

+ +

The Search/Bind Cache

+

The process of doing a search and then a bind is the + most time-consuming aspect of LDAP operation, especially if + the directory is large. The search/bind cache is used to + cache all searches that resulted in successful binds. + Negative results (i.e., unsuccessful searches, or searches + that did not result in a successful bind) are not cached. + The rationale behind this decision is that connections with + invalid credentials are only a tiny percentage of the total + number of connections, so by not caching invalid + credentials, the size of the cache is reduced.

+ +

mod_ldap stores the username, the DN + retrieved, the password used to bind, and the time of the bind + in the cache. Whenever a new connection is initiated with the + same username, mod_ldap compares the password + of the new connection with the password in the cache. If the + passwords match, and if the cached entry is not too old, + mod_ldap bypasses the search/bind phase.

+ +

The search and bind cache is controlled with the LDAPCacheEntries and LDAPCacheTTL directives.

+ + +

Operation Caches

+

During attribute and distinguished name comparison + functions, mod_ldap uses two operation caches + to cache the compare operations. The first compare cache is + used to cache the results of compares done to test for LDAP + group membership. The second compare cache is used to cache + the results of comparisons done between distinguished + names.

+ +

The behavior of both of these caches is controlled with + the LDAPOpCacheEntries + and LDAPOpCacheTTL + directives.

+ + +

Monitoring the Cache

+

mod_ldap has a content handler that allows + administrators to monitor the cache performance. The name of + the content handler is ldap-status, so the + following directives could be used to access the + mod_ldap cache information:

+ +

+ <Location /server/cache-info>
+ + SetHandler ldap-status
+
+ </Location> +

+ +

By fetching the URL http://servername/cache-info, + the administrator can get a status report of every cache that is used + by mod_ldap cache. Note that if Apache does not + support shared memory, then each httpd instance has its + own cache, so reloading the URL will result in different + information each time, depending on which httpd + instance processes the request.

+ +
top
+
+

Using SSL

+ +

The ability to create an SSL connections to an LDAP server + is defined by the directives + LDAPTrustedCA and + LDAPTrustedCAType. These directives specify the certificate + file or database and the certificate type. Whenever the LDAP url + includes ldaps://, mod_ldap will establish + a secure connection to the LDAP server.

+ +

+ # Establish an SSL LDAP connection. Requires that
+ # mod_ldap and mod_auth_ldap be loaded. Change the
+ # "yourdomain.example.com" to match your domain.
+
+ LDAPTrustedCA /certs/certfile.der
+ LDAPTrustedCAType DER_FILE
+
+ <Location /ldap-status>
+ + SetHandler ldap-status
+ 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
+
+ </Location> +

+ +

If mod_ldap is linked against the + Netscape/iPlanet LDAP SDK, it will not talk to any SSL server + unless that server has a certificate signed by a known Certificate + Authority. As part of the configuration + mod_ldap needs to be told where it can find + a database containing the known CAs. This database is in the same + format as Netscape Communicator's cert7.db + database. The easiest way to get this file is to start up a fresh + copy of Netscape, and grab the resulting + $HOME/.netscape/cert7.db file.

+ +
+
top
+

LDAPCacheEntries Directive

+ + + + + + + +
Description:Maximum number of entries in the primary LDAP cache
Syntax:LDAPCacheEntries number
Default:LDAPCacheEntries 1024
Context:server config
Status:Experimental
Module:mod_ldap
+

Specifies the maximum size of the primary LDAP cache. This + cache contains successful search/binds. Set it to 0 to turn off + search/bind caching. The default size is 1024 cached + searches.

+ +
+
top
+

LDAPCacheTTL Directive

+ + + + + + + +
Description:Time that cached items remain valid
Syntax:LDAPCacheTTL seconds
Default:LDAPCacheTTL 600
Context:server config
Status:Experimental
Module:mod_ldap
+

Specifies the time (in seconds) that an item in the + search/bind cache remains valid. The default is 600 seconds (10 + minutes).

+ +
+
top
+

LDAPConnectionTimeout Directive

+ + + + + + +
Description:Specifies the socket connection timeout in seconds
Syntax:LDAPConnectionTimeout seconds
Context:server config
Status:Experimental
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.

+ +
+
top
+

LDAPOpCacheEntries Directive

+ + + + + + + +
Description:Number of entries used to cache LDAP compare +operations
Syntax:LDAPOpCacheEntries number
Default:LDAPOpCacheEntries 1024
Context:server config
Status:Experimental
Module:mod_ldap
+

This specifies the number of entries mod_ldap + will use to cache LDAP compare operations. The default is 1024 + entries. Setting it to 0 disables operation caching.

+ +
+
top
+

LDAPOpCacheTTL Directive

+ + + + + + + +
Description:Time that entries in the operation cache remain +valid
Syntax:LDAPOpCacheTTL seconds
Default:LDAPOpCacheTTL 600
Context:server config
Status:Experimental
Module:mod_ldap
+

Specifies the time (in seconds) that entries in the + operation cache remain valid. The default is 600 seconds.

+ +
+
top
+

LDAPSharedCacheFile Directive

+ + + + + + +
Description:Sets the shared memory cache file
Syntax:LDAPSharedCacheFile directory-path/filename
Context:server config
Status:Experimental
Module:mod_ldap
+

Specifies the directory path and file name of the shared memory + cache file. If not set, anonymous shared memory will be used if the + platform supports it.

+ +
+
top
+

LDAPSharedCacheSize Directive

+ + + + + + + +
Description:Size in bytes of the shared-memory cache
Syntax:LDAPSharedCacheSize bytes
Default:LDAPSharedCacheSize 102400
Context:server config
Status:Experimental
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 + caching will not be used.

+ +
+
top
+

LDAPTrustedCA Directive

+ + + + + + +
Description:Sets the file containing the trusted Certificate Authority certificate or database
Syntax:LDAPTrustedCA directory-path/filename
Context:server config
Status:Experimental
Module:mod_ldap
+

It specifies the directory path and file name of the trusted CA + mod_ldap should use when establishing an SSL + connection to an LDAP server. If using the Netscape/iPlanet Directory + SDK, the file name should be cert7.db.

+ +
+
top
+

LDAPTrustedCAType Directive

+ + + + + + +
Description:Specifies the type of the Certificate Authority file
Syntax:LDAPTrustedCAType type
Context:server config
Status:Experimental
Module:mod_ldap
+

The following types are supported:
+ DER_FILE - file in binary DER format
+ BASE64_FILE - file in Base64 format
+ CERT7_DB_PATH - Netscape certificate database file ")

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_config.html b/rubbos/app/apache2/manual/mod/mod_log_config.html new file mode 100644 index 00000000..1e9233c9 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_config.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_log_config.html.en b/rubbos/app/apache2/manual/mod/mod_log_config.html.en new file mode 100644 index 00000000..1d913406 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_config.html.en @@ -0,0 +1,472 @@ + + + +mod_log_config - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_log_config

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Logging of the requests made to the server
Status:Base
ModuleIdentifier:log_config_module
SourceFile:mod_log_config.c
+

Summary

+ +

This module provides for flexible logging of client + requests. Logs are written in a customizable format, and may be + written directly to a file, or to an external program. + Conditional logging is provided so that individual requests may + be included or excluded from the logs based on characteristics + of the request.

+ +

Three directives are provided by this module: + TransferLog to create + a log file, LogFormat + to set a custom format, and CustomLog to define a log file and format in one + step. The TransferLog and CustomLog directives can be used multiple times in each + server to cause each request to be logged to multiple files.

+
+ +
top
+
+

Custom Log Formats

+ +

The format argument to the LogFormat and CustomLog directives is a string. This string is + 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 backslashes should be escaped with + backslashes.

+ +

The characteristics of the request itself are logged by + placing "%" directives in the format string, which are + replaced in the log file by the values as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format StringDescription
%%The percent sign (Apache 2.0.44 and later)
%...aRemote IP-address
%...ALocal IP-address
%...BSize of response in bytes, excluding HTTP headers.
%...bSize of response in bytes, excluding HTTP headers. In CLF format, i.e. + a '-' rather than a 0 when no bytes are sent.
%...{Foobar}CThe contents of cookie Foobar in the request sent + to the server.
%...DThe time taken to serve the request, in microseconds.
%...{FOOBAR}eThe contents of the environment variable + FOOBAR
%...fFilename
%...hRemote host
%...HThe request protocol
%...{Foobar}iThe contents of Foobar: header line(s) + in the request sent to the server. Changes made by other + modules (e.g. mod_headers) affect this. +
%...lRemote logname (from identd, if supplied). This will return a + dash unless IdentityCheck is set + On.
%...mThe request method
%...{Foobar}nThe contents of note Foobar from another + module.
%...{Foobar}oThe contents of Foobar: header line(s) + in the reply.
%...pThe canonical port of the server serving the request
%...PThe process ID of the child that serviced the request.
%...{format}PThe process ID or thread id of the child that serviced the + request. Valid formats are pid and tid. + (Apache 2.0.46 and later) +
%...qThe query string (prepended with a ? if a query + string exists, otherwise an empty string)
%...rFirst line of request
%...sStatus. For requests that got internally redirected, this is + the status of the *original* request --- %...>s + for the last.
%...tTime the request was received (standard english + format)
%...{format}tThe time, in the form given by format, which should be in + strftime(3) format. (potentially localized)
%...TThe time taken to serve the request, in seconds.
%...uRemote user (from auth; may be bogus if return status + (%s) is 401)
%...UThe URL path requested, not including any query string.
%...vThe canonical ServerName + of the server serving the request.
%...VThe server name according to the UseCanonicalName setting.
%...XConnection status when response is completed: + + + + + + + + + +
X =connection aborted before the response completed.
+ =connection may be kept alive after the response is + sent.
- = connection will be closed after the response is + sent.
+ +

(This directive was %...c in late versions of Apache + 1.3, but this conflicted with the historical ssl + %...{var}c syntax.)

%...IBytes received, including request and headers, cannot be zero. + You need to enable mod_logio to use this.
%...OBytes sent, including headers, cannot be zero. You need to + enable mod_logio to use this.
+ +

The "..." can be nothing at all (e.g., + "%h %u %r %s %b"), or it can indicate conditions for + inclusion of the item (which will cause it to be replaced with "-" if + the condition is not met). The forms of condition are a list of + HTTP status codes, which may or may not be preceded by "!". + Thus, "%400,501{User-agent}i" logs User-agent: on 400 + errors and 501 errors (Bad Request, Not Implemented) only; + "%!200,304,302{Referer}i" logs Referer: on all requests + which did not return some sort of normal status.

+ +

The modifiers "<" and ">" can be used for requests that + have been internally redirected to choose whether the original or + final (respectively) request should be consulted. By default, the + % directives %s, %U, %T, %D, and + %r look at the original request while all others look + at the final request. So for example, %>s can be + used to record the final status of the request and + %<u can be used to record the original + authenticated user on a request that is internally redirected to an + unauthenticated resource.

+ +

Note that in httpd 2.0 versions prior to 2.0.46, no escaping was performed + on the strings from %...r, %...i and + %...o. This was mainly to comply with the requirements of + the Common Log Format. This implied that clients could insert control + characters into the log, so you had to be quite careful when dealing + with raw log files.

+ +

For security reasons, starting with 2.0.46, non-printable and + other special characters are escaped mostly by using + \xhh sequences, where hh stands for + the hexadecimal representation of the raw byte. Exceptions from this + rule are " and \ which are escaped by prepending + a backslash, and all whitespace characters which are written in their + C-style notation (\n, \t etc).

+ +

Note that in httpd 2.0, unlike 1.3, the %b and + %B format strings do not represent the number of + bytes sent to the client, but simply the size in bytes of the HTTP + response (which will differ, for instance, if the connection is + aborted, or if SSL is used). The %O format provided + by mod_logio will log the actual number of bytes + sent over the network.

+ +

Some commonly used log format strings are:

+ +
+
Common Log Format (CLF)
+
"%h %l %u %t \"%r\" %>s %b"
+ +
Common Log Format with Virtual Host
+
"%v %h %l %u %t \"%r\" %>s %b"
+ +
NCSA extended/combined log format
+
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\""
+ +
Referer log format
+
"%{Referer}i -> %U"
+ +
Agent (Browser) log format
+
"%{User-agent}i"
+
+ +

Note that the canonical ServerName and Listen of the server serving the + request are used for %v and %p + respectively. This happens regardless of the UseCanonicalName setting + because otherwise log analysis programs would have to duplicate + the entire vhost matching algorithm in order to decide what + host really served the request.

+
top
+
+

Security Considerations

+

See the security tips + 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.

+
+
top
+

BufferedLogs Directive

+ + + + + + + + +
Description:Buffer log entries in memory before writing to disk
Syntax:BufferedLogs On|Off
Default:BufferedLogs Off
Context:server config
Status:Base
Module:mod_log_config
Compatibility:Available in versions 2.0.41 and later.
+

The BufferedLogs directive causes + mod_log_config to store several log entries in + memory and write them together to disk, rather than writing them + after each request. On some systems, this may result in more + efficient disk access and hence higher performance. It may be + set only once for the entire server; it cannot be configured + per virtual-host.

+ +
This directive is experimental and should be used with + caution.
+ +
+
top
+

CookieLog Directive

+ + + + + + + +
Description:Sets filename for the logging of cookies
Syntax:CookieLog filename
Context:server config, virtual host
Status:Base
Module:mod_log_config
Compatibility:This directive is deprecated.
+

The CookieLog directive sets the + filename for logging of cookies. The filename is relative to the + ServerRoot. This directive is + included only for compatibility with mod_cookies, + and is deprecated.

+ +
+
top
+

CustomLog Directive

+ + + + + + +
Description:Sets filename and format of log file
Syntax:CustomLog file|pipe +format|nickname +[env=[!]environment-variable]
Context:server config, virtual host
Status:Base
Module:mod_log_config
+

The CustomLog directive is used to + log requests to the server. A log format is specified, and the + logging can optionally be made conditional on request + characteristics using environment variables.

+ +

The first argument, which specifies the location to which + the logs will be written, can take one of the following two + types of values:

+ +
+
file
+
A filename, relative to the ServerRoot.
+ +
pipe
+
The pipe character "|", followed by the path + to a program to receive the log information on its standard + input. + +

Security:

+

If a program is used, then it will be run as the user who + started httpd. This will be root if the server was + started by root; be sure that the program is secure.

+
+

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 + use forward slashes throughout the configuration files.

+
+
+ +

The second argument specifies what will be written to the + log file. It can specify either a nickname defined by + a previous LogFormat + directive, or it can be an explicit format string as + described in the log formats section.

+ +

For example, the following two sets of directives have + exactly the same effect:

+ +

+ # 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" +

+ +

The third argument is optional and controls whether or + not to log a particular request based on the + presence or absence of a particular variable in the server + environment. If the specified environment + variable is set for the request (or is not set, in the case + of a 'env=!name' clause), then the + request will be logged.

+ +

Environment variables can be set on a per-request + basis using the mod_setenvif + and/or mod_rewrite modules. For + example, if you want to record requests for all GIF + images on your server in a separate logfile but not in your main + log, you can use:

+ +

+ SetEnvIf Request_URI \.gif$ gif-image
+ CustomLog gif-requests.log common env=gif-image
+ CustomLog nongif-requests.log common env=!gif-image +

+ +

Or, to reproduce the behavior of the old RefererIgnore + directive, you might use the following:

+ +

+ SetEnvIf Referer example\.com localreferer
+ CustomLog referer.log referer env=!localreferer +

+ +
+
top
+

LogFormat Directive

+ + + + + + + +
Description:Describes a format for use in a log file
Syntax:LogFormat format|nickname +[nickname]
Default:LogFormat "%h %l %u %t \"%r\" %>s %b"
Context:server config, virtual host
Status:Base
Module:mod_log_config
+

This directive specifies the format of the access log + file.

+ +

The LogFormat directive can take one of two + forms. In the first form, where only one argument is specified, + this directive sets the log format which will be used by logs + specified in subsequent TransferLog + directives. The single argument can specify an explicit + format as discussed in the custom log + formats section above. Alternatively, it can use a + nickname to refer to a log format defined in a + previous LogFormat directive as described + below.

+ +

The second form of the LogFormat + directive associates an explicit format with a + nickname. This nickname can then be used in + subsequent LogFormat or + CustomLog directives + rather than repeating the entire format string. A + LogFormat directive that defines a nickname + does nothing else -- that is, it only + defines the nickname, it doesn't actually apply the format and make + it the default. Therefore, it will not affect subsequent + TransferLog directives. + In addition, LogFormat cannot use one nickname + to define another nickname. Note that the nickname should not contain + percent signs (%).

+ +

Example

+ LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common +

+ +
+
top
+

TransferLog Directive

+ + + + + + +
Description:Specify location of a log file
Syntax:TransferLog file|pipe
Context:server config, virtual host
Status:Base
Module:mod_log_config
+

This directive has exactly the same arguments and effect as + the CustomLog + directive, with the exception that it does not allow the log format + to be specified explicitly or for conditional logging of requests. + Instead, the log format is determined by the most recently specified + LogFormat directive + which does not define a nickname. Common Log Format is used if no + other format has been specified.

+ +

Example

+ LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
+ TransferLog logs/access_log +

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_config.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_log_config.html.ja.utf8 new file mode 100644 index 00000000..6a6921e6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_config.html.ja.utf8 @@ -0,0 +1,435 @@ + + + +mod_log_config - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_log_config

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:サーバへのリクエストのロギング
ステータス:Base
モジュール識別子:log_config_module
ソースファイル:mod_log_config.c
+

概要

+ +

+ このモジュールはクライアントのリクエストを柔軟にログ収集する機能を + 提供します。ログはカスタマイズ可能な書式で書かれ、ファイルに直接 + 書いたり、外部プログラムに渡したりすることができます。個々のリクエストを + 特徴に応じてログに書いたり書かなかったりできるように、条件による + ログ収集も提供されています。

+ +

このモジュールは三つのディレクティブ提供します: + ログファイルを作成するための TransferLog, + 新しい書式を 定義する LogFormat, + ログファイルと 書式を一度に定義する CustomLog です。 + 各リクエストが複数回ログ収集されるようにするために + TransferLog ディレクティブと + CustomLog + ディレクティブは複数回使用することができます。

+
+ +
top
+
+

カスタムログ書式

+ +

LogFormat ディレクティブと + CustomLog + ディレクティブの書式を指定する引数は文字列です。この文字列を使ってそれぞれの + リクエストがログファイルにログ収集されます。その文字列には + ログファイルにそのまま + 書かれる文字列や、それぞれ改行とタブを現す C 言語 + 形式の制御文字 "\n" と "\t" + とを含めることができます。そのまま出力させたい引用符とバックスラッシュは + バックスラッシュでエスケープする必要があります。

+ +

リクエストの特徴そのものは "%" + ディレクティブを書式の文字列に書くことで + ログ収集されます。"%" + ディレクティブはログファイル中では以下のような + 値で置換されます:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
フォーマット文字列説明
%%パーセント記号 (Apache 2.0.44 以降)
%...aリモート IP アドレス
%...Aローカル IP アドレス
%...BHTTP ヘッダ以外の送られたバイト数
%...bHTTP ヘッダ以外の送られたバイト数。CLF 書式。 + すなわち、1 バイトも送られなかったときは 0 ではなく、 + '-' になる
%...{Foobar}Cサーバに送られたリクエスト中のクッキー Foobar の値
%...Dリクエストを処理するのにかかった時間、マイクロ秒単位
%...{FOOBAR}e環境変数 FOOBAR の内容
%...fファイル名
%...hリモートホスト
%...Hリクエストプロトコル
%...{Foobar}iサーバに送られたリクエストの Foobar: + ヘッダの内容
%...l(identd からもし提供されていれば) リモートログ名。 + これは + IdentityCheck + ディレクティブが On に設定されていない限り、 + - になります。
%...mリクエストメソッド
%...{Foobar}n他のモジュールからのメモ Foobar の内容
%...{Foobar}o応答の Foobar: ヘッダの内容
%...pリクエストを扱っているサーバの正式なポート
%...Pリクエストを扱った子プロセスのプロセス ID
%...{format}Pリクエストを扱ったワーカーのプロセス ID かスレッド ID。 + format として有効な値は pidtid + (Apache 2.0.46 以降) +
%...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 が必要
+ +

"..." は何もないか (例えば、 + "%h %u %r %s %b" のように)、 + その項目を含めるかどうかの条件 (もし条件に合わなかったときは + その項目は "-" になります) にすることができます。条件の形式は + HTTP ステータスコードのリストで、前に "!" を付けることもできます。 + ですから、"%400,501{User-agent}i" は 400 エラーと 501 エラー + (Bad Request と Not Implemented) のときのみ User-agent: + をログ収集します。 + "%!200,304,302{Referer}i" は普通のステータスを返さなかった + すべてのリクエストで Referer: をログ収集します。

+ +

修飾子 "<" と ">" は内部リダイレクトされたリクエストのログに + 元のリクエストか最終的なリクエストのどちらを使用するかを + 指定するために使います。デフォルトでは、% ディレクティブの + %s, %U, %T, %D, %r は元のリクエストを、他は最終的なリクエストを + 使用します。例えば、リクエストの最終ステータスを記録するには + %>s を、内部的に認証されていないリソースへリダイレクトされた + リクエストで元のリクエストで認証されたユーザを記録するためには + %<u を使うことができます。

+ +

httpd 2.0 の 1.3.25 より前のバージョンでは、 + %...r, %...i, + %...o の文字列は + エスケープされていなかったことに + 注意してください。これは主に Common Log Format からの要求によるものです。 + これは、クライアントがログに制御文字を挿入することができるということで、 + 生のログファイルを扱うときには非常に注意が必要でした。

+ +

セキュリティ上の理由により 2.0.46 より印字不可能な文字と + 他の特別な文字は、ほとんど \xhh という + 文字列でエスケープされるようになりました。ここで、hh は + そのままのバイトの値の 16 進での値です。この規則の例外には、 + バックスラッシュを使ってエスケープされる "\ と、 + C 形式の表記法が使われる空白文字 (\n, \t など) が + あります。

+ +

よく使われるフォーマット文字列は:

+ +
+
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"
+
+ +

%v%p にはそれぞれ、 + リクエストを扱っているサーバの正規化された + ServerNameListen が使われるということに注意してください。 + これは UseCanonicalName の + 設定に関わらず、常にそうなります。そうしないとどの + ホストが実際にリクエストを扱ったのかを知るために、 + ログ解析プログラムがバーチャルホストのマッチングをとるアルゴリズム全体を + 再実装しなければならなくなるからです。

+
top
+
+

セキュリティに関して

+

ログファイルが保存されているディレクトリがサーバを起動した以外のユーザで + 書き込み可能なときにセキュリティの問題が発生する理由の詳細はセキュリティのこつ + を参照してください。

+
+
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 +

+ +
+
top
+

LogFormat ディレクティブ

+ + + + + + + +
説明:ログファイルで使用する書式を設定する
構文:LogFormat format|nickname +[nickname]
デフォルト:LogFormat "%h %l %u %t \"%r\" %>s %b"
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_log_config
+

このディレクティブはアクセスログファイルの書式を指定します。

+ +

LogFormat ディレクティブは二つの形式のどちらかを + とることができます。最初の形式では一つの引数のみが指定され、 + 続く TransferLog + で指定されたログで使われるログの書式を設定します。この単独の引数では + 上のカスタムログ書式で説明されているように + format を明示的に指定することができます。 + もしくは、下で説明されているように前に LogFormat + ディレクティブで定義されたログの書式を nicknameを使って + 参照することもできます。

+ +

LogFormat ディレクティブの二つめの形式は + formatnickname を与えます。 + フォーマット文字列全体を再び書くかわりに、 + この 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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_config.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_log_config.html.ko.euc-kr new file mode 100644 index 00000000..7bbb5fff --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_config.html.ko.euc-kr @@ -0,0 +1,403 @@ + + + +mod_log_config - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ 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" ڸ + ִ. αϿ ǥ 齽 տ + ݵ 齽 Ѵ.

+ +

û Ư¡ ڿ "%" þ + Ͽ Ѵ. þ αϿ + ȴ.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 ڿ
%%ۼƮ ȣ (ġ 2.0.44 )
%...a IP-ּ
%...A() IP-ּ
%...BHTTP Ʈ.
%...bHTTP Ʈ. CLF İ + 0 '-' ´.
%...{Foobar}C û Foobar Ű + .
%...Dû óϴµ ɸ ð (ũ ).
%...{FOOBAR}eȯ溯 FOOBAR
%...fϸ
%...h ȣƮ
%...Hû
%...{Foobar}i û Foobar: + .
%...l(ִٸ identd ) αθ. + IdentityCheck + On ƴϸ ȣ Ѵ.
%...mû ޽
%...{Foobar}nٸ Foobar Ʈ(note) + .
%...{Foobar}o Foobar: .
%...pû ϴ Ʈ
%...Pû ϴ ڽ μ ID.
%...{format}Pû ϴ ڽ μ ID Ȥ + ID. format pid tid + ϴ. (ġ 2.0.46 ) +
%...qǹڿ (ǹڿ ִٸ տ ? + ̰, ٸ ڿ)
%...rû ù°
%...s(status). ̷ǵ û ** + û ̴. û ´ %...>s.
%...tcommon log format ð (ǥ ) ð
%...{format}tstrftime(3) format ð. (ð + )
%...Tû óϴµ ɸ ð ( ).
%...u (auth ϸ, (%s) + 401 ̻ )
%...Uǹڿ û URL .
%...vû ServerName.
%...VUseCanonicalName + .
%...X . + + + + + + + + + +
X = ġ .
+ = Ŀ ִ(keep alive).
- = .
+ +

(ġ 1.3 Ĺ þ + %...c, ssl + %...{var}c ļ + ߴ.)

%...Iû Ʈ 0 . + ̸ Ϸ mod_logio ʿϴ.
%...O ۽ Ʈ 0 . ̸ + Ϸ mod_logio ʿϴ.
+ +

"..." ( , + "%h %u %r %s %b") ƹ͵ ų, ׸ + ´ ( ڸ "-" Ѵ). + տ "!" ̰ų Ⱥ HTTP ڵ + ۼѴ. , "%400,501{User-agent}i" 400 (Bad + Request) 501 (Not Implemented) ϶ + User-agent: α׿ , + "%!200,304,302{Referer}i" ° ƴ + û Referer: α׿ .

+ +

"<" ">" ̷ǵ û + ó û û Ѵ. ⺻ + %s, %U, %T, %D, %r ó û , + % þ û . ׷ + %>s û (status) ϰ, + %<u ȣ ʴ ڿ + ̷ǵ 쿡 ó ڸ Ѵ.

+ +

2.0.46 httpd 2.0 %...r, + %...i, %...o ڿ ״ + ξ. Common Log Format 䱸 ؼ. + , Ŭ̾Ʈ ڸ α׿ ֱ⶧ + α ״ ٷ ؾ Ѵ.

+ +

Ȼ 2.0.46 ڳ ٸ Ưڸ + \xhh ǥѴ. ⼭ hh + ش Ʈ 16 ǥ Ÿ. Ģ ܴ 齽 + տ ̴ " \, ׸ C + 鹮ڵ(\n, \t )̴.

+ +

Ϲ ϴ α .

+ +
+
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"
+
+ +

û ϴ ServerName Listen %v + %p Ѵ. α׺м α׷ û + ϴ ȣƮ ˱ ȣƮ ã ˰ + ʿ ̵ UseCanonicalName ϴ.

+
top
+
+

Ȼ

+

ϴ ڿܿ ٸ ڰ α ϴ + 丮 ȿ + + ϶.

+
+
top
+

CookieLog þ

+ + + + + + + +
:Ű α׿ ϸ Ѵ
:CookieLog filename
:ּ, ȣƮ
:Base
:mod_log_config
: þ ʴ´.
+

CookieLog þ Ű α׿ + ϸ Ѵ. ϸ ServerRoot ̴. + þ mod_cookies ȣȯ , + ʴ´.

+ +
+
top
+

CustomLog þ

+ + + + + + +
:α ̸ Ѵ
:CustomLog file|pipe +format|nickname +[env=[!]environment-variable]
:ּ, ȣƮ
:Base
:mod_log_config
+

û α׿ 涧 CustomLog + þ Ѵ. α ϰ, ȯ溯 Ͽ + û Ư¡ α׸ ִ.

+ +

α׸ Ҹ ϴ ù° ƱԸƮ + ϳ Ѵ.

+ +
+
file
+
ServerRoot + ϸ.
+ +
pipe
+
"|"ڿ α ǥԷ + α׷ θ ´. + +

:

+

α׷ Ѵٸ α׷ + ȴ. root Ѵٸ α׷ + root ϹǷ α׷ Ȯ϶.

+
+

+

н ƴ ÷ ϰθ ԷҶ ÷ + 齽 ϴ ݵ ؾ Ѵ. + Ϲ Ͽ ׻ ϴ + .

+
+
+ +

ι° ƱԸƮ αϿ Ѵ. + LogFormat + nickname ϰų α format + ڿ ִ.

+ +

, þ Ȱ Ѵ.

+ +

+ # Ī CustomLog
+ LogFormat "%h %l %u %t \"%r\" %>s %b" common
+ CustomLog logs/access_log common
+
+ # ڿ CustomLog
+ 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 +

+ +
+
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 Ѵ. ׷ + ڿ ϴ LogFormat̳ CustomLog þ ݺؼ + ڿ Էϴ nickname + ִ. Ī ϴ LogFormat + þ ܿ ƹ ʴ´. + , Ī ϸ, ϰų + ⺻ ʴ´. ׷Ƿ + TransferLog + þ ʴ´. , + LogFormat Ī ٸ Ī + ִ. Ī ̸ ۼƮ ȣ(%) + ϶.

+ +

+ 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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_config.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_log_config.html.tr.utf8 new file mode 100644 index 00000000..e610859f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_config.html.tr.utf8 @@ -0,0 +1,466 @@ + + + +mod_log_config - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_log_config

+
+

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

+
+ + + +
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 (Apache 2.0.44 ve sonrası)
%...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.
%...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.
%...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
%...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 + ve tid. (Apache 2.0.46 ve sonrası)
%...qSorgu dizgesi (bir sorgu dizgesi mevcutsa önüne bir ? + eklenir yoksa hiçbir şey eklenmez).
%...rİsteğin ilk satırı.
%...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.
+ +

Değiştiriciler

+ +

"..." yerine hiçbir şey yazılmayacağı gibi (örneğin, + "%h %u %r %s %b"), belli öğelerin sadece belli durum + kodlarıyla ilgili yanıtlarla basılabilmesi için bu durum kodları + virgüllerle ayrılarak buraya 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.

+ +

2.0.46 öncesi httpd 2.0 sürümlerinde %...r, + %...i ve %...o belirteçlerinin dizgelerine + önceleme uygulanmazdı. Bu esas olarak Ortak Günlük Biçeminin + gereksinimlerine uymak içindi. Bu uygulama, istemcilerin günlük + dosyalarına denetim karakterlerini yazabilmelerini mümkün kıldığı için + bu tür ham günlük dosyaları ile çalışırken dikkatli olunmalıdır.

+ +

Güvenlik nedeniyle, 2.0.46 sürümünden itibaren 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 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.

+ + +

Ö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"
+
+ + +

Sunucunun isteği sunan meşru ServerName ve Listen değerlerinin sırasıyla %v ve + %p belirteçleri için kullanıldığına dikkat ediniz. Bunun + için, UseCanonicalName yönergesine + bakılmaz, çünkü aksi takdirde günlük inceleme yazılımlarının isteği + gerçekte hangi konağın sunduğuna karar verecek sankon eşleme + algoritmasının tamamı iki kere işlem yapardı.

+
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ı). + +

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_forensic.html b/rubbos/app/apache2/manual/mod/mod_log_forensic.html new file mode 100644 index 00000000..0d959204 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_forensic.html @@ -0,0 +1,9 @@ +# 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.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_log_forensic.html.en b/rubbos/app/apache2/manual/mod/mod_log_forensic.html.en new file mode 100644 index 00000000..75a2e532 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_forensic.html.en @@ -0,0 +1,171 @@ + + + +mod_log_forensic - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_log_forensic

+
+

Available Languages:  en  | + tr 

+
+ + + + +
Description:Forensic Logging of the requests made to the server
Status:Extension
ModuleIdentifier:log_forensic_module
SourceFile:mod_log_forensic.c
Compatibility:Available in version 2.0.50 and later
+

Summary

+ +

This module provides for forensic logging of client + requests. Logging is done before and after processing a request, so the + forensic log contains two log lines for each request. + The forensic logger is very strict, which means:

+ +
    +
  • The format is fixed. You cannot modify the logging format at + runtime.
  • +
  • If it cannot write its data, the child process + exits immediately and may dump core (depending on your + CoreDumpDirectory + configuration).
  • +
+ +

The check_forensic script, which can be found in the + distribution's support directory, may be helpful in evaluating the + forensic log output.

+ +
+ This module was backported from version 2.1 which uses a more powerful + APR version in order to generate the forensic IDs. If you want to run + mod_log_forensic in version 2.0, you need to include + mod_unique_id as well. +
+
+ +
top
+
+

Forensic Log Format

+

Each request is logged two times. The first time is before it's + processed further (that is, after receiving the headers). The second log + entry is written after the request processing at the same time + where normal logging occurs.

+ +

In order to identify each request, a unique request ID is assigned. + This forensic ID can be cross logged in the normal transfer log using the + %{forensic-id}n format string. If you're using + mod_unique_id, its generated ID will be used.

+ +

The first line logs the forensic ID, the request line and all received + headers, separated by pipe characters (|). A sample line + looks like the following (all on one line):

+ +

+ +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... +

+ +

The plus character at the beginning indicates that this is the first log + line of this request. The second line just contains a minus character and + the ID again:

+ +

+ -yQtJf8CoAB4AAFNXBIEAAAAA +

+ +

The check_forensic script takes as its argument the name + of the logfile. It looks for those +/- ID pairs + and complains if a request was not completed.

+
top
+
+

Security Considerations

+

See the security tips + 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.

+
+
top
+

ForensicLog Directive

+ + + + + + +
Description:Sets filename of the forensic log
Syntax:ForensicLog filename|pipe
Context:server config, virtual host
Status:Extension
Module:mod_log_forensic
+

The ForensicLog directive is used to + log requests to the server for forensic analysis. Each log entry + is assigned a unique ID which can be associated with the request + using the normal CustomLog + directive. mod_log_forensic takes the unique ID from + mod_unique_id, so you need to load this module as well. + (This requirement will not be necessary in version 2.1 and later, because + of a more powerful APR version.) The ID token is attached to the request + under the name forensic-id, which can be added to the + transfer log using the %{forensic-id}n format string.

+ +

The argument, which specifies the location to which + the logs will be written, can take one of the following two + types of values:

+ +
+
filename
+
A filename, relative to the ServerRoot.
+ +
pipe
+
The pipe character "|", followed by the path + to a program to receive the log information on its standard + input. The program name can be specified relative to the ServerRoot directive. + +

Security:

+

If a program is used, then it will be run as the user who + started httpd. This will be root if the server was + started by root; be sure that the program is secure or switches to a + less privileged user.

+
+ +

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 + use forward slashes throughout the configuration files.

+
+
+ +
+
+
+

Available Languages:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_log_forensic.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_log_forensic.html.tr.utf8 new file mode 100644 index 00000000..01f9b364 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_log_forensic.html.tr.utf8 @@ -0,0 +1,172 @@ + + + +mod_log_forensic - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_log_forensic

+
+

Mevcut Diller:  en  | + 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.0.50 sürümünden beri mevcuttur.
+

Ö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.

+ +
Bu modül, adli kimlikleri üretebilen daha güçlü bir + APR sürümü içeren 2.1 sürümünden geriye doğru uyarlanmıştır. + mod_log_forensic modülünü 2.0 sürümlerinde kullanmak + isterseniz mod_unique_id modülünü de yüklemeniz + gerekecektir. +
+
+

Yönergeler

+ +

Konular

+

Ayrıca bakınız:

+
+
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.

+
+
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ü eşsiz kimliği + mod_unique_id modülünden alır, dolayısıyla bu modülü de + yüklemeniz gerekir. (Bu geresinim, daha güçlü bir APR sürümü içermesi + sebebiyle 2.1 sürümünden itibaren ortadan kalkmıştır.) İstekle ilişkili + kimlik dizgeciği forensic-id adıyla + %{forensic-id}n biçem dizgesinde kullanılarak aktarım + günlüğüne eklenebilir.

+ +

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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_logio.html b/rubbos/app/apache2/manual/mod/mod_logio.html new file mode 100644 index 00000000..0eb2b070 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_logio.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_logio.html.en b/rubbos/app/apache2/manual/mod/mod_logio.html.en new file mode 100644 index 00000000..6e442124 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_logio.html.en @@ -0,0 +1,92 @@ + + + +mod_logio - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_logio

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Logging of input and output bytes per request
Status:Extension
ModuleIdentifier:logio_module
SourceFile:mod_logio.c
+

Summary

+ + +

This module provides the logging of input and output number of + bytes received/sent per request. The numbers reflect the actual bytes + as received on the network, which then takes into account the + headers and bodies of requests and responses. The counting is done + before SSL/TLS on input and after SSL/TLS on output, so the numbers + will correctly reflect any changes made by encryption.

+ +

This module requires mod_log_config.

+ +
+

Directives

+

This module provides no directives.

+

Topics

+

See also

+
+
top
+
+

Custom Log Formats

+ + +

This modules adds two new logging directives. The characteristics of the + request itself are logged by placing "%" directives in + the format string, which are replaced in the log file by the values as + follows:

+ + + + + + + +
Format StringDescription
%...IBytes received, including request and headers, cannot be + zero.
%...OBytes sent, including headers, cannot be zero.
+ +

Usually, the functionality is used like this:

+ +
+
Combined I/O log format:
+
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\" %I %O"
+
+
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_logio.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_logio.html.ja.utf8 new file mode 100644 index 00000000..8eed8b7c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_logio.html.ja.utf8 @@ -0,0 +1,93 @@ + + + +mod_logio - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_logio

+
+

Available Languages:  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"
+
+
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_logio.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_logio.html.ko.euc-kr new file mode 100644 index 00000000..c48262d7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_logio.html.ko.euc-kr @@ -0,0 +1,94 @@ + + + +mod_logio - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_logio

+
+

:  en  | + ja  | + ko  | + tr 

+
+ + + +
:û Ʈ
:Extension
:logio_module
ҽ:mod_logio.c
+

+ + +

û Ʈ Ѵ. ڴ + Ʈ ְ Ʈ Ÿ, û + Ѵ. Է SSL/TLS , + SSL/TLS Ŀ ⶧ ȣȭ + ùٷ ݿȴ.

+ +

Ϸ mod_log_config + ʿϴ.

+ +
+

þ

+

⿡ þ ϴ.

+

+

+
+
top
+
+

α

+ + +

ΰ ο αþ ߰Ѵ. ûü + Ư Ĺڿ "%" þ Ͽ Ѵ. + þ αϿ Ѵ:

+ + + + + + + +
Ĺڿ
%...Iû Ͽ Ʈ. 0 .
%...O Ͽ Ʈ. 0 .
+ +

Ѵ:

+ +
+ +
յ α :
+ +
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" + \"%{User-agent}i\" %I %O"
+ +
+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_logio.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_logio.html.tr.utf8 new file mode 100644 index 00000000..84f86d93 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_logio.html.tr.utf8 @@ -0,0 +1,92 @@ + + + +mod_logio - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_logio

+
+

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

+
+ + + +
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.

+ +
+

Yönergeler

+

Bu modül yönerge içermez.

+

Konular

+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_mem_cache.html b/rubbos/app/apache2/manual/mod/mod_mem_cache.html new file mode 100644 index 00000000..987152e8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mem_cache.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_mem_cache.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_mem_cache.html.en b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.en new file mode 100644 index 00000000..6cf684d6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.en @@ -0,0 +1,241 @@ + + + +mod_mem_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_mem_cache

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Content cache keyed to URIs
Status:Experimental
ModuleIdentifier:mem_cache_module
SourceFile:mod_mem_cache.c
+

Summary

+ +
+ This module is experimental. Documentation is still under + development... +
+ +

This module requires the service of mod_cache. It acts as a support module for mod_cache and provides a memory based storage manager. + mod_mem_cache can be configured to operate in two + modes: caching open file descriptors or caching objects in heap storage. + mod_mem_cache is most useful when used to cache locally + generated content or to cache backend server content for mod_proxy configured for ProxyPass (aka reverse proxy).

+ +

Content is stored in and retrieved from the cache using URI based + keys. Content with access protection is not cached.

+
+ + +
top
+

MCacheMaxObjectCount Directive

+ + + + + + + +
Description:The maximum number of objects allowed to be placed in the +cache
Syntax:MCacheMaxObjectCount value
Default:MCacheMaxObjectCount 1009
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheMaxObjectCount directive sets the + maximum number of objects to be cached. The value is used to create the + open hash table. If a new object needs to be inserted in the cache and + the maximum number of objects has been reached, an object will be + removed to allow the new object to be cached. The object to be removed + is selected using the algorithm specified by MCacheRemovalAlgorithm.

+ +

Example

+ MCacheMaxObjectCount 13001 +

+ +
+
top
+

MCacheMaxObjectSize Directive

+ + + + + + + +
Description:The maximum size (in bytes) of a document allowed in the +cache
Syntax:MCacheMaxObjectSize bytes
Default:MCacheMaxObjectSize 10000
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheMaxObjectSize directive sets the + maximum allowable size, in bytes, of a document for it to be considered + cacheable.

+ +

Example

+ MCacheMaxObjectSize 6400000 +

+ +

Note

+

The value of MCacheMaxObjectSize must be + greater than the value specified by the MCacheMinObjectSize directive.

+
+ +
+
top
+

MCacheMaxStreamingBuffer Directive

+ + + + + + + +
Description:Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
Syntax:MCacheMaxStreamingBuffer size_in_bytes
Default:MCacheMaxStreamingBuffer the smaller of 100000 or MCacheMaxObjectSize
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheMaxStreamingBuffer directive + specifies the maximum number of bytes of a streamed response to + buffer before deciding that the response is too big to cache. + A streamed response is one in which the entire content is not + immediately available and in which the Content-Length + may not be known. Sources of streaming responses include proxied + responses and the output of CGI scripts. By default, a streamed + response will not be cached unless it has a + Content-Length header. The reason for this is to + avoid using a large amount of memory to buffer a partial response + that might end up being too large to fit in the cache. + The MCacheMaxStreamingBuffer directive allows + buffering of streamed responses that don't contain a + Content-Length up to the specified maximum amount of + space. If the maximum buffer space is reached, the buffered + content is discarded and the attempt to cache is abandoned.

+ +

Note:

+

Using a nonzero value for MCacheMaxStreamingBuffer + will not delay the transmission of the response to the client. + As soon as mod_mem_cache copies a block of streamed + content into a buffer, it sends the block on to the next output + filter for delivery to the client.

+
+ +

+ # Enable caching of streamed responses up to 64KB:
+ MCacheMaxStreamingBuffer 65536 +

+ +
+
top
+

MCacheMinObjectSize Directive

+ + + + + + + +
Description:The minimum size (in bytes) of a document to be allowed in the +cache
Syntax:MCacheMinObjectSize bytes
Default:MCacheMinObjectSize 0
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheMinObjectSize directive sets the + minimum size in bytes of a document for it to be considered + cacheable.

+ +

Example

+ MCacheMinObjectSize 10000 +

+ +
+
top
+

MCacheRemovalAlgorithm Directive

+ + + + + + + +
Description:The algorithm used to select documents for removal from the +cache
Syntax:MCacheRemovalAlgorithm LRU|GDSF
Default:MCacheRemovalAlgorithm GDSF
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheRemovalAlgorithm directive specifies + the algorithm used to select documents for removal from the cache. + Two choices are available:

+ +
+
LRU (Least Recently Used)
+
LRU removes the documents that have not been accessed + for the longest time.
+ +
GDSF (GreadyDual-Size)
+
GDSF assigns a priority to cached documents based + on the cost of a cache miss and the size of the document. Documents + with the lowest priority are removed first.
+
+ +

Example

+ MCacheRemovalAlgorithm GDSF
+ MCacheRemovalAlgorithm LRU +

+ +
+
top
+

MCacheSize Directive

+ + + + + + + +
Description:The maximum amount of memory used by the cache in +KBytes
Syntax:MCacheSize KBytes
Default:MCacheSize 100
Context:server config
Status:Experimental
Module:mod_mem_cache
+

The MCacheSize directive sets the maximum + amount of memory to be used by the cache, in KBytes (1024-byte units). + If a new object needs to be inserted in the cache and the size of the + object is greater than the remaining memory, objects will be removed + until the new object can be cached. The object to be removed is + selected using the algorithm specified by MCacheRemovalAlgorithm.

+ +

Example

+ MCacheSize 700000 +

+ +

Note

+

The MCacheSize value must be greater than + the value specified by the MCacheMaxObjectSize directive.

+
+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ja.utf8 new file mode 100644 index 00000000..780f7897 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ja.utf8 @@ -0,0 +1,238 @@ + + + +mod_mem_cache - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_mem_cache

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
説明:URI をキーにしたコンテンツのキャッシュ
ステータス:Experimental
モジュール識別子:mem_cache_module
ソースファイル:mod_mem_cache.c
+

概要

+ +
+ これは実験的なモジュールです。文書もまだ開発中です... +
+ +

このモジュールは mod_cache必要とします。 + これは mod_cache のサポートモジュールとして + 動作し、メモリを使用したストレージ管理機構を提供します。 + mod_mem_cache は二つのモードのどちらかで動作するように + 設定できます: ファイル記述子のキャッシュかヒープ中のオブジェクトの + キャッシュです。ローカルで生成されたコンテンツに対してキャッシュするときや、 + mod_proxy を使って ProxyPass (つまりリバースプロキシ向け) に設定したときのバックエンドサーバのコンテンツに対して + キャッシュをするときに、たいへん効果的です。

+ +

コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。 + アクセス保護のかけられているコンテンツはキャッシュされません。

+
+ + +
top
+

MCacheMaxObjectCount ディレクティブ

+ + + + + + + +
説明:キャッシュに保管されるオブジェクトの最大数
構文:MCacheMaxObjectCount value
デフォルト:MCacheMaxObjectCount 1009
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール:mod_mem_cache
+

MCacheMaxObjectCount ディレクティブは + キャッシュされるオブジェクトの最大数を指定します。 + この値はハッシュテーブルを作成するときに使われます。 + 新しいオブジェクトを挿入するときに、オブジェクトの最大数に + 達してしまっているとき、新しいオブジェクトをキャッシュできるように、 + オブジェクトを一つ消去します。オブジェクトは + MCacheRemovalAlgorithm + で指定されたアルゴリズムに従って削除されます。

+ +

+ MCacheMaxObjectCount 13001 +

+ +
+
top
+

MCacheMaxObjectSize ディレクティブ

+ + + + + + + +
説明:キャッシュに保管できるドキュメントの最大サイズ (バイト)
構文:MCacheMaxObjectSize bytes
デフォルト:MCacheMaxObjectSize 10000
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール:mod_mem_cache
+

MCacheMaxObjectSize はドキュメントを + キャッシュするかどうかを判定する、最大のサイズをバイト数で設定します。

+ +

+ MCacheMaxObjectSize 6400000 +

+ +

+

MCacheMaxObjectSize の値は MCacheMinObjectSize + で指定した値よりも大きくなければなりません。

+
+ +
+
top
+

MCacheMaxStreamingBuffer ディレクティブ

+ + + + + + + +
説明:ストリームされている応答をキャッシュ不能と決定するまでに +メモリにバッファする最大量
構文:MCacheMaxStreamingBuffer size_in_bytes
デフォルト:MCacheMaxStreamingBuffer of 100000 か MCacheMaxObjectSize の少い方
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール: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
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール:mod_mem_cache
+

MCacheMinObjectSize ディレクティブは、ドキュメントを + キャッシュするかどうかを判定する、最小のサイズをバイト数で設定します。

+ +

+ MCacheMinObjectSize 10000 +

+ +
+
top
+

MCacheRemovalAlgorithm ディレクティブ

+ + + + + + + +
説明:キャッシュから削除するドキュメントを選ぶためのアルゴリズム
構文:MCacheRemovalAlgorithm LRU|GDSF
デフォルト:MCacheRemovalAlgorithm GDSF
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール:mod_mem_cache
+

MCacheRemovalAlgorithm ディレクティブは、 + キャッシュから削除するドキュメントを選択するためのアルゴリズムを + 指定します。選択肢は二つあります:

+ +
+
LRU (Least Recently Used)
+
LRU 一番長くアクセスされていないドキュメントを削除します。 +
+ +
GDSF (GreadyDual-Size)
+
GDSF はキャッシュミスのコストとドキュメントのサイズをもとに、 + ドキュメントのキャッシュに対して優先度をつけます。 + 優先度の一番低いドキュメントが最初に削除されます。
+
+ +

+ MCacheRemovalAlgorithm GDSF
+ MCacheRemovalAlgorithm LRU +

+ +
+
top
+

MCacheSize ディレクティブ

+ + + + + + + +
説明:キャッシュに使われるメモリの最大量をキロバイト単位で指定
構文:MCacheSize KBytes
デフォルト:MCacheSize 100
コンテキスト:サーバ設定ファイル
ステータス:Experimental
モジュール:mod_mem_cache
+

MCacheSize ディレクティブはキャッシュに + 使われるメモリの大きさをキロバイト (1024 バイト単位) で設定します。 + 新しいオブジェクトをキャッシュに挿入することになり、オブジェクトの + サイズが残りのメモリより大きい場合は、その新しいオブジェクトの挿入が + 可能になるまで、古いオブジェクトが削除されていきます。 + オブジェクトは MCacheRemovalAlgorithm + で指定したアルゴリズムに従って削除されます。

+ +

+ MCacheSize 700000 +

+ +

+

MCacheSize の値は MCacheMaxObjectSize ディレクティブで指定した値より + 大きくなければなりません。

+
+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ko.euc-kr new file mode 100644 index 00000000..d392b02c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mem_cache.html.ko.euc-kr @@ -0,0 +1,235 @@ + + + +mod_mem_cache - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_mem_cache

+
+

:  en  | + ja  | + ko 

+
+ + + +
:URI Ű Ͽ ijѴ.
:Experimental
:mem_cache_module
ҽ:mod_mem_cache.c
+

+ +
+ ̴. ۾̴... +
+ +

Ϸ mod_cache + ʿϴ. mod_cache + ϸ ޸𸮱 ڸ Ѵ. + mod_mem_cache ϱڸ ij ϰų + ü ijϴ ΰ Ѵ. + mod_mem_cache + ijϰų ProxyPass + (Ͻ(reverse proxy)) + mod_proxy ޴ ijҶ ַ + Ѵ.

+ +

URI Ű Ͽ ij ϰ ´. + ϴ ij ʴ´.

+
+ + +
top
+

MCacheMaxObjectCount þ

+ + + + + + + +
:ij ִ ִ ü
:MCacheMaxObjectCount value
⺻:MCacheMaxObjectCount 1009
:ּ
:Experimental
:mod_mem_cache
+

MCacheMaxObjectCount þ + ij ִ ִ ü Ѵ. ؽ̺ + 鶧 Ѵ. ο ü ij ߰ؾ ϴµ ִ + ü Ͽٸ, ο ü ij ֵ + ٸ ü Ѵ. MCacheRemovalAlgorithm + ˰ Ͽ ü Ѵ.

+ +

+ MCacheMaxObjectCount 13001 +

+ +
+
top
+

MCacheMaxObjectSize þ

+ + + + + + + +
:ij ִ ũ (Ʈ )
:MCacheMaxObjectSize bytes
⺻:MCacheMaxObjectSize 10000
:ּ
:Experimental
:mod_mem_cache
+

MCacheMaxObjectSize þ ij + ִ ũ⸦ Ʈ Ѵ.

+ +

+ MCacheMaxObjectSize 6400000 +

+ +

Note

+

MCacheMaxObjectSize MCacheMinObjectSize + þ Ŀ Ѵ.

+
+ +
+
top
+

MCacheMaxStreamingBuffer þ

+ + + + + + + +
: ijѴٰ ϱ ޸ ۿ + Ʈ ִ ũ
:MCacheMaxStreamingBuffer size_in_bytes
⺻:MCacheMaxStreamingBuffer 100000 MCacheMaxObjectSize +߿
:ּ
:Experimental
:mod_mem_cache
+

MCacheMaxStreamingBuffer þ + ʹ Ŀ ij ۿ Ʈ + ִ Ʈ Ѵ. Ʈ (streamed response) + ü Content-Length + 𸣴 ̴. Ͻõ ̳ CGI ũƮ + Ʈ 信 Ѵ. ⺻ Content-Length + ٸ Ʈ ij ʴ´. + ij ϱ⿡ ʹ ū Ϻθ ۿ + ϱ ޸𸮸 ʱؼ̴. + MCacheMaxStreamingBuffer þ + ϸ Content-Length Ʈ + ũ ۿ Ѵ. ִ ũ⸦ Ѿ + ij ʴ´.

+ +

:

+

MCacheMaxStreamingBuffer 0 + ƴ Ͽ Ŭ̾Ʈ ʰ ʴ´. + mod_mem_cache Ʈ Ϻθ + ۿ ڸ Ŭ̾Ʈ ͷ + .

+
+ +

+ # Ʈ 64KB ijѴ:
+ MCacheMaxStreamingBuffer 65536 +

+ +
+
top
+

MCacheMinObjectSize þ

+ + + + + + + +
:ij ּ ũ (Ʈ )
:MCacheMinObjectSize bytes
⺻:MCacheMinObjectSize 0
:ּ
:Experimental
:mod_mem_cache
+

MCacheMinObjectSize þ ij + ּ ũ⸦ Ʈ Ѵ.

+ +

+ MCacheMinObjectSize 10000 +

+ +
+
top
+

MCacheRemovalAlgorithm þ

+ + + + + + + +
:ij ã ˰
:MCacheRemovalAlgorithm LRU|GDSF
⺻:MCacheRemovalAlgorithm GDSF
:ּ
:Experimental
:mod_mem_cache
+

MCacheRemovalAlgorithm þ + ij ã ˰ Ѵ.

+ +
+
LRU (Least Recently Used)
+
LRU + Ѵ.
+ +
GDSF (GreadyDual-Size)
+
GDSF ij (cache miss) + ũ⸦ ij 켱 οѴ. + 켱 Ѵ.
+
+ +

+ MCacheRemovalAlgorithm GDSF
+ MCacheRemovalAlgorithm LRU +

+ +
+
top
+

MCacheSize þ

+ + + + + + + +
:ij ִ ޸𸮷 (KByte )
:MCacheSize KBytes
⺻:MCacheSize 100
:ּ
:Experimental
:mod_mem_cache
+

MCacheSize þ ij + ִ ޸𸮷 KByte (1024 Ʈ ) Ѵ. + ο ü ij ߰ؾ ϴµ ü ũⰡ + ޸𸮺 ũٸ ο ü ij ٸ + ü Ѵ. MCacheRemovalAlgorithm + ˰ Ͽ ü Ѵ.

+ +

+ MCacheSize 700000 +

+ +

+

MCacheSize MCacheMaxObjectSize + þ Ŀ Ѵ.

+
+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_mime.html b/rubbos/app/apache2/manual/mod/mod_mime.html new file mode 100644 index 00000000..942dc58a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mime.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_mime.html.en b/rubbos/app/apache2/manual/mod/mod_mime.html.en new file mode 100644 index 00000000..d8ff2af5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mime.html.en @@ -0,0 +1,940 @@ + + + +mod_mime - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_mime

+
+

Available Languages:  en  | + ja 

+
+ + + +
Description:Associates the requested filename's extensions + with the file's behavior (handlers and filters) + and content (mime-type, language, character set and + encoding)
Status:Base
ModuleIdentifier:mime_module
SourceFile: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 + 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 + choosing one of several possible files to serve. See + mod_negotiation for more information + about content negotiation.

+ +

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 + file which also maps extensions onto MIME types.

+ +

In addition, mod_mime may define the handler and filters that originate and process + content. The directives AddHandler, AddOutputFilter, and AddInputFilter control the modules + or scripts that serve the document. The MultiviewsMatch directive allows + mod_negotiation to consider these file extensions + to be included when testing Multiviews matches.

+ +

While mod_mime associates meta-information + with filename extensions, the core server + provides directives that are used to associate all the files in a + given container (e.g., <Location>, <Directory>, or <Files>) with particular + meta-information. These directives include ForceType, SetHandler, SetInputFilter, and SetOutputFilter. The core directives + override any filename extension mappings defined in + mod_mime.

+ +

Note that changing the meta-information for a file does not + change the value of the Last-Modified header. + Thus, previously cached copies may still be used by a client or + proxy, with the previous headers. If you change the + meta-information (language, content type, character set or + encoding) you may need to 'touch' affected files (updating + their last modified date) to ensure that all visitors are + receive the corrected content headers.

+
+ +
top
+
+

Files with Multiple Extensions

+

Files can have more than one extension, and the order of the + 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.

+ +

Languages and content encodings are treated accumulative, because one can assign + 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 + with the handler. For example, if the .imap + extension is mapped to the handler imap-file (from + mod_imap) and the .html extension is + mapped to the MIME-type text/html, then the file + world.imap.html will be associated with both the + imap-file handler and text/html MIME-type. + When it is processed, the imap-file handler will be used, + and so it will be treated as a mod_imap imagemap + file.

+
top
+
+

Content encoding

+

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 + pgp or to an encoding such as UUencoding, which is + designed for transmitting a binary file in an ASCII (text) + format.

+ +

The HTTP/1.1 + RFC, section 14.11 puts it this way:

+ +
+

The Content-Encoding entity-header field is used as a modifier to + the media-type. When present, its value indicates what additional + content codings have been applied to the entity-body, and thus what + decoding mechanisms must be applied in order to obtain the media-type + referenced by the Content-Type header field. Content-Encoding is + primarily used to allow a document to be compressed without losing + the identity of its underlying media type.

+
+ +

By using more than one file extension (see section above about multiple file + extensions), you can indicate that a file is of a + particular type, and also has a particular + encoding.

+ +

For example, you may have a file which is a Microsoft Word + document, which is pkzipped to reduce its size. If the + .doc extension is associated with the Microsoft + Word file type, and the .zip extension is + associated with the pkzip file encoding, then the file + Resume.doc.zip would be known to be a pkzip'ed Word + document.

+ +

Apache sends a Content-encoding header with the + resource, in order to tell the client browser about the + encoding method.

+ +

Content-encoding: pkzip

+
top
+
+

Character sets and languages

+

In addition to file type and the file encoding, + another important piece of information is what language a + particular document is in, and in what character set the file + should be displayed. For example, the document might be written + in the Vietnamese alphabet, or in Cyrillic, and should be + displayed as such. This information, also, is transmitted in + HTTP headers.

+ +

The character set, language, encoding and mime type are all + used in the process of content negotiation (See + mod_negotiation) to determine + which document to give to the client, when there are + alternative documents in more than one character set, language, + encoding or mime type. All filename extensions associations + created with AddCharset, + AddEncoding, AddLanguage and AddType directives + (and extensions listed in the MimeMagicFile) participate in this select process. + Filename extensions that are only associated using the AddHandler, AddInputFilter or AddOutputFilter directives may be included or excluded + from matching by using the MultiviewsMatch directive.

+ +

Charset

+

To convey this further information, Apache optionally sends + a Content-Language header, to specify the language + that the document is in, and can append additional information + onto the Content-Type header to indicate the + particular character set that should be used to correctly + render the information.

+ +

+ Content-Language: en, fr
+ Content-Type: text/plain; charset=ISO-8859-1 +

+ +

The language specification is the two-letter abbreviation + for the language. The charset is the name of the + particular character set which should be used.

+ +
+
top
+

AddCharset Directive

+ + + + + + + +
Description:Maps the given filename extensions to the specified content +charset
Syntax:AddCharset charset extension +[extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The AddCharset directive maps the given + filename extensions to the specified content charset. charset + is the MIME + charset parameter of filenames containing + extension. This mapping is added to any already in force, + overriding any mappings that already exist for the same + extension.

+ +

Example

+ AddLanguage ja .ja
+ AddCharset EUC-JP .euc
+ AddCharset ISO-2022-JP .jis
+ AddCharset SHIFT_JIS .sjis +

+ +

Then the document xxxx.ja.jis will be treated + as being a Japanese document whose charset is ISO-2022-JP + (as will the document xxxx.jis.ja). The + AddCharset directive is useful for both to + inform the client about the character encoding of the document so that + the document can be interpreted and displayed appropriately, and for content negotiation, + 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.

+ +

See also

+ +
+
top
+

AddEncoding Directive

+ + + + + + + +
Description:Maps the given filename extensions to the specified encoding +type
Syntax:AddEncoding MIME-enc extension +[extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The AddEncoding directive maps the given + filename extensions to the specified encoding type. MIME-enc + is the MIME encoding to use for documents containing the + extension. This mapping is added to any already in force, + overriding any mappings that already exist for the same + extension.

+ +

Example

+ AddEncoding x-gzip .gz
+ AddEncoding x-compress .Z +

+ +

This will cause filenames containing the .gz extension + to be marked as encoded using the x-gzip encoding, and + filenames containing the .Z extension to be marked as + encoded with x-compress.

+ +

Old clients expect x-gzip and x-compress, + however the standard dictates that they're equivalent to + gzip and compress respectively. Apache does + content encoding comparisons by ignoring any leading x-. + When responding with an encoding Apache will use whatever form + (i.e., x-foo or foo) the + client requested. If the client didn't specifically request a + particular form Apache will use the form given by the + AddEncoding directive. To make this long story + short, you should always use x-gzip and + x-compress for these two specific encodings. More + 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.

+ +
+
top
+

AddHandler Directive

+ + + + + + + +
Description:Maps the filename extensions to the specified +handler
Syntax:AddHandler handler-name extension +[extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

Files having the name extension will be served by the + specified handler-name. This + mapping is added to any already in force, overriding any mappings that + already exist for the same extension. For example, to + activate CGI scripts with the file extension .cgi, you + might use:

+ +

+ AddHandler cgi-script .cgi +

+ +

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.

+ +

See also

+ +
+
top
+

AddInputFilter Directive

+ + + + + + + + +
Description:Maps filename extensions to the filters that will process +client requests
Syntax:AddInputFilter filter[;filter...] +extension [extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:AddInputFilter is only available in Apache 2.0.26 and +later.
+

AddInputFilter maps the filename extension + extension to the filters which + will process client requests and POST input when they are received by + the server. This is in addition to any filters defined elsewhere, + including the SetInputFilter + 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 + 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.

+ +

See also

+ +
+
top
+

AddLanguage Directive

+ + + + + + + +
Description:Maps the given filename extension to the specified content +language
Syntax:AddLanguage MIME-lang extension +[extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The AddLanguage directive maps the given + filename extension to the specified content language. + MIME-lang is the MIME language of filenames containing + extension. This mapping is added to any already in force, + overriding any mappings that already exist for the same + extension.

+ +

Example

+ AddEncoding x-compress .Z
+ AddLanguage en .en
+ AddLanguage fr .fr +

+ +

Then the document xxxx.en.Z will be treated as + being a compressed English document (as will the document + xxxx.Z.en). Although the content language is + reported to the client, the browser is unlikely to use this + information. The AddLanguage directive is + more useful for content + negotiation, where the server returns one from several documents + based on the client's language preference.

+ +

If multiple language assignments are made for the same + extension, the last one encountered is the one that is used. + That is, for the case of:

+ +

+ AddLanguage en .en
+ AddLanguage en-gb .en
+ AddLanguage en-us .en +

+ +

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.

+ +

See also

+ +
+
top
+

AddOutputFilter Directive

+ + + + + + + + +
Description:Maps filename extensions to the filters that will process +responses from the server
Syntax:AddOutputFilter filter[;filter...] +extension [extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:AddOutputFilter is only available in Apache 2.0.26 and +later.
+

The AddOutputFilter directive maps the + filename extension extension to the filters which will process responses + from the server before they are sent to the client. This is in + addition to any filters defined elsewhere, including SetOutputFilter and AddOutputFilterByType directive. This mapping is merged + over any already in force, overriding any mappings that already exist + for the same extension.

+ +

For example, the following configuration will process all + .shtml files for server-side includes and will then + compress the output using mod_deflate.

+ +

+ AddOutputFilter INCLUDES;DEFLATE shtml +

+ +

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.

+ +

See also

+ +
+
top
+

AddType Directive

+ + + + + + + +
Description:Maps the given filename extensions onto the specified content +type
Syntax:AddType MIME-type extension +[extension] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
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).

+ +

Example

+ AddType image/gif .gif +

+ +
+ It is recommended that new MIME types be added using the + AddType directive rather than changing the + TypesConfig file. +
+ +

The extension argument is case-insensitive, and can + be specified with or without a leading dot.

+ +

See also

+ +
+
top
+

DefaultLanguage Directive

+ + + + + + + +
Description:Sets all files in the given scope to the specified +language
Syntax:DefaultLanguage MIME-lang
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The DefaultLanguage directive tells Apache + that all files in the directive's scope (e.g., all files + covered by the current <Directory> container) that don't have an explicit language + extension (such as .fr or .de as configured + by AddLanguage) should be + considered to be in the specified MIME-lang language. This + allows entire directories to be marked as containing Dutch content, for + instance, without having to rename each file. Note that unlike using + extensions to specify languages, DefaultLanguage + can only specify a single language.

+ +

If no DefaultLanguage directive is in force, + and a file does not have any language extensions as configured + by AddLanguage, then that file + will be considered to have no language attribute.

+ +

Example

+ DefaultLanguage en +

+ +

See also

+ +
+
top
+

ModMimeUsePathInfo Directive

+ + + + + + + + +
Description:Tells mod_mime to treat path_info +components as part of the filename
Syntax:ModMimeUsePathInfo On|Off
Default:ModMimeUsePathInfo Off
Context:directory
Status:Base
Module:mod_mime
Compatibility:Available in Apache 2.0.41 and later
+

The ModMimeUsePathInfo directive is used to + combine the filename with the path_info URL component to + apply mod_mime's directives to the request. The default + value is Off - therefore, the path_info + component is ignored.

+ +

This directive is recommended when you have a virtual filesystem.

+ +

Example

+ ModMimeUsePathInfo On +

+ +

If you have a request for /bar/foo.shtml where + /bar is a Location and ModMimeUsePathInfo is On, + mod_mime will treat the incoming request as + /bar/foo.shtml and directives like AddOutputFilter + INCLUDES .shtml will add the INCLUDES filter to the + request. If ModMimeUsePathInfo is not set, the + INCLUDES filter will not be added.

+ +

See also

+ +
+
top
+

MultiviewsMatch Directive

+ + + + + + + + + +
Description:The types of files that will be included when searching for +a matching file with MultiViews
Syntax:MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers +[Handlers|Filters]
Default:MultiviewsMatch NegotiatedOnly
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:Available in Apache 2.0.26 and later.
+

MultiviewsMatch permits three different + behaviors for mod_negotiation's + Multiviews feature. Multiviews allows a request for a file, + e.g. index.html, to match any negotiated + extensions following the base request, e.g. + index.html.en, index.html.fr, or + index.html.gz.

+ +

The NegotiatedOnly option provides that every extension + following the base name must correlate to a recognized + mod_mime extension for content negotation, e.g. + Charset, Content-Type, Language, or Encoding. This is the strictest + implementation with the fewest unexpected side effects, and is the + default behavior.

+ +

To include extensions associated with Handlers and/or Filters, + set the MultiviewsMatch directive to either + Handlers, Filters, or both option keywords. + If all other factors are equal, the smallest file will be served, + e.g. in deciding between index.html.cgi of 500 + bytes and index.html.pl of 1000 bytes, the .cgi + file would win in this example. Users of .asis files + might prefer to use the Handler option, if .asis files are + associated with the asis-handler.

+ +

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 + serving .old or .bak files the webmaster never expected to be served.

+ +

For example, the following configuration will allow handlers + and filters to participate in Multviews, but will exclude unknown + files:

+ +

+ MultiviewsMatch Handlers Filters +

+ +

See also

+ +
+
top
+

RemoveCharset Directive

+ + + + + + + + +
Description:Removes any character set associations for a set of file +extensions
Syntax:RemoveCharset extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:RemoveCharset is only available in Apache 2.0.24 and +later.
+

The RemoveCharset directive removes any + character set 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 + be specified with or without a leading dot.

+ +

Example

+ RemoveCharset .html .shtml +

+ +
+
top
+

RemoveEncoding Directive

+ + + + + + + +
Description:Removes any content encoding associations for a set of file +extensions
Syntax:RemoveEncoding extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The RemoveEncoding directive removes any + encoding 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:

+ AddEncoding x-gzip .gz
+ AddType text/plain .asc
+ <Files *.gz.asc>
+ + RemoveEncoding .gz
+
+ </Files> +

+ +

This will cause foo.gz to be marked as being + encoded with the gzip method, but foo.gz.asc as an + unencoded plaintext file.

+ +

Note

+

RemoveEncoding directives are processed + after any AddEncoding + directives, so it is possible they may undo the effects of the latter + if both occur within the same directory configuration.

+
+ +

The extension argument is case-insensitive, and can + be specified with or without a leading dot.

+ +
+
top
+

RemoveHandler Directive

+ + + + + + + +
Description:Removes any handler associations for a set of file +extensions
Syntax:RemoveHandler extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
+

The RemoveHandler directive removes any + handler 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:

+ AddHandler server-parsed .html +

+ +

/foo/bar/.htaccess:

+ RemoveHandler .html +

+ +

This has the effect of returning .html files in + 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 + be specified with or without a leading dot.

+ +
+
top
+

RemoveInputFilter Directive

+ + + + + + + + +
Description:Removes any input filter associations for a set of file +extensions
Syntax:RemoveInputFilter extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:RemoveInputFilter is only available in Apache 2.0.26 and +later.
+

The RemoveInputFilter directive removes any + 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 + be specified with or without a leading dot.

+ +

See also

+ +
+
top
+

RemoveLanguage Directive

+ + + + + + + + +
Description:Removes any language associations for a set of file +extensions
Syntax:RemoveLanguage extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:RemoveLanguage is only available in Apache 2.0.24 and +later.
+

The RemoveLanguage directive removes any + language 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 + be specified with or without a leading dot.

+ +
+
top
+

RemoveOutputFilter Directive

+ + + + + + + + +
Description:Removes any output filter associations for a set of file +extensions
Syntax:RemoveOutputFilter extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_mime
Compatibility:RemoveOutputFilter is only available in Apache 2.0.26 and +later.
+

The RemoveOutputFilter directive removes any + 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 + be specified with or without a leading dot.

+ +

Example

+ RemoveOutputFilter shtml +

+ +

See also

+ +
+
top
+

RemoveType Directive

+ + + + + + + +
Description:Removes any content type associations for a set of file +extensions
Syntax:RemoveType extension [extension] +...
Context:virtual host, directory, .htaccess
Override:FileInfo
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:

+ +

/foo/.htaccess:

+ RemoveType .cgi +

+ +

This will remove any special handling of .cgi + files in the /foo/ directory and any beneath it, + causing the files to be treated as being of the DefaultType.

+ +

Note

+

RemoveType directives are processed + after any AddType + directives, so it is possible they may undo the effects of the + latter if both occur within the same directory configuration.

+
+ +

The extension argument is case-insensitive, and can + be specified with or without a leading dot.

+ +
+
top
+

TypesConfig Directive

+ + + + + + + +
Description:The location of the mime.types file
Syntax:TypesConfig file-path
Default:TypesConfig conf/mime.types
Context:server config
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 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 + 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.

+ +

The file contains lines in the format of the arguments to + an AddType directive:

+ +

+ MIME-type [extension] ... +

+ +

The case of the extension does not matter. Blank lines, and lines + beginning with a hash character (#) are ignored.

+ +
+ Please do not send requests to the Apache HTTP + Server Project to add any new entries in the distributed + mime.types file unless (1) they are already + registered with IANA, and (2) they use widely accepted, + non-conflicting filename extensions across platforms. + category/x-subtype requests will be automatically + rejected, as will any new two-letter extensions as they will + likely conflict later with the already crowded language and + character set namespace. +
+ +

See also

+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_mime.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_mime.html.ja.utf8 new file mode 100644 index 00000000..c595e8da --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mime.html.ja.utf8 @@ -0,0 +1,938 @@ + + + +mod_mime - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_mime

+
+

Available Languages:  en  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:リクエストされたファイルの拡張子とファイルの振る舞い + (ハンドラとフィルタ)、内容 (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, deContent-Type: + text/html として送信されます。

+ +

複数の拡張子のあるファイルが MIME + タイプとハンドラの両方に関連付けられているときは注意する必要があります。 + その場合、普通はリクエストがハンドラに関連付けられた + モジュールによって扱われることになります。たとえば、拡張子 + .imap が (mod_imap の) imap-file + にマップされていて、.html が MIME タイプ text/html + にマップされているときは、ファイル world.imap.html は + imap-file ハンドラと text/html MIME + タイプに関連付けられます。ファイルが処理されるときは imap-file + ハンドラが使用されますので、そのファイルは mod_imap + のイメージマップファイルとして扱われることになります。

+
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-zipx-compress + が返ってくることを期待しますが、標準規格ではそれぞれ + gzipcompress + と等価であることになっています。Apache + は、コンテントエンコーディングの比較をするときには、先頭にある + x- を無視します。Apache + がエンコーディング付きで応答を返すときは、クライアントが要求した形式 + (すなわちx-foofoo) + を使用します。要するに、この二つのエンコーディングの場合は常に + x-gzipx-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 +

+ +

複数のフィルタを指定するときは、データを処理する順番にセミコロンで + 繋いで書く必要があります。filterextension の + 両引数は大文字小文字を区別せず、拡張子の最初のドットは + あってもなくても構いません。

+ +

参照

+ +
+
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 は存在しない) + ModMimeUsePathInfoOn であるとして、 + /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.isi.edu/in-notes/iana/assignments/media-types/media-types + で管理されています。これは、主要なメディアタイプの定義を提供して、 + 必要ところを 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/rubbos/app/apache2/manual/mod/mod_mime_magic.html b/rubbos/app/apache2/manual/mod/mod_mime_magic.html new file mode 100644 index 00000000..fd1bb722 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mime_magic.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_mime_magic.html.en b/rubbos/app/apache2/manual/mod/mod_mime_magic.html.en new file mode 100644 index 00000000..b3e73350 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_mime_magic.html.en @@ -0,0 +1,274 @@ + + + +mod_mime_magic - Apache HTTP Server + + + + + + +
<-
+ +
+

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
ModuleIdentifier:mime_magic_module
SourceFile: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" + for cases that mod_mime can't resolve.

+ +

This module is derived from a free version of the + file(1) command for Unix, which uses "magic + numbers" and other hints from a file's contents to figure out + what the contents are. This module is active only if the magic + file is specified by the MimeMagicFile directive.

+
+ +
top
+
+

Format of the Magic File

+ +

The contents of the file are plain ASCII text in 4-5 + columns. Blank lines are allowed but ignored. Commented lines + use a hash mark (#). The remaining lines are parsed for + the following columns:

+ + + + + + + + + + + + +
ColumnDescription
1byte number to begin checking from
+ ">" indicates a dependency upon the previous + non-">" line
2

type of data to match

+ + + + + + + + + + + + + + + + + + + + + + + + +
bytesingle character
shortmachine-order 16-bit integer
longmachine-order 32-bit integer
stringarbitrary-length string
datelong integer date (seconds since Unix epoch/1970)
beshortbig-endian 16-bit integer
belongbig-endian 32-bit integer
bedatebig-endian 32-bit integer date
leshortlittle-endian 16-bit integer
lelonglittle-endian 32-bit integer
ledatelittle-endian 32-bit integer date
3contents of data to match
4MIME type if matched
5MIME encoding if matched (optional)
+ +

For example, the following magic file lines would recognize + some audio formats:

+ +
# Sun/NeXT audio data
+0      string      .snd
+>12    belong      1       audio/basic
+>12    belong      2       audio/basic
+>12    belong      3       audio/basic
+>12    belong      4       audio/basic
+>12    belong      5       audio/basic
+>12    belong      6       audio/basic
+>12    belong      7       audio/basic
+>12    belong     23       audio/x-adpcm
+ +

Or these would recognize the difference between *.doc + files containing Microsoft Word or FrameMaker documents. (These are + incompatible file formats which use the same file suffix.)

+ +
# Frame
+0  string  \<MakerFile        application/x-frame
+0  string  \<MIFFile          application/x-frame
+0  string  \<MakerDictionary  application/x-frame
+0  string  \<MakerScreenFon   application/x-frame
+0  string  \<MML              application/x-frame
+0  string  \<Book             application/x-frame
+0  string  \<Maker            application/x-frame
+
+# MS-Word
+0  string  \376\067\0\043            application/msword
+0  string  \320\317\021\340\241\261  application/msword
+0  string  \333\245-\0\0\0           application/msword
+ +

An optional MIME encoding can be included as a fifth column. + For example, this can recognize gzipped files and set the + encoding for them.

+ +
# gzip (GNU zip, not to be confused with
+#       [Info-ZIP/PKWARE] zip archiver)
+
+0  string  \037\213  application/octet-stream  x-gzip
+
top
+
+

Performance Issues

+

This module is not for every system. If your system is barely + keeping up with its load or if you're performing a web server + benchmark, you may not want to enable this because the + processing is not free.

+ +

However, an effort was made to improve the performance of + the original file(1) code to make it fit in a busy web + server. It was designed for a server where there are thousands of users + who publish their own documents. This is probably very common + on intranets. Many times, it's helpful if the server can make + more intelligent decisions about a file's contents than the + file name allows ...even if just to reduce the "why doesn't my + page work" calls when users improperly name their own files. + You have to decide if the extra work suits your + environment.

+
top
+
+

Notes

+

The following notes apply to the mod_mime_magic + module and are included here for compliance with contributors' + copyright restrictions that require their acknowledgment.

+ +
+

mod_mime_magic: MIME type lookup via file magic numbers
+ Copyright (c) 1996-1997 Cisco Systems, Inc.

+ +

This software was submitted by Cisco Systems to the Apache Group + in July 1997. Future revisions and derivatives of this source code + must acknowledge Cisco Systems as the original contributor of this + module. All other licensing and usage conditions are those of the + Apache Group.

+ +

Some of this code is derived from the free version of the file + command originally posted to comp.sources.unix. Copyright info for + that program is included below as required.

+
+ +
+

- Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin.

+ +

This software is not subject to any license of the American + Telephone and Telegraph Company or of the Regents of the University + of California.

+ +

Permission is granted to anyone to use this software for any + purpose on any computer system, and to alter it and redistribute it + freely, subject to the following restrictions:

+ +
    +
  1. The author is not responsible for the consequences of use of + this software, no matter how awful, even if they arise from flaws + in it.
  2. + +
  3. The origin of this software must not be misrepresented, either + by explicit claim or by omission. Since few users ever read + sources, credits must appear in the documentation.
  4. + +
  5. Altered versions must be plainly marked as such, and must not + be misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation.
  6. + +
  7. This notice may not be removed or altered.
  8. +
+
+ +
+

For compliance with Mr Darwin's terms: this has been very + significantly modified from the free "file" command.

+ +
    +
  • all-in-one file for compilation convenience when moving from + one version of Apache to the next.
  • + +
  • Memory allocation is done through the Apache API's pool + structure.
  • + +
  • All functions have had necessary Apache API request or server + structures passed to them where necessary to call other Apache API + routines. (i.e., usually for logging, files, or memory + allocation in itself or a called function.)
  • + +
  • struct magic has been converted from an array to a single-ended + linked list because it only grows one record at a time, it's only + accessed sequentially, and the Apache API has no equivalent of + realloc().
  • + +
  • Functions have been changed to get their parameters from the + server configuration instead of globals. (It should be reentrant + now but has not been tested in a threaded environment.)
  • + +
  • Places where it used to print results to stdout now saves them + in a list where they're used to set the MIME type in the Apache + request record.
  • + +
  • Command-line flags have been removed since they will never be + used here.
  • +
+
+
+
top
+

MimeMagicFile Directive

+ + + + + + +
Description:Enable MIME-type determination based on file contents +using the specified magic file
Syntax:MimeMagicFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_mime_magic
+

The MimeMagicFile directive can be used to + enable this module, the default file is distributed at + conf/magic. Non-rooted paths are relative to the + ServerRoot. Virtual hosts will use + the same file as the main server unless a more specific setting is + used, in which case the more specific setting overrides the main + server's file.

+ +

Example

+ MimeMagicFile conf/magic +

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_negotiation.html b/rubbos/app/apache2/manual/mod/mod_negotiation.html new file mode 100644 index 00000000..dbedc3d0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_negotiation.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mod_negotiation.html.en b/rubbos/app/apache2/manual/mod/mod_negotiation.html.en new file mode 100644 index 00000000..21ae9a58 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_negotiation.html.en @@ -0,0 +1,306 @@ + + + +mod_negotiation - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_negotiation

+
+

Available Languages:  en  | + ja 

+
+ + + +
Description:Provides for content negotiation
Status:Base
ModuleIdentifier:negotiation_module
SourceFile:mod_negotiation.c
+

Summary

+ +

Content negotiation, or more accurately content selection, is + the selection of the document that best matches the clients + capabilities, from one of several available documents. There + are two implementations of this.

+ +
    +
  • A type map (a file with the handler + type-map) which explicitly lists the files + containing the variants.
  • + +
  • A MultiViews search (enabled by the MultiViews + Options), where the server does + an implicit filename pattern match, and choose from amongst the + results.
  • +
+
+ +
top
+
+

Type maps

+

A type map has a format similar to RFC822 mail headers. It + contains document descriptions separated by blank lines, with + lines beginning with a hash character ('#') treated as + comments. A document description consists of several header + records; records may be continued on multiple lines if the + continuation lines start with spaces. The leading space will be + deleted and the lines concatenated. A header record consists of + a keyword name, which always ends in a colon, followed by a + value. Whitespace is allowed between the header name and value, + and between the tokens of value. The headers allowed are:

+ +
+
Content-Encoding:
+
The encoding of the file. Apache only recognizes + encodings that are defined by an AddEncoding directive. + This normally includes the encodings x-compress + for compress'd files, and x-gzip for gzip'd + files. The x- prefix is ignored for encoding + comparisons.
+ +
Content-Language:
+
The language(s) of the variant, as an Internet standard + language tag (RFC 1766). An example is en, + meaning English. If the variant contains more than one + language, they are separated by a comma.
+ +
Content-Length:
+
The length of the file, in bytes. If this header is not + present, then the actual length of the file is used.
+ +
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: + +
+
level
+
an integer specifying the version of the media type. + For text/html this defaults to 2, otherwise + 0.
+ +
qs
+
a floating-point number with a value in the range 0.0 + to 1.0, 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 + is attempting to represent a photograph. However, if the + resource being represented is ascii art, then an ascii + file would have a higher source quality than a jpeg file. + All qs values are therefore specific to a given + resource.
+
+ +

Example

+ Content-Type: image/jpeg; qs=0.8 +

+
+ +
URI:
+
uri of the file containing the variant (of the given + media type, encoded with the given content encoding). These + are interpreted as URLs relative to the map file; they must + be on the same server (!), and they must refer to files to + which the client would be granted access if they were to be + requested directly.
+ +
Body:
+
New in Apache 2.0, the actual content of the resource may + be included in the type-map file using the Body header. This + header must contain a string that designates a delimiter for + the body content. Then all following lines in the type map + file will be considered part of the resource body until the + delimiter string is found. + +

Example:

+ Body:----xyz----
+ <html>
+ <body>
+ <p>Content of the page.</p>
+ </body>
+ </html>
+ ----xyz---- +

+
+
+
top
+
+

MultiViews

+

A MultiViews search is enabled by the MultiViews + Options. If the server receives a + request for /some/dir/foo and + /some/dir/foo does not exist, then the + server reads the directory looking for all files named + foo.*, and effectively fakes up a type map which + names all those files, assigning them the same media types and + content-encodings it would have if the client had asked for one + of them by name. It then chooses the best match to the client's + requirements, and returns that document.

+ +

The MultiViewsMatch + directive configures whether Apache will consider files + that do not have content negotiation meta-information assigned + to them when choosing files.

+
+
top
+

CacheNegotiatedDocs Directive

+ + + + + + + + +
Description:Allows content-negotiated documents to be +cached by proxy servers
Syntax:CacheNegotiatedDocs On|Off
Default:CacheNegotiatedDocs Off
Context:server config, virtual host
Status:Base
Module:mod_negotiation
Compatibility:The syntax changed in version 2.0.
+

If set, this directive allows content-negotiated documents + to be cached by proxy servers. This could mean that clients + behind those proxys could retrieve versions of the documents + that are not the best match for their abilities, but it will + make caching more efficient.

+ +

This directive only applies to requests which come from + HTTP/1.0 browsers. HTTP/1.1 provides much better control over + the caching of negotiated documents, and this directive has no + effect in responses to HTTP/1.1 requests.

+ +

Prior to version 2.0, + CacheNegotiatedDocs did not take an + argument; it was turned on by the presence of the directive by + itself.

+ +
+
top
+

ForceLanguagePriority Directive

+ + + + + + + + + +
Description:Action to take if a single acceptable document is not +found
Syntax:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
Default:ForceLanguagePriority Prefer
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_negotiation
Compatibility:Available in version 2.0.30 and later
+

The ForceLanguagePriority directive uses + the given LanguagePriority to satisfy + negotation where the server could otherwise not return a single + matching document.

+ +

ForceLanguagePriority Prefer uses + LanguagePriority to serve a one valid result, rather + than returning an HTTP result 300 (MULTIPLE CHOICES) when there + are several equally valid choices. If the directives below were + given, and the user's Accept-Language header assigned + en and de each as quality .500 + (equally acceptable) then the first matching variant, en, + will be served.

+ +

+ LanguagePriority en fr de
+ ForceLanguagePriority Prefer +

+ +

ForceLanguagePriority Fallback uses + LanguagePriority to + serve a valid result, rather than returning an HTTP result 406 + (NOT ACCEPTABLE). If the directives below were given, and the user's + Accept-Language only permitted an es + language response, but such a variant isn't found, then the first + variant from the LanguagePriority list below will be served.

+ +

+ LanguagePriority en fr de
+ ForceLanguagePriority Fallback +

+ +

Both options, Prefer and Fallback, may be + specified, so either the first matching variant from LanguagePriority will be served if + more than one variant is acceptable, or first available document will + be served if none of the variants matched the client's acceptable list + of languages.

+ +

See also

+ +
+
top
+

LanguagePriority Directive

+ + + + + + + +
Description:The precendence of language variants for cases where +the client does not express a preference
Syntax:LanguagePriority MIME-lang [MIME-lang] +...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_negotiation
+

The LanguagePriority sets the precedence + of language variants for the case where the client does not + express a preference, when handling a MultiViews request. The list + of MIME-lang are in order of decreasing preference.

+ +

Example:

+ LanguagePriority en fr de +

+ +

For a request for foo.html, where + foo.html.fr and foo.html.de both + existed, but the browser did not express a language preference, + then foo.html.fr would be returned.

+ +

Note that this directive only has an effect if a 'best' + language cannot be determined by any other means or the ForceLanguagePriority directive + is not None. In general, the client determines the + language preference, not the server.

+ +

See also

+ +
+
+
+

Available Languages:  en  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_negotiation.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_negotiation.html.ja.utf8 new file mode 100644 index 00000000..b49c19dd --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_negotiation.html.ja.utf8 @@ -0,0 +1,302 @@ + + + +mod_negotiation - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_negotiation

+
+

Available Languages:  en  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:コンテントネゴシエーション + 機能を提供する
ステータス: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 + ヘッダでは ende の品質が共に + .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 +

+ +

PreferFallback の両方のオプションを + 同時に指定することができます。 + ですから、複数の 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/rubbos/app/apache2/manual/mod/mod_nw_ssl.html b/rubbos/app/apache2/manual/mod/mod_nw_ssl.html new file mode 100644 index 00000000..c1342c07 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_nw_ssl.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_nw_ssl.html.en b/rubbos/app/apache2/manual/mod/mod_nw_ssl.html.en new file mode 100644 index 00000000..f03f5fbb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_nw_ssl.html.en @@ -0,0 +1,97 @@ + + + +mod_nw_ssl - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_nw_ssl

+
+

Available Languages:  en 

+
+ + + + +
Description:Enable SSL encryption for NetWare
Status:Base
ModuleIdentifier:nwssl_module
SourceFile:mod_nw_ssl.c
Compatibility:NetWare only
+

Summary

+ +

This module enables SSL encryption for a specified port. It + takes advantage of the SSL encryption functionality that is + built into the NetWare operating system.

+
+ + +
top
+

NWSSLTrustedCerts Directive

+ + + + + + +
Description:List of additional client certificates
Syntax:NWSSLTrustedCerts filename [filename] ...
Context:server config
Status:Base
Module:mod_nw_ssl
+

Specifies a list of client certificate files (DER format) + that are used when creating a proxied SSL connection. Each + client certificate used by a server must be listed separately + in its own .der file.

+ +
+
top
+

NWSSLUpgradeable Directive

+ + + + + + +
Description:Allows a connection to be upgraded to an SSL connection upon request
Syntax:NWSSLUpgradeable [IP-address:]portnumber
Context:server config
Status:Base
Module:mod_nw_ssl
+

Allow a connection that was created on the specified address + and/or port to be upgraded to an SSL connection upon request from + the client. The address and/or port must have already be defined + previously with a Listen + directive.

+ +
+
top
+

SecureListen Directive

+ + + + + + +
Description:Enables SSL encryption for the specified port
Syntax:SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]
Context:server config
Status:Base
Module:mod_nw_ssl
+

Specifies the port and the eDirectory based certificate name + that will be used to enable SSL encryption. An optional third + parameter also enables mutual authentication.

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_proxy.html b/rubbos/app/apache2/manual/mod/mod_proxy.html new file mode 100644 index 00000000..b5f65d3f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_proxy.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_proxy.html.en b/rubbos/app/apache2/manual/mod/mod_proxy.html.en new file mode 100644 index 00000000..df18968a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy.html.en @@ -0,0 +1,1016 @@ + + + +mod_proxy - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_proxy

+
+

Available Languages:  en 

+
+ + + +
Description:HTTP/1.1 proxy/gateway server
Status:Extension
ModuleIdentifier:proxy_module
SourceFile:mod_proxy.c
+

Summary

+ +

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.

+
+ +

This module implements a proxy/gateway for Apache. It implements + proxying capability for FTP, CONNECT (for SSL), + HTTP/0.9, HTTP/1.0, and HTTP/1.1. + The module can be configured to connect to other proxy modules for these + and other protocols.

+ +

Apache's proxy features are divided into several modules in + addition to mod_proxy: + mod_proxy_http, mod_proxy_ftp + and mod_proxy_connect. Thus, if you want to use + one or more of the particular proxy functions, load + mod_proxy and the appropriate module(s) + into the server (either statically at compile-time or dynamically + via the LoadModule + directive).

+ +

In addition, extended features are provided by other modules. + Caching is provided by mod_cache and related + modules. The ability to contact remote servers using the SSL/TLS + protocol is provided by the SSLProxy* directives of + mod_ssl. These additional modules will need + to be loaded and configured to take advantage of these features.

+
+ +
top
+
+

Forward and Reverse Proxies

+

Apache can be configured in both a forward and + reverse proxy 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 + origin server and returns it to the client. The client must be + specially configured to use the forward proxy to access other + sites.

+ +

A typical usage of a forward proxy is to provide Internet + access to internal clients that are otherwise restricted by a + firewall. The forward proxy can also use caching (as provided + 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 + 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 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. + In addition, reverse proxies can be used simply to bring + several servers into the same URL space.

+ +

A reverse proxy is activated using the ProxyPass directive or the + [P] flag to the RewriteRule directive. It is + not necessary to turn ProxyRequests on in order to + configure a reverse proxy.

+
top
+
+

Basic Examples

+ +

The examples below are only a very basic idea to help you + get started. Please read the documentation on the individual + directives.

+ +

In addition, if you wish to have caching enabled, consult + the documentation from mod_cache.

+ +

Forward Proxy

+ ProxyRequests On
+ ProxyVia On
+
+ <Proxy *>
+ + Order deny,allow
+ Deny from all
+ Allow from internal.example.com
+
+ </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

+

You can control who can access your proxy via the <Proxy> control block as in + the following example:

+ +

+ <Proxy *>
+ + Order Deny,Allow
+ Deny from all
+ Allow from 192.168.0
+
+ </Proxy> +

+ +

For more information on access control directives, see + mod_access.

+ +

Strictly limiting access is essential if you are using a + forward proxy (using the ProxyRequests directive). + Otherwise, your server can be used by any client to access + arbitrary hosts while hiding his or her true identity. This is + dangerous both for your network and for the Internet at large. + When using a reverse proxy (using the ProxyPass directive with + ProxyRequests Off), access control is less + critical because clients can only contact the hosts that you + have specifically configured.

+ +
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
+ + +

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 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 + seconds (or more) depending on the speed with which the hostname lookups + occur.

+
top
+
+

Intranet Proxy

+

An Apache proxy server situated in an intranet needs to forward + external requests through the company's firewall (for this, configure + the ProxyRemote directive + to forward the respective scheme to the firewall proxy). + However, when it has to + access resources within the intranet, it can bypass the firewall when + accessing hosts. The NoProxy + directive is useful for specifying which hosts belong to the intranet and + should be accessed directly.

+ +

Users within an intranet tend to omit the local domain name from their + WWW requests, thus requesting "http://somehost/" instead of + http://somehost.example.com/. Some commercial proxy servers + let them get away with this and simply serve the request, implying a + configured local domain. When the ProxyDomain directive is used and the server is configured for proxy service, Apache can return + a redirect response and send the client to the correct, fully qualified, + server address. This is the preferred method since the user's bookmark + files will then contain fully qualified hosts.

+
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.

+ +

These are the force-proxy-request-1.0 and + proxy-nokeepalive notes.

+ +

+ <Location /buggyappserver/>
+ + ProxyPass http://buggyappserver:7001/foo/
+ SetEnv force-proxy-request-1.0 1
+ SetEnv proxy-nokeepalive 1
+
+ </Location> +

+
+
top
+

AllowCONNECT Directive

+ + + + + + + +
Description:Ports that are allowed to CONNECT through the +proxy
Syntax:AllowCONNECT port [port] ...
Default:AllowCONNECT 443 563
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

The AllowCONNECT directive specifies a list + of port numbers to which the proxy CONNECT method may + connect. Today's browsers use this method when a https + connection is requested and proxy tunneling over HTTP is in effect.

+ +

By default, only the default https port (443) and the + default snews port (563) are enabled. Use the + AllowCONNECT directive to override this default and + allow connections to the listed ports only.

+ +

Note that you'll need to have mod_proxy_connect present + in the server in order to get the support for the CONNECT at + all.

+ +
+
top
+

NoProxy Directive

+ + + + + + +
Description:Hosts, domains, or networks that will be connected to +directly
Syntax:NoProxy host [host] ...
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

This directive is only useful for Apache proxy servers within + intranets. The NoProxy directive specifies a + list of subnets, IP addresses, hosts and/or domains, separated by + spaces. A request to a host which matches one or more of these is + always served directly, without forwarding to the configured + ProxyRemote proxy server(s).

+ +

Example

+ ProxyRemote * http://firewall.mycompany.com:81
+ NoProxy .mycompany.com 192.168.112.0/21 +

+ +

The host arguments to the NoProxy + directive are one of the following type list:

+ +
+ +
Domain
+
+

A Domain is a partially qualified DNS domain name, preceded + by a period. It represents a list of hosts which logically belong to the + same DNS domain or zone (i.e., the suffixes of the hostnames are + all ending in Domain).

+ +

Examples

+ .com .apache.org. +

+ +

To distinguish Domains from Hostnames (both syntactically and semantically; a DNS domain can + have a DNS A record, too!), Domains are always written with a + leading period.

+ +

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 + equal. Since a domain comparison does not involve a DNS lookup, it is much + more efficient than subnet comparison.

+
+ + +
SubNet
+
+

A SubNet is a partially qualified internet address in + numeric (dotted quad) form, optionally followed by a slash and the netmask, + specified as the number of significant bits in the SubNet. It is + used to represent a subnet of hosts which can be reached over a common + network interface. In the absence of the explicit net mask it is assumed + that omitted (or zero valued) trailing digits specify the mask. (In this + case, the netmask can only be multiples of 8 bits wide.) Examples:

+ +
+
192.168 or 192.168.0.0
+
the subnet 192.168.0.0 with an implied netmask of 16 valid bits + (sometimes used in the netmask form 255.255.0.0)
+
192.168.112.0/21
+
the subnet 192.168.112.0/21 with a netmask of 21 + valid bits (also used in the form 255.255.248.0)
+
+ +

As a degenerate case, a SubNet with 32 valid bits is the + 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.

+ + +
IPAddr
+
+

A IPAddr represents a fully qualified internet address in + numeric (dotted quad) form. Usually, this address represents a host, but + there need not necessarily be a DNS domain name connected with the + address.

+

Example

+ 192.168.123.7 +

+ +

Note

+

An IPAddr does not need to be resolved by the DNS system, so + it can result in more effective apache performance.

+
+ + +
Hostname
+
+

A Hostname is a fully qualified DNS domain name which can + be resolved to one or more IPAddrs via the + DNS domain name service. It represents a logical host (in contrast to + Domains, see above) and must be resolvable + to at least one IPAddr (or often to a list + of hosts with different IPAddrs).

+ +

Examples

+ prep.ai.mit.edu
+ www.apache.org +

+ +

Note

+

In many situations, it is more effective to specify an IPAddr in place of a Hostname since a + DNS lookup can be avoided. Name resolution in Apache can take a remarkable + deal of time when the connection to the name server uses a slow PPP + 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 + considered equal.

+
+
+ +

See also

+ +
+
top
+

<Proxy> Directive

+ + + + + + +
Description:Container for directives applied to proxied resources
Syntax:<Proxy wildcard-url> ...</Proxy>
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

Directives placed in <Proxy> + sections apply only to matching proxied content. Shell-style wildcards are + allowed.

+ +

For example, the following will allow only hosts in + yournetwork.example.com to access content via your proxy + server:

+ +

+ <Proxy *>
+ + Order Deny,Allow
+ Deny from all
+ Allow from yournetwork.example.com
+
+ </Proxy> +

+ +

The following example will process all files in the foo + directory of example.com through the INCLUDES + filter when they are sent through the proxy server:

+ +

+ <Proxy http://example.com/foo/*>
+ + SetOutputFilter INCLUDES
+
+ </Proxy> +

+ +
+
top
+

ProxyBadHeader Directive

+ + + + + + + + +
Description:Determines how to handle bad header lines in a +response
Syntax:ProxyBadHeader IsError|Ignore|StartBody
Default:ProxyBadHeader IsError
Context:server config, virtual host
Status:Extension
Module:mod_proxy
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:

+ +
+
IsError
+
Abort the request and end up with a 502 (Bad Gateway) response. This is + the default behaviour.
+ +
Ignore
+
Treat bad header lines as if they weren't sent.
+ +
StartBody
+
When receiving the first bad header line, finish reading the headers and + treat the remainder as body. This helps to work around buggy backend servers + which forget to insert an empty line between the headers and the body.
+
+ +
+
top
+

ProxyBlock Directive

+ + + + + + +
Description:Words, hosts, or domains that are banned from being +proxied
Syntax:ProxyBlock *|word|host|domain +[word|host|domain] ...
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

The ProxyBlock directive specifies a list of + words, hosts and/or domains, separated by spaces. HTTP, HTTPS, and + FTP document requests to sites whose names contain matched words, + hosts or domains are blocked by the proxy server. The proxy + module will also attempt to determine IP addresses of list items which + may be hostnames during startup, and cache them for match test as + well. That may slow down the startup time of the server.

+ +

Example

+ ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu +

+ +

rocky.wotsamattau.edu would also be matched if referenced by + IP address.

+ +

Note that wotsamattau would also be sufficient to match + wotsamattau.edu.

+ +

Note also that

+ +

+ ProxyBlock * +

+ +

blocks connections to all sites.

+ +
+
top
+

ProxyDomain Directive

+ + + + + + +
Description:Default domain name for proxied requests
Syntax:ProxyDomain Domain
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

This directive is only useful for Apache proxy servers within + intranets. The ProxyDomain directive specifies + the default domain which the apache proxy server will belong to. If a + request to a host without a domain name is encountered, a redirection + response to the same host with the configured Domain appended + will be generated.

+ +

Example

+ ProxyRemote * http://firewall.mycompany.com:81
+ NoProxy .mycompany.com 192.168.112.0/21
+ ProxyDomain .mycompany.com +

+ +
+
top
+

ProxyErrorOverride Directive

+ + + + + + + + +
Description:Override error pages for proxied content
Syntax:ProxyErrorOverride On|Off
Default:ProxyErrorOverride Off
Context:server config, virtual host
Status:Extension
Module:mod_proxy
Compatibility:Available in version 2.0 and later
+

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).

+ +
+
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.0.62 and later
+

The ProxyFtpDirCharset directive defines the + character set to be set for FTP directory listings in HTML generated by + mod_proxy_ftp.

+ +
+
top
+

ProxyIOBufferSize Directive

+ + + + + + + +
Description:Determine size of internal data throughput buffer
Syntax:ProxyIOBufferSize bytes
Default:ProxyIOBufferSize 8192
Context:server config, virtual host
Status:Extension
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.

+ +

In almost every case there's no reason to change that value.

+ +
+
top
+

<ProxyMatch> Directive

+ + + + + + +
Description:Container for directives applied to regular-expression-matched +proxied resources
Syntax:<ProxyMatch regex> ...</ProxyMatch>
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

The <ProxyMatch> directive is + identical to the <Proxy> directive, except it matches URLs + using regular expressions.

+ +
+
top
+

ProxyMaxForwards Directive

+ + + + + + + + +
Description:Maximium number of proxies that a request can be forwarded +through
Syntax:ProxyMaxForwards number
Default:ProxyMaxForwards 10
Context:server config, virtual host
Status:Extension
Module:mod_proxy
Compatibility:Available in Apache 2.0 and later
+

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.

+ +

Example

+ ProxyMaxForwards 15 +

+ +
+
top
+

ProxyPass Directive

+ + + + + + +
Description:Maps remote servers into the local server URL-space
Syntax:ProxyPass [path] !|url
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.

+ +

Suppose the local server has address http://example.com/; + then

+ +

+ ProxyPass /mirror/foo/ http://backend.example.com/ +

+ +

will cause a local request for + http://example.com/mirror/foo/bar to be internally converted + into a proxy request to http://backend.example.com/bar.

+ +

The ! directive is useful in situations where you don't want + to reverse-proxy a subdirectory, e.g.

+ +

+ ProxyPass /mirror/foo/i !
+ ProxyPass /mirror/foo http://backend.example.com +

+ +

will proxy all requests to /mirror/foo to + 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.

+
+ +

When used inside a <Location> section, the first argument is omitted and the local + directory is obtained from the <Location>.

+ +
The ProxyRequests directive should + usually be set off when using + ProxyPass.
+ +

If you require a more flexible reverse-proxy configuration, see the + RewriteRule directive with the + [P] flag.

+ +
+
top
+

ProxyPassReverse Directive

+ + + + + + +
Description:Adjusts the URL in HTTP response headers sent from a reverse +proxied server
Syntax:ProxyPassReverse [path] url
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.

+ +

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 + 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.

+ +

For example, suppose the local server has address + http://example.com/; then

+ +

+ ProxyPass /mirror/foo/ http://backend.example.com/
+ ProxyPassReverse /mirror/foo/ http://backend.example.com/ +

+ +

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 + 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 + (RewriteRule ... [P]) from mod_rewrite + because its doesn't depend on a corresponding ProxyPass directive.

+ +

When used inside a <Location> section, the first argument is omitted and the local + directory is obtained from the <Location>.

+ +
+
top
+

ProxyPreserveHost Directive

+ + + + + + + + +
Description:Use incoming Host HTTP request header for proxy +request
Syntax:ProxyPreserveHost On|Off
Default:ProxyPreserveHost Off
Context:server config, virtual host
Status:Extension
Module:mod_proxy
Compatibility:Available in Apache 2.0.31 and later.
+

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.

+ +

This option should normally be turned Off. It is mostly + useful in special configurations like proxied mass name-based virtual + hosting, where the original Host header needs to be evaluated by the + backend server.

+ +
+
top
+

ProxyReceiveBufferSize Directive

+ + + + + + + +
Description:Network buffer size for proxied HTTP and FTP +connections
Syntax:ProxyReceiveBufferSize bytes
Default:ProxyReceiveBufferSize 0
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

The ProxyReceiveBufferSize directive specifies an + explicit (TCP/IP) network buffer size for proxied HTTP and FTP connections, + for increased throughput. It has to be greater than 512 or set + to 0 to indicate that the system's default buffer size should + be used.

+ +

Example

+ ProxyReceiveBufferSize 2048 +

+ +
+
top
+

ProxyRemote Directive

+ + + + + + +
Description:Remote proxy used to handle certain requests
Syntax:ProxyRemote match remote-server
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

This defines remote proxies to this proxy. match is either the + name of a URL-scheme that the remote server supports, or a partial URL + for which the remote server should be used, or * to indicate + the server should be contacted for all requests. remote-server is + a partial URL for the remote server. Syntax:

+ +

+ remote-server = + scheme://hostname[:port] +

+ +

scheme is effectively the protocol that should be used to + communicate with the remote server; only http is supported by + this module.

+ +

Example

+ ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
+ ProxyRemote * http://cleversite.com
+ ProxyRemote ftp http://ftpproxy.mydomain.com: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 + webserver can be embedded within a virtualhost URL space even if that + server is hidden by another forward proxy.

+ +
+
top
+

ProxyRemoteMatch Directive

+ + + + + + +
Description:Remote proxy used to handle requests matched by regular +expressions
Syntax:ProxyRemoteMatch regex remote-server
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

The ProxyRemoteMatch is identical to the + ProxyRemote directive, except the + first argument is a regular expression match against the requested URL.

+ +
+
top
+

ProxyRequests Directive

+ + + + + + + +
Description:Enables forward (standard) proxy requests
Syntax:ProxyRequests On|Off
Default:ProxyRequests Off
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

This allows or prevents Apache from functioning as a forward proxy + 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 + 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.

+ +

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.

+
+ +
+
top
+

ProxyTimeout Directive

+ + + + + + + + +
Description:Network timeout for proxied requests
Syntax:ProxyTimeout seconds
Default:ProxyTimeout 300
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 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.

+ +
+
top
+

ProxyVia Directive

+ + + + + + + +
Description:Information provided in the Via HTTP response +header for proxied requests
Syntax:ProxyVia On|Off|Full|Block
Default:ProxyVia Off
Context:server config, virtual host
Status:Extension
Module:mod_proxy
+

This directive controls the use of the Via: HTTP + header by the proxy. Its intended use is to control the flow of of + proxy requests along a chain of proxy servers. See RFC 2616 (HTTP/1.1), section + 14.45 for an explanation of Via: header lines.

+ +
    +
  • If set to Off, which is the default, no special processing + is performed. If a request or reply contains a Via: header, + it is passed through unchanged.
  • + +
  • If set to On, each request and reply will get a + Via: header line added for the current host.
  • + +
  • If set to Full, each generated Via: header + line will additionally have the Apache server version shown as a + Via: comment field.
  • + +
  • If set to Block, every proxy request will have all its + Via: header lines removed. No new Via: header will + be generated.
  • +
+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_connect.html b/rubbos/app/apache2/manual/mod/mod_proxy_connect.html new file mode 100644 index 00000000..747c3ca5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_connect.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_proxy_connect.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_connect.html.en b/rubbos/app/apache2/manual/mod/mod_proxy_connect.html.en new file mode 100644 index 00000000..810f1435 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_connect.html.en @@ -0,0 +1,61 @@ + + + +mod_proxy_connect - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_proxy_connect

+
+

Available Languages:  en 

+
+ + + +
Description:mod_proxy extension for +CONNECT request handling
Status:Extension
ModuleIdentifier:proxy_connect_module
SourceFile:proxy_connect.c
+

Summary

+ +

This module requires the service of mod_proxy. It provides support for the CONNECT + HTTP method. This method is mainly used to tunnel SSL requests + through proxy servers.

+ +

Thus, in order to get the ability of handling CONNECT + requests, mod_proxy and + mod_proxy_connect 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.

+
+
+

Directives

+

This module provides no directives.

+

See also

+
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html b/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html new file mode 100644 index 00000000..0cdfe603 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_proxy_ftp.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html.en b/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html.en new file mode 100644 index 00000000..d431002f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_ftp.html.en @@ -0,0 +1,59 @@ + + + +mod_proxy_ftp - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_proxy_ftp

+
+

Available Languages:  en 

+
+ + + +
Description:FTP support module for +mod_proxy
Status:Extension
ModuleIdentifier:proxy_ftp_module
SourceFile:proxy_ftp.c
+

Summary

+ +

This module requires the service of mod_proxy. It provides support for the proxying + FTP sites.

+ +

Thus, in order to get the ability of handling FTP proxy requests, + mod_proxy and mod_proxy_ftp + 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.

+
+
+

Directives

+

This module provides no directives.

+

See also

+
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_http.html b/rubbos/app/apache2/manual/mod/mod_proxy_http.html new file mode 100644 index 00000000..156c5d8b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_http.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_proxy_http.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_proxy_http.html.en b/rubbos/app/apache2/manual/mod/mod_proxy_http.html.en new file mode 100644 index 00000000..e6197fa3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_proxy_http.html.en @@ -0,0 +1,64 @@ + + + +mod_proxy_http - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_proxy_http

+
+

Available Languages:  en 

+
+ + + +
Description:HTTP support module for +mod_proxy
Status:Extension
ModuleIdentifier:proxy_http_module
SourceFile:proxy_http.c
+

Summary

+ +

This module requires the service of mod_proxy. It provides the features used for + proxying HTTP 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 + mod_cache module.

+ +

Thus, in order to get the ability of handling HTTP proxy requests, + mod_proxy and mod_proxy_http + 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.

+
+
+

Directives

+

This module provides no directives.

+

See also

+
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_rewrite.html b/rubbos/app/apache2/manual/mod/mod_rewrite.html new file mode 100644 index 00000000..1a7045b6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_rewrite.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mod_rewrite.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/mod_rewrite.html.en b/rubbos/app/apache2/manual/mod/mod_rewrite.html.en new file mode 100644 index 00000000..328bbf92 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_rewrite.html.en @@ -0,0 +1,1671 @@ + + + +mod_rewrite - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_rewrite

+
+

Available Languages:  en 

+
+ + + + +
Description:Provides a rule-based rewriting engine to rewrite requested +URLs on the fly
Status:Extension
ModuleIdentifier:rewrite_module
SourceFile: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 + provide a really flexible and powerful URL manipulation + mechanism. The URL manipulations can depend on various tests, + 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 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.

+ +

Further details, discussion, and examples, are provided in the + detailed mod_rewrite documentation.

+
+ +
top
+
+

API Phases

+ +

Apache processes a HTTP request in several 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 + (used after the HTTP request has been read, but before any + authorization starts) and the Fixup hook (triggered + after the authorization phases, and after the per-directory + config files (.htaccess) have been read, but + before the content handler is activated).

+ +

Once a request comes in, and Apache has determined the + appropriate server (or virtual server), the rewrite engine + starts the URL-to-filename translation, + processing the mod_rewrite directives from the + per-server configuration. 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.

+ +
top
+
+

Ruleset Processing

+ +

When mod_rewrite is triggered during these two API phases, it + reads the relevant rulesets from its configuration + structure (which was either created on startup, for + per-server context, or during the directory traversal + for per-directory context). The URL rewriting + engine is started with the appropriate ruleset (one or more + rules together with their conditions), and its operation + 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 + rewrite engine processes them in a particular (not always + obvious) order, as follows: The rewrite engine loops + through the rulesets (each ruleset being made up of RewriteRule directives, with or without + RewriteConds), rule by rule. + When a particular rule is matched, mod_rewrite + also checks the corresponding conditions (RewriteCond + directives). For historical reasons the conditions are given + first, making the control flow a little bit long-winded. See + Figure 1 for more details.

+

+ [Needs graphics capability to display]
+ Figure 1:The control flow of the rewrite engine through a + rewrite ruleset +

+

As above, first the URL is matched against the + Pattern of a rule. If it does not match, mod_rewrite immediately stops processing that rule, + and goes on to the next rule. If the Pattern matches, + mod_rewrite checks for rule conditions. + If none are present, the URL will be replaced with a new string, + constructed from the Substitution string, and mod_rewrite goes on to the next rule.

+

If RewriteConds exist, an + inner loop is started, processing them in the order that they are + listed. Conditions are not matched against the current URL directly. + A TestString is constructed by expanding variables, + back-references, map lookups, etc., against which the + CondPattern is matched. If the pattern fails to match one + of the conditions, the complete set of rule and associated conditions + fails. If the pattern matches a given condition, then matching continues + to the next condition, until no more conditions are + available. If all conditions match, processing is continued + with the substitution of the Substitution string for the URL.

+ +
top
+
+

Regex Back-Reference Availability

+ +

Using parentheses in Pattern or in one of the + CondPatterns causes back-references to be internally + created. + These can later be referenced using the strings $N and + %N (see below), for creating + the Substitution and TestString strings. + Figure 2 attempts to show how the back-references are + transferred through the process for later expansion.

+ +

+ [Needs graphics capability to display]
+ Figure 2: The back-reference flow through a rule. +

+
top
+
+

Quoting Special Characters

+ +

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 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 + to treat it as a backreference.

+
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, 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
+SCRIPT_FILENAME=/u/rse/.www/index.html
+SCRIPT_URL=/u/rse/
+SCRIPT_URI=http://en1.engelschall.com/u/rse/
+
+ +
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.

+ +
+
top
+

RewriteBase Directive

+ + + + + + + + +
Description:Sets the base URL for per-directory rewrites
Syntax:RewriteBase URL-path
Default:See usage for information.
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). In such a case, it will act locally, + stripping the local directory prefix before processing, and applying + rewrite rules only to the remainder. When processing is complete, the + prefix 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. However, for most websites, URLs are NOT + directly related to physical filename paths, so this + assumption will often be wrong! Therefore, you can + use the RewriteBase directive to specify the + correct URL-prefix.

+ +
If your webserver's URLs are not directly +related to physical file paths, you will need to use +RewriteBase in every .htaccess +file 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.
+#
+
+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 in fact + correct Apache internal processing. Because the + per-directory rewriting comes late in the + process, the rewritten request + has to be re-injected into the Apache kernel, as if it + were a new request. (See mod_rewrite technical + details.) + This is not the serious overhead it may seem to be - + this re-injection is completely internal to the + Apache server (and the same procedure is used by + many other operations within Apache).

+
+ + +
+
top
+

RewriteCond Directive

+ + + + + + + +
Description:Defines a condition under which rewriting will take place +
Syntax: RewriteCond + TestString CondPattern
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_rewrite
+

The RewriteCond directive defines a + 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 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 (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 (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}. + 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: + + + + + + + + + + + + + + + + + + + + + + + + +
    HTTP headers: connection & request: +
    + 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
    +
    +
    server internals: system stuff: specials:
    + 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
    +
    + +

    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 those below.

    +
    +
    +
    IS_SUBREQ
    + +
    Will contain the text "true" if the request + currently being processed is a sub-request, + "false" otherwise. Sub-requests may be generated + by modules that need to resolve additional files + or URIs in order to complete their tasks.
    + +
    API_VERSION
    + +
    This is the version of the Apache module API + (the internal interface between server and + module) in the current httpd build, as defined in + include/ap_mmn.h. The module API version + corresponds to the version of Apache in use (in + the release version of Apache 1.3.14, for + instance, it is 19990320:10), but is mainly of + interest to module authors.
    + +
    THE_REQUEST
    + +
    The full HTTP request line sent by the + browser to the server (e.g., "GET + /index.html HTTP/1.1"). This does not + include any additional headers sent by the + browser.
    + +
    REQUEST_URI
    + +
    The resource requested in the HTTP request + line. (In the example above, this would be + "/index.html".)
    + +
    REQUEST_FILENAME
    + +
    The full local filesystem path to the file or + script matching the request.
    + +
    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 or not + mod_ssl is loaded).
    + +
    +
    +
  • +
+ +

Other things you should be aware of:

+ +
    +
  1. 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 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).
  2. + +
  3. + %{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.
  4. + +
  5. + %{SSL:variable}, where variable is the + name of an SSL environment + 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.
  6. + +
  7. + %{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:''.
  8. + +
  9. + %{LA-U:variable} can be used for look-aheads which perform + an internal (URL-based) sub-request to determine the final + 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 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} in that context.

  10. + +
  11. + %{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.
  12. +
+ +

CondPattern is the condition pattern, + 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 + perl compatible regular expression with some + additions:

+ +
    +
  1. You can prefix the pattern string with a + '!' character (exclamation mark) to specify a + non-matching pattern.
  2. + +
  3. + There are some special variants of CondPatterns. + Instead of real regular expression strings you can also + use one of the following: + +
      + +
    • '<CondPattern' (lexicographically + precedes)
      + Treats the CondPattern as a plain string and + compares it lexicographically to TestString. True if + TestString lexicographically precedes + CondPattern.
    • + +
    • '>CondPattern' (lexicographically + follows)
      + Treats the CondPattern as a plain string and + compares it lexicographically to TestString. True if + TestString lexicographically follows + CondPattern.
    • + +
    • '=CondPattern' (lexicographically + equal)
      + 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 + whether or not it exists, and is a directory.
    • + +
    • '-f' (is regular + file)
      + Treats the TestString as a pathname and tests + whether or not it exists, and is a regular file.
    • + +
    • '-s' (is regular file, with + size)
      + 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 + whether or not it exists, and is a symbolic link.
    • + +
    • '-F' (is existing file, via + subrequest)
      + 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 do the check, so use it with care - + it can impact your server's performance!
    • + +
    • '-U' (is existing URL, via + subrequest)
      + 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 do the check, so use it with care - + it can impact your server's performance!
    • +
    + +

    Note

    + All of these tests can + also be prefixed by an exclamation mark ('!') to + negate their meaning. +
    +
  4. + +
  5. You can also set special flags for + CondPattern by appending + [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 - 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 + effect on filesystem and subrequest checks.
    • + +
    • + 'ornext|OR' + (or next condition)
      + 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...
      +
      + + Without this flag you would have to write the condition/rule + pair three times. +
    • +
    +
  6. +
+ +

Example:

+ +

To rewrite the Homepage of a site according to the + ``User-Agent:'' header of the request, you can + use the following:

+ +
+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]
+
+ +

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.

+ + +
+
top
+

RewriteEngine Directive

+ + + + + + + + +
Description:Enables or disables runtime rewriting engine
Syntax:RewriteEngine on|off
Default:RewriteEngine off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_rewrite
+ +

The RewriteEngine directive enables or + disables the runtime rewriting engine. If it is set to + off this module does no runtime processing at + all. It does not even update the SCRIPT_URx + environment variables.

+ +

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 + RewriteEngine on directive for each virtual host + in which you wish to use it.

+ +

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
+

RewriteLock Directive

+ + + + + + +
Description:Sets the name of the lock file used for RewriteMap +synchronization
Syntax:RewriteLock file-path
Context:server config
Status:Extension
Module:mod_rewrite
+

This directive sets the filename for a synchronization + lockfile which mod_rewrite needs to communicate with RewriteMap + programs. Set this lockfile to a local path (not on a + NFS-mounted device) when you want to use a rewriting + map-program. It is not required for other types of rewriting + maps.

+ +
+
top
+

RewriteLog Directive

+ + + + + + +
Description:Sets the name of the file used for logging rewrite engine +processing
Syntax:RewriteLog file-path
Context:server config, virtual host
Status:Extension
Module:mod_rewrite
+

The RewriteLog directive sets the name + of the file to which the server logs any rewriting actions it + performs. If the name does not begin with a slash + ('/') then it is assumed to be relative to the + Server Root. The directive should occur only once per + server config.

+ +
To disable the logging of + rewriting actions it is not recommended to set + Filename to /dev/null, because + although the rewriting engine does not then output to a + logfile it still creates the logfile output internally. + This will slow down the server with no advantage + to the administrator! To disable logging either + remove or comment out the RewriteLog + directive or use RewriteLogLevel 0! +
+ +

Security

+ +See the Apache Security Tips +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" +

+ + +
+
top
+

RewriteLogLevel Directive

+ + + + + + + +
Description:Sets the verbosity of the log file used by the rewrite +engine
Syntax:RewriteLogLevel Level
Default:RewriteLogLevel 0
Context:server config, virtual host
Status:Extension
Module:mod_rewrite
+

The RewriteLogLevel directive sets the + verbosity level of the rewriting logfile. The default level 0 + means no logging, while 9 or more means that practically all + actions are logged.

+ +

To disable the logging of rewriting actions simply set + Level to 0. This disables all rewrite action + logs.

+ +
Using a high value for + Level will slow down your Apache server + dramatically! Use the rewriting logfile at a + Level greater than 2 only for debugging! +
+ +

Example

+RewriteLogLevel 3 +

+ + +
+
top
+

RewriteMap Directive

+ + + + + + + +
Description:Defines a mapping function for key-lookup
Syntax:RewriteMap MapName MapType:MapSource +
Context:server config, virtual host
Status:Extension
Module:mod_rewrite
Compatibility:The choice of different dbm types is available in +Apache 2.0.41 and later
+

The RewriteMap directive defines a + Rewriting Map which can be used inside rule + substitution strings by the mapping-functions to + insert/substitute fields through a key lookup. The source of + this lookup can be of various types.

+ +

The MapName is + the name of the map and will be used to specify a + mapping-function for the substitution strings of a rewriting + rule via one of the following constructs:

+ +

+ ${ 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} +

+ +

The following combinations for MapType and + MapSource can be used:

+ +
    +
  • + Standard Plain Text
    + MapType: txt, MapSource: Unix filesystem + path to valid regular file + +

    This is the standard rewriting map feature where the + MapSource is a plain ASCII file containing + either blank lines, comment lines (starting with a '#' + character) or pairs like the following - one per + line.

    + +

    + MatchingKey + SubstValue +

    + +

    Example

    +##
    +##  map.txt -- rewriting map
    +##
    +
    +Ralf.S.Engelschall    rse   # Bastard Operator From Hell
    +Mr.Joe.Average        joe   # Mr. Average
    +
    + +

    +RewriteMap real-to-user txt:/path/to/file/map.txt +

    +
  • + +
  • + Randomized Plain Text
    + MapType: rnd, MapSource: Unix filesystem + path to valid regular file + +

    This is identical to the Standard Plain Text variant + above but with a special post-processing feature: After + looking up a value it is parsed according to contained + ``|'' characters which have the meaning of + ``or''. In other words they indicate a set of + 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 + to one of the servers in the 'static' pool, while everything + else is sent to one of the 'dynamic' pool.

    +

    Example:

    + +

    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] +

    +
  • + +
  • + Hash File
    MapType: + dbm[=type], MapSource: Unix filesystem + path to valid regular file + +

    Here the source is a binary format DBM file containing + the same contents as a Plain Text format file, but + in a special representation which is optimized for really + fast lookups. The type can be sdbm, gdbm, ndbm, or + db depending on compile-time + settings. If the type is ommitted, 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";
    +
    +while (<TXT>) {
    +  next if (/^\s*#/ or /^\s*$/);
    +  $DB{$1} = $2 if (/^\s*(\S+)\s+(\S+)/);
    +}
    +
    +untie %DB;
    +close(TXT);
    +
    + +

    +$ txt2dbm map.txt map.db +

    +
  • + +
  • + Internal Function
    + 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 exist:

    + +
      +
    • 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.
    • +
    +
  • + +
  • + External Rewriting Program
    + MapType: prg, MapSource: Unix filesystem + path to valid regular file + +

    Here the source is a program, not a map file. To + 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, 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 + looked-up value as a newline-terminated string on + stdout or the four-character string + ``NULL'' if it fails (i.e., there + is no corresponding value for the given key). A trivial + program which will implement a 1:1 map (i.e., + key == value) could be:

    + +

    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). + If this program hangs, it will cause Apache to hang + when trying to use the relevant rewrite rule.
    2. + +
    3. 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.
    4. + +
    5. 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.
    6. +
    +
  • +
+

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 it is of course possible to + use this map in per-directory context.

+ +

Note

For plain text and DBM format files the +looked-up keys are cached in-core until the mtime of the +mapfile changes or the server does a restart. This way you can have +map-functions in rules which are used for every +request. This is no problem, because the external lookup only happens +once! +
+ + +
+
top
+

RewriteOptions Directive

+ + + + + + + + + +
Description:Sets some special options for the rewrite engine
Syntax:RewriteOptions Options
Default:RewriteOptions MaxRedirects=10
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_rewrite
Compatibility:MaxRedirects is available in Apache 2.0.45 and +later
+ +

The RewriteOptions directive sets some + special options for the current per-server or per-directory + configuration. The Option strings can be one of the + following:

+ +
+
inherit
+
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.
+ +
MaxRedirects=number
+
In order to prevent endless loops of internal redirects + issued by per-directory RewriteRules, mod_rewrite aborts + the request after reaching a maximum number of such redirects and + responds with an 500 Internal Server Error. If you really need + more internal redirects than 10 per request, you may increase + the default to the desired value.
+
+ +
+
top
+

RewriteRule Directive

+ + + + + + + + +
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, 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 is applied to the current URL. + ``Current'' means the value of the URL when this rule is + applied. This may not be the originally requested URL, + which may already have matched a previous rule, and have + been altered.

+ +

Some hints on the syntax of regular expressions:

+ +
+Text:
+  .           Any single character
+  [chars]     Character class: Any character of the class ``chars''
+  [^chars]    Character class: Not a character of the class ``chars''
+  text1|text2 Alternative: text1 or text2
+
+Quantifiers:
+  ?           0 or 1 occurrences of the preceding text
+  *           0 or N occurrences of the preceding text (N > 0)
+  +           1 or N occurrences of the preceding text (N > 1)
+
+Grouping:
+  (text)      Grouping of text
+              (used either to set the borders of an alternative as above, or
+              to make backreferences, where the Nth group can
+              be referred to on the RHS of a RewriteRule as $N)
+
+Anchors:
+  ^           Start-of-line anchor
+  $           End-of-line anchor
+
+Escaping:
+  \char       escape the given 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.) the following book is dedicated to this topic:

+ +

+ Mastering Regular Expressions, 2nd Edition
+ Jeffrey E.F. Friedl
+ O'Reilly & Associates, Inc. 2002
+ ISBN 0-596-00289-0
+

+ +

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.

+ +

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! +
+ +

The substitution of a + rewrite rule is the string which is substituted for (or + replaces) the original URL which Pattern + matched. In addition to plain text, it can include

+ +
    +
  1. back-references ($N) to the RewriteRule + pattern
  2. + +
  3. back-references (%N) to the last matched + RewriteCond pattern
  4. + +
  5. server-variables as in rule condition test-strings + (%{VARNAME})
  6. + +
  7. mapping-function calls + (${mapname:key|default})
  8. +
+ +

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 above.

+ +

As already mentioned, all rewrite rules are + applied to the Substitution (in the order in which + they are defined + in the config file). The URL is completely + replaced by the Substitution and the + rewriting process continues until all rules have been applied, + or it is explicitly terminated by a + L flag - see below.

+ +

There is a special substitution string named + '-' which means: NO + substitution! This is useful in providing + rewriting rules which only match + URLs but do not substitute anything for them. It is commonly used + in conjunction with the C (chain) flag, in order + to apply more than one pattern before substitution occurs.

+ +

Additionally you can set special flags for Substitution by + appending [flags] + as the third argument to the RewriteRule + directive. Flags is a comma-separated list of any 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, + and so on). This has the following effect: if a rule + matches, then processing continues as usual - + the flag has no effect. If the rule does + not match, then all following chained + rules are skipped. For instance, it can be used to remove the + ``.www'' part, inside a per-directory rule set, + when you let an external redirect happen (where the + ``.www'' part should not occur!).
  • + +
  • + 'cookie|CO=NAME:VAL:domain[:lifetime[:path]]' + (set cookie)
    + This sets a cookie in 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 later be dereferenced in many situations, most commonly + from within XSSI (via <!--#echo + var="VAR"-->) or CGI ($ENV{'VAR'}). + You can also dereference the variable in a later RewriteCond pattern, using + %{ENV:VAR}. Use this to strip + information from URLs, while maintaining a record of that information.
  • + +
  • 'forbidden|F' (force URL + to be forbidden)
    + This forces the current URL to be forbidden - 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 - it + immediately sends back a HTTP response of 410 (GONE). Use + this flag to mark pages which no longer exist as gone.
  • + +
  • 'last|L' + (last rule)
    + Stop the rewriting process here and don't apply any more + rewrite rules. This corresponds to the Perl + last command or the break command + in C. 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). This time, the URL to match is no longer + the original URL, but rather the URL returned by the last rewriting rule. + This corresponds to the Perl next command or + the continue command in C. Use + this flag to restart the rewriting process - + to immediately go to the top of the loop.
    + Be careful not to create an infinite + loop!
  • + +
  • 'nocase|NC' + (no case)
    + This makes the Pattern case-insensitive, + ignoring difference between 'A-Z' and + 'a-z' when Pattern is matched against the current + URL.
  • + +
  • + 'noescape|NE' + (no URI escaping of + output)
    + This flag prevents 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 happening. 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' ( + not for internal + sub-requests)
    + This flag forces the rewrite engine to skip a + rewrite 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 can even cause errors, if + the complete set of rules are applied. Use this flag to + exclude some 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. +
  • + +
  • + 'proxy|P' (force + proxy)
    + This flag forces the substitution part to be internally + sent as a proxy request and immediately (rewrite + processing stops here) put through the proxy module. You must make + sure that the substitution string is a valid URI + (typically starting with + http://hostname) which can be + handled by the Apache proxy module. 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. + +

    Note: mod_proxy must be enabled in order + to use this flag.

    +
  • + +
  • + 'passthrough|PT' + (pass through to next + handler)
    + This flag forces the rewrite 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 + enable post-processing of the output of + RewriteRule directives, using + Alias, ScriptAlias, + Redirect, and other directives from + various URI-to-filename translators. For example, to rewrite + /abc to /def using + mod_rewrite, and then + /def to /ghi using + mod_alias: +

    + RewriteRule ^/abc(.*) /def$1 [PT]
    + Alias /def /ghi +

    + If you omit the PT flag, + mod_rewrite will rewrite + uri=/abc/... to + filename=/def/... as a full API-compliant + URI-to-filename translator should do. Then + mod_alias will try to do a + URI-to-filename transition, which will fail. + +

    Note: You must use this flag if you want to + mix directives from different modules which allow + 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 rewrite engine to append a query + string part of the substitution string to the existing string, + 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) will be returned. If you want to use other response + codes in the range 300-400, simply specify the appropriate number + or use one of the following symbolic names: + temp (default), permanent, + seeother. Use this for rules to + canonicalize the URL and return it to the client - to + translate ``/~'' into + ``/u/'', or to always append a slash to + /u/user, etc.
    + Note: When you use this flag, make + sure that the substitution field is a valid URL! Otherwise, + you will be redirecting to an invalid location. Remember + that this flag on its own will only prepend + http://thishost[:thisport]/ to the URL, and rewriting + will continue. Usually, you will want to stop rewriting at this point, + and redirect immediately. To stop rewriting, you should add + the 'L' flag. +
  • + +
  • 'skip|S=num' + (skip next rule(s))
    + This flag forces the rewriting engine to skip the next + num rules in sequence, if 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. This can be used to + set up 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] +

    +
  • + +
+ +

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.

+
+ +

Note: Enabling rewrites in per-directory context

+ 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. +
+ +

Note: Pattern matching in per-directory context

+ Never forget that Pattern is +applied to a complete URL in per-server configuration +files. However, 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 - +without this, you would always 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: Substitution of Absolute URLs

+

When you prefix a substitution field with + http://thishost[:thisport], + mod_rewrite will automatically strip that + out. This auto-reduction on URLs with an implicit external redirect + is most useful in combination with + a mapping-function which generates the + hostname part.

+ +

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.

+
+ +

Note: Query String

+

The Pattern will not be matched 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. 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 a new query string with an old one, use the + [QSA] flag.

+
+ +

Here are all possible substitution combinations and their + meanings:

+ +

Inside per-server configuration + (httpd.conf)
+ for request ``GET + /somepath/pathinfo'':

+

+ +
+Given Rule                                      Resulting Substitution
+----------------------------------------------  ----------------------------------
+^/somepath(.*) otherpath$1                      invalid, not supported
+
+^/somepath(.*) otherpath$1  [R]                 invalid, not supported
+
+^/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]                 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]  doesn't make sense, not supported
+----------------------------------------------  ----------------------------------
+^/somepath(.*) http://otherhost/otherpath$1     http://otherhost/otherpath/pathinfo
+                                                via external redirection
+
+^/somepath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo
+                                                via external redirection
+                                                (the [R] flag is redundant)
+
+^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
+                                                via internal proxy
+
+ +

Inside per-directory configuration for + /somepath
+ (/physical/path/to/somepath/.htacccess, with + RewriteBase /somepath)
+ for request ``GET + /somepath/localpath/pathinfo'':

+

+ +
+Given Rule                                      Resulting Substitution
+----------------------------------------------  ----------------------------------
+^localpath(.*) otherpath$1                      /somepath/otherpath/pathinfo
+
+^localpath(.*) otherpath$1  [R]                 http://thishost/somepath/otherpath/pathinfo
+                                                via external redirection
+
+^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]                 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]  doesn't make sense, not supported
+----------------------------------------------  ----------------------------------
+^localpath(.*) http://otherhost/otherpath$1     http://otherhost/otherpath/pathinfo
+                                                via external redirection
+
+^localpath(.*) http://otherhost/otherpath$1 [R] http://otherhost/otherpath/pathinfo
+                                                via external redirection
+                                                (the [R] flag is redundant)
+
+^localpath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
+                                                via internal proxy
+
+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_setenvif.html b/rubbos/app/apache2/manual/mod/mod_setenvif.html new file mode 100644 index 00000000..4e52a025 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_setenvif.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_setenvif.html.en b/rubbos/app/apache2/manual/mod/mod_setenvif.html.en new file mode 100644 index 00000000..94502118 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_setenvif.html.en @@ -0,0 +1,291 @@ + + + +mod_setenvif - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_setenvif

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Allows the setting of environment variables based +on characteristics of the request
Status:Base
ModuleIdentifier:setenvif_module
SourceFile:mod_setenvif.c
+

Summary

+ + +

The mod_setenvif module allows you to set + 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.

+ +

The directives are considered in the order they appear in + the configuration files. So more complex sequences can be used, + such as this example, which sets netscape if the + browser is mozilla but not MSIE.

+ +

+ BrowserMatch ^Mozilla netscape
+ BrowserMatch MSIE !netscape
+

+
+ + +
top
+

BrowserMatch Directive

+ + + + + + + +
Description:Sets environment variables conditional on HTTP User-Agent +
Syntax:BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_setenvif
+

The BrowserMatch is a special cases of the + SetEnvIf directive that + sets environment variables conditional on the + User-Agent HTTP request header. The following two + lines have the same effect:

+

+ BrowserMatchNoCase Robot is_a_robot
+ SetEnvIfNoCase User-Agent Robot is_a_robot
+

+ +

Some additional examples:

+

+ BrowserMatch ^Mozilla forms jpeg=yes browser=netscape
+ BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript
+ BrowserMatch MSIE !javascript
+

+ +
+
top
+

BrowserMatchNoCase Directive

+ + + + + + + + +
Description:Sets environment variables conditional on User-Agent without +respect to case
Syntax:BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
Context:server config, virtual host, directory, .htaccess
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 + semantically identical to the BrowserMatch directive. + However, it provides for case-insensitive matching. For + example:

+

+ BrowserMatchNoCase mac platform=macintosh
+ BrowserMatchNoCase win platform=windows
+

+ +

The BrowserMatch and + BrowserMatchNoCase directives are special cases of + the SetEnvIf and SetEnvIfNoCase + directives. The following two lines have the same effect:

+

+ BrowserMatchNoCase Robot is_a_robot
+ SetEnvIfNoCase User-Agent Robot is_a_robot
+

+ +
+
top
+

SetEnvIf Directive

+ + + + + + + +
Description:Sets environment variables based on attributes of the request +
Syntax:SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_setenvif
+

The SetEnvIf directive defines + environment variables based on attributes of the request. The + attribute specified in the first argument can be one of three + things:

+ +
    +
  1. An HTTP request header field (see RFC2616 + for more information about these); for example: Host, + User-Agent, Referer, and + Accept-Language. A regular expression may be + used to specify a set of request headers.
  2. + +
  3. One of the following aspects of the request: +
      +
    • Remote_Host - the hostname (if available) of + the client making the request
    • + +
    • Remote_Addr - the IP address of the client + making the request
    • + +
    • Server_Addr - the IP address of the server + on which the request was received (only with versions later + than 2.0.43)
    • + +
    • Request_Method - the name of the method + being used (GET, POST, et + cetera)
    • + +
    • Request_Protocol - the name and version of + the protocol with which the request was made (e.g., + "HTTP/0.9", "HTTP/1.1", etc.)
    • + +
    • 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. See + the RewriteCond + directive of mod_rewrite for extra information on + how to match your query string.
    • +
    +
  4. + +
  5. The name of an environment variable in the list of those +associated with the request. This allows +SetEnvIf directives to test against the result +of prior matches. Only those environment variables defined by earlier +SetEnvIf[NoCase] directives are available for testing in +this manner. 'Earlier' means that they were defined at a broader scope +(such as server-wide) or previously in the current directive's 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.
  6. +
+ +

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 rest of the arguments give the names of variables to set, and +optionally values to which they should be set. These take the form +of

+ +
    +
  1. varname, or
  2. + +
  3. !varname, or
  4. + +
  5. varname=value
  6. +
+ +

In the first form, the value will be set to "1". The second + will remove the given variable if already defined, and the + third will set the variable to the literal value given by + value. Since version 2.0.51 Apache will + recognize occurrences of $1..$9 within + value and replace them by parenthesized subexpressions + of regex.

+ +

Example:

+ + 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
+

+ +

The first three will set the environment variable + 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 last example will set environment variable + HAVE_TS if the request contains any headers that + begin with "TS" whose values begins with any character in the + set [a-z].

+ +

See also

+ +
+
top
+

SetEnvIfNoCase Directive

+ + + + + + + + +
Description:Sets environment variables based on attributes of the request +without respect to case
Syntax:SetEnvIfNoCase attribute regex + [!]env-variable[=value] + [[!]env-variable[=value]] ...
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Base
Module:mod_setenvif
Compatibility:Apache 1.3 and above
+ +

The SetEnvIfNoCase is semantically identical to + the SetEnvIf directive, + and differs only in that the regular expression matching is + performed in a case-insensitive manner. For example:

+

+ SetEnvIfNoCase Host Apache\.Org site=apache +

+ +

This will cause the site environment variable + to be set to "apache" if the HTTP request header + field Host: was included and contained + Apache.Org, apache.org, or any other + combination.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_setenvif.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_setenvif.html.ja.utf8 new file mode 100644 index 00000000..148f3e2a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_setenvif.html.ja.utf8 @@ -0,0 +1,284 @@ + + + +mod_setenvif - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_setenvif

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:リクエストの特徴に基づいた環境変数の設定を可能にする
ステータス: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 以降では、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
互換性:Apache 1.3 以降
+ +

SetEnvIfNoCase は意味的には + SetEnvIf ディレクティブと + 同じです。違いは、正規表現のマッチングが大文字小文字を区別しないで + 行なわれることです。例えば:

+ +

+ SetEnvIfNoCase Host Apache\.Org site=apache +

+ +

これは HTTP リクエストヘッダにフィールド Host: が + あり、その値が Apache.Orgapache.org、 + その他の大文字小文字の組み合わせであったときに site + 環境変数を "apache" に設定します。

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_setenvif.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_setenvif.html.ko.euc-kr new file mode 100644 index 00000000..c01234f0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_setenvif.html.ko.euc-kr @@ -0,0 +1,261 @@ + + + +mod_setenvif - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_setenvif

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
:û ݿ ȯ溯 Ѵ
:Base
:setenvif_module
ҽ:mod_setenvif.c
+

+ + +

mod_setenvif û + ǥĿ شϴ η ȯ溯 Ѵ. + ٸ κ ൿ Ҷ ȯ溯 ִ.

+ +

Ͽ þ óѴ. ׷ + MSIE ƴ϶ mozilla netscape + ϴ Ʒ þ Բ ִ.

+ +

+ BrowserMatch ^Mozilla netscape
+ BrowserMatch MSIE !netscape
+

+
+ + +
top
+

BrowserMatch þ

+ + + + + + + +
:HTTP User-Agent ȯ溯 Ѵ
:BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_setenvif
+

BrowserMatch SetEnvIf þ Ư + , HTTP û User-Agent ȯ溯 + Ѵ. :

+

+ 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 þ

+ + + + + + + + +
:ҹڸ ʰ User-Agent ȯ溯 +Ѵ
:BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_setenvif
:ġ 1.2 ̻ (ġ 1.2 þ + mod_browser ⿡ ־)
+ +

BrowserMatchNoCase þ BrowserMatch þ + ǹ̻ . ׷ þ ҹڸ ʴ´. + :

+

+ BrowserMatchNoCase mac platform=macintosh
+ BrowserMatchNoCase win platform=windows
+

+ +

BrowserMatch + BrowserMatchNoCase þ + SetEnvIf + SetEnvIfNoCase + þ Ư . :

+

+ BrowserMatchNoCase Robot is_a_robot
+ SetEnvIfNoCase User-Agent Robot is_a_robot
+

+ +
+
top
+

SetEnvIf þ

+ + + + + + + +
:û ȯ溯 Ѵ
:SetEnvIf attribute + regex [!]env-variable[=value] + [[!]env-variable[=value]] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_setenvif
+

SetEnvIf þ û + ȯ溯 Ѵ. ù° ƱԸƮ attribute + ϳ:

+ +
    +
  1. HTTP û ( ڼ RFC2616 + ); : 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 - HTTP û û ڿ + -- Ϲ URL ǹڿ Ŵ(scheme) + ȣƮ κ
    • +
    +
  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 + 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]] ...
:ּ, ȣƮ, directory, .htaccess
Override ɼ:FileInfo
:Base
:mod_setenvif
:ġ 1.3
+ +

SetEnvIfNoCase ǹ̻ SetEnvIf þ , + ҹڸ ʰ ǥ ã´. :

+

+ SetEnvIfNoCase Host Apache\.Org site=apache +

+ +

HTTP û Host: + Apache.Org, apache.org ϸ + site ȯ溯 "apache" Ѵ.

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_setenvif.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_setenvif.html.tr.utf8 new file mode 100644 index 00000000..1ff9a94c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_setenvif.html.tr.utf8 @@ -0,0 +1,278 @@ + + + +mod_setenvif - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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ü 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 sunucunun çeşitli + kısımlarında yapılacak eylemlere karar verirken kullanılır.

+ +

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
Uyumluluk:Apache 1.2 ve sonrasında bulunur (Apache 1.2 sürümünde bu +yönerge artık atıl olan mod_browser modülüyle sağlanırdı).
+ +

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) Perl uyumlu bir düzenli ifadedir. + Bu, POSIX.2 egrep tarzı bir düzenli ifadelerle benzerlik gösterir. + 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
Uyumluluk:Apache 1.3 ve sonrasında mevcuttur.
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_so.html b/rubbos/app/apache2/manual/mod/mod_so.html new file mode 100644 index 00000000..451b67ee --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_so.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_so.html.en b/rubbos/app/apache2/manual/mod/mod_so.html.en new file mode 100644 index 00000000..d69163f0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_so.html.en @@ -0,0 +1,192 @@ + + + +mod_so - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_so

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + + +
Description:Loading of executable code and +modules into the server at start-up or restart time
Status:Extension
ModuleIdentifier:so_module
SourceFile:mod_so.c
Compatibility:This is a Base module (always included) on +Windows
+

Summary

+ + +

On selected operating systems this module can be used to + load modules into Apache at runtime via the Dynamic Shared Object (DSO) mechanism, + rather than requiring a recompilation.

+ +

On Unix, the loaded code typically comes from shared object + files (usually with .so extension), on Windows + this may either the .so or .dll + extension.

+ +

Warning

+

Apache 1.3 modules cannot be directly used + with Apache 2.0 - the module must be modified to dynamically + load or compile into Apache 2.0.

+
+
+ +
top
+
+

Creating Loadable Modules for Windows

+ +

Note

+

The module name format changed for Windows + with Apache 1.3.15 and 2.0 - the modules are now named as + mod_foo.so

+ +

While mod_so still loads modules with + ApacheModuleFoo.dll names, the new naming convention is + preferred; if you are converting your loadable module for 2.0, + please fix the name to this 2.0 convention.

+ +

The Apache module API is unchanged between the Unix and + Windows versions. Many modules will run on Windows with no or + little change from Unix, although others rely on aspects of the + Unix architecture which are not present in Windows, and will + not work.

+ +

When a module does work, it can be added to the server in + one of two ways. As with Unix, it can be compiled into the + server. Because Apache for Windows does not have the + Configure program of Apache for Unix, the module's + source file must be added to the ApacheCore project file, and + its symbols must be added to the + os\win32\modules.c file.

+ +

The second way is to compile the module as a DLL, a shared + library that can be loaded into the server at runtime, using + the LoadModule + directive. These module DLLs can be distributed and run on any + Apache for Windows installation, without recompilation of the + server.

+ +

To create a module DLL, a small change is necessary to the + module's source file: The module record must be exported from + the DLL (which will be created later; see below). To do this, + add the AP_MODULE_DECLARE_DATA (defined in the + Apache header files) to your module's module record definition. + For example, if your module has:

+ +

+ module foo_module; +

+ +

Replace the above with:

+

+ module AP_MODULE_DECLARE_DATA foo_module; +

+ +

Note that this will only be activated on Windows, so the + module can continue to be used, unchanged, with Unix if needed. + Also, if you are familiar with .DEF files, you can + export the module record with that method instead.

+ +

Now, create a DLL containing your module. You will need to + link this against the libhttpd.lib export library that is + created when the libhttpd.dll shared library is compiled. You + may also have to change the compiler settings to ensure that + the Apache header files are correctly located. You can find + this library in your server root's modules directory. It is + best to grab an existing module .dsp file from the tree to + assure the build environment is configured correctly, or + alternately compare the compiler and link options to your + .dsp.

+ +

This should create a DLL version of your module. Now simply + place it in the modules directory of your server + root, and use the LoadModule + directive to load it.

+ +
+
top
+

LoadFile Directive

+ + + + + + +
Description:Link in the named object file or library
Syntax:LoadFile filename [filename] ...
Context:server config
Status:Extension
Module:mod_so
+ +

The LoadFile directive links in the named object files or + libraries when the server is started or restarted; this is used + to load additional code which may be required for some module + to work. Filename is either an absolute path or + relative to ServerRoot.

+ +

For example:

+ +

LoadFile libexec/libxmlparse.so

+ + +
+
top
+

LoadModule Directive

+ + + + + + +
Description:Links in the object file or library, and adds to the list +of active modules
Syntax:LoadModule module filename
Context:server config
Status:Extension
Module:mod_so
+

The LoadModule directive links in the object file or library + filename and adds the module structure named + module to the list of active modules. Module + is the name of the external variable of type + module in the file, and is listed as the Module Identifier + in the module documentation. Example:

+ +

+ LoadModule status_module modules/mod_status.so +

+ +

loads the named module from the modules subdirectory of the + ServerRoot.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_so.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_so.html.ja.utf8 new file mode 100644 index 00000000..1d81b705 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_so.html.ja.utf8 @@ -0,0 +1,192 @@ + + + +mod_so - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_so

+
+

Available Languages:  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 サブディレクトリから指定された名前の + モジュールをロードします。

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_so.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_so.html.ko.euc-kr new file mode 100644 index 00000000..7506b7e7 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_so.html.ko.euc-kr @@ -0,0 +1,176 @@ + + + +mod_so - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_so

+
+

:  en  | + ja  | + ko  | + tr 

+
+ + + + +
:Ҷ Ȥ Ҷ డ ڵ + оδ
:Extension
:so_module
ҽ:mod_so.c
: (׻ ϴ) Base ̴.
+

+ + +

ü ġ ü + (DSO) Ͽ ٽ ʰ ߿ + о ִ.

+ +

о ڵ, н (.so Ȯڸ + ) Ϲ ṵ̈,  .so + Ȥ .dll Ȯڸ .

+ +

+

ġ 1.3 ġ 2.0 . + ġ 2.0 о̰ų ġ Ϸ + ؾ Ѵ.

+
+
+

þ

+ +

+
+
top
+
+

 о

+ +

+

ġ 1.3.15 2.0 Ǿ. + mod_foo.so̴.

+ +

mod_so ApacheModuleFoo.dll о + , ο ̸ Ģ ȣѴ. 2.0 ° + Ѵٸ ̸ 2.0 Ģ ˸° ġ ٶ.

+ +

ġ API н ̰ų ̰ų + . API  н ϱ⶧ + , н Ǵ + Ȥ Ͽ  ִ.

+ +

ΰ ߰ ִ. н + ִ. ġ + н ޸ Configure α׷ ⶧ + ҽ ApacheCore Ʈ Ͽ ߰ϰ, ɺ + os\win32\modules.c Ͽ ߰ؾ Ѵ.

+ +

ι° + LoadModule þ + Ͽ Ҷ о ִ ̺귯 DLL + ̴. DLL ϸ + ʰ  ġ ִ.

+ +

DLL ؼ ҽ ؾ + Ѵ. DLL module record exportؾ Ѵ. (Ʒ ) + ̸ module record ǿ (ġ Ͽ + ǵ) AP_MODULE_DECLARE_DATA ߰Ѵ. + , ִٸ:

+ +

+ module foo_module; +

+ +

Ѵ:

+

+ module AP_MODULE_DECLARE_DATA foo_module; +

+ +

κ  ϱ⶧ Ͽ н + ҽ ״ ִ. , .DEF Ͽ + ͼϴٸ Ͽ module record export + ִ.

+ +

DLL . ̸ ̺귯 + libhttpd.dll Ҷ libhttpd.lib export ̺귯 + ũѴ. ġ ùٷ ã Ϸ + ؾ 𸥴. modules 丮 + ̺귯 ã ִ. ȯ ùٷ ϱ + .dsp ų .dsp + Ϸ/Ŀ ɼ ϴ .

+ +

DLL . ̰ + modules 丮 ΰ, + LoadModule þ Ͽ оδ.

+ +
+
top
+

LoadFile þ

+ + + + + + +
: ̳ ̺귯 оδ
:LoadFile filename [filename] ...
:ּ
:Extension
:mod_so
+ +

LoadFile þ ϰų Ҷ + ̳ ̺귯 оδ(link in). þ +  ϱ ʿ ڵ带 ߰ о϶ + Ѵ. 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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_so.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_so.html.tr.utf8 new file mode 100644 index 00000000..14688626 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_so.html.tr.utf8 @@ -0,0 +1,196 @@ + + + +mod_so - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_speling.html b/rubbos/app/apache2/manual/mod/mod_speling.html new file mode 100644 index 00000000..7cc8d4ee --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_speling.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_speling.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_speling.html.en b/rubbos/app/apache2/manual/mod/mod_speling.html.en new file mode 100644 index 00000000..fccc6111 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_speling.html.en @@ -0,0 +1,121 @@ + + + +mod_speling - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_speling

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Attempts to correct mistaken URLs that +users might have entered by ignoring capitalization and by +allowing up to one misspelling
Status:Extension
ModuleIdentifier:speling_module
SourceFile:mod_speling.c
+

Summary

+ + +

Requests to documents sometimes cannot be served by the core + apache server because the request was misspelled or + miscapitalized. This module addresses this problem by trying to + find a matching document, even after all other modules gave up. + It does its work by comparing each document name in the + requested directory against the requested document name + without regard to case, and allowing + up to one misspelling (character insertion / + omission / transposition or wrong character). A list is built + with all document names which were matched using this + strategy.

+ +

If, after scanning the directory,

+ +
    +
  • no matching document was found, Apache will proceed as + usual and return a "document not found" error.
  • + +
  • only one document is found that "almost" matches the + request, then it is returned in the form of a redirection + response.
  • + +
  • more than one document with a close match was found, then + the list of the matches is returned to the client, and the + client can select the correct candidate.
  • +
+ +
+

Directives

+ +
+ +
top
+

CheckSpelling Directive

+ + + + + + + + + +
Description:Enables the spelling +module
Syntax:CheckSpelling on|off
Default:CheckSpelling Off
Context:server config, virtual host, directory, .htaccess
Override:Options
Status:Extension
Module:mod_speling
Compatibility:CheckSpelling was available as a separately available +module for Apache 1.1, but was limited to miscapitalizations. As +of Apache 1.3, it is part of the Apache distribution. Prior to Apache +1.3.2, the CheckSpelling directive was only available in the +"server" and "virtual host" contexts.
+ +

This directive enables or disables the spelling module. When + enabled, keep in mind that

+ +
    +
  • the directory scan which is necessary for the spelling + correction will have an impact on the server's performance + when many spelling corrections have to be performed at the + same time.
  • + +
  • the document trees should not contain sensitive files + which could be matched inadvertently by a spelling + "correction".
  • + +
  • the module is unable to correct misspelled user names (as + in http://my.host/~apahce/), just file names or + directory names.
  • + +
  • spelling corrections apply strictly to existing files, so + a request for the <Location /status> may + get incorrectly treated as the negotiated file + "/stats.html".
  • +
+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_speling.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_speling.html.ja.utf8 new file mode 100644 index 00000000..e9794100 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_speling.html.ja.utf8 @@ -0,0 +1,119 @@ + + + +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" + として間違って扱われるかもしれません。
  • +
+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_speling.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_speling.html.ko.euc-kr new file mode 100644 index 00000000..9fa964ab --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_speling.html.ko.euc-kr @@ -0,0 +1,110 @@ + + + +mod_speling - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_speling

+
+

:  en  | + ja  | + ko 

+
+ + + +
:ڰ ҹڸ ߸ ϰų Ʋ + ѹ Ͽ ߸ URL ġ õѴ
:Extension
:speling_module
ҽ:mod_speling.c
+

+ + +

Ʋų ҹڸ ߸ Ͽ ġ + û 찡 ִ. ٸ + û شϴ ã´. + û 丮 ȿ ִ û ̸ + ҹ ( ÷ / / ü + Ȥ ߸ ) ѹ Ʋ + ָ Ѵ. ̷ .

+ +

丮 캻 Ŀ,

+ +
    +
  • ãϸ, ġ Ϲ "document not + found ( ã )" ȯѴ.
  • + +
  • û "" ġϴ ϳ ã , + ̷ Ѵ.
  • + +
  • ã , Ŭ̾Ʈ ùٸ + ֵ .
  • +
+ +
+

þ

+ +
+ +
top
+

CheckSpelling þ

+ + + + + + + + + +
: Ѵ
:CheckSpelling on|off
⺻:CheckSpelling Off
:ּ, ȣƮ, directory, .htaccess
Override ɼ:Options
:Extension
:mod_speling
:ġ 1.1 CheckSpelling Ͽ, +ҹڰ ٸ 츸 ó ־. ġ 1.3 ġ + Ϻΰ Ǿ. ġ 1.3.2 +CheckSpelling þ "ּ" "ȣƮ" +ҿ ־.
+ +

þ 뿩θ Ѵ. Ѵٸ + ϶

+ +
    +
  • 丮 캸 ۾ ÿ + ɿ ش.
  • + +
  • ߿ "" 쿬 ִ + й Ѵ.
  • + +
  • ϸ 丮 , + (http://my.host/~apahce/ ) + Ʋ ڸ Ѵ.
  • + +
  • ϴ Ͽ ȴ. ׷ + <Location /status> û + ģ "/stats.html" Ϸ + ִ.
  • +
+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_ssl.html b/rubbos/app/apache2/manual/mod/mod_ssl.html new file mode 100644 index 00000000..003e7555 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ssl.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_ssl.html.en b/rubbos/app/apache2/manual/mod/mod_ssl.html.en new file mode 100644 index 00000000..63c31e38 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_ssl.html.en @@ -0,0 +1,1576 @@ + + + +mod_ssl - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_ssl

+
+

Available Languages:  en 

+
+ + + +
Description:Strong cryptography using the Secure Sockets +Layer (SSL) and Transport Layer Security (TLS) protocols
Status:Extension
ModuleIdentifier:ssl_module
SourceFile:mod_ssl.c
+

Summary

+ +

This module provides SSL v2/v3 and TLS v1 support for the Apache +HTTP Server. It was contributed by Ralf S. Engeschall based on his +mod_ssl project and originally derived from work by Ben Laurie.

+ +

This module relies on OpenSSL +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 +be made available under different names, too. Look in the Compatibility chapter for details on the +compatibility variables.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Variable Name:Value Type:Description:
HTTPS flag HTTPS is being used.
SSL_PROTOCOL string The SSL protocol version (SSLv2, SSLv3, TLSv1)
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
SSL_CIPHER_USEKEYSIZE number Number of cipher bits (actually used)
SSL_CIPHER_ALGKEYSIZE number Number of cipher bits (possible)
SSL_VERSION_INTERFACE string The mod_ssl program version
SSL_VERSION_LIBRARY string The OpenSSL program version
SSL_CLIENT_M_VERSION string The version of the client certificate
SSL_CLIENT_M_SERIAL string The serial of the client certificate
SSL_CLIENT_S_DN string Subject DN in client's certificate
SSL_CLIENT_S_DN_x509 string Component of client's Subject DN
SSL_CLIENT_I_DN string Issuer DN of client's certificate
SSL_CLIENT_I_DN_x509 string Component of client's Issuer DN
SSL_CLIENT_V_START string Validity of client's certificate (start time)
SSL_CLIENT_V_END string Validity of client's certificate (end time)
SSL_CLIENT_A_SIG string Algorithm used for the signature of client's certificate
SSL_CLIENT_A_KEY string Algorithm used for the public key of client's certificate
SSL_CLIENT_CERT string PEM-encoded client certificate
SSL_CLIENT_CERT_CHAINn string PEM-encoded certificates in client certificate chain
SSL_CLIENT_VERIFY string NONE, SUCCESS, GENEROUS or FAILED:reason
SSL_SERVER_M_VERSION string The version of the server certificate
SSL_SERVER_M_SERIAL string The serial of the server certificate
SSL_SERVER_S_DN string Subject DN in server's certificate
SSL_SERVER_S_DN_x509 string Component of server's Subject DN
SSL_SERVER_I_DN string Issuer DN of server's certificate
SSL_SERVER_I_DN_x509 string Component of server's Issuer DN
SSL_SERVER_V_START string Validity of server's certificate (start time)
SSL_SERVER_V_END string Validity of server's certificate (end time)
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
+

[ where x509 is a component of a X.509 DN: + C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email ]

+
top
+
+

Custom Log Formats

+ +

When mod_ssl is built into Apache or at least +loaded (under DSO situation) additional functions exist for the Custom Log Format of +mod_log_config. First there is an +additional ``%{varname}x'' +eXtension format function which can be used to expand any variables +provided by any module, especially those provided by mod_ssl which can +you find in the above table.

+

+For backward compatibility there is additionally a special +``%{name}c'' cryptography format function +provided. Information about this function is provided in the Compatibility chapter.

+

+Example:

+

+CustomLog logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" +

+
+
top
+

SSLCACertificateFile Directive

+ + + + + + +
Description:File of concatenated PEM-encoded CA Certificates +for Client Auth
Syntax:SSLCACertificateFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the all-in-one file where you can assemble the +Certificates of Certification Authorities (CA) whose clients you deal +with. These are used for Client Authentication. Such a file is simply the +concatenation of the various PEM-encoded Certificate files, in order of +preference. This can be used alternatively and/or additionally to +SSLCACertificatePath.

+

Example

+SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-client.crt +

+ +
+
top
+

SSLCACertificatePath Directive

+ + + + + + +
Description:Directory of PEM-encoded CA Certificates for +Client Auth
Syntax:SSLCACertificatePath directory-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the directory where you keep the Certificates of +Certification Authorities (CAs) whose clients you deal with. These are used to +verify the client certificate on Client Authentication.

+

+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.

+

Example

+SSLCACertificatePath /usr/local/apache2/conf/ssl.crt/ +

+ +
+
top
+

SSLCARevocationFile Directive

+ + + + + + +
Description:File of concatenated PEM-encoded CA CRLs for +Client Auth
Syntax:SSLCARevocationFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the all-in-one file where you can +assemble the Certificate Revocation Lists (CRL) of Certification +Authorities (CA) whose clients you deal with. These are used +for Client Authentication. Such a file is simply the concatenation of +the various PEM-encoded CRL files, in order of preference. This can be +used alternatively and/or additionally to SSLCARevocationPath.

+

Example

+SSLCARevocationFile /usr/local/apache2/conf/ssl.crl/ca-bundle-client.crl +

+ +
+
top
+

SSLCARevocationPath Directive

+ + + + + + +
Description:Directory of PEM-encoded CA CRLs for +Client Auth
Syntax:SSLCARevocationPath directory-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the directory where you keep the Certificate Revocation +Lists (CRL) of Certification Authorities (CAs) whose clients you deal with. +These are used to revoke the client certificate on Client Authentication.

+

+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.

+

Example

+SSLCARevocationPath /usr/local/apache2/conf/ssl.crl/ +

+ +
+
top
+

SSLCertificateChainFile Directive

+ + + + + + +
Description:File of PEM-encoded Server CA Certificates
Syntax:SSLCertificateChainFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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. Such a file is simply the concatenation of the various +PEM-encoded CA Certificate files, usually in certificate chain order.

+

+This should be used alternatively and/or additionally to SSLCACertificatePath for explicitly +constructing the server certificate chain which is sent to the browser +in addition to the server certificate. It is especially useful to +avoid conflicts with CA certificates when using client +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.

+

+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 +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.

+

Example

+SSLCertificateChainFile /usr/local/apache2/conf/ssl.crt/ca.crt +

+ +
+
top
+

SSLCertificateFile Directive

+ + + + + + +
Description:Server PEM-encoded X.509 Certificate file
Syntax:SSLCertificateFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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.

+

Example

+SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt +

+ +
+
top
+

SSLCertificateKeyFile Directive

+ + + + + + +
Description:Server PEM-encoded Private Key file
Syntax:SSLCertificateKeyFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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.

+

Example

+SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key +

+ +
+
top
+

SSLCipherSuite Directive

+ + + + + + + + +
Description:Cipher Suite available for negotiation in SSL +handshake
Syntax:SSLCipherSuite cipher-spec
Default:SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
Context:server config, virtual host, directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

+This complex directive uses a colon-separated cipher-spec string +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 +reconfigured Cipher Suite after the HTTP request was read but before the HTTP +response is sent.

+

+An SSL cipher specification in cipher-spec is composed of 4 major +attributes plus a few extra minor ones:

+
    +
  • Key Exchange Algorithm:
    + RSA or Diffie-Hellman variants. +
  • +
  • Authentication Algorithm:
    + RSA, Diffie-Hellman, DSS or none. +
  • +
  • Cipher/Encryption Algorithm:
    + DES, Triple-DES, RC4, RC2, IDEA or none. +
  • +
  • MAC Digest Algorithm:
    + MD5, SHA or SHA1. +
  • +
+

An SSL cipher can also be an export cipher and is either a SSLv2 or SSLv3/TLSv1 +cipher (here TLSv1 is equivalent to SSLv3). To specify which ciphers to use, +one can either specify all the Ciphers, one at a time, or use aliases to +specify the preference and order for the ciphers (see Table +1).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Tag Description
Key Exchange Algorithm:
kRSA RSA key exchange
kDHr Diffie-Hellman key exchange with RSA key
kDHd Diffie-Hellman key exchange with DSA key
kEDH Ephemeral (temp.key) Diffie-Hellman key exchange (no cert)
Authentication Algorithm:
aNULL No authentication
aRSA RSA authentication
aDSS DSS authentication
aDH Diffie-Hellman authentication
Cipher Encoding Algorithm:
eNULL No encoding
DES DES encoding
3DES Triple-DES encoding
RC4 RC4 encoding
RC2 RC2 encoding
IDEA IDEA encoding
MAC Digest Algorithm:
MD5 MD5 hash function
SHA1 SHA1 hash function
SHA SHA hash function
Aliases:
SSLv2 all SSL version 2.0 ciphers
SSLv3 all SSL version 3.0 ciphers
TLSv1 all TLS version 1.0 ciphers
EXP all export ciphers
EXPORT40 all 40-bit export ciphers only
EXPORT56 all 56-bit export ciphers only
LOW all low strength ciphers (no export, single DES)
MEDIUM all ciphers with 128 bit encryption
HIGH all ciphers using Triple-DES
RSA all ciphers using RSA key exchange
DH all ciphers using Diffie-Hellman key exchange
EDH all ciphers using Ephemeral Diffie-Hellman key exchange
ADH all ciphers using Anonymous Diffie-Hellman key exchange
DSS all ciphers using DSS authentication
NULL all ciphers using no encryption
+

+Now where this becomes interesting is that these can be put together +to specify the order and ciphers you wish to use. To speed this up +there are also aliases (SSLv2, SSLv3, TLSv1, EXP, LOW, MEDIUM, +HIGH) for certain groups of ciphers. These tags can be joined +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
  • +
  • -: remove cipher from list (can be added later again)
  • +
  • !: kill cipher from list completely (can not be added later again)
  • +
+

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 +is ``ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP'' which +means the following: first, remove from consideration any ciphers that do not +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'
+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
+
+

The complete list of particular RSA & DH ciphers for SSL is given in Table 2.

+

Example

+SSLCipherSuite RSA:!EXP:!NULL:+HIGH:+MEDIUM:-LOW +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cipher-Tag Protocol Key Ex. Auth. Enc. MAC Type
RSA Ciphers:
DES-CBC3-SHA SSLv3 RSA RSA 3DES(168) SHA1
DES-CBC3-MD5 SSLv2 RSA RSA 3DES(168) MD5
IDEA-CBC-SHA SSLv3 RSA RSA IDEA(128) SHA1
RC4-SHA SSLv3 RSA RSA RC4(128) SHA1
RC4-MD5 SSLv3 RSA RSA RC4(128) MD5
IDEA-CBC-MD5 SSLv2 RSA RSA IDEA(128) MD5
RC2-CBC-MD5 SSLv2 RSA RSA RC2(128) MD5
RC4-MD5 SSLv2 RSA RSA RC4(128) MD5
DES-CBC-SHA SSLv3 RSA RSA DES(56) SHA1
RC4-64-MD5 SSLv2 RSA RSA RC4(64) MD5
DES-CBC-MD5 SSLv2 RSA RSA DES(56) MD5
EXP-DES-CBC-SHA SSLv3 RSA(512) RSA DES(40) SHA1 export
EXP-RC2-CBC-MD5 SSLv3 RSA(512) RSA RC2(40) MD5 export
EXP-RC4-MD5 SSLv3 RSA(512) RSA RC4(40) MD5 export
EXP-RC2-CBC-MD5 SSLv2 RSA(512) RSA RC2(40) MD5 export
EXP-RC4-MD5 SSLv2 RSA(512) RSA RC4(40) MD5 export
NULL-SHA SSLv3 RSA RSA None SHA1
NULL-MD5 SSLv3 RSA RSA None MD5
Diffie-Hellman Ciphers:
ADH-DES-CBC3-SHA SSLv3 DH None 3DES(168) SHA1
ADH-DES-CBC-SHA SSLv3 DH None DES(56) SHA1
ADH-RC4-MD5 SSLv3 DH None RC4(128) MD5
EDH-RSA-DES-CBC3-SHA SSLv3 DH RSA 3DES(168) SHA1
EDH-DSS-DES-CBC3-SHA SSLv3 DH DSS 3DES(168) SHA1
EDH-RSA-DES-CBC-SHA SSLv3 DH RSA DES(56) SHA1
EDH-DSS-DES-CBC-SHA SSLv3 DH DSS DES(56) SHA1
EXP-EDH-RSA-DES-CBC-SHA SSLv3 DH(512) RSA DES(40) SHA1 export
EXP-EDH-DSS-DES-CBC-SHA SSLv3 DH(512) DSS DES(40) SHA1 export
EXP-ADH-DES-CBC-SHA SSLv3 DH(512) None DES(40) SHA1 export
EXP-ADH-RC4-MD5 SSLv3 DH(512) None RC4(40) MD5 export
+ +
+
top
+

SSLEngine Directive

+ + + + + + + +
Description:SSL Engine Operation Switch
Syntax:SSLEngine on|off
Default:SSLEngine off
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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 +disabled for both the main server and all configured virtual hosts.

+

Example

+<VirtualHost _default_:443>
+SSLEngine on
+...
+</VirtualHost> +

+ +
+
top
+

SSLInsecureRenegotiation Directive

+ + + + + + + + +
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.0.64 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

+ + + + + + + +
Description:Semaphore for internal mutual exclusion of +operations
Syntax:SSLMutex type
Default:SSLMutex none
Context:server config
Status:Extension
Module:mod_ssl
+

+This configures the SSL engine's semaphore (aka. lock) which is used for mutual +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

+

+The following Mutex types are available:

+
    +
  • none | no +

    + This is the default where no Mutex is used at all. Use it at your own + risk. But because currently the Mutex is mainly used for synchronizing + write access to the SSL Session Cache you can live without it as long + as you accept a sometimes garbled Session Cache. So it's not recommended + to leave this the default. Instead configure a real Mutex.

  • +
  • posixsem +

    + 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.

  • +
  • 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.

  • +
  • 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.

  • +
  • pthread +

    + This directive tells the SSL Module to use Posix thread mutexes. It is only available + 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. + 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 + 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 + under the Win32 environment. There you have to use the semaphore + mutex.

  • +
  • flock:/path/to/mutex +

    + 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.

  • +
  • 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 + 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.

  • +
+

Example

+SSLMutex file:/usr/local/apache/logs/ssl_mutex +

+ +
+
top
+

SSLOptions Directive

+ + + + + + + +
Description:Configure various SSL engine run-time options
Syntax:SSLOptions [+|-]option ...
Context:server config, virtual host, directory, .htaccess
Override:Options
Status:Extension
Module:mod_ssl
+

+This directive can be used to control various run-time options on a +per-directory basis. Normally, if multiple SSLOptions +could apply to a directory, then the most specific one is taken +completely; the options are not merged. However if all the +options on the SSLOptions directive are preceded by a +plus (+) or minus (-) symbol, the options +are merged. Any options preceded by a + are added to the +options currently in force, and any options preceded by a +- are removed from the options currently in force.

+

+The available options are:

+
    +
  • StdEnvVars +

    + When this option is enabled, the standard set of SSL related CGI/SSI + environment variables are created. This per default is disabled for + performance reasons, because the information extraction step is a + 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 + created: SSL_SERVER_CERT, SSL_CLIENT_CERT and + SSL_CLIENT_CERT_CHAINn (with n = 0,1,2,..). + These contain the PEM-encoded X.509 Certificates of server and client for + the current HTTPS connection and can be used by CGI scripts for deeper + Certificate checking. Additionally all other certificates of the client + certificate chain are provided, too. This bloats up the environment a + little bit which is why you have to use this option to enable it on + demand.

    +
  • +
  • FakeBasicAuth +

    + When this option is enabled, the Subject Distinguished Name (DN) of the + Client X509 Certificate is translated into a HTTP Basic Authorization + username. This means that the standard Apache authentication methods can + be used for access control. The user name is just the Subject of the + Client's X509 Certificate (can be determined by running OpenSSL's + openssl x509 command: openssl x509 -noout -subject -in + certificate.crt). Note that no password is + obtained from the user. Every entry in the user file needs this password: + ``xxj31ZMTZzkVA'', which is the DES-encrypted version of the + word `password''. Those who live under MD5-based encryption + (for instance under FreeBSD or BSD/OS, etc.) should use the following MD5 + hash of the same word: ``$1$OXLyS...$Owx8s2/m9/gfkcRVXzgoE/''.

    +
  • +
  • StrictRequire +

    + This forces forbidden access when SSLRequireSSL or + SSLRequire successfully decided that access should be + forbidden. Usually the default is that in the case where a ``Satisfy + any'' directive is used, and other access restrictions are passed, + denial of access due to SSLRequireSSL or + SSLRequire is overridden (because that's how the Apache + Satisfy mechanism should work.) But for strict access restriction + you can use SSLRequireSSL and/or SSLRequire in + combination with an ``SSLOptions +StrictRequire''. Then an + additional ``Satisfy Any'' has no chance once mod_ssl has + decided to deny access.

    +
  • +
  • OptRenegotiate +

    + This enables optimized SSL connection renegotiation handling when SSL + directives are used in per-directory context. By default a strict + scheme is enabled where every per-directory reconfiguration of + SSL parameters causes a full SSL renegotiation handshake. When this + option is used mod_ssl tries to avoid unnecessary handshakes by doing more + granular (but still safe) parameter checks. Nevertheless these granular + checks sometimes maybe not what the user expects, so enable this on a + per-directory basis only, please.

    +
  • +
+

Example

+SSLOptions +FakeBasicAuth -StrictRequire
+<Files ~ "\.(cgi|shtml)$">
+ SSLOptions +StdEnvVars +CompatEnvVars -ExportCertData
+<Files> +

+ +
+
top
+

SSLPassPhraseDialog Directive

+ + + + + + + +
Description:Type of pass phrase dialog for encrypted private +keys
Syntax:SSLPassPhraseDialog type
Default:SSLPassPhraseDialog builtin
Context:server config
Status:Extension
Module:mod_ssl
+

+When Apache starts up it has to read the various Certificate (see +SSLCertificateFile) and +Private Key (see SSLCertificateKeyFile) files of the +SSL-enabled virtual servers. Because for security reasons the Private +Key files are usually encrypted, mod_ssl needs to query the +administrator for a Pass Phrase in order to decrypt those files. This +query can be done in two ways which can be configured by +type:

+
    +
  • builtin +

    + This is the default where an interactive terminal dialog occurs at startup + time just before Apache detaches from the terminal. Here the administrator + has to manually enter the Pass Phrase for each encrypted Private Key file. + Because a lot of SSL-enabled virtual hosts can be configured, the + following reuse-scheme is used to minimize the dialog: When a Private Key + file is encrypted, all known Pass Phrases (at the beginning there are + none, of course) are tried. If one of those known Pass Phrases succeeds no + dialog pops up for this particular Private Key file. If none succeeded, + another Pass Phrase is queried on the terminal and remembered for the next + round (where it perhaps can be reused).

    +

    + This scheme allows mod_ssl to be maximally flexible (because for N encrypted + Private Key files you can use N different Pass Phrases - but then + you have to enter all of them, of course) while minimizing the terminal + dialog (i.e. when you use a single Pass Phrase for all N Private Key files + this Pass Phrase is queried only once).

  • + +
  • exec:/path/to/program +

    + 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.

    +

    + 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 + executable program which provides the Pass Phrase on stdout. + Nothing more or less! So, if you're really paranoid about security, here + is your interface. Anything else has to be left as an exercise to the + administrator, because local security requirements are so different.

    +

    + The reuse-algorithm above is used here, too. In other words: The external + program is called only once per unique Pass Phrase.

  • +
+

+Example:

+

+SSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter +

+ +
+
top
+

SSLProtocol Directive

+ + + + + + + + +
Description:Configure usable SSL protocol flavors
Syntax:SSLProtocol [+|-]protocol ...
Default:SSLProtocol all
Context:server config, virtual host
Override:Options
Status:Extension
Module:mod_ssl
+

+This directive can be used to control the SSL protocol flavors mod_ssl should +use when establishing its server environment. Clients then can only connect +with one of the provided protocols.

+

+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.

  • + +
  • 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 + 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.

  • + +
  • 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.

  • +
+

Example

+# enable SSLv3 and TLSv1, but not SSLv2
+SSLProtocol all -SSLv2 +

+ +
+
top
+

SSLProxyCACertificateFile Directive

+ + + + + + +
Description:File of concatenated PEM-encoded CA Certificates +for Remote Server Auth
Syntax:SSLProxyCACertificateFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the all-in-one file where you can assemble the +Certificates of Certification Authorities (CA) whose remote servers you deal +with. These are used for Remote Server Authentication. Such a file is simply the +concatenation of the various PEM-encoded Certificate files, in order of +preference. This can be used alternatively and/or additionally to +SSLProxyCACertificatePath.

+

Example

+SSLProxyCACertificateFile /usr/local/apache2/conf/ssl.crt/ca-bundle-remote-server.crt +

+ +
+
top
+

SSLProxyCACertificatePath Directive

+ + + + + + +
Description:Directory of PEM-encoded CA Certificates for +Remote Server Auth
Syntax:SSLProxyCACertificatePath directory-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the directory where you keep the Certificates of +Certification Authorities (CAs) whose remote servers you deal with. These are used to +verify the remote server certificate on Remote Server Authentication.

+

+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.

+

Example

+SSLProxyCACertificatePath /usr/local/apache2/conf/ssl.crt/ +

+ +
+
top
+

SSLProxyCARevocationFile Directive

+ + + + + + +
Description:File of concatenated PEM-encoded CA CRLs for +Remote Server Auth
Syntax:SSLProxyCARevocationFile file-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the all-in-one file where you can +assemble the Certificate Revocation Lists (CRL) of Certification +Authorities (CA) whose remote servers you deal with. These are used +for Remote Server Authentication. Such a file is simply the concatenation of +the various PEM-encoded CRL files, in order of preference. This can be +used alternatively and/or additionally to SSLProxyCARevocationPath.

+

Example

+SSLProxyCARevocationFile /usr/local/apache2/conf/ssl.crl/ca-bundle-remote-server.crl +

+ +
+
top
+

SSLProxyCARevocationPath Directive

+ + + + + + +
Description:Directory of PEM-encoded CA CRLs for +Remote Server Auth
Syntax:SSLProxyCARevocationPath directory-path
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+This directive sets the directory where you keep the Certificate Revocation +Lists (CRL) of Certification Authorities (CAs) whose remote servers you deal with. +These are used to revoke the remote server certificate on Remote Server Authentication.

+

+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.

+

Example

+SSLProxyCARevocationPath /usr/local/apache2/conf/ssl.crl/ +

+ +
+
top
+

SSLProxyCipherSuite Directive

+ + + + + + + + +
Description:Cipher Suite available for negotiation in SSL +proxy handshake
Syntax:SSLProxyCipherSuite cipher-spec
Default:SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
Context:server config, virtual host, directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

Equivalent to SSLCipherSuite, but for the proxy connection. +Please refer to SSLCipherSuite +for additional information.

+ +
+
top
+

SSLProxyEngine Directive

+ + + + + + + +
Description:SSL Proxy Engine Operation Switch
Syntax:SSLProxyEngine on|off
Default:SSLProxyEngine off
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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.

+

Example

+<VirtualHost _default_:443>
+SSLProxyEngine on
+...
+</VirtualHost> +

+ +
+
top
+

SSLProxyMachineCertificateFile Directive

+ + + + + + + +
Description:File of concatenated PEM-encoded client certificates and keys to be used by the proxy
Syntax:SSLProxyMachineCertificateFile filename
Context:server config
Override:Not applicable
Status:Extension
Module:mod_ssl
+

+This directive sets the all-in-one file where you keep the certificates and +keys used for authentication of the proxy server to remote servers. +

+

+This referenced file is simply the concatenation of the various PEM-encoded +certificate files, in order of preference. Use this directive alternatively +or additionally to SSLProxyMachineCertificatePath. +

+
+

Currently there is no support for encrypted private keys

+
+

+Example:

+

+SSLProxyMachineCertificateFile /usr/local/apache2/conf/ssl.crt/proxy.pem +

+ +
+
top
+

SSLProxyMachineCertificatePath Directive

+ + + + + + + +
Description:Directory of PEM-encoded client certificates and keys to be used by the proxy
Syntax:SSLProxyMachineCertificatePath directory
Context:server config
Override:Not applicable
Status:Extension
Module:mod_ssl
+

+This directive sets the directory where you keep the certificates and +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. +

+
+

Currently there is no support for encrypted private keys

+
+

+Example:

+

+SSLProxyMachineCertificatePath /usr/local/apache2/conf/proxy.crt/ +

+ +
+
top
+

SSLProxyProtocol Directive

+ + + + + + + + +
Description:Configure usable SSL protocol flavors for proxy usage
Syntax:SSLProxyProtocol [+|-]protocol ...
Default:SSLProxyProtocol all
Context:server config, virtual host
Override:Options
Status:Extension
Module:mod_ssl
+ +

+This directive can be used to control the SSL protocol flavors mod_ssl should +use when establishing its server environment for proxy . It will only connect +to servers using one of the provided protocols.

+

Please refer to SSLProtocol +for additional information. +

+ +
+
top
+

SSLProxyVerify Directive

+ + + + + + + + +
Description:Type of remote server Certificate verification
Syntax:SSLProxyVerify level
Default:SSLProxyVerify none
Context:server config, virtual host, directory, .htaccess
Override:AuthConfig
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.

+

+The following levels are available for level:

+
    +
  • none: + no remote server Certificate is required at all
  • +
  • optional: + the remote server may present a valid Certificate
  • +
  • require: + the remote server has to present a valid Certificate
  • +
  • optional_no_ca: + the remote server may present a valid Certificate
    + but it need not to be (successfully) verifiable.
  • +
+

In practice only levels none and +require are really interesting, because level +optional doesn't work with all servers and level +optional_no_ca is actually against the idea of +authentication (but can be used to establish SSL test pages, etc.)

+

Example

+SSLProxyVerify require +

+ +
+
top
+

SSLProxyVerifyDepth Directive

+ + + + + + + + +
Description:Maximum depth of CA Certificates in Remote Server +Certificate verification
Syntax:SSLProxyVerifyDepth number
Default:SSLProxyVerifyDepth 1
Context:server config, virtual host, directory, .htaccess
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.

+

+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 +verifying the remote server certificate. A depth of 0 means that self-signed +remote server certificates are accepted only, the default depth of 1 means +the remote server certificate can be self-signed or has to be signed by a CA +which is directly known to the server (i.e. the CA's certificate is under +SSLProxyCACertificatePath), etc.

+

Example

+SSLProxyVerifyDepth 10 +

+ +
+
top
+

SSLRandomSeed Directive

+ + + + + + +
Description:Pseudo Random Number Generator (PRNG) seeding +source
Syntax:SSLRandomSeed context source +[bytes]
Context:server config
Status:Extension
Module:mod_ssl
+

+This configures one or more sources for seeding the Pseudo Random Number +Generator (PRNG) in OpenSSL at startup time (context is +startup) and/or just before a new SSL connection is established +(context is connect). This directive can only be used +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 + 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. + 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 + startup, use an additional seeding source.

  • +
  • file:/path/to/source +

    + This variant uses an external file /path/to/source as the + source for seeding the PRNG. When bytes is specified, only the + first bytes number of bytes of the file form the entropy (and + bytes is given to /path/to/source as the first + argument). When bytes is not specified the whole file forms the + entropy (and 0 is given to /path/to/source as + 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).

    +

    + But be careful: Usually /dev/random provides only as + much entropy data as it actually has, i.e. when you request 512 bytes of + entropy, but the device currently has only 100 bytes available two things + can happen: On some platforms you receive only the 100 bytes while on + other platforms the read blocks until enough bytes are available (which + can take a long time). Here using an existing /dev/urandom is + better, because it never blocks and actually gives the amount of requested + data. The drawback is just that the quality of the received data may not + be the best.

    +

    + 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 + like EGD + (Entropy Gathering Daemon) and run it's client program with the + exec:/path/to/program/ variant (see below) or use + egd:/path/to/egd-socket (see below).

  • + +
  • exec:/path/to/program +

    + This variant uses an external executable + /path/to/program as the source for seeding the + PRNG. When bytes is specified, only the first + bytes number of bytes of its stdout contents + form the entropy. When bytes is not specified, the + entirety of the data produced on stdout form the + entropy. Use this only at startup time when you need a very strong + seeding with the help of an external program (for instance as in + the example above with the truerand utility you can + find in the mod_ssl distribution which is based on the AT&T + truerand library). Using this in the connection context + slows down the server too dramatically, of course. So usually you + should avoid using external programs in that context.

  • +
  • egd:/path/to/egd-socket (Unix only) +

    + This variant uses the Unix domain socket of the + external Entropy Gathering Daemon (EGD) (see http://www.lothar.com/tech + /crypto/) to seed the PRNG. Use this if no random device exists + on your platform.

  • +
+

Example

+SSLRandomSeed startup builtin
+SSLRandomSeed startup file:/dev/random
+SSLRandomSeed startup file:/dev/urandom 1024
+SSLRandomSeed startup exec:/usr/local/bin/truerand 16
+SSLRandomSeed connect builtin
+SSLRandomSeed connect file:/dev/random
+SSLRandomSeed connect file:/dev/urandom 1024
+

+ +
+
top
+

SSLRequire Directive

+ + + + + + + +
Description:Allow access only when an arbitrarily complex +boolean expression is true
Syntax:SSLRequire expression
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

+This directive specifies a general access requirement which has to be +fulfilled in order to allow access. It's a very powerful directive because the +requirement specification is an arbitrarily complex boolean expression +containing any number of access checks.

+

+The expression must match the following syntax (given as a BNF +grammar notation):

+
+
+expr     ::= "true" | "false"
+           | "!" expr
+           | expr "&&" expr
+           | expr "||" expr
+           | "(" expr ")"
+           | comp
+
+comp     ::= word "==" word | word "eq" word
+           | word "!=" word | word "ne" word
+           | word "<"  word | word "lt" word
+           | word "<=" word | word "le" word
+           | word ">"  word | word "gt" word
+           | word ">=" word | word "ge" word
+           | word "in" "{" wordlist "}"
+           | word "=~" regex
+           | word "!~" regex
+
+wordlist ::= word
+           | wordlist "," word
+
+word     ::= digit
+           | cstring
+           | variable
+           | function
+
+digit    ::= [0-9]+
+cstring  ::= "..."
+variable ::= "%{" varname "}"
+function ::= funcname "(" funcargs ")"
+
+
+

while for varname any variable from Table 3 can be used. Finally for +funcname the following functions are available:

+
    +
  • file(filename) +

    + This function takes one string argument and expands to the contents of the + file. This is especially useful for matching this contents against a + regular expression, etc.

    +
  • +
+

Notice that expression is first parsed into an internal machine +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.

+

Example

+SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
+ and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
+ and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
+ and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
+ and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
+ or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ +

+ +

Standard CGI/1.0 and Apache variables:

+
+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
+HTTP_HOST              IS_SUBREQ             TIME_MON
+HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
+HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
+HTTP:headername        SERVER_NAME           TIME_MIN
+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
+
+

SSL-related variables:

+
+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
+SSL_CIPHER             SSL_CLIENT_S_DN        SSL_SERVER_S_DN
+SSL_CIPHER_EXPORT      SSL_CLIENT_S_DN_C      SSL_SERVER_S_DN_C
+SSL_CIPHER_ALGKEYSIZE  SSL_CLIENT_S_DN_ST     SSL_SERVER_S_DN_ST
+SSL_CIPHER_USEKEYSIZE  SSL_CLIENT_S_DN_L      SSL_SERVER_S_DN_L
+SSL_VERSION_LIBRARY    SSL_CLIENT_S_DN_O      SSL_SERVER_S_DN_O
+SSL_VERSION_INTERFACE  SSL_CLIENT_S_DN_OU     SSL_SERVER_S_DN_OU
+                       SSL_CLIENT_S_DN_CN     SSL_SERVER_S_DN_CN
+                       SSL_CLIENT_S_DN_T      SSL_SERVER_S_DN_T
+                       SSL_CLIENT_S_DN_I      SSL_SERVER_S_DN_I
+                       SSL_CLIENT_S_DN_G      SSL_SERVER_S_DN_G
+                       SSL_CLIENT_S_DN_S      SSL_SERVER_S_DN_S
+                       SSL_CLIENT_S_DN_D      SSL_SERVER_S_DN_D
+                       SSL_CLIENT_S_DN_UID    SSL_SERVER_S_DN_UID
+                       SSL_CLIENT_S_DN_Email  SSL_SERVER_S_DN_Email
+                       SSL_CLIENT_I_DN        SSL_SERVER_I_DN
+                       SSL_CLIENT_I_DN_C      SSL_SERVER_I_DN_C
+                       SSL_CLIENT_I_DN_ST     SSL_SERVER_I_DN_ST
+                       SSL_CLIENT_I_DN_L      SSL_SERVER_I_DN_L
+                       SSL_CLIENT_I_DN_O      SSL_SERVER_I_DN_O
+                       SSL_CLIENT_I_DN_OU     SSL_SERVER_I_DN_OU
+                       SSL_CLIENT_I_DN_CN     SSL_SERVER_I_DN_CN
+                       SSL_CLIENT_I_DN_T      SSL_SERVER_I_DN_T
+                       SSL_CLIENT_I_DN_I      SSL_SERVER_I_DN_I
+                       SSL_CLIENT_I_DN_G      SSL_SERVER_I_DN_G
+                       SSL_CLIENT_I_DN_S      SSL_SERVER_I_DN_S
+                       SSL_CLIENT_I_DN_D      SSL_SERVER_I_DN_D
+                       SSL_CLIENT_I_DN_UID    SSL_SERVER_I_DN_UID
+                       SSL_CLIENT_I_DN_Email  SSL_SERVER_I_DN_Email
+                       SSL_CLIENT_A_SIG       SSL_SERVER_A_SIG
+                       SSL_CLIENT_A_KEY       SSL_SERVER_A_KEY
+                       SSL_CLIENT_CERT        SSL_SERVER_CERT
+                       SSL_CLIENT_CERT_CHAINn
+                       SSL_CLIENT_VERIFY
+
+ +
+
top
+

SSLRequireSSL Directive

+ + + + + + + +
Description:Deny access when SSL is not used for the +HTTP request
Syntax:SSLRequireSSL
Context:directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

+This directive forbids access unless HTTP over SSL (i.e. HTTPS) is enabled for +the current connection. This is very handy inside the SSL-enabled virtual +host or directories for defending against configuration errors that expose +stuff that should be protected. When this directive is present all requests +are denied which are not using SSL.

+

Example

+SSLRequireSSL +

+ +
+
top
+

SSLSessionCache Directive

+ + + + + + + +
Description:Type of the global/inter-process SSL Session +Cache
Syntax:SSLSessionCache type
Default:SSLSessionCache none
Context:server config
Status:Extension
Module:mod_ssl
+

+This configures the storage type of the global/inter-process SSL Session +Cache. This cache is an optional facility which speeds up parallel request +processing. For requests to the same server process (via HTTP keep-alive), +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.

+

+The following two storage types are currently supported:

+
    +
  • none +

    + This is the default and just disables the global/inter-process Session + Cache. There is no drawback in functionality, but a noticeable speed + penalty can be observed.

  • +
  • dbm:/path/to/datafile +

    + This makes use of a DBM hashfile on the local disk to synchronize the + local OpenSSL memory caches of the server processes. The slight increase + in I/O on the server results in a visible request speedup for your + clients, so this type of storage is generally recommended.

  • +
  • shm:/path/to/datafile[(size)] +

    + This makes use of a high-performance hash table (approx. size bytes + in size) inside a shared memory segment in RAM (established via + /path/to/datafile) to synchronize the local OpenSSL memory + caches of the server processes. This storage type is not available on all + platforms.

  • +
+

Examples

+SSLSessionCache dbm:/usr/local/apache/logs/ssl_gcache_data
+SSLSessionCache shm:/usr/local/apache/logs/ssl_gcache_data(512000) +

+ +
+
top
+

SSLSessionCacheTimeout Directive

+ + + + + + + +
Description:Number of seconds before an SSL session expires +in the Session Cache
Syntax:SSLSessionCacheTimeout seconds
Default:SSLSessionCacheTimeout 300
Context:server config, virtual host
Status:Extension
Module:mod_ssl
+

+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. +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
+

SSLUserName Directive

+ + + + + + + + +
Description:Variable name to determine user name
Syntax:SSLUserName varname
Context:server config, directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
Compatibility:Available in Apache 2.0.51 and later
+

+This directive sets the "user" field in the Apache request object. +This is used by lower modules to identify the user with a character +string. In particular, this may cause the environment variable +REMOTE_USER to be set. The varname can be +any of the SSL environment variables.

+

Example

+SSLUserName SSL_CLIENT_S_DN_CN +

+ +
+
top
+

SSLVerifyClient Directive

+ + + + + + + + +
Description:Type of Client Certificate verification
Syntax:SSLVerifyClient level
Default:SSLVerifyClient none
Context:server config, virtual host, directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

+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 +reconfigured client verification level after the HTTP request was read but +before the HTTP response is sent.

+

+The following levels are available for level:

+
    +
  • none: + no client Certificate is required at all
  • +
  • optional: + the client may present a valid Certificate
  • +
  • require: + the client has to present a valid Certificate
  • +
  • optional_no_ca: + the client may present a valid Certificate
    + but it need not to be (successfully) verifiable.
  • +
+

In practice only levels none and +require are really interesting, because level +optional doesn't work with all browsers and level +optional_no_ca is actually against the idea of +authentication (but can be used to establish SSL test pages, etc.)

+

Example

+SSLVerifyClient require +

+ +
+
top
+

SSLVerifyDepth Directive

+ + + + + + + + +
Description:Maximum depth of CA Certificates in Client +Certificate verification
Syntax:SSLVerifyDepth number
Default:SSLVerifyDepth 1
Context:server config, virtual host, directory, .htaccess
Override:AuthConfig
Status:Extension
Module:mod_ssl
+

+This directive sets how deeply mod_ssl should verify before deciding that the +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 +HTTP request was read but before the HTTP response is sent.

+

+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 +verifying the client certificate. A depth of 0 means that self-signed client +certificates are accepted only, the default depth of 1 means the client +certificate can be self-signed or has to be signed by a CA which is directly +known to the server (i.e. the CA's certificate is under +SSLCACertificatePath), etc.

+

Example

+SSLVerifyDepth 10 +

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_status.html b/rubbos/app/apache2/manual/mod/mod_status.html new file mode 100644 index 00000000..065e8e12 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_status.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_status.html.en b/rubbos/app/apache2/manual/mod/mod_status.html.en new file mode 100644 index 00000000..dbba412b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_status.html.en @@ -0,0 +1,164 @@ + + + +mod_status - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_status

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:Provides information on server activity and +performance
Status:Base
ModuleIdentifier:status_module
SourceFile:mod_status.c
+

Summary

+ +

The Status module allows a server administrator to find out + how well their server is performing. A HTML page is presented + that gives the current server statistics in an easily readable + form. If required this page can be made to automatically + refresh (given a compatible browser). Another page gives a + simple machine-readable list of the current server state.

+ +

The details given are:

+ +
    +
  • The number of worker serving requests
  • + +
  • The number of idle worker
  • + +
  • The status of each worker, the number of requests that + worker has performed and the total number of bytes served by + the worker (*)
  • + +
  • A total number of accesses and byte count served (*)
  • + +
  • The time the server was started/restarted and the time it + has been running for
  • + +
  • Averages giving the number of requests per second, the + number of bytes served per second and the average number of + bytes per request (*)
  • + +
  • The current percentage CPU used by each worker and in + total by Apache (*)
  • + +
  • The current hosts and requests being processed (*)
  • +
+ +

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 + domain add this code to your httpd.conf + configuration file

+

+ <Location /server-status>
+ SetHandler server-status
+
+ Order Deny,Allow
+ Deny from all
+ Allow from .foo.com
+ </Location> +

+ +

You can now access server statistics by using a Web browser + to access the page + http://your.server.name/server-status

+
top
+
+

Automatic Updates

+ + +

You can get the status page to update itself automatically if + you have a browser that supports "refresh". Access the page + http://your.server.name/server-status?refresh=N to + refresh the page every N seconds.

+ +
top
+
+

Machine Readable Status File

+ + +

A machine-readable version of the status file is available by + accessing the page + http://your.server.name/server-status?auto. This + is useful when automatically run, see the Perl program in the + /support directory of Apache, + log_server_status.

+ +
+ It should be noted that if mod_status is + compiled into the server, its handler capability is available + in all configuration files, including + per-directory files (e.g., + .htaccess). This may have security-related + ramifications for your site. +
+ +
+
top
+

ExtendedStatus Directive

+ + + + + + + + +
Description:Keep track of extended status information for each +request
Syntax:ExtendedStatus On|Off
Default:ExtendedStatus Off
Context:server config
Status:Base
Module:mod_status
Compatibility:ExtendedStatus is only available in Apache 1.3.2 and +later.
+

This setting applies to the entire server, and cannot be + enabled or disabled on a virtualhost-by-virtualhost basis. + The collection of extended status information can slow down + the server.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_status.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_status.html.ja.utf8 new file mode 100644 index 00000000..d77d93c0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_status.html.ja.utf8 @@ -0,0 +1,158 @@ + + + +mod_status - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_status

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:サーバの活動状況と性能に関する情報を提供する
ステータス: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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_status.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_status.html.ko.euc-kr new file mode 100644 index 00000000..1892706f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_status.html.ko.euc-kr @@ -0,0 +1,152 @@ + + + +mod_status - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_status

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
: Ȱ ɿ Ѵ
:Base
:status_module
ҽ:mod_status.c
+

+ +

Status ڿ ¸ ش. + ִ HTML 踦 ش. + ʿϴٸ (ǥ ) ڵ + ִ. ¸ ǻͰ ִ + ִ.

+ +

˷ִ :

+ +
    +
  • û ϴ worker
  • + +
  • ִ(idle) worker
  • + +
  • worker , worker ó û + worker ü Ʈ (*)
  • + +
  • Ƚ Ʈ (*)
  • + +
  • Ȥ ð ð
  • + +
  • ʴ û , ʴ Ʈ û + Ʈ (*)
  • + +
  • ġ ü worker CPU (*)
  • + +
  • óϰ ִ ȣƮ û (*)
  • +
+ +

ǥ ġ "(*)" ǥ 踦 . + Ͻ ɼ ؾ Ѵ.

+
+ +
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
+
+

ڵ

+ + +

"簻" Ѵٸ status ڵ + ִ. N ʸ Ϸ + http://your.server.name/server-status?refresh=N + ϶.

+ +
top
+
+

ǻͰ ִ Status

+ + +

http://your.server.name/server-status?auto + ǻͰ ִ status ִ. + ġ /support 丮 ִ + log_server_status Perl α׷ ڵ + ϴ α׷ ϴ.

+ +
+ mod_status + Ͽٸ 丮 ( + , .htaccess) Ͽ + Ͽ ڵ鷯 ִ. ׷ Ʈ + ߻ ִ. +
+ +
+
top
+

ExtendedStatus þ

+ + + + + + + + +
: û ڼ Ѵ
:ExtendedStatus On|Off
⺻:ExtendedStatus Off
:ּ
:Base
:mod_status
:ExtendedStatus ġ 1.3.2 Ŀ ִ.
+

ü Ǹ, ȣƮ Ű + . ڼ ִ.

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_status.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_status.html.tr.utf8 new file mode 100644 index 00000000..b907a068 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_status.html.tr.utf8 @@ -0,0 +1,159 @@ + + + +mod_status - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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.

+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_suexec.html b/rubbos/app/apache2/manual/mod/mod_suexec.html new file mode 100644 index 00000000..f5d06c29 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_suexec.html @@ -0,0 +1,17 @@ +# 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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_suexec.html.en b/rubbos/app/apache2/manual/mod/mod_suexec.html.en new file mode 100644 index 00000000..7cd63384 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_suexec.html.en @@ -0,0 +1,82 @@ + + + +mod_suexec - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_suexec

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + + +
Description:Allows CGI scripts to run as a specified user +and Group
Status:Extension
ModuleIdentifier:suexec_module
SourceFile:mod_suexec.c
Compatibility:Available in Apache 2.0 and later
+

Summary

+ +

This module, in combination with the suexec support program allows + CGI scripts to run as a specified user and Group.

+
+

Directives

+ +

See also

+
+ +
top
+

SuexecUserGroup Directive

+ + + + + + + +
Description:User and group for CGI programs to run as
Syntax:SuexecUserGroup User Group
Context:server config, virtual host
Status:Extension
Module:mod_suexec
Compatibility:SuexecUserGroup is only available in 2.0 and +later.
+

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.

+ +

Example

+ + SuexecUserGroup nobody nogroup +

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_suexec.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_suexec.html.ja.utf8 new file mode 100644 index 00000000..d4b3b68c --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_suexec.html.ja.utf8 @@ -0,0 +1,83 @@ + + + +mod_suexec - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_suexec

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:指定されたユーザとグループで 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 +

+ + +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_suexec.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_suexec.html.ko.euc-kr new file mode 100644 index 00000000..3ea7e8c0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_suexec.html.ko.euc-kr @@ -0,0 +1,83 @@ + + + +mod_suexec - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_suexec

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + + +
:CGI ũƮ Ư ڿ ׷ Ѵ
:Extension
:suexec_module
ҽ:mod_suexec.c
:ġ 2.0 ĺ
+

+ +

suexec + α׷ Ͽ CGI ũƮ Ư ڿ ׷ + Ѵ.

+
+

þ

+ +

+
+ +
top
+

SuexecUserGroup þ

+ + + + + + + +
:CGI α׷ ڿ ׷
:SuexecUserGroup User Group
:ּ, ȣƮ
:Extension
:mod_suexec
:SuexecUserGroup 2.0 Ŀ ִ.
+

SuexecUserGroup þ CGI α׷ + ڿ ׷ Ѵ. CGI ƴ û + User þ ڰ óѴ. þ ġ + 1.3 VirtualHost ȿ User Group þ + üѴ.

+ +

+ + SuexecUserGroup nobody nogroup +

+ + +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_suexec.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_suexec.html.tr.utf8 new file mode 100644 index 00000000..e3e55255 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_suexec.html.tr.utf8 @@ -0,0 +1,84 @@ + + + +mod_suexec - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache Modülü mod_suexec

+
+

Mevcut Diller:  en  | + 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 +

+ + +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_unique_id.html b/rubbos/app/apache2/manual/mod/mod_unique_id.html new file mode 100644 index 00000000..b8be353a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_unique_id.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_unique_id.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_unique_id.html.en b/rubbos/app/apache2/manual/mod/mod_unique_id.html.en new file mode 100644 index 00000000..27999b24 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_unique_id.html.en @@ -0,0 +1,215 @@ + + + +mod_unique_id - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_unique_id

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + +
Description:Provides an environment variable with a unique +identifier for each request
Status:Extension
ModuleIdentifier:unique_id_module
SourceFile:mod_unique_id.c
+

Summary

+ + +

This module provides a magic token for each request which is + guaranteed to be unique across "all" requests under very + specific conditions. The unique identifier is even unique + across multiple machines in a properly configured cluster of + machines. The environment variable UNIQUE_ID is + set to the identifier for each request. Unique identifiers are + useful for various reasons which are beyond the scope of this + document.

+
+

Directives

+

This module provides no directives.

+

Topics

+
+
top
+
+

Theory

+ + +

First a brief recap of how the Apache server works on Unix + machines. This feature currently isn't supported on Windows NT. + On Unix machines, Apache creates several children, the children + process requests one at a time. Each child can serve multiple + requests in its lifetime. For the purpose of this discussion, + the children don't share any data with each other. We'll refer + to the children as httpd processes.

+ +

Your website has one or more machines under your + administrative control, together we'll call them a cluster of + machines. Each machine can possibly run multiple instances of + Apache. All of these collectively are considered "the + universe", and with certain assumptions we'll show that in this + universe we can generate unique identifiers for each request, + without extensive communication between machines in the + cluster.

+ +

The machines in your cluster should satisfy these + requirements. (Even if you have only one machine you should + synchronize its clock with NTP.)

+ +
    +
  • The machines' times are synchronized via NTP or other + network time protocol.
  • + +
  • The machines' hostnames all differ, such that the module + can do a hostname lookup on the hostname and receive a + different IP address for each machine in the cluster.
  • +
+ +

As far as operating system assumptions go, we assume that + pids (process ids) fit in 32-bits. If the operating system uses + more than 32-bits for a pid, the fix is trivial but must be + performed in the code.

+ +

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 + generate unique identifiers for requests we need only + distinguish between different points in time.

+ +

To distinguish time we will use a Unix timestamp (seconds + since January 1, 1970 UTC), and a 16-bit counter. The timestamp + has only one second granularity, so the counter is used to + represent up to 65536 values during a single second. The + quadruple ( ip_addr, pid, time_stamp, counter ) is + sufficient to enumerate 65536 requests per second per httpd + process. There are issues however with pid reuse over time, and + the counter is used to alleviate this issue.

+ +

When an httpd child is created, the counter is initialized + with ( current microseconds divided by 10 ) modulo 65536 (this + formula was chosen to eliminate some variance problems with the + low order bits of the microsecond timers on some systems). When + a unique identifier is generated, the time stamp used is the + time the request arrived at the web server. The counter is + incremented every time an identifier is generated (and allowed + to roll over).

+ +

The kernel generates a pid for each process as it forks the + process, and pids are allowed to roll over (they're 16-bits on + many Unixes, but newer systems have expanded to 32-bits). So + over time the same pid will be reused. However unless it is + reused within the same second, it does not destroy the + uniqueness of our quadruple. That is, we assume the system does + not spawn 65536 processes in a one second interval (it may even + be 32768 processes on some Unixes, but even this isn't likely + to happen).

+ +

Suppose that time repeats itself for some reason. That is, + suppose that the system's clock is screwed up and it revisits a + past time (or it is too far forward, is reset correctly, and + then revisits the future time). In this case we can easily show + that we can get pid and time stamp reuse. The choice of + initializer for the counter is intended to help defeat this. + Note that we really want a random number to initialize the + counter, but there aren't any readily available numbers on most + systems (i.e., you can't use rand() because you need + to seed the generator, and can't seed it with the time because + time, at least at one second resolution, has repeated itself). + This is not a perfect defense.

+ +

How good a defense is it? Suppose that one of your machines + serves at most 500 requests per second (which is a very + reasonable upper bound at this writing, because systems + generally do more than just shovel out static files). To do + that it will require a number of children which depends on how + many concurrent clients you have. But we'll be pessimistic and + suppose that a single child is able to serve 500 requests per + second. There are 1000 possible starting counter values such + that two sequences of 500 requests overlap. So there is a 1.5% + chance that if time (at one second resolution) repeats itself + this child will repeat a counter value, and uniqueness will be + broken. This was a very pessimistic example, and with real + world values it's even less likely to occur. If your system is + such that it's still likely to occur, then perhaps you should + make the counter 32 bits (by editing the code).

+ +

You may be concerned about the clock being "set back" during + summer daylight savings. However this isn't an issue because + the times used here are UTC, which "always" go forward. Note + that x86 based Unixes may need proper configuration for this to + be true -- they should be configured to assume that the + motherboard clock is on UTC and compensate appropriately. But + 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 + alphabet [A-Za-z0-9@-] in a manner similar to MIME + base64 encoding, producing 19 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 + encoded in network byte ordering so that the encoding is + comparable across architectures of different byte ordering. The + actual ordering of the encoding is: time stamp, IP address, + pid, counter. This ordering has a purpose, but it should be + emphasized that applications should not dissect the encoding. + Applications should treat the entire encoded + UNIQUE_ID as an opaque token, which can be + compared against other UNIQUE_IDs for equality + only.

+ +

The ordering was chosen such that it's possible to change + the encoding in the future without worrying about collision + with an existing database of UNIQUE_IDs. The new + encodings should also keep the time stamp as the first element, + 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 + 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 + 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 + NTP synchronization is required, which is low overhead), and no + communication between httpd processes is required (the + communication is implicit in the pid value assigned by the + kernel). In very specific situations the identifier can be + shortened, but more information needs to be assumed (for + example the 32-bit IP address is overkill for any site, but + there is no portable shorter replacement for it).

+
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_unique_id.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_unique_id.html.ja.utf8 new file mode 100644 index 00000000..da79efd4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_unique_id.html.ja.utf8 @@ -0,0 +1,216 @@ + + + +mod_unique_id - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_unique_id

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:それぞれのリクエストに対する一意な識別子の入った環境変数を +提供する
ステータス: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 アドレスはどのサイトにおいても過剰な情報ですが、 + それの代わりになる移植性のあるものはありません)。

+
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_unique_id.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_unique_id.html.ko.euc-kr new file mode 100644 index 00000000..c30114e9 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_unique_id.html.ko.euc-kr @@ -0,0 +1,191 @@ + + + +mod_unique_id - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_unique_id

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + +
: û ĺڸ ȯ溯 +Ѵ
:Extension
:unique_id_module
ҽ:mod_unique_id.c
+

+ + +

 Ư Ȳ "" û߿ + ϵ ĺ(identifier) û Ѵ. + ĺڴ Ưϰ Ŭ ǻ͵ + ߿ ϴ. û ȯ溯 + UNIQUE_ID Ѵ. ĺڴ + 뵵 , Ѿ.

+
+

þ

+

⿡ þ ϴ.

+

+
+
top
+
+

̷

+ + +

н ýۿ ġ  ϴ + 캸. Windows NT ʴ´. + н ġ ڽ , ڽ μ + ѹ û óѴ. ڽ ߿ û + óѴ. ⼭ ߿ ڽĵ ڷḦ + ʴ´ٴ ̴. ڽ httpd μ + Ѵ.

+ +

ǻͷ Ʈ Ѵٸ Ŭ(cluster) + θ. ǻʹ ġ ִ. ̵ θ + "" , ŬͿ ִ ǻ͵鰣 ž + û ֿ ĺڸ ִ.

+ +

ŬͿ ִ ǻʹ 䱸 ؾ Ѵ. + (ǻ͸ Ѵ븸 ϴ ǻ ð NTP ؾ + Ѵ.)

+ +
    +
  • ǻ ð NTP ٸ Ʈ ð ݰ + ȭȴ.
  • + +
  • ǻ ȣƮ ٸ. ׷ + ȣƮ ã ŬͿ ִ ǻ͸ ٸ + IP ּҸ ´.
  • +
+ +

ü pid (μ id) 32Ʈ ٰ + Ѵ. ü pid 32Ʈ ̻ Ѵٸ + ڵ带 ؾ Ѵ.

+ +

̷ Ͽ 츮  Ŭ  ǻͿ + ִ  httpd μ ٸ httpd μ + ִ. ǻ IP ּҿ httpd μ pidε + ִ. ׷ û ڸ + ð ȴ.

+ +

ð ϱ н ð(timestamp, ǥؽ÷ + 1970 1 1 ) 16Ʈ ī͸ Ѵ. + н ð ʴ̰, īʹ ʵ 65536 + Ѵ. ( ip_addr, pid, time_stamp, counter ) +  httpd μ ʵ 65536 û + ִ. ׷ īʹ pid ϴ ذؾ + Ѵ.

+ +

httpd ڽ īʹ ( и 10 ) + 65536 ȴ. ( ý и ð + Ʈ ġʴ .) + ĺڸ 鶧 ϴ ð û + ð̴. īʹ ĺڸ 鶧 Ѵ (׸ + ٽ Ѵ).

+ +

Ŀ μ ũҶ(fork) μ pid + Ҵϰ, pid ٽ ִ. (pid н + 16Ʈ, ֱ ý 32Ʈ Ȯߴ.) ׷ ð + pid ִ. ׷ ð pid + ʴ´ٸ ϴ. , 츮 ý + ʵ μ 65536 ̻ ʴ´ٰ Ѵ. + ( н 32768 ̻ μ pid + ߻ , ̰ Ͼ Ͱ ʴ.)

+ +

ð  ݺȴٰ غ. , ý + ð谡 ð ŷ ư (Ȥ ð谡 ʹ ռ + ùٷ 缳 ̷ ð Ǵ) . + pid ð ִ. ī ʱȭ + ذϷ ȵǾ. 츮 ڷ + ī͸ ʱȭϱ , ýۿ ̷ + . ( , seed ʿϱ⶧ + rand() , ð ּ ̱⶧ + ð seed .) Ϻ ذå .

+ +

׷ 󸶳 ? ǻ ϳ û + ʴ ִ 500 (ý Ϲ ϴ + ̻ ۾ ϹǷ + ̴.) Ѵٰ . ÿ 󸶸ŭ Ŭ̾Ʈ + óϴ° ڽ ȴ. ׷ 츮 + ڽ û ʴ 500 ó ִٰ + Ѵ. pid ڽ 500 û ڽ + 500 û īͰ ĥ ִ ī ۰ + 1000̴. ׷ (ʴ) ڽ īͰ ݺϿ + ϼ Ȯ 1.5%̴. ̰ ſ ̸, + ̷ . ׷ ýۿ ̷ + ߻ ٸ (ҽ Ͽ) ī͸ 32Ʈ + .

+ +

ŸӶ ð谡 "ڷ " 𸥴. + ׷ ⼭ ϴ ð ǥؽ(UTC), ð + "׻" Ƿ . x86 н + ʿϴ. κ ð谡 UTC ϵ + ؾ Ѵ. ׷ NTP Ѵٸ + UTC ð ùٷ .

+ +

ȯ溯 UNIQUE_ID MIME base64 ڵ + 112Ʈ (32Ʈ IP ּ, 32Ʈ pid, 32Ʈ + ð, 16Ʈ ī) ĺ [A-Za-z0-9@-] + ǥѴ. MIME base64 ĺ + [A-Za-z0-9+/] + + / URL Ư ǹ̷ ϹǷ ߴ. + Ʈ Ʈ ڵϱ⶧ ٸ Ʈ + ϴ Űİ . ڵ + ð, IP ּ, pid, ī ̴.  + , α׷ ڵ Ͽ мϸ + ȵ Ѵ. α׷ ڵ UNIQUE_ID + ü ϰ, ٸ UNIQUE_ID + ִ.

+ +

UNIQUE_ID ͺ̽ + 浹 ʰ ڵ ֵ ߴ. + ο ڵ ù ׸ ð ϰų, ĺ + Ʈ ̸ ִ. ð ⺻ ϴ ̹Ƿ + ŬͿ ִ ǻͰ û 񽺸 ߴϰ + ڵ ׸ ϱ (flag second) + ϴ. û ϰ ο ڵ + ִ.

+ +

츮 Ͽ ð + ذå̶ ϴ´. Windows NT Ƽ + ý Ȯ ְ, 뵵 Ȯ + ִ. ̷ ʿѸŭ ĺڸ ֱ⶧ + ĺڴ ⺻ . ⺻ + Ŭ ǻ͵ ̿ ʿ (ϰ + NTP ⸸ ʿϴ), httpd μ ̿ ŵ ʿ + (Ŀ οϴ pid Ϲ ̴). ſ Ư + Ȳ̶ ν ũ⸦ + ؾ Ѵ. ( ,  Ʈ 32Ʈ IP ּ + ʿϰ ũ, ̸ ̴ Ȳ + ٸ.)

+
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_userdir.html b/rubbos/app/apache2/manual/mod/mod_userdir.html new file mode 100644 index 00000000..b6960e7b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_userdir.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mod_userdir.html.en b/rubbos/app/apache2/manual/mod/mod_userdir.html.en new file mode 100644 index 00000000..8eab30c5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_userdir.html.en @@ -0,0 +1,173 @@ + + + +mod_userdir - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_userdir

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
Description:User-specific directories
Status:Base
ModuleIdentifier:userdir_module
SourceFile:mod_userdir.c
+

Summary

+ +

This module allows user-specific directories to be accessed using the +http://example.com/~user/ syntax.

+
+ + +
top
+

UserDir Directive

+ + + + + + + +
Description:Location of the user-specific directories
Syntax:UserDir directory-filename
Default:UserDir public_html
Context:server config, virtual host
Status:Base
Module:mod_userdir
+ +

The UserDir directive sets the real + directory in a user's home directory to use when a request for a + document for a user is received. Directory-filename is + one of the following:

+ +
    +
  • The name of a directory or a pattern such as those shown + below.
  • + +
  • The keyword disabled. This turns off + all username-to-directory translations except those + explicitly named with the enabled keyword (see + below).
  • + +
  • The keyword disabled followed by a + space-delimited list of usernames. Usernames that appear in + such a list will never have directory translation + performed, even if they appear in an enabled + clause.
  • + +
  • The keyword enabled followed by a + space-delimited list of usernames. These usernames will have + directory translation performed even if a global disable is + in effect, but not if they also appear in a + disabled clause.
  • +
+ +

If neither the enabled nor the + disabled keywords appear in the + Userdir 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 + translated to:

+ + + + + + + +
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
+ +
+ 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:

+ +

To allow a few users to have UserDir directories, but +not anyone else, use the following:

+ +

+UserDir disabled
+UserDir enabled user1 user2 user3 +

+ +

To allow most users to have UserDir directories, but +deny this to a few, use the following:

+ +

+UserDir enabled
+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.

+ + +

See also

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_userdir.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_userdir.html.ja.utf8 new file mode 100644 index 00000000..c025aafd --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_userdir.html.ja.utf8 @@ -0,0 +1,183 @@ + + + +mod_userdir - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_userdir

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + + +
説明:ユーザ専用のディレクトリを提供 +
ステータス:Base
モジュール識別子:userdir_module
ソースファイル:mod_userdir.c
+

概要

+ +

このモジュールは、 +http://example.com/~user/ +構文を使ってユーザ専用ディレクトリにアクセスできるようにします。

+
+ + +
top
+

UserDir ディレクティブ

+ + + + + + + +
説明:ユーザ専用ディレクトリの位置
構文:UserDir directory-filename
デフォルト:UserDir public_html
コンテキスト:サーバ設定ファイル, バーチャルホスト
ステータス:Base
モジュール:mod_userdir
+ +

UserDir ディレクティブは、 + ユーザのドキュメントへのリクエストを受けた時に使う + ユーザのホームディレクトリ中の、実際のディレクトリを + 設定します。 + directory-filename には次のどれかを指定します:

+ +
    +
  • ディレクトリ名か下に示すようなパターン。
  • + +
  • disabled キーワード。 + enabled キーワード (下記参照) で明示的に + 指定されたユーザ以外の + 全てのユーザ名-ディレクトリ変換を + しないようにします。
  • + +
  • disabled キーワードと、スペース区切りのユーザ名リスト。 + このリスト中に含まれるユーザ名に対しては、たとえ + enabled 節にあったとしても、 + 決してディレクトリ変換は行われません。
  • + +
  • enebled キーワードとスペース区切りのユーザ名リスト。 + 全体では変換が無効になっていたといたとしても、 + これらのユーザ名にはディレクトリ変換が行われます。 + ただし、disabled 節にもあれば変換はされません。 +
  • +
+ +

もし enableddisabled + キーワードも 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 はリダイレクトが成功するかどうかを決めることはできませんので、 +リストの前の方にリダイレクトを書くと、それが必ず使用される選択肢に +なってしまいます。

+ + +

参照

+ +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_userdir.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_userdir.html.ko.euc-kr new file mode 100644 index 00000000..0db8bb08 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_userdir.html.ko.euc-kr @@ -0,0 +1,161 @@ + + + +mod_userdir - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_userdir

+
+

:  en  | + ja  | + ko  | + tr 

+
+ + + +
:ں 丮
:Base
:userdir_module
ҽ:mod_userdir.c
+

+ +

ϸ http://example.com/~user/ +ں 丮 ִ.

+
+ + +
top
+

UserDir þ

+ + + + + + + +
:ں 丮 ġ
:UserDir directory-filename
⺻:UserDir public_html
:ּ, ȣƮ
:Base
:mod_userdir
+ +

UserDir þ +û Ȩ丮 ȿ 丮 +Ѵ. Directory-filename ϳ̴:

+ +
    +
  • Ʒ 丮 Ȥ .
  • + +
  • disabled Ű. +enabled Ű (Ʒ ) ̸ ʾҴٸ + ڸ-丮 ȯ ʴ´.
  • + +
  • disabled Ű ڿ ڸ . +ڸ enabled ִٰ ϴ, Ͽ +ִ ڸ 丮 ȯ ʴ´.
  • + +
  • enabled Ű ڿ ڸ . +ü disable ϰ ڸ disabled +, ڸ 丮 ȯѴ.
  • +
+ +

Userdir þ enabled +disabled Ű带 , ƱԸƮ +ϸ óϿ 丮 ȯѴ. +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 þ ϶. +
+ +

߰ :

+ +

ڿԸ 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 ̷ .

+

̷ Ѵٸ ξ Ѵ. +ġ ̷ ߴ ⶧, ̷ + տ θ ׻ ̷ ϰ ȴ.

+ + +

+ +
+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_userdir.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_userdir.html.tr.utf8 new file mode 100644 index 00000000..c01569ba --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_userdir.html.tr.utf8 @@ -0,0 +1,180 @@ + + + +mod_userdir - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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
Öntanımlı:UserDir public_html
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 enabled
+ 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.

+ + +

Ayrıca bakınız:

+ +
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_usertrack.html b/rubbos/app/apache2/manual/mod/mod_usertrack.html new file mode 100644 index 00000000..63ee8b40 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_usertrack.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_usertrack.html.en b/rubbos/app/apache2/manual/mod/mod_usertrack.html.en new file mode 100644 index 00000000..fdab809e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_usertrack.html.en @@ -0,0 +1,252 @@ + + + +mod_usertrack - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_usertrack

+
+

Available Languages:  en 

+
+ + + +
Description: +Clickstream logging of user activity on a site +
Status:Extension
ModuleIdentifier:usertrack_module
SourceFile:mod_usertrack.c
+

Summary

+ +

Previous releases of Apache have included a module which + generates a 'clickstream' log of user activity on a site using + cookies. This was called the "cookies" module, mod_cookies. In + Apache 1.2 and later this module has been renamed the "user + tracking" module, mod_usertrack. This module has been + simplified and new directives added.

+
+ +
top
+
+

Logging

+ + +

Previously, the cookies module (now the user tracking + module) did its own logging, using the CookieLog + directive. In this release, this module does no logging at all. + Instead, a configurable log format file should be used to log + user click-streams. This is possible because the logging module + now allows multiple log files. The cookie itself is logged by + using the text %{cookie}n in the log file format. For + example:

+

+CustomLog logs/clickstream "%{cookie}n %r %t" +

+ +

For backward compatibility the configurable log module + implements the old CookieLog directive, but this + should be upgraded to the above CustomLog directive.

+
top
+
+

2-digit or 4-digit dates for cookies?

+ + +

(the following is from message + <022701bda43d$9d32bbb0$1201a8c0@christian.office.sane.com> + in the new-httpd archives)

+
+From: "Christian Allen" <christian@sane.com>
+Subject: Re: Apache Y2K bug in mod_usertrack.c
+Date: Tue, 30 Jun 1998 11:41:56 -0400
+
+Did some work with cookies and dug up some info that might be useful.
+
+True, Netscape claims that the correct format NOW is four digit dates, and
+four digit dates do in fact work... for Netscape 4.x (Communicator), that
+is.  However, 3.x and below do NOT accept them.  It seems that Netscape
+originally had a 2-digit standard, and then with all of the Y2K hype and
+probably a few complaints, changed to a four digit date for Communicator.
+Fortunately, 4.x also understands the 2-digit format, and so the best way to
+ensure that your expiration date is legible to the client's browser is to
+use 2-digit dates.
+
+However, this does not limit expiration dates to the year 2000; if you use
+an expiration year of "13", for example, it is interpreted as 2013, NOT
+1913!  In fact, you can use an expiration year of up to "37", and it will be
+understood as "2037" by both MSIE and Netscape versions 3.x and up (not sure
+about versions previous to those).  Not sure why Netscape used that
+particular year as its cut-off point, but my guess is that it was in respect
+to UNIX's 2038 problem.  Netscape/MSIE 4.x seem to be able to understand
+2-digit years beyond that, at least until "50" for sure (I think they
+understand up until about "70", but not for sure).
+
+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".
+
+ +
+
top
+

CookieDomain Directive

+ + + + + + + +
Description:The domain to which the tracking cookie applies
Syntax:CookieDomain domain
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_usertrack
+ +

This directive controls the setting of the domain to which + the tracking cookie applies. If not present, no domain is + included in the cookie header field.

+ +

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.

+ +
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
+

CookieExpires Directive

+ + + + + + + +
Description:Expiry time for the tracking cookie
Syntax:CookieExpires expiry-period
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_usertrack
+

When used, this directive sets an expiry time on the cookie + generated by the usertrack module. The expiry-period + can be given either as a number of seconds, or in the format + such as "2 weeks 3 days 7 hours". Valid denominations are: + years, months, weeks, days, hours, minutes and seconds. If the expiry + time is in any format other than one number indicating the + number of seconds, it must be enclosed by double quotes.

+ +

If this directive is not used, cookies last only for the + current browser session.

+ +
+
top
+

CookieName Directive

+ + + + + + + + +
Description:Name of the tracking cookie
Syntax:CookieName token
Default:CookieName Apache
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_usertrack
+

This directive allows you to change the name of the cookie + this module uses for its tracking purposes. By default the + cookie is named "Apache".

+ +

You must specify a valid cookie name; results are + unpredictable if you use a name containing unusual characters. + Valid characters include A-Z, a-z, 0-9, "_", and "-".

+ +
+
top
+

CookieStyle Directive

+ + + + + + + + +
Description:Format of the cookie header field
Syntax:CookieStyle + Netscape|Cookie|Cookie2|RFC2109|RFC2965
Default:CookieStyle Netscape
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_usertrack
+

This directive controls the format of the cookie header + field. The three formats allowed are:

+ +
    +
  • Netscape, which is the original but now deprecated + syntax. This is the default, and the syntax Apache has + historically used.
  • + +
  • Cookie or RFC2109, which is the syntax that + superseded the Netscape syntax.
  • + +
  • Cookie2 or RFC2965, which is the most + current cookie syntax.
  • +
+ +

Not all clients can understand all of these formats. but you + should use the newest one that is generally acceptable to your + users' browsers. At the time of writing, most browsers only fully + support CookieStyle Netscape.

+ +
+
top
+

CookieTracking Directive

+ + + + + + + + +
Description:Enables tracking cookie
Syntax:CookieTracking on|off
Default:CookieTracking off
Context:server config, virtual host, directory, .htaccess
Override:FileInfo
Status:Extension
Module:mod_usertrack
+

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, enabling + mod_usertrack will not + activate cookies.

+ + +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_version.html b/rubbos/app/apache2/manual/mod/mod_version.html new file mode 100644 index 00000000..03cb2547 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_version.html @@ -0,0 +1,13 @@ +# 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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: mod_version.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/mod/mod_version.html.en b/rubbos/app/apache2/manual/mod/mod_version.html.en new file mode 100644 index 00000000..f884ea84 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_version.html.en @@ -0,0 +1,150 @@ + + + +mod_version - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_version

+
+

Available Languages:  en  | + ja  | + ko 

+
+ + + + +
Description:Version dependent configuration
Status:Extension
ModuleIdentifier:version_module
SourceFile: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 + networks which have to deal with different httpd versions and + different configurations. It provides a new container -- <IfVersion>, which + allows a flexible version checking including numeric comparisons and + regular expressions.

+ +

Examples

+ <IfVersion 2.1.0>
+ + # current httpd version is exactly 2.1.0
+
+ </IfVersion>
+
+ <IfVersion >= 2.2>
+ + # use really new features :-)
+
+ </IfVersion> +

+ +

See below for further possibilities.

+
+

Directives

+ +
+ +
top
+

<IfVersion> Directive

+ + + + + + + +
Description:contains version dependent configuration
Syntax:<IfVersion [[!]operator] version> ... +</IfVersion>
Context:server config, virtual host, directory, .htaccess
Override:All
Status:Extension
Module:mod_version
+

The <IfVersion> section encloses + configuration directives which are executed only if the + httpd version + matches the desired criteria. For normal (numeric) comparisons the + version argument has the format + major[.minor[.patch]], e.g. + 2.1.0 or 2.2. minor and + patch are optional. If these numbers are omitted, they are + assumed to be zero. The following numerical operators are + possible:

+ + + + + + + + + + + + +
operatordescription
= or ==httpd version is equal
>httpd version is greater than
>=httpd version is greater or equal
<httpd version is less than
<=httpd version is less or equal
+ +

Example

+ <IfVersion >= 2.1>
+ + # this happens only in versions greater or
+ # equal 2.1.0.
+
+ </IfVersion> +

+ +

Besides the numerical comparison it is possible to match a regular + expression against the httpd version. There are two ways to write it:

+ + + + + + +
operatordescription
= or ==version has the form + /regex/
~version has the form + regex
+ +

Example

+ <IfVersion = /^2.1.[01234]$/>
+ + # e.g. workaround for buggy versions + + </IfVersion> +

+ +

In order to reverse the meaning, all operators can be preceded by an + exclamation mark (!):

+ +

+ <IfVersion !~ ^2.1.[01234]$>
+ + # not for those versions
+
+ </IfVersion> +

+ +

If the operator is omitted, it is assumed to be + =.

+ +
+
+
+

Available Languages:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_version.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mod_version.html.ja.utf8 new file mode 100644 index 00000000..5b6a39fb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_version.html.ja.utf8 @@ -0,0 +1,150 @@ + + + +mod_version - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache モジュール mod_version

+
+

Available Languages:  en  | + ja  | + ko 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + + +
説明:バージョン依存の設定
ステータス:Extension
モジュール識別子:version_module
ソースファイル:mod_version.c
互換性:バージョン 2.0.54 以降
+

概要

+ +

様々なバージョンの 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.02.2 となります。 + minorpatch は省略可能です。省略された場合は、 + 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/rubbos/app/apache2/manual/mod/mod_version.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/mod_version.html.ko.euc-kr new file mode 100644 index 00000000..539e32a3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_version.html.ko.euc-kr @@ -0,0 +1,150 @@ + + + +mod_version - Apache HTTP Server + + + + + + +
<-
+ +
+

ġ mod_version

+
+

:  en  | + ja  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + + + +
:
:Extension
:version_module
ҽ:mod_version.c
:ġ 2.0.54 ĺ
+

+ +

ٸ ٷ ū Ʈ + ׽Ʈ ϱ . + 񱳳 ǥ Ͽ ο ˻簡 + <IfVersion> + Ѵ.

+ +

+ <IfVersion 2.1.0>
+ + # Ȯ 2.1.0̴
+
+ </IfVersion>
+
+ <IfVersion >= 2.2>
+ + # ¥ ο Ѵ :-)
+
+ </IfVersion> +

+ +

ٸ Ʒ Ѵ.

+
+

þ

+ +
+ +
top
+

<IfVersion> þ

+ + + + + + + +
: ´
:<IfVersion [[!]operator] version> ... +</IfVersion>
:ּ, ȣƮ, directory, .htaccess
Override ɼ:All
:Extension
:mod_version
+

<IfVersion> + ϴ Ҷ þ + ´. Ϲ () version ƱԸƮ + 2.1.0̳ 2.2 + major[.minor[.patch]] + ̴. minor patch  ȴ. + ̵ ڰ ٸ 0̶ Ѵ. + operator ϴ.

+ + + + + + + + + + + + +
operator
= Ȥ ==
> ū
>=ũų
<
<=۰ų
+ +

+ <IfVersion >= 2.1>
+ + # 2.1.0 ũų
+ # Ѵ.
+
+ </IfVersion> +

+ +

񱳿ܿ ǥ Ͽ + ִ. ⿡ ΰ ִ.

+ + + + + + +
operator
= Ȥ ==version + /regex/ ̴
~version + regex ̴
+ +

+ <IfVersion = /^2.1.[01234]$/>
+ + # , ⿡ װ ִ Ư ذå ´ + + </IfVersion> +

+ +

տ ǥ(!) ǹ̸ ݴ + ؼѴ.

+ +

+ <IfVersion !~ ^2.1.[01234]$>
+ + # ƴϸ
+
+ </IfVersion> +

+ +

operator ϸ =̶ + Ѵ.

+ +
+
+
+

:  en  | + ja  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_vhost_alias.html b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html new file mode 100644 index 00000000..62ad4bdf --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.en b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.en new file mode 100644 index 00000000..45906081 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.en @@ -0,0 +1,314 @@ + + + +mod_vhost_alias - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache Module mod_vhost_alias

+
+

Available Languages:  en  | + tr 

+
+ + + +
Description:Provides for dynamically configured mass virtual +hosting
Status:Extension
ModuleIdentifier:vhost_alias_module
SourceFile:mod_vhost_alias.c
+

Summary

+ +

This module creates dynamically configured virtual hosts, by + allowing the IP address and/or the Host: header of + the HTTP request to be used as part of the pathname to + determine what files to serve. This allows for easy use of a + huge number of virtual hosts with similar configurations.

+ +

Note

+

If mod_alias or mod_userdir are + used for translating URIs to filenames, they will override the + directives of mod_vhost_alias described below. For + example, the following configuration will map + /cgi-bin/script.pl to + /usr/local/apache2/cgi-bin/script.pl in all cases:

+ +

+ ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
+ VirtualScriptAlias /never/found/%0/cgi-bin/ +

+
+
+ +
top
+
+

Directory Name Interpolation

+ + +

All the directives in this module interpolate a string into + a pathname. The interpolated string (henceforth called the + "name") may be either the server name (see the UseCanonicalName + directive for details on how this is determined) or the IP + address of the virtual host on the server in dotted-quad + format. The interpolation is controlled by specifiers inspired + by printf which have a number of formats:

+ + + + + + + + + + + + +
%%insert a %
%pinsert the port number of the virtual host
%N.Minsert (part of) the name
+ +

N and M are used to specify + substrings of the name. N selects from the + dot-separated components of the name, and M + selects characters within whatever N has selected. + M is optional and defaults to zero if it isn't + present; the dot must be present if and only if M + is present. The interpretation is as follows:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
0the whole name
1the first part
2the second part
-1the last part
-2the penultimate part
2+the second and all subsequent parts
-2+the penultimate and all preceding parts
1+ and -1+the same as 0
+ +

If N or M is greater than the number + of parts available a single underscore is interpolated.

+ +
top
+
+

Examples

+ + +

For simple name-based virtual hosts you might use the + following directives in your server configuration file:

+ +

+ UseCanonicalName Off
+ VirtualDocumentRoot /usr/local/apache/vhosts/%0 +

+ +

A request for + http://www.example.com/directory/file.html will be + satisfied by the file + /usr/local/apache/vhosts/www.example.com/directory/file.html. +

+ +

For a very large number of virtual hosts it is a good idea + to arrange the files to reduce the size of the + vhosts directory. To do this you might use the + following in your configuration file:

+ +

+ UseCanonicalName Off
+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2 +

+ +

A request for + http://www.domain.example.com/directory/file.html + will be satisfied by the file + /usr/local/apache/vhosts/example.com/d/o/m/domain/directory/file.html.

+ +

A more even spread of files can be achieved by hashing from the + end of the name, for example:

+ +

+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.-1/%2.-2/%2.-3/%2 +

+ +

The example request would come from + /usr/local/apache/vhosts/example.com/n/i/a/domain/directory/file.html.

+ +

Alternatively you might use:

+ +

+ VirtualDocumentRoot /usr/local/apache/vhosts/%3+/%2.1/%2.2/%2.3/%2.4+ +

+ +

The example request would come from + /usr/local/apache/vhosts/example.com/d/o/m/ain/directory/file.html.

+ +

For IP-based virtual hosting you might use the following in + your configuration file:

+ +

+ UseCanonicalName DNS
+ VirtualDocumentRootIP /usr/local/apache/vhosts/%1/%2/%3/%4/docs
+ VirtualScriptAliasIP /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin +

+ +

A request for + http://www.domain.example.com/directory/file.html + would be satisfied by the file + /usr/local/apache/vhosts/10/20/30/40/docs/directory/file.html + if the IP address of www.domain.example.com were + 10.20.30.40. A request for + http://www.domain.example.com/cgi-bin/script.pl would + be satisfied by executing the program + /usr/local/apache/vhosts/10/20/30/40/cgi-bin/script.pl.

+ +

If you want to include the . character in a + VirtualDocumentRoot directive, but it clashes with + a % directive, you can work around the problem in + the following way:

+ +

+ VirtualDocumentRoot /usr/local/apache/vhosts/%2.0.%3.0 +

+ +

A request for + http://www.domain.example.com/directory/file.html + will be satisfied by the file + /usr/local/apache/vhosts/domain.example/directory/file.html.

+ +

The LogFormat + directives %V and %A are useful + in conjunction with this module.

+
+
top
+

VirtualDocumentRoot Directive

+ + + + + + + +
Description:Dynamically configure the location of the document root +for a given virtual host
Syntax:VirtualDocumentRoot interpolated-directory|none
Default:VirtualDocumentRoot none
Context:server config, virtual host
Status:Extension
Module:mod_vhost_alias
+ +

The VirtualDocumentRoot directive allows you to + determine where Apache will find your documents based on the + value of the server name. The result of expanding + interpolated-directory is used as the root of the + document tree in a similar manner to the DocumentRoot directive's argument. + If interpolated-directory is none then + VirtualDocumentRoot is turned off. This directive + cannot be used in the same context as VirtualDocumentRootIP.

+ + +
+
top
+

VirtualDocumentRootIP Directive

+ + + + + + + +
Description:Dynamically configure the location of the document root +for a given virtual host
Syntax:VirtualDocumentRootIP interpolated-directory|none
Default:VirtualDocumentRootIP none
Context:server config, virtual host
Status:Extension
Module:mod_vhost_alias
+ +

The VirtualDocumentRootIP directive is like the + VirtualDocumentRoot + directive, except that it uses the IP address of the server end + of the connection for directory interpolation instead of the server + name.

+ +
+
top
+

VirtualScriptAlias Directive

+ + + + + + + +
Description:Dynamically configure the location of the CGI directory for +a given virtual host
Syntax:VirtualScriptAlias interpolated-directory|none
Default:VirtualScriptAlias none
Context:server config, virtual host
Status:Extension
Module:mod_vhost_alias
+ +

The VirtualScriptAlias directive allows you to + determine where Apache will find CGI scripts in a similar + manner to VirtualDocumentRoot does for other documents. It matches + requests for URIs starting /cgi-bin/, much like ScriptAlias + /cgi-bin/ would.

+ + +
+
top
+

VirtualScriptAliasIP Directive

+ + + + + + + +
Description:Dynamically configure the location of the cgi directory for +a given virtual host
Syntax:VirtualScriptAliasIP interpolated-directory|none
Default:VirtualScriptAliasIP none
Context:server config, virtual host
Status:Extension
Module:mod_vhost_alias
+ +

The VirtualScriptAliasIP directive is like the + VirtualScriptAlias + directive, except that it uses the IP address of the server end + of the connection for directory interpolation instead of the server + name.

+ + +
+
+
+

Available Languages:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.tr.utf8 new file mode 100644 index 00000000..4b07cb83 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mod_vhost_alias.html.tr.utf8 @@ -0,0 +1,305 @@ + + + +mod_vhost_alias - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/module-dict.html b/rubbos/app/apache2/manual/mod/module-dict.html new file mode 100644 index 00000000..d00e7b58 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/module-dict.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/module-dict.html.en b/rubbos/app/apache2/manual/mod/module-dict.html.en new file mode 100644 index 00000000..2985311f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/module-dict.html.en @@ -0,0 +1,119 @@ + + + +Terms Used to Describe Modules - Apache HTTP Server + + + + + +
<-
+

Terms Used to Describe Modules

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ +

This document describes the terms that are used to describe + each Apache module.

+
+ +
top
+
+

Description

+ +

A brief description of the purpose of the module.

+
top
+
+

Status

+ +

This indicates how tightly bound into the Apache Web server + the module is; in other words, you may need to recompile the + server in order to gain access to the module and its + functionality. Possible values for this attribute are:

+ +
+
MPM
+ +
A module with status "MPM" is a Multi-Processing Module. Unlike the + other types of modules, Apache must have one and only one MPM + in use at any time. This type of module is responsible for + basic request handling and dispatching.
+ +
Base
+ +
A module labeled as having "Base" status is compiled and + loaded into the server by default, and is therefore normally + available unless you have taken steps to remove the module + from your configuration.
+ +
Extension
+ +
A module with "Extension" status is not normally compiled + and loaded into the server. To enable the module and its + functionality, you may need to change the server build + configuration files and re-compile Apache.
+ +
Experimental
+ +
"Experimental" status indicates that the module is + available as part of the Apache kit, but you are on your own + if you try to use it. The module is being documented for + completeness, and is not necessarily supported.
+ +
External
+ +
Modules which are not included with the base Apache + distribution ("third-party modules") may use the "External" + status. We are not responsible for, nor do we support such + modules.
+
+
top
+
+

Source File

+ +

This quite simply lists the name of the source file which + contains the code for the module. This is also the name used by + the <IfModule> + directive.

+
top
+
+

Module Identifier

+ +

This is a string which identifies the module for use in the + LoadModule directive when + dynamically loading modules. In particular, it is the name of + the external variable of type module in the source file.

+
top
+
+

Compatibility

+ +

If the module was not part of the original Apache version 2 + distribution, the version in which it was introduced should be + listed here. In addition, if the module is limited to + particular platforms, the details will be listed here.

+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/module-dict.html.ja.utf8 b/rubbos/app/apache2/manual/mod/module-dict.html.ja.utf8 new file mode 100644 index 00000000..8c8df156 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/module-dict.html.ja.utf8 @@ -0,0 +1,121 @@ + + + +Apache モジュールの解説で使用する用語 - Apache HTTP サーバ + + + + + +
<-
+

Apache モジュールの解説で使用する用語

+
+

Available Languages:  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 + の配布に含まれていなかった場合、 + そのモジュールが導入されたバージョンがここに書かれています。 + また、モジュールが特定のプラットフォームにのみ存在するときも + 詳細はここに書かれています。

+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/module-dict.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/module-dict.html.ko.euc-kr new file mode 100644 index 00000000..5d58cfcb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/module-dict.html.ko.euc-kr @@ -0,0 +1,111 @@ + + + + ϱ - Apache HTTP Server + + + + + +
<-
+

ϱ

+
+

:  en  | + ja  | + ko  | + tr 

+
+ +

ġ ϱ +  Ѵ.

+
+
  • +
  • +
  • ҽ
  • +
  • +
  • +
+
top
+
+

+ +

.

+
top
+
+

+ +

ġ 󸶳 ִ Ÿ. + , Ư ϱؼ ٽ + ؾ 찡 ִ. Ӽ :

+ +
+
MPM
+ +
° "MPM" ó + ̴. ٸ ޸ ġ + MPM Ѵ. ̷ ⺻ û ó + й踦 Ѵ.
+ +
Base
+ +
° "Base" ⺻ ϵǹǷ, + ʴ ִ.
+ +
Extension
+ +
° "Extension" ϵ + ʴ´. Ϸ + ϰ ġ ٽ ؾ Ѵ.
+ +
Experimental
+ +
"Experimental" ´ ġ Ե, + Ϸ ؾ Ѵ. ⿡ , + Ѵٴ ƴϴ.
+ +
External
+ +
"External" ´ ⺻ ġ Ե + ("ڰ ")̴. 츮 ̷ ⿡ å + ʴ´.
+
+
top
+
+

ҽ

+ +

ϰ ؼ ҽڵ尡 ִ ҽϸ̴. + <IfModule> + þ ϴ ̸̱⵵ ϴ.

+
top
+
+

+ +

Īϴ ڿ, о̴ + LoadModule þ + Ѵ. Ȯ ϸ ҽϿ module ܺκ + ̸̴.

+
top
+
+

+ +

ġ 2 Ե ʾҴٸ, + ó Ұ ˷ش. , Ư + ÷̶ Ѵ.

+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/module-dict.html.tr.utf8 b/rubbos/app/apache2/manual/mod/module-dict.html.tr.utf8 new file mode 100644 index 00000000..03f7936f --- /dev/null +++ b/rubbos/app/apache2/manual/mod/module-dict.html.tr.utf8 @@ -0,0 +1,91 @@ + + + +Modülleri Tanımlamakta Kullanılan Terimler - Apache HTTP Sunucusu + + + + + +
<-
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_common.html b/rubbos/app/apache2/manual/mod/mpm_common.html new file mode 100644 index 00000000..af899fa5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mpm_common.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_common.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_common.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_common.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/mpm_common.html.de b/rubbos/app/apache2/manual/mod/mpm_common.html.de new file mode 100644 index 00000000..664f14c0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html.de @@ -0,0 +1,978 @@ + + + +mpm_common - Apache HTTP Server + + + + + + +
<-
+ +
+

Allgemeine Direktiven der Apache-MPMs

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen 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
+
+ + +
top
+

AcceptMutex-Direktive

+ + + + + + + +
Beschreibung:Vom Apache verwendete Methode zur Serialisierung mehrerer + Kindprozesse, die Anfragen an Netzwerk-Sockets entgegennehmen.
Syntax:AcceptMutex Default|Methode
Voreinstellung:AcceptMutex Default
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, perchild, prefork, threadpool, worker
+

Die Direktive AcceptMutex bestimmt die + Methode, die der Apache zur Serialisierung mehrerer Kindprozesse + 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 abhngig. Lesen Sie bitte Perfomance-Hinweise fr + weitere Details.

+ +

Wenn die Direktive auf Default eingestellt ist, dann + wird die zur Kompilierungszeit gewhlte Voreinstellung verwendet. + Weitere mgliche Methoden sind unten angegeben. Beachten Sie, dass + nicht alle Methoden auf allen Plattformen verfgbar sind. Wird + eine Methode angegeben, die nicht verfgbar ist, dann wird + eine Nachricht in das Fehlerprotokoll geschrieben, welche die + verfgbaren Methoden auflistet.

+ +
+
flock
+
verwendet die Systemfunktion flock(2), um die + durch die LockFile-Direktive definierte Datei zu sperren.
+ +
fcntl
+
verwendet die Systemfunktion fcntl(2), um die + durch die LockFile-Direktive definierte Datei zu sperren.
+ +
posixsem
+
verwendet POSIX-kompatible Semaphore, um den Mutex zu + implementieren.
+ +
pthread
+
verwendet gem der POSIX-Thread-Spezifikation + implementierte POSIX-Mutexe.
+ +
sysvsem
+
verwendet Semaphoren des SysV-Typs, um den Mutex zu + implementieren.
+
+ +

Um die bei der Kompilierung gewhlte Voreinstellung fr + Ihr System herauszufinden, knnen Sie Ihr LogLevel auf debug setzen. Dann wird der + voreingestellte AcceptMutex ins ErrorLog geschrieben.

+ +
+
top
+

BS2000Account-Direktive

+ + + + + + + +
Beschreibung:Bestimmt den nicht-privilegierten Account auf +BS2000-Maschinen
Syntax:BS2000Account Account
Kontext:Serverkonfiguration
Status:MPM
Modul:perchild, prefork
Kompatibilitt:Nur fr BS2000-Maschinen verfgbar
+

Die Direktive BS2000Account ist nur + fr BS2000-Hosts verfgbar. Sie muss dazu verwendet werden, + den Account fr den nicht-privilegierten Apache-Server-Benutzer + (der durch die Direktive User + eingestellt wird) zu bestimmen. Dies wird vom BS2000-POSIX-Subsystem + bentigt (um die zugrundeliegende BS2000-Anwendungsumgebung + mittels eines Sub-LOGONs zu wechseln), um zu verhindern, dass + CGI-Skripte auf Ressourcen des privilegierten Accounts zugreifen, der + den Server gestartet hat, blicherweise SYSROOT.

+ +

Anmerkung

+

Es kann nur eine BS2000Account-Direktive verwendet + werden.

+
+ +

Siehe auch

+ +
+
top
+

CoreDumpDirectory-Direktive

+ + + + + + + +
Beschreibung:Verzeichnis, in das der Apache zu wechseln versucht, bevor er + einen Hauptspeicherauszug erstellt
Syntax:CoreDumpDirectory Verzeichnis
Voreinstellung:Fr 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 + so genannten Core-Dump) erstellt. Die Voreinstellung ist das + ServerRoot-Verzeichnis. Da dieses + jedoch nicht fr den Benutzer beschreibbar sein soll, unter dem + der Server luft, werden normalerweise keine + Hauptspeicherauszge geschrieben. Wenn Sie zum Debuggen + einen Hauptspeicherauszug haben mchten, knnen Sie + ihn mit dieser Direktive an einem anderen Ort ablegen lassen.

+ +

Hauptspeicherauszge unter Linux

+

Wenn Apache als root startet und zu einem anderen Benutzer + wechselt, deaktiviert der Linux-Kernel Hauptspeicherauszge + auch dann, wenn der Prozess in dem Verzeichnis schreiben darf. Ab Linux + 2.4 reaktiviert Apache (ab 2.0.46) Hauptspeicherauszge wieder, + jedoch nur dann, wenn Sie explizit + CoreDumpDirectory konfigurieren.

+
+ +
+
top
+

EnableExceptionHook-Direktive

+ + + + + + + + +
Beschreibung:Aktiviert einen Hook, der nach einem Absturz noch +Ausnahmefehler behandeln lassen kann
Syntax:EnableExceptionHook On|Off
Voreinstellung:EnableExceptionHook Off
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, perchild, prefork, threadpool, worker
Kompatibilitt:Verfgbar seit Version 2.0.49
+

Diese Direktive ist aus Sicherheitsgrnden nur verfgbar, + wenn der Server mit der Option --enable-exception-hook + konfiguriert wurde. Sie aktiviert einen Hook, der es externen Modulen + erlaubt, sich dort einzuhngen und nach dem Absturz eines + Kindprozesses noch Aktionen durchzufhren.

+ +

Es existieren bereits zwei Module, mod_whatkilledus und + mod_backtrace, welche diesen Hook verwenden. Weitere + Informationen hierzu finden Sie auf Jeff Trawicks EnableExceptionHook-Seite.

+ +
+
top
+

Group-Direktive

+ + + + + + + + +
Beschreibung:Benutzergruppe, unter welcher der Server Anfragen + beantwortet
Syntax:Group Unix-Gruppe
Voreinstellung:Group #-1
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker
Kompatibilitt:Seit Apache 2.0 nur in der globalen Server-Konfiguration + gltig
+

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 knnen und statt + dessen weiter mit der Gruppe des ursprnglichen Benutzers + laufen. Unix-Gruppe kann sein:

+ +
+
Ein Gruppenname
+
Verweist auf die durch den Namen angegebene Gruppe.
+ +
# gefolgt von einer Gruppennummer.
+
Verweist auf die durch ihre Nummer angegebene Gruppe.
+
+ +

Beispiel

+ Group www-group +

+ +

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 mglich + oder gewnscht.

+ +

Sicherheit

+

Setzen Sie Group (oder User) nicht auf root, + solange Sie nicht ganz genau wissen, was Sie tun und welche Gefahren + Sie eingehen.

+
+ +

Wichtiger Hinweis: Die Verwendung der Direktive innerhalb von + <VirtualHost> + wird nicht lnger untersttzt. Benutzen Sie SuexecUserGroup um Ihren Server + fr suexec einzurichten.

+ +

Anmerkung

+

Obwohl die Direktive Group in den MPMs + beos und mpmt_os2 existiert, ist + sie dort tatschlich eine Leeranweisung und exisitert nur + aus Kompatibilittsgrnden.

+
+ +
+
top
+

Listen-Direktive

+ + + + + + + +
Beschreibung:IP-Adressen und Ports, an denen der Server lauscht
Syntax:Listen [IP-Addresse:]Port
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
Kompatibilitt:Seit Apache 2.0 vorgeschrieben
+

Die Direktive Listen weist den Apache an, + nur an den angegebenen IP-Adressen oder Ports zu lauschen. + Standardmig 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 + gegenber frheren Versionen des Apache.

+ +

Die Direktive Listen weist den Server an, + ankommende Anfragen am angegebenen Port oder der + Kombination aus Adresse und Port entgegenzunehmen. Wenn nur eine Portnummer + angegeben ist, dann lauscht der Server am angegebenen Port an allen + Interfaces. Wenn sowohl eine IP-Adresse als auch ein Port angegeben + sind, dann lauscht der Server am angegeben Port und Interface.

+ +

Es knnen 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 aufgefhrten Adressen und Ports.

+ +

Um beispielsweise den Server Verbindungen an den beiden Ports 80 und + 8000 annehmen zu lassen, verwenden Sie:

+ +

+ Listen 80
+ Listen 8000 +

+ +

Um den Server Verbindungen an zwei angegebenen Interfaces und Ports + annehmen zu lassen, verwenden Sie:

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

IPv6-Adressen mssen wie in dem folgenden Beispiel in eckige + Klammern eingeschlossen werden:

+ +

+ Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

+ +

Fehlermglichkeit

+ Mehrere Listen-Direktiven fr gleiche + IP-Adresse und Port fhren zur Fehlermeldung + Address already in use (Anm.d..: Adresse schon in + Benutzung). +
+ +

Siehe auch

+ +
+
top
+

ListenBackLog-Direktive

+ + + + + + + +
Beschreibung:Maximale Lnge der Warteschlange schwebender + Verbindungen
Syntax:ListenBacklog backlog
Voreinstellung:ListenBacklog 511
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

Die maximale Lnge der Warteschlange schwebender Verbindungen. + blicherweise ist keine Feineinstellung notwendig oder sinnvoll, + auf einigen System kann es jedoch gewnscht sein, diesen Wert bei + TCP-SYN-Angriffen zu erhhen. 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 fr backlog angegeben ist, jedoch einen Wert basierend auf der + Angabe (normalerweiseweise jedoch grer als diese) verwenden.

+ +
+
top
+

LockFile-Direktive

+ + + + + + + +
Beschreibung:Ablageort der Lock-Datei fr die Serialisierung von +entgegengenommenen Anfragen
Syntax:LockFile Dateiname
Voreinstellung:LockFile logs/accept.lock
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, perchild, prefork, threadpool, worker
+

Die Direktive LockFile legt den Pfad zur + Lock-Datei fest, die verwendet wird, wenn der Apache mit einer der + AcceptMutex-Einstellungen + fcntl oder flock verwendet wird. Die Anweisung + sollte normalerweise bei der Voreinstellung belassen werden. + 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 angehngt.

+ +

Sicherheit

+

Es ist am besten, die Ablage in einem allgemein (Anm.d..: fr + jedermann) beschreibbaren + Verzeichnis wie /var/tmp zu vermeiden, da + ein Denial-of-Servide-Angriff gestartet werden knnte und der + Server am Start gehindert werden knnte, indem eine Lock-Datei + mit dem gleichen Namen erstellt wird, wie der Server sie zu erstellen + versuchen wrde.

+
+ +

Siehe auch

+ +
+
top
+

MaxClients-Direktive

+ + + + + + + +
Beschreibung:Maximale Anzahl der Kindprozesse, die zur Bedienung von Anfragen + gestartet wird
Syntax:MaxClients Anzahl
Voreinstellung:Fr Details siehe Beschreibung
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, prefork, threadpool, worker
+

Die Direktive MaxClients setzt die Grenze + fr 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.

+ +

Fr Server ohne Thread-Untersttzung (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 erhhen, muss auch ServerLimit angehoben werden.

+ +

Bei Servern mit Thread-Untersttzung und bei Hybrid-Servern + (z.B. beos oder worker) + begrenzt MaxClients die Gesamtzahl der Threads, + die fr die Bedienung von Anfragen verfgbar sind. + Die Voreinstellung fr beos ist 50. + Bei Hybrid-MPMs ist die Voreinstellung 16 (ServerLimit) multipliziert mit + dem Wert 25 (ThreadsPerChild). Um MaxClients + auf einen Wert zu erhhen, der mehr als 16 Prozesse erfordert, + mssen Sie daher auch ServerLimit anheben.

+ +
+
top
+

MaxMemFree-Direktive

+ + + + + + + +
Beschreibung:Maximale Menge des Arbeitsspeichers, den die + Haupt-Zuteilungsroutine verwalten darf, ohne free() + aufzurufen
Syntax:MaxMemFree KBytes
Voreinstellung:MaxMemFree 0
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, prefork, threadpool, worker, mpm_winnt
+

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 eingeschrnkt.

+ +
+
top
+

MaxRequestsPerChild-Direktive

+ + + + + + + +
Beschreibung:Obergrenze fr die Anzahl von Anfragen, die ein einzelner + Kindprozess whrend seines Lebens bearbeitet
Syntax:MaxRequestsPerChild number
Voreinstellung:MaxRequestsPerChild 10000
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

Die Direktive MaxRequestsPerChild legt die + Grenze fr die Anzahl von Anfragen fest, die ein einzelner + Kinprozess whrend seines Lebens bearbeitet. Nach + MaxRequestsPerChild Anfragen stirbt der + Kindprozess. Wenn MaxRequestsPerChild + 0 ist, endet der Prozess niemals.

+ +

Abweichende Voreinstellungen

+

Die Voreinstellung fr mpm_netware und + mpm_winnt ist 0.

+
+ +

Die Begrenzung von MaxRequestsPerChild auf einen + Wert ungleich Null hat zwei vorteilhafte Auswirkungen:

+ +
    +
  • sie begrenzt die Menge an Arbeitsspeicher, die ein Prozess + durch (versehentliche) Speicherlecks verbrauchen kann.
  • + +
  • das Festlegen einer endlichen Lebensdauer von Prozessen hilft, die + Anzahl von Prozessen zu reduzieren, wenn die Serverlast + zurckgeht.
  • +
+ +

Anmerkung

+

Bei KeepAlive-Anfragen + wird nur die erste Anfrage fr diese begrenzung gezhlt. + Eigentlich wird nur die Begrenzung fr die Anzahl der + Verbindungen pro Kindprozess gendert.

+
+ +
+
top
+

MaxSpareThreads-Direktive

+ + + + + + + +
Beschreibung:Maximale Anzahl unbeschftigter Threads
Syntax:MaxSpareThreads Anzahl
Voreinstellung:Fr Details siehe Beschreibung
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Maximale Anzahl unbeschftigter Threads. Die verschiedenen MPMs + behandeln diese Anweisung unterschiedlich.

+ +

Die Voreinstellung fr perchild ist + MaxSpareThreads 10. Das MPM berwacht die Anzahl der + unbeschftigten Threads auf der Basis einzelner Kindprozesse. Wenn + zu viele unbeschftigte Threads in einem Kindprozess existieren, + beendet der Server Threads innerhalb dieses Kindprozesses.

+ +

Die Voreinstellung fr worker, + leader und threadpool ist + MaxSpareThreads 250. Diese MPMs behandeln Threads + auf einer serverweiten Basis. Wenn zu viele unbeschftigte Threads + im Server existieren, dann werden solange Kindprozesse beendet, bis + die Anzahl der unbeschftigten Threads kleiner als der + angegebene Wert ist.

+ +

Die Voreinstellung fr mpm_netware ist + MaxSpareThreads 100. Da dieses MPM nur einen einzigen + Prozess ausfhrt, ist die Zhlung berschssiger + Threads ebenfalls serverweit.

+ +

beos and mpmt_os2 arbeiten + hnlich wie mpm_netware. Die Voreinstellung + fr beos ist MaxSpareThreads 50. + Die Voreinstellung fr mpmt_os2 ist + 10.

+ +

Restriktionen

+

Der Wertebereich von MaxSpareThreads + ist eingeschrnkt. Apache korrigiert den angegebenen Wert + automatisch gem den folgenden Regeln:

+ +
+ +

Siehe auch

+ +
+
top
+

MinSpareThreads-Direktive

+ + + + + + + +
Beschreibung:Minimale Anzahl unbeschftigter Threads, die zur + Bedienung von Anfragespitzen zur Verfgung stehen
Syntax:MinSpareThreads Anzahl
Voreinstellung:Fr Details siehe Beschreibung
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Minimale Anzahl unbeschftigter Threads, um Anfragespitzen + zu bedienen. Die verschiedenen MPMs behandeln die Anweisung + unterschiedlich.

+ +

perchild verwendet die Voreinstellung + MinSpareThreads 5 und berwacht die Anzahl der + unbeschftigten Threads auf der Basis einzelner Kindprozesse. Wenn + in einem Kindprozess nicht gengend unbeschftigte + 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 unbeschftigte Threads auf Ihrem + System.

+ +

worker, leader und + threadpool verwenden eine Voreinstellung von + MinSpareThreads 75 und behandeln unbeschftigte + Threads auf serverweiter Basis. Wenn nicht gengend + unbeschftigte Threads im Server vorhanden sind, dann + werden solange Kindprozesse erzeugt, bis die Anzahl unbeschftigter + Threads grer 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 + fr beos ist MinSpareThreads 1. + Die Voreinstellung fr mpmt_os2 ist + 5.

+ + +

Siehe auch

+ +
+
top
+

PidFile-Direktive

+ + + + + + + +
Beschreibung:Datei, in welcher der Server die Prozess-ID des Daemons +ablegt
Syntax:PidFile Dateiname
Voreinstellung:PidFile logs/httpd.pid
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

Die Direktive PidFile bestimmt die Datei, + in welcher der Server die Prozess-ID des Daemons ablegt. Wenn der + Dateiname nicht absolut angegeben wird, wird er relativ zu + ServerRoot interpretiert.

+ +

Beispiel

+ PidFile /var/run/apache.pid +

+ +

Es ist oft hilfreich, dem Server ein Signal senden zu knnen, + damit er seine ErrorLogs und + TransferLogs + schliet 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 + und Sicherheit.

+ +

Anmerkung

+

Ab Apache 2 wird empfohlen, nur das Skript apachectl zum (Neu-)Starten + und Stoppen des Servers zu verwenden.

+
+ +
+
top
+

ReceiveBufferSize-Direktive

+ + + + + + + +
Beschreibung:Gre des TCP-Empfangspuffers
Syntax:ReceiveBufferSize Bytes
Voreinstellung:ReceiveBufferSize 0
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

Der Server setzt die Gre des TCP-Empfangspuffers auf die + angegebene Anzahl Bytes.

+ +

Wird der Wert auf 0 gesetzt, dann verwendet der Server + die Voreinstellung des Betriebssystems.

+ +
+
top
+

ScoreBoardFile-Direktive

+ + + + + + + +
Beschreibung:Ablageort der Datei, die zur Speicherung von Daten zur + Koordinierung der Kindprozesse verwendet wird
Syntax:ScoreBoardFile Dateipfad
Voreinstellung:ScoreBoardFile logs/apache_status
Kontext:Serverkonfiguration
Status:MPM
Modul:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
+

Apache verwendet ein Scoreboard zur Kommunikation zwischen + seinen Eltern- und Kindprozessen. Einige Architekturen erfordern + eine Datei zur Untersttzung 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 anschlieend die Datei auf + der Festplatte zu erstellen (Verwendung von Datei-basiertem + Shared-Memory). Die Angabe dieser Direktive veranlat den + Apache stets, die Datei auf der Festplatte zu erstellen.

+ +

Beispiel

+ ScoreBoardFile /var/run/apache_status +

+ +

Datei-basiertes Shared-Memory ist fr Applikationen von + Drittanbietern hilfreich, die direkten Zugriff auf das Scoreboard + bentigen.

+ +

Wenn Sie eine ScoreBoardFile-Anweisung + verwenden, erreichen Sie eventuell eine hhere Geschwindigkeit, wenn + Sie die Datei auf einer RAM-Disk ablegen. Achten Sie darauf, die + gleichen Warnungen wie ber die Ablage von Protokolldateien und + Sicherheit zu beherzigen.

+ +

Siehe auch

+ +
+
top
+

SendBufferSize-Direktive

+ + + + + + + +
Beschreibung:Gre des TCP-Sendepuffers
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 Gre des TCP-Sendepuffers auf die + angegebene Anzahl Bytes. Dies ist sehr hilfreich, um Voreinstellungen + alter Standardbetriebssysteme fr Hochgeschwindigkeitsverbindungen + mit hoher Latenzzeit anzuheben (d.h. 100ms oder so, wie bei + Interkontinentalverbindungen).

+ +

Wird der Wert auf 0 gesetzt, dann verwendet der Server + die Voreinstellung des Betriebssystems.

+ +
+
top
+

ServerLimit-Direktive

+ + + + + + + +
Beschreibung:Obergrenze fr die konfigurierbare Anzahl von + Prozessen
Syntax:ServerLimit Anzahl
Voreinstellung:Fr Details siehe Beschreibung
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, perchild, prefork, threadpool, worker
+

Bei dem MPM prefork bestimmt die Direktive + den whrend der Lebensdauer des Apache-Prozesses maximal + einstellbaren Wert fr MaxClients. Beim MPM + worker bestimmt die Direktive in Verbindung mit + ThreadLimit den Maximalwert + fr MaxClients + fr die Lebensdauer des Apache-Prozesses. Jeder Versuch, diese + Anweisung whrend eines Neustarts zu ndern, wird ignoriert. + MaxClients kann jedoch + whrend eines Neustarts gendert werden.

+ +

Lassen Sie besondere Vorsicht bei der Verwendung dieser Direktive + walten. Wenn ServerLimit auf einen Wert deutlich + hher als notwendig gesetzt wird, wird zustzliches, + unbenutztes Shared-Memory belegt. Wenn sowohl + ServerLimit als auch MaxClients auf Werte gesetzt werden, die + grer sind, als das System sie handhaben kann, dann kann + der Apache mglicherweise 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 mssen. Setzen Sie den + Wert nicht hher als den Wert, den Sie fr MaxClients angeben mchten.

+ +

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 hher, als die Anzahl der Serverprozesse, + die dafr erforderlich ist, was Sie bei MaxClients und + ThreadsPerChild angeben + mchten.

+ +

Verwenden Sie die Direktive beim MPM perchild nur, + wenn Sie NumServers auf einen + Wert grer als 8 (Voreinstellung) setzen mssen.

+ +

Anmerkung

+

Eine feste Begrenzung von ServerLimit 20000 ist in den + Server einkompiliert. Dies soll unangenehme Effekte durch Tippfehler + verhindern.

+
+ +

Siehe auch

+ +
+
top
+

StartServers-Direktive

+ + + + + + + +
Beschreibung:Anzahl der Kindprozesse des Servers, die beim Start erstellt + werden
Syntax:StartServers Anzahl
Voreinstellung:Fr 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 abhngig von der Last + dynamisch kontrolliert wird, besteht normalerweise wenig + Grund fr eine nderung dieses Parameters.

+ +

Die Voreinstellung unterscheidet sich von MPM zu MPM. Bei + leader, threadpool und + worker ist die Voreinstellung + StartServers 3. Die Voreinstellung bei + prefork ist 5 und bei + mpmt_os2 2.

+ +
+
top
+

StartThreads-Direktive

+ + + + + + + +
Beschreibung:Anzahl der Threads, die beim Start erstellt werden
Syntax:StartThreads Anzahl
Voreinstellung:Fr 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 abhngig von der Last dynamisch kontrolliert wird, + besteht normalerweise wenig Grund fr eine nderung + dieses Parameters.

+ +

Die Voreinstellung fr perchild ist + StartThreads 5. Die Direktive setzt whrend des + Starts die Anzahl der Threads pro Prozess.

+ +

Die Voreinstellung bei mpm_netware ist + StartThreads 50. Da hier lediglich ein einzelner Prozess + existiert, ist dies die Gesamtzahl der Threads, die beim Start + erstellt wird, um Anfragen zu bedienen.

+ +

Die Voreinstellung fr beos ist StartThreads + 10. Die Einstellung reflektiert ebenfalls die Gesamtzahl der Threads, die + beim Start erstellt werden, um Anfragen zu bedienen.

+ +
+
top
+

ThreadLimit-Direktive

+ + + + + + + + +
Beschreibung:Bestimmt die Obergrenze der konfigurierbaren Anzahl von Threads + pro Kindprozess
Syntax:ThreadLimit Anzahl
Voreinstellung:Fr Details siehe Beschreibung
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, mpm_winnt, perchild, threadpool, worker
Kompatibilitt:Verfgbar fr mpm_winnt ab + Apache 2.0.41
+

Die Direktive bestimmt den whrend der Lebensdauer des + Apache-Prozesses maximal einstellbaren Wert fr + ThreadsPerChild. Jeder + Versuch, diese Direktive whrend eines Neustarts zu ndern, + wird ignoriert. ThreadsPerChild + kann jedoch whrend 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 hher als ThreadsPerChild gesetzt wird, wird + zustzliches, ungenutztes Shared-Memory belegt. Wenn sowohl + ThreadLimit als auch ThreadsPerChild auf Werte gesetzt werden, + die grer sind, als das System sie handhaben kann, dann kann + der Apache mglicherweise nicht starten oder das System kann + instabil werden. Setzen Sie den Wert dieser Direktive nicht hher + als Ihre grte erwartete Einstellung fr + ThreadsPerChild + whrend der aktuellen Ausfhrung des Apache.

+ +

Die Voreinstellung fr ThreadLimit ist + 1920 wenn sie zusammen mit mpm_winnt + verwendet wird, und 64 bei der Verwendung mit anderen + MPMs.

+ +

Anmerkung

+

Eine feste Begrenzung von ThreadLimit 20000 + (oder ThreadLimit 15000 bei mpm_winnt) + ist in den Server einkompiliert. Dies soll unangenehme Effekte durch + Tippfehler verhindern.

+
+ +
+
top
+

ThreadsPerChild-Direktive

+ + + + + + + +
Beschreibung:Anzahl der Threads, die mit jedem Kindprozess gestartet + werden
Syntax:ThreadsPerChild Anzahl
Voreinstellung:Fr 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 spter 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 bewltigen. 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 bewltigen.

+ +

Die Voreinstellung fr ThreadsPerChild ist + 64, wenn mpm_winnt verwendet wird, und + 25 bei der Verwendung der anderen MPMs.

+ +
+
top
+

User-Direktive

+ + + + + + + + +
Beschreibung:Die Benutzerkennung, unter welcher der Server Anfragen + beantwortet
Syntax:User Unix-User-ID
Voreinstellung:User #-1
Kontext:Serverkonfiguration
Status:MPM
Modul:leader, perchild, prefork, threadpool, worker
Kompatibilitt:Seit Apache 2.0 nur in der globalen Server-Konfiguration +gltig
+

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 ursprnglichen Benutzerkennung laufen. + Wenn Sie den Server als root starten, dann ist es normal, + dass der Elternprozess als root weiterluft. + Unix-User-ID kann sein:

+ +
+
Ein Benutzername
+
Verweist auf den durch Namen angegebenen Benutzer.
+ +
# gefolgt von einer Benutzernummer.
+
Verweist auf einen durch eine Nummer angegebenen Benutzer.
+
+ +

Der Benutzer sollte keine Rechte besitzen, die dazu fhren, + dass er in der Lage ist, auf Dateien zuzugreifen, die nicht dafr + bestimmt sind, fr die Auenwelt sichtbar zu sein. + Gleichermaen sollte der Benutzer nicht in der Lage sein, + Code auszufhren, der nicht fr HTTP-Anfragen bestimmt ist. + Es wird empfohlen, einen neuen Benutzer und eine neue Gruppe speziell + zur Ausfhrung des Servers zu erstellen. Einige Administratoren + verwenden den Benutzer nobody. Dies ist jedoch nicht + immer wnschenswert, da der Benuter nobody andere + Rechte auf dem System besitzen kann.

+ +

Sicherheit

+

Setzen Sie User (oder Group) nicht auf root, + solange Sie nicht genau wissen, was Sie tun, und welches die Gefahren + sind.

+
+ +

Beim MPM perchild, das dafr gedacht ist, + virtuelle Hosts unter verschiedenen Benutzerkennungen auszufhren, + bestimmt die Direktive User die + Benutzerkennung fr den Hauptserver und bildet den Rckfallwert + fr <VirtualHost>-Abschnitte ohne eine + AssignUserID-Anweisung.

+ +

Wichtiger Hinweis: Die Verwendung dieser Direktive innerhalb von + <VirtualHost> wird + nicht mehr untersttzt. Benutzen Sie SuexecUserGroup, um Ihren Server + fr suexec einzurichten.

+ +

Anmerkung

+

Obwohl die Direktive User in den MPMs + beos und mpmt_os2 existiert, ist + sie dort tatschlich eine Leeranweisung und exisitert nur + aus Kompatibilittsgrnden.

+
+ +
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_common.html.en b/rubbos/app/apache2/manual/mod/mpm_common.html.en new file mode 100644 index 00000000..5b3bbc48 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html.en @@ -0,0 +1,896 @@ + + + +mpm_common - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM Common Directives

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ +
Description:A collection of directives that are implemented by +more than one multi-processing module (MPM)
Status:MPM
+
+ + +
top
+

AcceptMutex Directive

+ + + + + + + +
Description:Method that Apache uses to serialize multiple children +accepting requests on network sockets
Syntax:AcceptMutex Default|method
Default:AcceptMutex Default
Context:server config
Status:MPM
Module:leader, perchild, prefork, threadpool, worker
+

The AcceptMutex directives sets the + method that Apache uses to serialize multiple children accepting + requests on network sockets. Prior to Apache 2.0, the method was + selectable only at compile time. The optimal method to use is + highly architecture and platform dependent. For further details, + see the performance tuning + documentation.

+ +

If this directive is set to Default, then the + compile-time selected default will be used. Other possible + methods are listed below. Note that not all methods are + available on all platforms. If a method is specified which is + not available, a message will be written to the error log + listing the available methods.

+ +
+
flock
+
uses the flock(2) system call to lock the + file defined by the LockFile directive.
+ +
fcntl
+
uses the fcntl(2) system call to lock the + file defined by the LockFile directive.
+ +
posixsem
+
uses POSIX compatible semaphores to implement the mutex.
+ +
pthread
+
uses POSIX mutexes as implemented by the POSIX Threads + (PThreads) specification.
+ +
sysvsem
+
uses SySV-style semaphores to implement the mutex.
+
+ +

If you want to find out the compile time chosen default + for your system, you may set your LogLevel to debug. Then the default AcceptMutex will be written into the ErrorLog.

+ +
+
top
+

BS2000Account Directive

+ + + + + + + +
Description:Define the non-privileged account on BS2000 +machines
Syntax:BS2000Account account
Context:server config
Status:MPM
Module:perchild, prefork
Compatibility:Only available for BS2000 machines
+

The BS2000Account directive is available for + BS2000 hosts only. It must be used to define the account number for + the non-privileged apache server user (which was configured using the + User directive). This is + required by the BS2000 POSIX subsystem (to change the underlying BS2000 + task environment by performing a sub-LOGON) to prevent CGI scripts + from accessing resources of the privileged account which started the + server, usually SYSROOT.

+ +

Note

+

Only one BS2000Account directive can be used.

+
+ +

See also

+ +
+
top
+

CoreDumpDirectory Directive

+ + + + + + + +
Description:Directory where Apache attempts to +switch before dumping core
Syntax:CoreDumpDirectory directory
Default:See usage for the default setting
Context:server config
Status:MPM
Module:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
+

This controls the directory to which Apache attempts to + switch before dumping core. The default is in the + ServerRoot directory, however + since this should not be writable by the user the server runs + as, core dumps won't normally get written. If you want a core + dump for debugging, you can use this directive to place it in a + different location.

+ +

Core Dumps on Linux

+

If Apache starts as root and switches to another user, the + Linux kernel disables core dumps even if the directory is + writable for the process. Apache (2.0.46 and later) reenables core dumps + on Linux 2.4 and beyond, but only if you explicitly configure a CoreDumpDirectory.

+
+ +
+
top
+

EnableExceptionHook Directive

+ + + + + + + + +
Description:Enables a hook that runs exception handlers +after a crash
Syntax:EnableExceptionHook On|Off
Default:EnableExceptionHook Off
Context:server config
Status:MPM
Module:leader, perchild, prefork, threadpool, worker
Compatibility:Available in version 2.0.49 and later
+

For safety reasons this directive is only available if the server was + configured with the --enable-exception-hook option. It + enables a hook that allows external modules to plug in and do something + after a child crashed.

+ +

There are already two modules, mod_whatkilledus and + mod_backtrace that make use of this hook. Please have a + look at Jeff Trawick's EnableExceptionHook site for more information about these.

+ +
+
top
+

Group Directive

+ + + + + + + + +
Description:Group under which the server will answer +requests
Syntax:Group unix-group
Default:Group #-1
Context:server config
Status:MPM
Module:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker
Compatibility:Only valid in global server config since Apache +2.0
+

The Group directive sets the group under + which the server will answer requests. 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 + specified group, and will instead continue to run as the group of the + original user. Unix-group is one of:

+ +
+
A group name
+
Refers to the given group by name.
+ +
# followed by a group number.
+
Refers to a group by its number.
+
+ +

Example

+ Group www-group +

+ +

It is recommended that you set up a new group specifically for + running the server. Some admins use user nobody, + but this is not always possible or desirable.

+ +

Security

+

Don't set Group (or User) to root unless + you know exactly what you are doing, and what the dangers are.

+
+ +

Special note: Use of this directive in <VirtualHost> is no longer supported. To + configure your server for suexec use + SuexecUserGroup.

+ +

Note

+

Although the Group directive is present + in the beos and mpmt_os2 MPMs, + it is actually a no-op there and only exists for compatibility + reasons.

+
+ +
+
top
+

Listen Directive

+ + + + + + + +
Description:IP addresses and ports that the server +listens to
Syntax:Listen [IP-address:]portnumber
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
Compatibility:Required directive since Apache 2.0
+

The Listen directive instructs Apache to + listen to only specific IP addresses or ports; by default it + responds to requests on all IP interfaces. Listen + is now a required directive. If it is not in the config file, the + server will fail to start. This is a change from previous versions + of Apache.

+ +

The Listen directive tells the server to + accept incoming requests on the specified port or address-and-port + combination. If only a port number is specified, the server listens to + the given port on all interfaces. If an IP address is given as well + as a port, the server will listen on the given port and + interface.

+ +

Multiple Listen directives may be used to + specify a number of addresses and ports to listen to. The server will + respond to requests from any of the listed addresses and ports.

+ +

For example, to make the server accept connections on both + port 80 and port 8000, use:

+ +

+ Listen 80
+ Listen 8000 +

+ +

To make the server accept connections on two specified + interfaces and port numbers, use

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

IPv6 addresses must be surrounded in square brackets, as in the + following example:

+ +

+ Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

+ +

Error condition

+ Multiple Listen directives for the same ip + address and port will result in an Address already in use + error message. +
+ +

See also

+ +
+
top
+

ListenBackLog Directive

+ + + + + + + +
Description:Maximum length of the queue of pending connections
Syntax:ListenBacklog backlog
Default:ListenBacklog 511
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

The maximum length of the queue of pending connections. + Generally no tuning is needed or desired, however on some + systems it is desirable to increase this when under a TCP SYN + flood attack. See the backlog parameter to the + listen(2) system call.

+ +

This will often be limited to a smaller number by the + operating system. This varies from OS to OS. Also note that + many OSes do not use exactly what is specified as the backlog, + but use a number based on (but normally larger than) what is + set.

+ +
+
top
+

LockFile Directive

+ + + + + + + +
Description:Location of the accept serialization lock file
Syntax:LockFile filename
Default:LockFile logs/accept.lock
Context:server config
Status:MPM
Module:leader, perchild, prefork, threadpool, worker
+

The LockFile directive sets the path to + the lockfile used when Apache is used with an AcceptMutex value of either + fcntl or flock. This directive should + normally be left at its default value. The main reason for changing + it is if the logs directory is NFS mounted, since + the lockfile must be stored on a local disk. The PID + of the main server process is automatically appended to the + filename.

+ +

Security

+

It is best to avoid putting this file in a world writable + directory such as /var/tmp because someone could create + a denial of service attack and prevent the server from starting by + creating a lockfile with the same name as the one the server will try + to create.

+
+ +

See also

+ +
+
top
+

MaxClients Directive

+ + + + + + + +
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
+

The MaxClients directive sets the limit + on the number of simultaneous requests that will be served. Any + connection attempts over the MaxClients + limit will normally be queued, up to a number based on the + ListenBacklog + directive. Once a child process is freed at the end of a different + request, the connection will then be serviced.

+ +

For non-threaded servers (i.e., prefork), + MaxClients translates into the maximum + number of child processes that will be launched to serve requests. + The default value is 256; to increase it, you must also raise + ServerLimit.

+ +

For threaded and hybrid servers (e.g. beos + or worker) MaxClients restricts + the total number of threads that will be available to serve clients. + The default value for beos is 50. For + hybrid MPMs the default value is 16 (ServerLimit) multiplied by the value of + 25 (ThreadsPerChild). Therefore, to increase MaxClients to a value that requires more than 16 processes, + you must also raise ServerLimit.

+ +
+
top
+

MaxMemFree Directive

+ + + + + + + +
Description:Maximum amount of memory that the main allocator is allowed +to hold without calling free()
Syntax:MaxMemFree KBytes
Default:MaxMemFree 0
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, prefork, threadpool, worker, mpm_winnt
+

The MaxMemFree directive sets the + maximum number of free Kbytes that the main allocator is allowed + to hold without calling free(). When not set, or when set + to zero, the threshold will be set to unlimited.

+ +
+
top
+

MaxRequestsPerChild Directive

+ + + + + + + +
Description:Limit on the number of requests that an individual child server +will handle during its life
Syntax:MaxRequestsPerChild number
Default:MaxRequestsPerChild 10000
Context:server config
Status:MPM
Module:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

The MaxRequestsPerChild directive sets + the limit on the number of requests that an individual child + server process will handle. After + MaxRequestsPerChild requests, the child + process will die. If MaxRequestsPerChild is + 0, then the process will never expire.

+ +

Different default values

+

The default value for mpm_netware and + mpm_winnt is 0.

+
+ +

Setting MaxRequestsPerChild to a + non-zero value limits the amount of memory that process can consume + by (accidental) memory leakage.

+ +

Note

+

For KeepAlive requests, only + the first request is counted towards this limit. In effect, it + changes the behavior to limit the number of connections per + child.

+
+ +
+
top
+

MaxSpareThreads Directive

+ + + + + + + +
Description:Maximum number of idle threads
Syntax:MaxSpareThreads number
Default:See usage for details
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, 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. + 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.

+ +

For mpm_netware the default is + MaxSpareThreads 100. Since this MPM runs a + single-process, the spare thread count is also server-wide.

+ +

beos and mpmt_os2 work + similar to mpm_netware. The default for + beos is MaxSpareThreads 50. For + mpmt_os2 the default value is 10.

+ +

Restrictions

+

The range of the MaxSpareThreads value + is restricted. Apache will correct the given value automatically + according to the following rules:

+ +
+ +

See also

+ +
+
top
+

MinSpareThreads Directive

+ + + + + + + +
Description:Minimum number of idle threads available to handle request +spikes
Syntax:MinSpareThreads number
Default:See usage for details
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Minimum number of idle threads to handle request spikes. + Different MPMs deal with this directive + differently.

+ +

perchild uses a default of + MinSpareThreads 5 and monitors the number of idle + threads on a per-child basis. If there aren't enough idle threads + in that child, the server will begin to create new threads within + that child. Thus, if you set NumServers to 10 and a MinSpareThreads value of 5, you'll have + at least 50 idle threads on your system.

+ +

worker, leader and + threadpool use a default of MinSpareThreads + 75 and deal with idle threads on a server-wide basis. If + there aren't enough idle threads in the server then child + processes are created until the number of idle threads is greater + than number.

+ +

mpm_netware uses a default of + MinSpareThreads 10 and, since it is a single-process + MPM, tracks this on a server-wide bases.

+ +

beos and mpmt_os2 work + similar to mpm_netware. The default for + beos is MinSpareThreads 1. For + mpmt_os2 the default value is 5.

+ +

See also

+ +
+
top
+

PidFile Directive

+ + + + + + + +
Description:File where the server records the process ID +of the daemon
Syntax:PidFile filename
Default:PidFile logs/httpd.pid
Context:server config
Status:MPM
Module:beos, leader, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

The PidFile directive sets the file to + which the server records the process id of the daemon. If the + filename is not absolute then it is assumed to be relative to the + ServerRoot.

+ +

Example

+ PidFile /var/run/apache.pid +

+ +

It is often useful to be able to send the server a signal, + so that it closes and then re-opens its ErrorLog and TransferLog, and + re-reads its configuration files. This is done by sending a + SIGHUP (kill -1) signal to the process id listed in the + PidFile.

+ +

The PidFile is subject to the same + warnings about log file placement and security.

+ +

Note

+

As of Apache 2 it is recommended to use only the apachectl script for (re-)starting or stopping the server.

+
+ +
+
top
+

ReceiveBufferSize Directive

+ + + + + + + +
Description:TCP receive buffer size
Syntax:ReceiveBufferSize bytes
Default:ReceiveBufferSize 0
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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

+ + + + + + + +
Description:Location of the file used to store coordination data for +the child processes
Syntax:ScoreBoardFile file-path
Default:ScoreBoardFile logs/apache_status
Context:server config
Status:MPM
Module:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
+

Apache uses a scoreboard to communicate between its parent + and child processes. Some architectures require a file to facilitate + this communication. If the file is left unspecified, Apache first + attempts to create the scoreboard entirely in memory (using anonymous + shared memory) and, failing that, will attempt to create the file on + disk (using file-based shared memory). Specifying this directive causes + Apache to always create the file on the disk.

+ +

Example

+ ScoreBoardFile /var/run/apache_status +

+ +

File-based shared memory is useful for third-party applications + that require direct access to the scoreboard.

+ +

If you use a ScoreBoardFile then + you may see improved speed by placing it on a RAM disk. But be + careful that you heed the same warnings about log file placement + and security.

+ +

See also

+ +
+
top
+

SendBufferSize Directive

+ + + + + + + +
Description:TCP buffer size
Syntax:SendBufferSize bytes
Default:SendBufferSize 0
Context:server config
Status:MPM
Module:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

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 default.

+ +
+
top
+

ServerLimit Directive

+ + + + + + + +
Description:Upper limit on configurable number of processes
Syntax:ServerLimit number
Default:See usage for details
Context:server config
Status:MPM
Module:leader, perchild, prefork, threadpool, worker
+

For the prefork MPM, this directive sets the + maximum configured value for MaxClients for the lifetime of the + Apache process. For the worker MPM, this directive + in combination with ThreadLimit sets + the maximum configured value for MaxClients for the lifetime of the + Apache process. Any attempts to change this directive during a + restart will be ignored, but MaxClients can be modified during + a restart.

+ +

Special care must be taken when using this directive. If + ServerLimit is set to a value much higher + than necessary, extra, unused shared memory will be allocated. If + both ServerLimit and MaxClients are set to values + higher than the system can handle, Apache may not start or the + system may become unstable.

+ +

With the prefork MPM, use this directive only + if you need to set MaxClients higher than 256 (default). + 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 + 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).

+ +

Note

+

There is a hard limit of ServerLimit 20000 compiled + into the server. This is intended to avoid nasty effects caused by + typos.

+
+ +

See also

+ +
+
top
+

StartServers Directive

+ + + + + + + +
Description:Number of child server processes created at startup
Syntax:StartServers number
Default:See usage for details
Context:server config
Status:MPM
Module:leader, mpmt_os2, prefork, threadpool, worker
+

The StartServers directive sets the + number of child server processes created on startup. As the number + of processes is dynamically controlled depending on the load, + 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.

+ +
+
top
+

StartThreads Directive

+ + + + + + + +
Description:Number of threads created on startup
Syntax:StartThreads number
Default:See usage for details
Context:server config
Status:MPM
Module:beos, mpm_netware, perchild
+

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 + serve requests.

+ +

For beos the default is StartThreads + 10. It also reflects the total number of threads created + at startup to serve requests.

+ +
+
top
+

ThreadLimit Directive

+ + + + + + + + +
Description:Sets the upper limit on the configurable number of threads +per child process
Syntax:ThreadLimit number
Default:See usage for details
Context:server config
Status:MPM
Module:leader, mpm_winnt, perchild, threadpool, worker
Compatibility:Available for mpm_winnt in Apache 2.0.41 +and later
+

This directive sets the maximum configured value for ThreadsPerChild for the lifetime + of the Apache process. Any attempts to change this directive + during a restart will be ignored, but ThreadsPerChild can be modified + during a restart up to the value of this directive.

+ +

Special care must be taken when using this directive. If + ThreadLimit is set to a value much higher + than ThreadsPerChild, + extra unused shared memory will be allocated. If both + ThreadLimit and ThreadsPerChild are set to values + higher than the system can handle, Apache may not start or the + system may become unstable. Do not set the value of this directive + any higher than your greatest predicted setting of ThreadsPerChild for the + current run of Apache.

+ +

The default value for ThreadLimit is + 1920 when used with mpm_winnt and + 64 when used with the others.

+ +

Note

+

There is a hard limit of ThreadLimit 20000 (or + ThreadLimit 15000 with mpm_winnt) + compiled into the server. This is intended to avoid nasty effects + caused by typos.

+
+ +
+
top
+

ThreadsPerChild Directive

+ + + + + + + +
Description:Number of threads created by each child process
Syntax:ThreadsPerChild number
Default:See usage for details
Context:server config
Status:MPM
Module:leader, mpm_winnt, threadpool, worker
+

This directive sets the number of threads created by each + child process. The child creates these threads at startup and + never creates more. If using an MPM like mpm_winnt, + where there is only one child process, this number should be high + enough to handle the entire load of the server. If using an MPM + like worker, where there are multiple child processes, + the total number of threads should be high enough to handle + the common load on the server.

+ +

The default value for ThreadsPerChild is + 64 when used with mpm_winnt and + 25 when used with the others.

+ +
+
top
+

User Directive

+ + + + + + + + +
Description:The userid under which the server will answer +requests
Syntax:User unix-userid
Default:User #-1
Context:server config
Status:MPM
Module:leader, perchild, prefork, threadpool, worker
Compatibility:Only valid in global server config since Apache +2.0
+

The User directive sets the user ID as + which the server will answer requests. 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, and will instead continue to run as + that original user. If you do start the server as root, + then it is normal for the parent process to remain running as root. + Unix-userid is one of:

+ +
+
A username
+
Refers to the given user by name.
+ +
# followed by a user number.
+
Refers to a user by its number.
+
+ +

The user should have no privileges that result in it being + able to access files that are not intended to be visible to the + outside world, and similarly, the user should not be able to + execute code that is not meant for HTTP requests. It is + recommended that you set up a new user and group specifically for + running the server. Some admins use user nobody, but + this is not always desirable, since the nobody user + can have other uses on the system.

+ +

Security

+

Don't set User (or Group) to root unless + 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.

+ +

Note

+

Although the User directive is present + in the beos and mpmt_os2 MPMs, + it is actually a no-op there and only exists for compatibility + reasons.

+
+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_common.html.es b/rubbos/app/apache2/manual/mod/mpm_common.html.es new file mode 100644 index 00000000..28a738f3 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html.es @@ -0,0 +1,982 @@ + + + +mpm_common - Servidor HTTP Apache + + + + + + +
<-
+ +
+

Directivas Comunes de los MPM de + Apache

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +
Descripcin:Es una coleccin de directivas que estn implementadas +en ms de un mdulo de multiprocesamiento (MPM)
Estado:MPM
+
+ + +
top
+

AcceptMutex Directiva

+ + + + + + + +
Descripcin:Mtodo que usa Apache para serializar mltiples procesos +hijo que aceptan peticiones en las conexiones de red
Sintaxis:AcceptMutex Default|method
Valor por defecto:AcceptMutex Default
Contexto:server config
Estado:MPM
Mdulo:leader, perchild, prefork, threadpool, worker
+

Las directivas AcceptMutex determinan el + mtodo que usa Apache para serializar mltiples procesos + hijo que aceptan peticiones en las conexiones de red. En las + versiones de Apache anteriores a la 2.0, el mtodo era + seleccionable solo cuando se compilaba el servidor. El mejor + mtodo a usar depende mucho de la arquitectura y de la + plataforma que use. Si desea ms informacin, consulte + la documentancin sobre ajustes para conseguir un mejor + rendimiento.

+ +

Si el valor especificado en esta directiva es + Default, entonces se usar el mtodo + seleccionado cuando se compil el servidor. Ms abajo + puede encontrar una lista con otros mtodos. Tenga en cuenta + que no todos los mtodos estn disponibles en todas las + plataformas. Si el mtodo especificado no est + disponible, se escribir un mensaje en el log de errores con + una lista de los mtodos que puede usar.

+ +
+
flock
usa la llamada al sistema + flock(2) para bloquear el fichero especificado en + la directiva LockFile.
+ +
fcntl
usa la llamada al sistema + fcntl(2) para bloquear el fichero especificado en + la directiva LockFile.
+ +
posixsem
usa semforos + compatibles con POSIX para implementar el mutex.
+ +
pthread
+
Usa mutexes POSIX implementados segn la + especificacin de hebras POSIX (PThreads).
+ +
sysvsem
+
usa semforos de tipo SySV para implementar el mutex.
+
+ +

Si quiere ver cul es el mtodo por defecto que se + seleccion para usar en su sistema al compilar, especifique + el valor debug en la directiva LogLevel. El valor por defecto de la + directiva AcceptMutex aparecer + escrito en el ErrorLog.

+ +
+
top
+

BS2000Account Directiva

+ + + + + + + +
Descripcin:Define la cuenta sin privilegios en mquinas +BS2000
Sintaxis:BS2000Account account
Contexto:server config
Estado:MPM
Mdulo:perchild, prefork
Compatibilidad:Solo disponible en mquinas BS2000
+

La directiva BS2000Account est + disponible solo en hosts BS2000. Debe usarse para definir el + nmero de cuenta del usuario sin privilegios del servidor + Apache (que se configur usando la directiva User). Esto es un requerimiento + del subsistema POSIX BS2000 (@@@@@ para reemplazar el entorno de + tareas BS2000 subyaciente haciendo un sub-LOGON) para prevenir que + scripts CGI accedan a recursos de la cuenta con privilegios con la + que se suele iniciar el servidor, normalmente + SYSROOT.

+ +

Nota

+

La directiva + BS2000Account solamente puede usarse una vez.

+
+ +

Consulte tambin

+ +
+
top
+

CoreDumpDirectory Directiva

+ + + + + + + +
Descripcin:Directorio al que Apache intenta cambiarse antes de +realizar un volcado de memoria
Sintaxis:CoreDumpDirectory directory
Valor por defecto:Consulte la seccin de uso para ver el valor por defecto
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
+

Esta directiva controla el directorio al cual intenta cambiarse + Apache antes de realizar un volcado de memoria. Por defecto, el + volcado de memoria se hace en el directorio especificado en la + directiva ServerRoot, sin + embargo, como el usuario con el que se est ejecutando Apache + podra no tener permisos para escribir en ese directorio, los + volcados de memoria muchas veces no se hacen en ningn + sitio. Si quiere que el volcado se memoria se guarde para analizar + los fallos posteriormente, puede usar esta directiva para + especificar un directorio diferente.

+ +

Volcados de memoria en Linux

Si Apache se + inicia como usuario root y despus se cambia el usuario con + el se est ejecutando, el kernel de Linux + desactiva los volcados de memoria, incluso si se ha + especificado un directorio en el que se puede escribir para + realizar este proceso. Apache (en las versiones 2.0.46 y + posteriores) reactiva los volcados de memoria en los sistemas + con versiones Linux 2.4 y posteriores, pero solamente si se ha + configurado explcitamente la directiva + CoreDumpDirectory.

+
+ +
+
top
+

EnableExceptionHook Directiva

+ + + + + + + + +
Descripcin:Activa un hook que inicia handlers de excepcin +despus de un error irrecuperable
Sintaxis:EnableExceptionHook On|Off
Valor por defecto:EnableExceptionHook Off
Contexto:server config
Estado:MPM
Mdulo:leader, perchild, prefork, threadpool, worker
Compatibilidad:Disponible en las versiones de Apache 2.0.49 y posteriores
+

Por razones de seguridad esta directiva est disponible + solamente si el servidor ha sido configurado con la opcin + --enable-exception-hook. Esto activa un hook que + permite que se conecten mdulos externos y que realicen + alguna accin despus de que un proceso hijo sufra un + error irrecuperable.

+ +

Hay otros dos mdulos, mod_whatkilledus y + mod_backtrace que usan este hook. Por favor, consulte + el siguiente enlace, EnableExceptionHook perteneciente al sitio web de Jeff + Trawick para obtener ms informacin sobre el tema.

+ +
+
top
+

Group Directiva

+ + + + + + + + +
Descripcin:Grupo con el que el servidor atender las +peticiones
Sintaxis:Group unix-group
Valor por defecto:Group #-1
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpmt_os2, perchild, prefork, threadpool, worker
Compatibilidad:Solamente puede usarse en global server config a partir de la versin de Apache 2.0
+

La directiva Group determina el grupo + con el que el servidor atender las peticiones. Para usar + esta directiva, el servidor debe haber sido iniciado con el + usuario root. Si inicia el servidor con un usuario + que no sea root, el servidor no podr cambiarse al grupo + especificado, en lugar de esto continuar ejecutndose + con el grupo del usuario que lo inici. Unix-group + debe tomar un de los siguiente valores:

+ +
+
El nombre de un grupo
+
Se refiere al grupo que lleva el nombre que se especifica.
+ +
# seguido del nmero de un grupo.
+
Se refiere al grupo asociado a ese nmero.
+
+ +

Por ejemplo

+ Group www-group +

+ +

Se recomienda que cree un nuevo grupo especficamente para + ejecutar el servidor. Algunos administradores usan el ususario + nobody, pero esto no es siempre posible ni + aconsejable.

+ +

Seguridad

No ponga el valor + root en la directiva Group + (o en la directiva User) a menos que sepa + exactamente lo que est haciendo y los peligros que + conlleva.

+
+ +

Importante: El uso de esta directiva en <VirtualHost> no est + permitido ya. Para configurar su servidor para + suexec use la directiva SuexecUserGroup.

+ +

Nota

Aunque la directiva + Group est presente en los + mdulos MPM beos y + mpmt_os2, no estn operativas y solamente + estn presentes por razones de compatibilidad.

+
+ +
+
top
+

Listen Directiva

+ + + + + + + +
Descripcin:Direcciones IP y puertos en los que escucha el servidor
Sintaxis:Listen [IP-address:]portnumber
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
Compatibilidad:Directiva de uso obligatorio en Apache 2.0
+

La directiva Listen indica las + direcciones IP y los puertos en los que debe escuchar Apache; por + defecto, el servidor responde a las peticiones que se reciban en + cualquier direccin IP de las interfaces de red. El uso de + Listen es ahora obligatorio. Si no + est en el fichero de configuracin, el servidor no + podr iniciarse. Esto supone un cambio respecto a las + versiones anteriores de Apache.

+ +

La directiva Listen le especifica al + servidor los puertos o las combinaciones de direcciones y puertos + cuyas peticiones debe aceptar. Si solamente se especifica un + nmero de puerto, el servidor escuchar en ese puerto, + en todas las interfaces de red. Si se especifica una + direccin IP y un puerto, el servidor escuchar + solamente en esa direccin IP y en ese puerto.

+ +

Se pueden usar varias directivas Listen + para especificar varias direcciones y puertos de escucha. El + servidor responder a peticiones de cualquiera de esas + direcciones y puertos.

+ +

Por ejemplo, para hacer que el servidor acepte conexiones en + los puertos 80 y 8000, use:

+ +

+ Listen 80
+ Listen 8000 +

+ +

Para hacer que el servidor acepte conexiones en dos direcciones + y puertos difrentes, use

+ +

+ Listen 192.170.2.1:80
+ Listen 192.170.2.5:8000 +

+ +

Las direcciones IPv6 deben escribirse entre corchetes, como en + el siguiente ejemplo:

+ +

+ Listen [2001:db8::a00:20ff:fea7:ccea]:80 +

+ +

Condicin de error

Varias directivas + Listen para la misma direccin IP y + el mismo puerto tendrn como resultado un mensaje de error + del tipo Direccin actualmente en uso. +
+ +

Consulte tambin

+ +
+
top
+

ListenBackLog Directiva

+ + + + + + + +
Descripcin:Longitud mxima de la cola de conexiones en espera
Sintaxis:ListenBacklog backlog
Valor por defecto:ListenBacklog 511
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

Longitud mxima de la cola de conexiones en espera. En + general, no es necesario ni deseable hacer ninguna + modificacin, pero en algunos sistemas es beneficioso + incrementar esta longitud cuando se est sufriendo un ataque + TCP SYN flood. Consulte la informacin sobre el + parmetro backlog de la llamada al sistema + listen(2).

+ +

Este nmero estar la mayor parte de las veces + limitado a un valor an menor por el sistema operativo. Esto + vara de un sistema operativo a otro. Tenga en cuenta + tambin que muchos sistemas operativos no usan exactamente lo + que se especifica en el backlog, sino que usan un nmero + basado en el valor especificado (aunque normalmente mayor).

+ +
+
top
+

LockFile Directiva

+ + + + + + + +
Descripcin:Ubicacin del fichero de lock de serializacin de aceptacion de peticiones
Sintaxis:LockFile filename
Valor por defecto:LockFile logs/accept.lock
Contexto:server config
Estado:MPM
Mdulo:leader, perchild, prefork, threadpool, worker
+

La directiva LockFile especifica la ruta + al archivo de lock (lockfile) que se utiliza cuando la directiva + AcceptMutex tiene valor + fcntl o flock. En principio no se debe + modificar el valor por defecto de esta directiva. La razn + principal para moficiarlo es que el directorio de + logs est montado en NFS, porque el + archivo de lock debe almacenarse en un disco local. El + PID del proceso principal del servidor se aade + automticamente al nombre del fichero.

+ +

Seguridad

Es aconsejable + no poner este fichero en un directorio en el que tenga + permisos de escritura todos los usuarios como + /var/tmp porque alguien podra provocar un + ataque de denegacin de servicio y evitar que el servidor + se inicie creando un archivo de lock con el mismo nombre que el + que el servidor intentar crear.

+
+ +

Consulte tambin

+ +
+
top
+

MaxClients Directiva

+ + + + + + + +
Descripcin:Nmero mximo de procesos hijo que sern creados para +atender peticiones
Sintaxis:MaxClients number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:beos, leader, prefork, threadpool, worker
+

La directiva MaxClients especifica el + lmite de peticiones simultneas que sern + atendidas. Cualquier intento de conexin por encima del + lmite MaxClients se pondr en + cola, hasta llegar a un lmite basado en el valor de la + directiva ListenBacklog. Una vez que un + proceso hijo termina de atender una peticin y queda libre, se + atender una conexin en cola.

+ +

En servidores que no usan hebras (por ejemplo, + prefork), el valor especificado en + MaxClients se traduce en el nmero + mximo de procesos hijo que se crearn para atender + peticiones. El valor por defecto es 256; para + incrementarlo, debe incrementar tambin el valor especificado + en la directiva ServerLimit.

+ +

En servidores que usan hebras y en servidores hbridos + (por ejemplo, beos o worker) + MaxClients limita el nmero total de + hebras que van a estar disponibles para servir clientes. El valor + por defecto para beos es 50. Para + MPMs hbridos el valor por defecto es 16 + (ServerLimit) + multiplicado por 25 (ThreadsPerChild). Por lo tanto, si va a usar en + MaxClients un valor que requiera ms + de 16 procesos deber tambin incrementar el valor de la + directiva ServerLimit.

+ +
+
top
+

MaxMemFree Directiva

+ + + + + + + +
Descripcin:Cantidad mxima de memoria que el asignador principal puede tomar sin hacer una llamada a free()
Sintaxis:MaxMemFree KBytes
Valor por defecto:MaxMemFree 0
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, prefork, threadpool, worker, mpm_winnt
+

La directiva MaxMemFree especifica el + nmero mximo de kbytes libres que el asignador de memoria + principal puede tomar sin hacer una llamada al sistema + free(). Cuando no se especifica ningn valor en esta + directiva, o cuando se especifica el valor cero, no existir tal + lmite.

+ +
+
top
+

MaxRequestsPerChild Directiva

+ + + + + + + +
Descripcin:Lmite en el nmero de peticiones que un proceso hijo puede +atender durante su vida
Sintaxis:MaxRequestsPerChild number
Valor por defecto:MaxRequestsPerChild 10000
Contexto:server config
Estado:MPM
Mdulo:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

La directiva MaxRequestsPerChild + especifica el nmero mximo de peticiones que un proceso hijo + atender durante su existencia. Despus de atender + MaxRequestsPerChild peticiones, el proceso + hijo se eliminar. Si el valor especificado en esta directiva + MaxRequestsPerChild es 0, no + habr lmite.

+ +

Diferentes valores por defecto

+

El valor por defecto para los mdulos + mpm_netware y mpm_winnt es + 0.

+
+ +

Especificar en la directiva + MaxRequestsPerChild un valor distinto de + cero tiene dos ventajas:

+ +
    +
  • limita la cantidad de memoria que un proceso puede consumir + en caso de que haya un fuga (accidental) de memoria;
  • + +
  • establece un lmite finito a la vida de los procesos, lo que + ayuda a reducir el nmero existente de procesos cuando se reduce + la carga de trabajo en el servidor.
  • +
+ +

Nota

+

Para las peticiones KeepAlive, solamente la primera peticin + cuenta para este lmite. De hecho, en ese caso lo que se + limita es el nmero de conexiones por proceso hijo.

+
+ +
+
top
+

MaxSpareThreads Directiva

+ + + + + + + +
Descripcin:Nmero mximo de hebras en espera
Sintaxis:MaxSpareThreads number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Nmero mximo de hebras en espera. Los diferentes MPMs tienen + diferentes comportamientos respecto a esta directiva.

+ +

En el mdulo perchild el valor por + defecto usado es MaxSpareThreads 10. Este MPM + monitoriza el nmero de hebras en espera por proceso hijo. Si + hay demasiadas hebras en espera en un proceso hijo, el servidor + empezar a eliminar las hebras de sobra.

+ +

En los mdulos worker, + leader y threadpool el valor + por defecto usado es MaxSpareThreads 250. Estos MPMs + monitorizan el nmero del hebras en espera en servidor en + conjunto. Si hay demasiadas hebras en espera en el servidor, se + eliminan algunos procesos hijo hasta que el nmero de hebras + en espera se ajuste al lmite especificado.

+ +

En el mdulo mpm_netware el valor por + defecto usado es MaxSpareThreads 100. Como este MPM + ejecuta nico proceso, las hebras en espera se calculan + tambin en base al servidor en conjunto.

+ +

Los mdulos beos y mpmt_os2 + funcionan de manera similar a mpm_netware. El + valor por defecto para beos es + MaxSpareThreads 50. Para mpmt_os2 el + valor por defecto es 10.

+ +

Restricciones

+

El rango de valores que puede tomar + MaxSpareThreads est acotado. Apache + corregir automticamente el valor especificado de + acuerdo con las siguientes reglas:

+ +
+ +

Consulte tambin

+ +
+
top
+

MinSpareThreads Directiva

+ + + + + + + +
Descripcin:Nmero mnimo de hebras en espera para atender picos de +demanda en las peticiones
Sintaxis:MinSpareThreads number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Nmero mnimo de hebras en espera para atender picos + de demanda en las peticiones. Los diferentes MPMs tratan esta + directiva de forma diferente.

+ +

El mdulo perchild usa por defecto + MinSpareThreads 5 y calcula el nmero de hebras + en espera en base al nmero de procesos hijo. Si no hay + suficientes hebras en espera en un proceso hijo, el servidor + empezar a crear nuevas hebras dentro de ese proceso hijo. De + esta manera, si especifica en la directiva NumServers el valor 10 + y en la directiva MinSpareThreads un valor + de 5, tendr como mnimo 50 hebras en + espera en su sistema.

+ +

Los mdulos worker, + leader y threadpool usan un + valor por defecto MinSpareThreads 75 y calculan el + nmero de hebras en espera en el servidor en conjunto. Si no + hay suficientes hebras en espera en el servidor, entonces se crean + procesos hijo hasta que el nmero de hebras en espera sea + suficiente.

+ +

El mdulo mpm_netware usa un valor por defecto + MinSpareThreads 10 y como es un MPM que trabaja con + un nico proceso, calcula el nmero de hebras en espera en base al + nmero total que hay en el servidor.

+ +

Los mdulos beos y mpmt_os2 + funcionan de modo similar a como lo hace el mdulo + mpm_netware. El valor por defecto que usa + beos es MinSpareThreads 1. + mpmt_os2 usa por defecto el valor + 5.

+ +

Consulte tambin

+ +
+
top
+

PidFile Directiva

+ + + + + + + +
Descripcin:Fichero en el que el servidor guarda +el ID del proceso demonio de escucha (daemon)
Sintaxis:PidFile filename
Valor por defecto:PidFile logs/httpd.pid
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

La directiva PidFile especifica el + fichero en el que el servidor guarda el ID del proceso demonio de + escucha (daemon). Si el nombre del fichero especificado no es una + ruta absoluta, entonces se asume que es relativa al directorio + especificado en ServerRoot.

+ +

Ejemplo

+ PidFile /var/run/apache.pid +

+ +

Con frecuencia es til tener la posibilidad de enviar al + servidor una seal, de manera que cierre y vuelva a abrir el + ErrorLog y el TransferLog, y vuelva a leer + los ficheros de configuracin. Esto es lo que ocurre cuando + se enva la seal SIGHUP (kill -1) al ID del proceso que + aparece en PidFile.

+ +

El PidFile est sujeto a las mismas + advertencias que se hicieron para los ficheros log sobre su + ubicacin y sobre su seguridad.

+ +

Nota

Se recomienda que para Apache 2 se + use solamente el script apachectl para + (re-)iniciar o parar el servidor.

+
+ +
+
top
+

ScoreBoardFile Directiva

+ + + + + + + +
Descripcin:Ubicacin del fichero que almacena los datos necesarios para +coordinar el funcionamiento de los procesos hijo del servidor
Sintaxis:ScoreBoardFile file-path
Valor por defecto:ScoreBoardFile logs/apache_status
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_winnt, perchild, prefork, threadpool, worker
+

Apache usa un marcador para que los procesos hijo se + comuniquen con sus procesos padre. Algunas arquitecturas + necesitan un archivo para facilitar esta comunicacin. Si no + se especifica ningn fichero, Apache intenta en primer lugar + crear el marcador en memoria (usando memoria compartida + annima) y, si esto falla, intentar crear el fichero en + disco (usando memoria compartida basada en ficheros). Si se especifica un + valor en esta directiva, Apache crear directamente el + archivo en disco.

+ +

Ejemplo

+ ScoreBoardFile /var/run/apache_status +

+ +

El uso de memoria compartida basada en ficheros es til + para aplicaciones de terceras partes que necesitan acceso directo + al marcador.

+ +

Si usa la directiva ScoreBoardFile, + puede mejorar la velocidad del servidor poniendo el fichero en + memoria RAM. Pero tenga cuidado y siga las mismas recomendaciones + acerca del lugar donde se almacenan los ficheros log y su seguridad.

+ +

Consulte tambin

+ +
+
top
+

SendBufferSize Directiva

+ + + + + + + +
Descripcin:Tamao del buffer TCP
Sintaxis:SendBufferSize bytes
Valor por defecto:SendBufferSize 0
Contexto:server config
Estado:MPM
Mdulo:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
+

El servidor fijar el tamao del buffer TCP en los + bytes que se especifiquen en esta directiva. Incrementar este + valor por encima de los valores estndar del sistema + operativo es muy til en situaciones de alta velocidad y gran + latencia (por ejemplo, 100ms o as, como en el caso de + conexiones intercontinentales de gran capacidad).

+ +

Si se especifica el valor 0, el servidor usar el + valor por defecto del sistema operativo.

+ +
+
top
+

ServerLimit Directiva

+ + + + + + + +
Descripcin:Lmite superior del nmero configurable de procesos
Sintaxis:ServerLimit number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:leader, perchild, prefork, threadpool, worker
+

En el mdulo MPM prefork, esta directiva + significa el valor mximo que se puede especificar en la + directiva MaxClients + sobre el tiempo de vida de un proceso de Apache. En el + mdulo MPM worker, esta diretiva en + combinacin con la directiva ThreadLimit significa el valor + mximo que puede especificarse en la directiva MaxClients sobre el tiempo de vida + de un proceso de Apache. Los intententos de cambiar el valor de + esta directiva durante el reinicio del servidor sern + ignorados. El valor de MaxClients s que puede + modificarse durante el reinicio.

+ +

Cuando se usa esta directiva hay que tener especial cuidado. + Si en la directiva ServerLimit se + especifica un valor mucho ms alto de lo necesario, se reservar + memoria compartida que no ser usada. Si ambas directivas + ServerLimit y MaxClients tienen especificados + valores mayores que los que el sistema puede manejar, Apache puede + que no se inicie o que el sistema se vuelva inestable.

+ +

Con el mdulo MPM prefork, use esta + directiva solamente si necesita especificar en la directiva + MaxClients un valor + mayor a 256 (el valor por defecto). No especifique un valor mayor + del que vaya a especificar en la directiva MaxClients.

+ +

Con los mdulos worker, + leader y threadpool use esta + directiva solamente si los valores especificados en las directivas + MaxClients y ThreadsPerChild precisan ms de 16 + procesos del servidor (valor por defecto). No especifique en esta + directiva un valor mayor que el nmero de procesos del servidor + requeridos por lo especificado en las directivas MaxClients y ThreadsPerChild.

+ +

Con el MPM perchild, use esta directiva solo + si tiene que especificar en la directiva NumServers un valor mayor de 8 (el + valor por defecto).

+ +

Nota

+

Existe un lmite inviolable compilado en el servidor que es + ServerLimit 20000. Con este lmite se intentan + evitar las consecuencias que pueden tener los errores tipogrficos.

+
+ +

Consulte tambin

+ +
+
top
+

StartServers Directiva

+ + + + + + + +
Descripcin:Nmero de procesos hijo del servidor que se crean al +iniciar Apache
Sintaxis:StartServers number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:leader, mpmt_os2, prefork, threadpool, worker
+

La directiva StartServers especifica el + nmero de procesos hijo que se crean al iniciar Apache. Como + el nmero de procesos est controlado dinmicamente + segn la carga del servidor, no hay normalmente ninguna + razn para modificar el valor de este parmetro.

+ +

El valor por defecto cambia segn el MPM de que se trate. Para + leader, threadpool y + worker el valor por defecto es StartServers + 3. Para prefork el valor por defecto es + 5 y para mpmt_os2 es + 2.

+ +
+
top
+

StartThreads Directiva

+ + + + + + + +
Descripcin:Nmero de hebras que se crean al iniciar Apache
Sintaxis:StartThreads number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:beos, mpm_netware, perchild
+

Nmero de hebras que se crean al iniciar Apache. Como el + nmero de procesos est controlado dinmicamente + segn la carga del servidor, no hay normalmente ninguna + razn para modificar el valor de este parmetro.

+ +

En el mdulo perchild el valor por defecto es + StartThreads 5 y esta directiva controla el nmero de + hebras por proceso al inicio.

+ +

En el mdulo mpm_netware el valor por + defecto es StartThreads 50 y, como solamente hay un + proceso, este es el nmero total de hebras creadas al iniciar + el servidor para servir peticiones.

+ +

En el mdulo beos el valor usado por + defecto es StartThreads 10. En este caso tambin + representa el nmero total de hebras creadas al iniciar el + servidor para servir peticiones.

+ +
+
top
+

ThreadLimit Directiva

+ + + + + + + + +
Descripcin:Marca el lmite superior del nmero de hebras por +proceso hijo que pueden especificarse
Sintaxis:ThreadLimit number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:leader, mpm_winnt, perchild, threadpool, worker
Compatibilidad:Disponible para mpm_winnt en las versiones de Apache +2.0.41 y posteriores
+

Esta directiva determina el valor mximo que puede especificarse + en la directiva ThreadsPerChild para el tiempo de + vida de un proceso de Apache. Los intentos por modificar este + valor durante un reinicio sern ingnorados, pero el valor de la + directiva ThreadsPerChild puede modificarse + durante un reinicio hasta un valor igual al de esta directiva.

+ +

Cuando se usa esta directiva hay que poner especial + atencin. Si en la directiva + ThreadLimit se especifica un valor mucho + ms grande que en ThreadsPerChild, se reservar + memoria compartida en exceso que no ser usada. Si tanto en + ThreadLimit como en ThreadsPerChild se especifican + valores mayores de los que el sistema puede tratar, Apache + podra no iniciarse o su funcionamiento podra volverse + inestable. No especifique en esta directiva un valor mayor del + mayor valor posible que piense que va a especificar en ThreadsPerChild para la + ejecucin de Apache de ese momento.

+ +

El valor por defecto de la directiva + ThreadLimit es 1920 cuando se + usa con mpm_winnt y 64 en otro caso.

+ +

Nota

Hay un lmite estricto compilado + en el servidor: ThreadLimit 20000 (o + ThreadLimit 15000 si usa + mpm_winnt). Este lmite existe para evitar + los efectos que pueden ser provocados por errores + tipogrficos.

+
+ +
+
top
+

ThreadsPerChild Directiva

+ + + + + + + +
Descripcin:Nmero de hebras creadas por cada proceso +hijo
Sintaxis:ThreadsPerChild number
Valor por defecto:Consulte la seccin de uso para obtener ms informacin
Contexto:server config
Estado:MPM
Mdulo:leader, mpm_winnt, threadpool, worker
+

Esta directiva especifica el nmero de hebras creadas por + cada proceso hijo. El proceso hijo crea estas hebras al inicio y + no vuelve a crear ms. Si se usa un MPM como + mpm_winnt, en el que solamente hay un proceso + hijo, este nmero debera ser lo suficientemente grande + como para atender toda la carga del servidor. Si se usa un + mdulo MPM como worker, en el que hay + mltiples procesos hijo, el nmero total de + hebras debera ser lo suficientemente grande como para + atender la carga en circustancias normales del servidor.

+ +

El valor por defecto de la directiva + ThreadsPerChild es 64 cuando + se usa mpm_winnt y 25 en otro caso.

+ +
+
top
+

User Directiva

+ + + + + + + + +
Descripcin:Nombre de usuario con el que el servidor responder a las +peticiones
Sintaxis:User unix-userid
Valor por defecto:User #-1
Contexto:server config
Estado:MPM
Mdulo:leader, perchild, prefork, threadpool, worker
Compatibilidad:Vlida solamente en global server config a partir +de la versin de Apache 2.0
+

La directiva User especifica el + identificador de usuario con el que el servidor responder a + las peticiones. Para usar esta directiva, el servidor debe haber + sido iniciado como root. Si se inicia Apache con un + usario distinto de root, no se podr cambiar a un usuario con + menores privilegios, y el servidor continuar ejecutndose + con el usuario original. Si inicia el servidor como + root, entonces es normal que el procedimiento padre + siga ejecutndose como root. Unix-userid puede tomar + uno de los siguientes valores:

+ +
+
Un nombre de ususario
+
Se refiere al usuario dado por su nombre.
+ +
# seguido por un nmero de usuario.
+
Se refiere al usuario que corresponde a ese nmero.
+
+ +

El usuario debe no tener privilegios suficientes para acceder a + ficheros que no deban ser visibles para el mundo exterior, y de + igual manera, el usuario no debe ser capaz de ejecutar cdigo que + no sea susceptible de ser objeto de respuestas a peticiones + HTTP. Se recomienda que especifique un nuevo usuario y un nuevo + grupo solamente para ejecutar el servidor. Algunos + administradores usan el usuario nobody, pero esto no + es siempre deseable, porque el usuario nobody puede + tener otras funciones en su sistema.

+ +

Seguriad

+

No espcifique en la directiva User (o + Group) el valor + root a no ser que sepa exactamente lo que est + haciendo, y cules son los peligros.

+
+ +

Con el MPM perchild, que est + diseado para ejecutar hosts virtuales por diferentes ID de + usuario, la directiva User define el ID de + usuario para el servidor principal y para el resto de las + secciones <VirtualHost> sin una directiva AssignUserID.

+ +

Nota especial: El uso de esta directiva en <VirtualHost> no est + ya soportado. Para configurar su servidor para + suexec use SuexecUserGroup.

+ +

Nota

+

Aunque la directiva User est + presente en los MPMs beos y + mpmt_os2 MPMs, no est operativa y + solamente est presente por razones de compatibilidad.

+
+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_common.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mpm_common.html.ja.utf8 new file mode 100644 index 00000000..7475343e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html.ja.utf8 @@ -0,0 +1,956 @@ + + + +mpm_common - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache MPM 共通ディレクティブ

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +
説明:二つ以上のマルチプロセッシングモジュール (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 形式のセマフォを使います。
+
+ +

コンパイル時にシステムのデフォルトに選ばれたものが何かを見たい場合は、 + LogLeveldebug + に設定するとよいでしょう。デフォルトの AcceptMutex + が ErrorLog に書き込まれます。

+ +
+
top
+

BS2000Account ディレクティブ

+ + + + + + + +
説明:BS2000 での非特権アカウントを定義する
構文:BS2000Account account
コンテキスト:サーバ設定ファイル
ステータス:MPM
モジュール:perchild, prefork
互換性:BS2000 でのみ利用可能
+

BS2000Account ディレクティブは + BS2000 ホストでのみ使用できます。 + 非特権の Apache サーバユーザ (Userで設定) + のためのアカウント番号を定義するのに使用します。 + BS2000 POSIX サブシステムに対して (下位層の sub-LOGON 実行時に + BS2000 タスク環境を変更するために) 必要で、 + CGI スクリプトから、特権アカウントのリソース、 + 一般的には SYSROOT にアクセスされるのを防ぎます。

+ +

Note

+

使用できる BS2000Account は一つだけです。

+
+ +

参照

+ +
+
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_whatkilledusmod_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 ディレクティブは + beosmpmt_os2 MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。

+
+ +
+
top
+

Listen ディレクティブ

+ + + + + + + +
説明:サーバが listen するIP アドレスとポート番号
構文:Listen [IP-address:]portnumber
コンテキスト:サーバ設定ファイル
ステータス:MPM
モジュール:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker
互換性:Apache 2.0 から必要なディレクティブ
+

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 +

+ +

エラー条件

+ 同一 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 + が fcntlflock + に設定されて使用されている場合に、使用されるロックファイルへのパスを + 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 + 個のリクエストの後に、子プロセスは終了します。 + MaxRequestsPerChild0 + に設定されている場合は、プロセスは期限切れにより終了することはありません。

+ +

その他のデフォルト値

+

mpm_netwarempm_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 はシングルプロセスで実行されますので、 + スペアスレッド数もサーバ全体で勘定します。

+ +

beosmpmt_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 ですので、サーバ全体で管理されます。

+ +

beosmpmt_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 という制限付きでコンパイルされています。 + これはスペルミスによって誤って酷い状況になるのを、 + 回避するための処置です。

+
+ +

参照

+ +
+
top
+

StartServers ディレクティブ

+ + + + + + + +
説明:起動時に生成される子サーバプロセスの数
構文:StartServers number
デフォルト:詳細は使用方法を参照
コンテキスト:サーバ設定ファイル
ステータス:MPM
モジュール:leader, mpmt_os2, prefork, threadpool, worker
+

StartServers ディレクティブは、 + 起動時に生成される子サーバプロセスの数を設定します。 + プロセス数は負荷に応じて動的に制御されますので、 + 通常はこの値を調整する理由はあまりないでしょう。

+ +

デフォルト値は MPM ごとに異なります。 + leader, threadpool, + workerStartServers 3 です。 + prefork5 で、 + mpmt_os22 です。

+ +
+
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
+

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 ディレクティブは + beosmpmt_os2 MPM + にも存在しますが、実質的に無効で、互換性のためだけに存在します。

+
+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_common.html.tr.utf8 b/rubbos/app/apache2/manual/mod/mpm_common.html.tr.utf8 new file mode 100644 index 00000000..d855d558 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_common.html.tr.utf8 @@ -0,0 +1,905 @@ + + + +mpm_common - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache MPM Ortak Yönergeleri

+
+

Mevcut Diller:  de  | + en  | + es  | + 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:leader, perchild, prefork, threadpool, 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.

+ +
+
top
+

BS2000Account Yönergesi

+ + + + + + + +
Açıklama:BS2000 makinelerde yetkisiz hesap tanımlar.
Sözdizimi:BS2000Account account
Bağlam:sunucu geneli
Durum:MPM
Modül:perchild, prefork
Uyumluluk:Sadece BS2000 makineler içindir.
+

BS2000Account yönergesi sadece BS2000 + konaklar için kullanılabilir. User yönergesi ile belirtilen yetkisiz apache sunucu + kullanıcısı için hesap numarası tanımlamakta kullanılmalıdır. Buna, + CGI betiklerinin sunucu tarafından başlatılmış yetkili hesabın + (normal olarak SYSROOT’un) özkaynaklarına erişmesini + engellemek için BS2000 POSIX alt sistemleri tarafından gerek duyulur.

+ +

Ek Bilgi

+

Sadece bir BS2000Account yönergesi kullanılabilir.

+
+ +

Ayrıca bakı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, leader, mpm_winnt, perchild, prefork, threadpool, 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.

+
+ +
+
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:leader, perchild, prefork, threadpool, 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
+

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, leader, mpmt_os2, perchild, prefork, threadpool, 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ı
Bağlam:sunucu geneli
Durum:MPM
Modül:beos, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, worker, event
Uyumluluk:Apache 2.0’dan beri gerekli yönergelerden + biridir.
+

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 +

+ +

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, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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:leader, perchild, prefork, threadpool, 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, leader, prefork, threadpool, 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, leader, mpm_netware, prefork, threadpool, 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:leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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.

+
+ +
+
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, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

Boştaki azami evre sayısı. Her MPM bu yönerge karşısında farklı + davranır.

+ +

perchild için MaxSpareThreads 10 + öntanımlıdır. Bu MPM, boştaki evrelerin sayısını çocuk süreç başına + boştaki evre sayısı olarak izler. Bir çocukta çok fazla boşta evre + varsa sunucu sadece o çocuğun boştaki evrelerini öldürür.

+ +

worker, leader ve + threadpool için MaxSpareThreads 250 + öntanımlıdır. Bu MPM’ler 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 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, leader, mpm_netware, mpmt_os2, perchild, threadpool, worker
+

İsteklerin ani artışında devreye girecek boştaki evrelerin asgari + sayısı. Her MPM bu yönerge karşısında farklı davranır.

+ +

perchild için MinSpareThreads 5 + öntanımlıdır ve çocuk süreç başına boştaki evre sayısını izler. Bir + çocuk için yeterince boşta evre yoksa sunucu bu çocuk için yeni evreler + oluşturmaya başlar. Nitekim, NumServers için 10 ve + MinSpareThreads için 5 atarsanız + sisteminizdeki boştaki evre sayısı en az 50 olur.

+ +

worker, leader ve + threadpool modülleri 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, leader, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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_status
Bağlam:sunucu geneli
Durum:MPM
Modül:beos, leader, mpm_winnt, perchild, prefork, threadpool, 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_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, leader, mpm_netware, mpm_winnt, mpmt_os2, perchild, prefork, threadpool, 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.

+ +
+
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:leader, perchild, prefork, threadpool, 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, leader ve + threadpool modülleri 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.

+ +

perchild modülüyle bu yönergeyi eğer NumServers yönergesine 8’den (öntanımlı) + büyük bir değer atayacaksanız kullanınız.

+ +

Ek Bilgi

+

Sunucu içinde derlenmiş olarak ServerLimit 20000 + şeklinde bir zorlayıcı sınır vardır. 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:leader, mpmt_os2, prefork, threadpool, 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 + leader, threadpool ve + 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, perchild
+

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.

+ +

perchild için StartThreads 5 öntanımlı + olup bu yönerge sunucunun başlatılması sırasında oluşturulan süreç + başına evre sayısıyla bağlantısını sürdürü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:leader, mpm_winnt, perchild, threadpool, 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:leader, mpm_winnt, threadpool, 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
+

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:leader, perchild, prefork, threadpool, 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.

+
+ +

Sanal konakları farklı kullanıcı kimliklerle çalıştırmak üzere + tasarlanan perchild modülü kullanıldığında <VirtualHost> bölümlerinde + AssignUserID yönergesi ile + farklı bir kullanıcı kimlik tanımlanmadığı takdirde + User yönergesi ile ana sunucu için tanımlanan + kullanıcı kimlik sanal konak için de geçerli olur.

+ +

Ö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  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_netware.html b/rubbos/app/apache2/manual/mod/mpm_netware.html new file mode 100644 index 00000000..4b973d16 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_netware.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mpm_netware.html.en b/rubbos/app/apache2/manual/mod/mpm_netware.html.en new file mode 100644 index 00000000..87d173b6 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_netware.html.en @@ -0,0 +1,125 @@ + + + +mpm_netware - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM netware

+
+

Available Languages:  en 

+
+ + + +
Description:Multi-Processing Module implementing an exclusively threaded web + server optimized for Novell NetWare
Status:MPM
ModuleIdentifier:mpm_netware_module
SourceFile:mpm_netware.c
+

Summary

+ +

This Multi-Processing Module (MPM) implements an exclusively + threaded web server that has been optimized for Novell + NetWare.

+ +

The main thread is responsible for launching child + worker threads which listen for connections and serve them when they + arrive. Apache always tries to maintain several spare + or idle worker threads, which stand ready to serve incoming + requests. In this way, clients do not need to wait for a new + child threads to be spawned before their requests can be + served.

+ +

The StartThreads, + MinSpareThreads, + MaxSpareThreads, and + MaxThreads + regulate how the main thread creates worker threads to serve + requests. In general, Apache is very self-regulating, so most + sites do not need to adjust these directives from their default + values. Sites with limited memory may need to decrease MaxThreads to keep the server from + thrashing (spawning and terminating idle threads). More information + about tuning process creation is provided in the performance hints + documentation.

+ +

MaxRequestsPerChild + controls how frequently the server recycles processes by killing old + ones and launching new ones. On the NetWare OS it is highly + recommended that this directive remain set to 0. This allows worker + threads to continue servicing requests indefinitely.

+
+ + +
top
+

MaxThreads Directive

+ + + + + + + +
Description:Set the maximum number of worker threads
Syntax:MaxThreads number
Default:MaxThreads 2048
Context:server config
Status:MPM
Module:mpm_netware
+

The MaxThreads directive sets the desired + maximum number worker threads allowable. The default value is + also the compiled in hard limit. Therefore it can only be lowered, + for example:

+ +

+ MaxThreads 512 +

+ +
+
top
+

ThreadStackSize Directive

+ + + + + + + +
Description:Determine the stack size for each thread
Syntax:ThreadStackSize number
Default:ThreadStackSize 65536
Context:server config
Status:MPM
Module:mpm_netware
+

This directive tells the server what stack size to use for + each of the running threads. If you ever get a stack overflow + you will need to bump this number to a higher setting.

+ +
+
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_winnt.html b/rubbos/app/apache2/manual/mod/mpm_winnt.html new file mode 100644 index 00000000..319084ba --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_winnt.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mpm_winnt.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_winnt.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_winnt.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm_winnt.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mod/mpm_winnt.html.de b/rubbos/app/apache2/manual/mod/mpm_winnt.html.de new file mode 100644 index 00000000..4875b953 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_winnt.html.de @@ -0,0 +1,95 @@ + + + +mpm_winnt - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-MPM winnt

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja 

+
+ + + +
Beschreibung: Das Multi-Processing-Modul ist optimiert fr + Windows NT.
Status:MPM
Modulbezeichner:mpm_winnt_module
Quelltext-Datei:mpm_winnt.c
+

Zusammenfassung

+ +

Dieses Multi-Processing-Modul (MPM) ist die Voreinstellung + fr das Betriebssystem Windows NT. Es verwendet einen einzelnen + Steuerprozess, der einen einzelnen Kindprozess startet, welcher + wiederum Threads zur Bedienung von Anfragen erstellt.

+
+ + +
top
+

Win32DisableAcceptEx-Direktive

+ + + + + + + + +
Beschreibung:Fr die Annahme von Netzwerkverbindungen wird accept() anstelle von AcceptEx() verwendet
Syntax:Win32DisableAcceptEx
Voreinstellung:AcceptEx() ist standardmig aktiviert. Verwenden Sie diese +Direktive, um den Gebrauch von AcceptEx() zu deaktivieren.
Kontext:Serverkonfiguration
Status:MPM
Modul:mpm_winnt
Kompatibilitt:Verfgbar ab Version 2.0.49
+

AcceptEx() ist eine Schnittstelle zu Microsoft Winsock v2, + die unter bestimmten Umstnden einige Leistungsverbesserungen + gegenber der accept()-API von BSD bietet. Einige beliebte + Windows-Produkte, typischerweise Virenscanner oder VPN-Pakete, besitzen + jedoch Fehler, welche den einwandfreien Betrieb von AcceptEx() + stren. Wenn Sie einen Fehler wie:

+ +

+ [error] (730038)An operation was attempted on something that is + not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. +

+ +

erhalten, sollten Sie diese Direktive verwenden, um den Gebrauch von + AcceptEx() zu unterbinden.

+ +
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_winnt.html.en b/rubbos/app/apache2/manual/mod/mpm_winnt.html.en new file mode 100644 index 00000000..2fe960c4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_winnt.html.en @@ -0,0 +1,95 @@ + + + +mpm_winnt - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM winnt

+
+

Available Languages:  de  | + en  | + es  | + ja 

+
+ + + +
Description:This Multi-Processing Module is optimized for Windows +NT.
Status:MPM
ModuleIdentifier:mpm_winnt_module
SourceFile:mpm_winnt.c
+

Summary

+ +

This Multi-Processing Module (MPM) is the default for the + Windows NT operating systems. It uses a single control process + which launches a single child process which in turn creates + threads to handle requests

+
+ + +
top
+

Win32DisableAcceptEx Directive

+ + + + + + + + +
Description:Use accept() rather than AcceptEx() to accept network connections
Syntax:Win32DisableAcceptEx
Default:AcceptEx() is enabled by default. Use this directive to disable use of + AcceptEx()
Context:server config
Status:MPM
Module:mpm_winnt
Compatibility:Available in Version 2.0.49 and later
+

AcceptEx() is a Microsoft WinSock v2 API that provides + some performance improvements over the use of the BSD style + accept() API in certain circumstances. Some popular Windows + products, typically virus scanning or virtual private network + packages, have bugs that interfere with the proper operation of + AcceptEx(). If you encounter an error condition like:

+ +

+ [error] (730038)An operation was attempted on something that is + not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. +

+ +

you should use this directive to disable the use of + AcceptEx().

+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_winnt.html.es b/rubbos/app/apache2/manual/mod/mpm_winnt.html.es new file mode 100644 index 00000000..e2a0cb0a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_winnt.html.es @@ -0,0 +1,99 @@ + + + +mpm_winnt - Servidor HTTP Apache + + + + + + +
<-
+ +
+

MPM de Apache winnt

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + + +
Descripcin:Mdulo de multiprocesamiento optimizado para Windows +NT.
Estado:MPM
Identificador de Mdulos:mpm_winnt_module
Fichero de Cdigo Fuente:mpm_winnt.c
+

Resumen de contenidos

+ +

Este mdulo de multiprocesamiento (MPM) es el que viene por + defecto para los sitemas operativos Windows NT. Crea un solo + proceso de control que crea un solo proceso hijo que a su vez crea + hebras para atender las peticiones que se produzcan.

+
+ + +
top
+

Win32DisableAcceptEx Directiva

+ + + + + + + + +
Descripcin:Usa accept() en lugar de AcceptEx() para aceptar +conexiones de red
Sintaxis:Win32DisableAcceptEx
Valor por defecto:AcceptEx() est activado por defecto. Use esta directiva para desactivarlo
Contexto:server config
Estado:MPM
Mdulo:mpm_winnt
Compatibilidad:Disponible en las versiones 2.0.49 y posteriores
+

AcceptEx() es una API WinSock v2 de Microsoft que + ofrece algunas mejoras en el rendimiento sobre la API + accept() de tipo BSD bajo ciertas + condiciones. Algunos productos populares de Microsoft, sobre todo + antivirus o aplicaciones para implemetar redes privadas virtuales, + tienen errores de programacin que interfieren con el + funcionamiento de AcceptEx(). Si se encuentra con un + mensaje de error parecido a este:

+ +

+ [error] (730038)An operation was attempted on something that is + not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. +

+ +

debe usar esta directiva para desactivar el uso de AcceptEx().

+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpm_winnt.html.ja.utf8 b/rubbos/app/apache2/manual/mod/mpm_winnt.html.ja.utf8 new file mode 100644 index 00000000..d232f06e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpm_winnt.html.ja.utf8 @@ -0,0 +1,94 @@ + + + +mpm_winnt - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache MPM winnt

+
+

Available Languages:  de  | + en  | + es  | + ja 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明: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  | + es  | + ja 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/mpmt_os2.html b/rubbos/app/apache2/manual/mod/mpmt_os2.html new file mode 100644 index 00000000..eb0b883e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpmt_os2.html @@ -0,0 +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/rubbos/app/apache2/manual/mod/mpmt_os2.html.en b/rubbos/app/apache2/manual/mod/mpmt_os2.html.en new file mode 100644 index 00000000..49f2c47e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/mpmt_os2.html.en @@ -0,0 +1,73 @@ + + + +mpmt_os2 - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM os2

+
+

Available Languages:  en 

+
+ + + +
Description:Hybrid multi-process, multi-threaded MPM for OS/2
Status:MPM
ModuleIdentifier:mpm_mpmt_os2_module
SourceFile:mpmt_os2.c
+

Summary

+ +

The Server consists of a main, parent process and a small, static + number of child processes.

+ +

The parent process's job is to manage the child processes. This + involves spawning children as required to ensure there are always + StartServers processes + accepting connections.

+ +

Each child process consists of a a pool of worker threads and a + main thread that accepts connections and passes them to the workers via + a work queue. The worker thread pool is dynamic, managed by a + maintenance thread so that the number of idle threads is kept between + MinSpareThreads and + MaxSpareThreads.

+
+ + +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/perchild.html b/rubbos/app/apache2/manual/mod/perchild.html new file mode 100644 index 00000000..97510794 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/perchild.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: perchild.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/perchild.html.en b/rubbos/app/apache2/manual/mod/perchild.html.en new file mode 100644 index 00000000..3d557add --- /dev/null +++ b/rubbos/app/apache2/manual/mod/perchild.html.en @@ -0,0 +1,266 @@ + + + +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
ModuleIdentifier:mpm_perchild_module
SourceFile: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/rubbos/app/apache2/manual/mod/prefork.html b/rubbos/app/apache2/manual/mod/prefork.html new file mode 100644 index 00000000..80d3eeb8 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: prefork.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: prefork.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: prefork.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: prefork.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/prefork.html.de b/rubbos/app/apache2/manual/mod/prefork.html.de new file mode 100644 index 00000000..23ab48e4 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html.de @@ -0,0 +1,195 @@ + + + +prefork - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-MPM prefork

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ + + +
Beschreibung:Implementiert einen im Voraus forkenden Webserver ohne + Thread-Untersttzung
Status:MPM
Modulbezeichner:mpm_prefork_module
Quelltext-Datei:prefork.c
+

Zusammenfassung

+ +

Dieses Multi-Processing-Modul (MPM) implementiert einen + im Voraus forkenden Webserver ohne Thread-Untersttzung, der Anfragen + auf hnliche Weise behandelt wie der Apache 1.3. Es ist fr + Angebote geeignet, die aus Kompatibilittsgrnden mit + nicht-Thread-sicheren Bibliotheken Threading vermeiden mssen. + Es ist auerdem das geeignetste MPM, um jede Anfrage isoliert + zu bearbeiten, so dass Probleme mit einem einzelnen Prozess keinen + anderen beeinflussen.

+ +

Das MPM ist stark selbstregulierend, so dass es selten + notwendig ist, seine Konfigurationseinstellungen zu justieren. Das + 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 fr alle Prozesse vorhanden ist.

+
+ +
top
+
+

Arbeitsweise

+

Ein einzelner Steuerprozess ist fr den Start von + Kindprozessen verantwortlich, die auf Verbindungen warten und diese + bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere + freie oder unbeschftigte Serverprozesse vorzuhalten, + die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise + mssen Clients nicht darauf warten, dass neue Kindprozesse + geforkt werden, bevor ihre Anfrage bearbeitet werden kann.

+ +

StartServers, + MinSpareServers, + MaxSpareServers und + 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 verndern + mssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen + mssen, knnen MaxClients erhhen, whrend + Systeme mit begrenztem Arbeitsspeicher mglicherweise + MaxClients heruntersetzen + mssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf + Platte auslagern - und zurck) zu schtzen. Weitere + Informationen zur Feinabstimmung der Prozesserstellung sind in den + Performance-Hinweisen zu + finden.

+ +

Whren der Elternprozess unter Unix normalerweise als + root gestartet wird, um sich an Port 80 binden zu knnen, + 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 mssen in der Lage sein, alle Inhalte zu lesen, die + sie ausliefern sollen, sollten darber hinaus jedoch so wenig wie + mglich Rechte besitzen.

+ +

MaxRequestsPerChild + bestimmt, wie hufig der Server Prozesse erneuert, indem er alte + beendet und neue startet.

+
+
top
+

MaxSpareServers-Direktive

+ + + + + + + +
Beschreibung:Maximale Anzahl der unbeschftigten Kindprozesse des + Servers
Syntax:MaxSpareServers Anzahl
Voreinstellung:MaxSpareServers 10
Kontext:Serverkonfiguration
Status:MPM
Modul:prefork
+

Die Direktive MaxSpareServers bestimmt das + gewnschte Maximum an unbeschftigten + Kindprozessen des Servers. Ein unbeschftiger Prozess ist einer, der + keine Anfrage bedient. Wenn mehr als MaxSpareServers + Prozesse unbeschftigt sind, wird der Elternprozess die + berschssigen Prozesse beenden.

+ +

Eine Feineinstellung dieses Parameters sollte nur bei sehr + beschftigten Angeboten notwendig sein. Es ist nahezu immer eine + schlechte Idee, den Parameter auf einen hohen Wert zu setzen. Wenn Sie + versuchen, den Wert niedriger als MinSpareServers zu setzen, wird der Apache + ihn automatisch auf MinSpareServers + 1 korrigieren.

+ +

Siehe auch

+ +
+
top
+

MinSpareServers-Direktive

+ + + + + + + +
Beschreibung:Minimale Anzahl der unbeschftigten Kindprozesse des + Servers
Syntax:MinSpareServers Anzahl
Voreinstellung:MinSpareServers 5
Kontext:Serverkonfiguration
Status:MPM
Modul:prefork
+

Die Direktive MinSpareServers bestimmt das + gewnschte Minimum der unbeschftigten + Kindprozesse des Servers. Ein unbeschftigter Prozess ist einer, der + keine Anfrage bedient. Wenn weniger als + MinSpareServers Prozesse unbeschftigt sind, + dann erstellt der Elternprozess neue mit einer maximalen Rate von 1 + pro Sekunde.

+ +

Die Feineinstellung des Parameters sollte nur bei sehr + beschftigten Angeboten notwendig sein. Es ist nahezu immer eine + schlechte ide, den Parameter auf einen hohen Wert zu setzen.

+ +

Siehe auch

+ +
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/prefork.html.en b/rubbos/app/apache2/manual/mod/prefork.html.en new file mode 100644 index 00000000..127eb9e5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html.en @@ -0,0 +1,181 @@ + + + +prefork - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM prefork

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ + + +
Description:Implements a non-threaded, pre-forking web server
Status:MPM
ModuleIdentifier:mpm_prefork_module
SourceFile:prefork.c
+

Summary

+ +

This Multi-Processing Module (MPM) implements a non-threaded, + pre-forking web server that handles requests in a manner similar + to Apache 1.3. It is appropriate for sites that need to avoid + threading for compatibility with non-thread-safe libraries. It + is also the best MPM for isolating each request, so that a problem + with a single request will not affect any other.

+ +

This MPM is very self-regulating, so it is rarely necessary to + adjust its configuration directives. Most important is that + MaxClients be big enough to + handle as many simultaneous requests as you expect to receive, but + small enough to assure that there is enough physical RAM for all + processes.

+
+ +
top
+
+

How it Works

+

A single control process is responsible for launching child + processes which listen for connections and serve them when they + arrive. Apache always tries to maintain several spare + or idle server processes, which stand ready to serve incoming + requests. In this way, clients do not need to wait for a new + child processes to be forked before their requests can be + served.

+ +

The StartServers, + MinSpareServers, + MaxSpareServers, and + MaxClients regulate how + the parent process creates children to serve requests. In general, + Apache is very self-regulating, so most sites do not need to + adjust these directives from their default values. Sites which + need to serve more than 256 simultaneous requests may need to + increase MaxClients, + while sites with limited memory may need to decrease MaxClients to keep the server from + thrashing (swapping memory to disk and back). More information + about tuning process creation is provided in the performance hints + documentation.

+ +

While the parent process is usually started as root + under Unix in order to bind to port 80, the child processes 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.

+ +

MaxRequestsPerChild + controls how frequently the server recycles processes by killing + old ones and launching new ones.

+
+
top
+

MaxSpareServers Directive

+ + + + + + + +
Description:Maximum number of idle child server processes
Syntax:MaxSpareServers number
Default:MaxSpareServers 10
Context:server config
Status:MPM
Module:prefork
+

The MaxSpareServers directive sets the + desired maximum number of idle child server processes. An + idle process is one which is not handling a request. If there are + more than MaxSpareServers idle, then the + parent process will kill off the excess processes.

+ +

Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea. If you are trying to set the value lower than + MinSpareServers, Apache + will automatically adjust it to MinSpareServers + 1.

+ +

See also

+ +
+
top
+

MinSpareServers Directive

+ + + + + + + +
Description:Minimum number of idle child server processes
Syntax:MinSpareServers number
Default:MinSpareServers 5
Context:server config
Status:MPM
Module:prefork
+

The MinSpareServers directive sets the + desired minimum number of idle child server processes. An + idle process is one which is not handling a request. If there are + fewer than MinSpareServers idle, then the parent + process creates new children at a maximum rate of 1 per second.

+ +

Tuning of this parameter should only be necessary on very + busy sites. Setting this parameter to a large number is almost + always a bad idea.

+ +

See also

+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/prefork.html.es b/rubbos/app/apache2/manual/mod/prefork.html.es new file mode 100644 index 00000000..0ab1be81 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html.es @@ -0,0 +1,197 @@ + + + +prefork - Servidor HTTP Apache + + + + + + +
<-
+ +
+

MPM de Apache prefork

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + + +
Descripcin:Implementa un servidor web pre-forking y no +hebrado
Estado:MPM
Identificador de Mdulos:mpm_prefork_module
Fichero de Cdigo Fuente:prefork.c
+

Resumen de contenidos

+ +

Este Mdulo de MultiProcesamiento (MPM) implementa un + servidor web pre-forking y no hebrado que trata las peticiones de + una manera similar a como lo haca Apache 1.3. Esto es + apropiado para sitios web que necesitan evitar el hebrado para ser + compatibles con libreras que no son seguras cuado se usan + hebras. Es tambin el mejor MPM para aislar cada + peticin, de manera que si suge un problema con una + peticin, esto no afecte al resto.

+ +

Este MPM est muy autorregulado, de manera que muy pocas + veces es necesario ajustar los valores de sus directivas de + configuracin. El valor que se fije en la directiva + MaxClients debe ser lo + suficientemente grande para tratar tantas peticiones + simultneas como espere recibir su sitio web, pero lo + suficientemente pequeo para asegurarse de que hay memoria + RAM suficiente para todos los procesos.

+
+ +
top
+
+

Cmo funciona

Un + solo proceso de control es el responsable de lanzar los procesos + hijo que escuchan las peticiones que se puedan producir y las + sirven cuando llegan. Apache siempre intenta mantener varios + procesos de sobra o en espera, que estn + disponibles para servir peticiones cuando lleguen. As, los + clientes no tienen que esperar a que un nuevo proceso hijo sea + creado para ser atendidos.

+ +

Las directivas StartServers, MinSpareServers, MaxSpareServers, y MaxClients regulan la forma en que + el proceso padre crea hijos para servir peticiones. En general, + Apache funciona bien sin hacer muchas modificaciones en los + valores por defecto de estas directivas, de manera que la mayor + parte de los sitios web no necesitan ajustar esas directivas a + valores diferentes. Los sitios web que necesiten servir ms + de 256 peticiones simultneas pueden necesitar incrementar el + valor de MaxClients, + mientras que los sitios web con memoria limitada pueden necesitar + decrementar MaxClients + para evitar que el rendimiento del servidor se degrade (pasando + los contenidos de memoria al disco y de vuelta a memoria). Puede + obtener ms informacin sobre como mejorar el + rendimiento del proceso de creacin de procesos en la + documentacin sobre mejora + del rendimiento.

+ +

El proceso padre de Apache se inicia normalmente como usuario + root en Unix para que escuche en el puerto 80, sin + embargo, los procesos hijo se crean con menores privilegios de + usuario. Las directivas User y Group se usan para determinar los + privilegios de los procesos hijo de Apache. Los procesos hijo + deben ser capaces de leer todos los contenidos que van a servir, + pero deben tener los menores privilegios posibles.

+ +

La directiva MaxRequestsPerChild controla + cmo el servidor recicla frecuentemente los procesos + eliminando los antiguos y creando nuevos.

+
+
top
+

MaxSpareServers Directiva

+ + + + + + + +
Descripcin:Nmero mximo de procesos hijo en espera que +puede tener el servdor
Sintaxis:MaxSpareServers number
Valor por defecto:MaxSpareServers 10
Contexto:server config
Estado:MPM
Mdulo:prefork
+

La directiva MaxSpareServers determina + el nmero mximo de procesos hijo en espera + deseado. Un proceso en espera es aquel que no est atendiendo + ninguna peticin. Si hay ms de + MaxSpareServers procesos hijo en espera, + entonces el proceso padre elimina el exceso.

+ +

Ajustar este parmetro debe ser necesario solo en sitios + web con muchas visitas. Fijar un valor alto para este + parmetro es una mala idea casi siempre. Si fija un valor por + debajo de MinSpareServers, + Apache ajustar automticamente el valor a MinSpareServers + 1.

+ +

Consulte tambin

+ +
+
top
+

MinSpareServers Directiva

+ + + + + + + +
Descripcin:Nmero mnimo de procesos hijo en espera
Sintaxis:MinSpareServers number
Valor por defecto:MinSpareServers 5
Contexto:server config
Estado:MPM
Mdulo:prefork
+

La directiva MinSpareServers fija el + nmero mnimo de procesos hijo en espera. Un + proceso en espera es aquel que no est atendiendo ninguna + peticin. Si hay menos procesos hijo en espera que + MinSpareServers, entonces el proceso padre + crea nuevos procesos hijo a un ritmo mximo de uno por + segundo.

+ +

Ajustar este parmetro debe ser necesario solo en sitios + web con muchas visitas. Fijar un valor alto para este + parmetro es una mala idea casi siempre.

+ +

Consulte tambin

+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/prefork.html.ja.utf8 b/rubbos/app/apache2/manual/mod/prefork.html.ja.utf8 new file mode 100644 index 00000000..03569b7a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html.ja.utf8 @@ -0,0 +1,194 @@ + + + +prefork - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache MPM prefork

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:スレッドを使わず、先行して 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 個の割合で新しい子プロセスを生成します。

+ +

非常に混んでいるサイトでのみ、このパラメータをチューニングするべきです。 + このパラメータを大きくするということは、大抵の場合は悪い発想です。

+ +

参照

+ +
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/prefork.html.tr.utf8 b/rubbos/app/apache2/manual/mod/prefork.html.tr.utf8 new file mode 100644 index 00000000..6af3a62b --- /dev/null +++ b/rubbos/app/apache2/manual/mod/prefork.html.tr.utf8 @@ -0,0 +1,180 @@ + + + +prefork - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache MPM prefork

+
+

Mevcut Diller:  de  | + en  | + es  | + 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ğerinden 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  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html b/rubbos/app/apache2/manual/mod/quickreference.html new file mode 100644 index 00000000..1e27a3b5 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: quickreference.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: quickreference.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: quickreference.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: quickreference.html.ja.utf8 +Content-Language: ja +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 diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.de b/rubbos/app/apache2/manual/mod/quickreference.html.de new file mode 100644 index 00000000..bffbecbb --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.de @@ -0,0 +1,743 @@ + + + +Kurzreferenz der Direktiven - Apache HTTP Server + + + + + + +
<-
+ +

Kurzreferenz der Direktiven

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen Sie die englische Version auf + die neuesten nderungen.
+ +

Die Kurzreferenz der Direktiven zeigt die Verwendung, + Voreinstellung, den Status und den Kontext aller + Apache-Konfigurationsanweisungen. Fr weitergehende Informationen + schauen Sie bitte im Verzeichnis der Direktiven.

+ +

Die erste Spalte enthlt den Namen und die Verwendung. + Die zweite Spalte zeigt die Voreinstellung der Direktive, sofern + eine Voreinstellung existiert. Wenn die Voreinstellung zu breit + fr die Anzeige ist, werden die ersten Buchstaben angegeben, + gefolgt von einem "+".

+ +

Die dritte und vierte Spalte geben den Kontext an, in dem die + Direktive erlaubt ist, sowie den Status der Direktive entsprechend + der Legende.

+
+
+ + + +
 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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 angehngte Pfadangaben zu
AccessFileName Dateiname [Dateiname] ... .htaccess svC
Name der dezentralen Konfigurationsdateien
Action action-type cgi-scriptsvdhB
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|Zeichenkodierung Off svdhC
Standard-Charset-Parameter, der bei Antworten vom Content-Type + text/plain oder text/html hinzugefgt 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 +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
einen Ausgabefilter einem bestimmten MIME-Type +zuordnen
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 Off svC
Legt fest, ob kodierte Pfadtrennzeichen in URLs durchgereicht +werden drfen
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 +password verification
Anonymous_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhX
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhX
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhX
Name of the text file containing the list of groups +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
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
Sets the name of a text file containing the list +of user groups for authentication
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-BereichdhC
Autorisierungsbereich zur Verwendung in der +HTTP-Authentisierung
AuthType Basic|DigestdhC
Art der Authentisierung
AuthUserFile file-pathdhB
Sets the name of a text file containing the list of users and +passwords for authentication
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
BS2000Account AccountsM
Bestimmt den nicht-privilegierten Account auf +BS2000-Maschinen
BufferedLogs On|Off Off sB
Buffer log entries in memory before writing to disk
CacheDefaultExpire seconds 3600 (one hour) svX
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 svX
The number of characters in subdirectory names
CacheDirLevels levels 3 svX
The number of levels of subdirectories in the +cache.
CacheDisable url-stringsvX
Disable caching of specified URLs
CacheEnable cache_type url-stringsvX
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On svX
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sX
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 svX
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? svX
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? svX
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hourssvX
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? svX
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? svX
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off svX
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None svX
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off svX
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 svX
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) svX
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 svX
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 svX
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 directorysvX
The directory root under which cache files are +stored
CacheSize KBytes 1000000 svX
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? svX
The minimum time margin to cache a document
CGIMapExtension CGI-Pfad .EndungdhC
Technik zur Bestimmung des Interpreters fr +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
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
Aktiviert die Generierung von Content-MD5 +HTTP-Response-Headern
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 VerzeichnissM
Verzeichnis, in das der Apache zu wechseln versucht, bevor er + einen Hauptspeicherauszug erstellt
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
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
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 text/plain svdhC
MIME-Content-Type, der gesendet wird, wenn der Server den Typ +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 +server
<Directory Verzeichnispfad> +... </Directory>svC
Umschliet 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 +a directory
<DirectoryMatch regex> +... </DirectoryMatch>svC
Umschliet eine Gruppe von Direktiven, die auf + Verzeichnisse des Dateisystems und ihre Unterverzeichnisse abgebildet + werden, welche auf einen regulren 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 sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
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 whrend der +Auslieferung zu lesen
EnableSendfile On|Off On svdhC
Verwende die sendfile-Untersttzung des Kernels, um +Dateien an den Client auszuliefern
ErrorDocument Fehlercode DokumentsvdhC
Das, was der Server im Fehlerfall an den Client +zurckgibt
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
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
FileETag Komponente ... INode MTime Size svdhC
Dateiattribute, die zur Erstellung des HTTP-Response-Headers +ETag verwendet werden
<Files Dateiname> ... </Files>svdhC
Enthlt Direktiven, die sich nur auf passende Dateinamen +beziehen
<FilesMatch regex> ... </FilesMatch>svdhC
Enthlt Direktiven, die fr Dateinamen gelten, die + auf einen regulren Ausdruck passen
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 +angegebenen MIME-Content-Type
ForensicLog filename|pipesvE
Sets filename of the forensic log
Group Unix-Gruppe #-1 sM
Benutzergruppe, unter welcher der Server Anfragen + beantwortet
Header [condition] set|append|add|unset|echo +header [value] [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
IdentityCheck On|Off Off svdC
Ermglicht die Protokollierung der Identitt des +entfernten Anwenders nach RFC1413
<IfDefine [!]Parametername> ... + </IfDefine>svdhC
Schliet Direktiven ein, die nur ausgefhrt werden, +wenn eine Testbedingung beim Start wahr ist
<IfModule [!]Modulname> ... + </IfModule>svdhC
Schliet Direktiven ein, die abhngig vom +Vorhandensein oder Fehlen eines speziellen Moduls ausgefhrt +werden
<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 Dateiname|VerzeichnissvdC
Fgt andere Konfigurationsdateien innerhalb der +Server-Konfigurationsdatei ein
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
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
Aktiviert persistente HTTP-Verbindungen
KeepAliveTimeout Sekunden 15 svC
Zeitspanne, die der Server whrend persistenter Verbindungen +auf nachfolgende Anfragen wartet
LanguagePriority MIME-lang [MIME-lang] +...svdhB
The precendence of language variants for cases where +the client does not express a preference
LDAPCacheEntries number 1024 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<Limit Methode [Methode] ... > ... + </Limit>svdhC
Beschrnkt die eingeschlossenen Zugriffskontrollen auf +bestimmte HTTP-Methoden
<LimitExcept Methode [Methode] ... > ... + </LimitExcept>svdhC
Beschrnkt Zugriffskontrollen auf alle HTTP-Methoden +auer den genannten
LimitInternalRecursion Zahl [Zahl] 10 svC
Bestimmt die maximale Anzahl interner Umleitungen und + verschachtelter Unteranfragen
LimitRequestBody Bytes 0 svdhC
Begrenzt die Gesamtgre des vom Client gesendeten +HTTP-Request-Body
LimitRequestFields Anzahl 100 sC
Begrenzt die Anzahl der HTTP-Request-Header, die vom Client +entgegengenommen werden
LimitRequestFieldsize BytessC
Begrenzt die Lnge des vom Client gesendeten +HTTP-Request-Headers
LimitRequestLine Bytes 8190 sC
Begrenzt die Lnge der vom Client entgegengenommenen +HTTP-Anfragezeile
LimitXMLRequestBody Bytes 1000000 svdhC
Begrenzt die Gre eines XML-basierten +Request-Bodys
Listen [IP-Addresse:]PortsM
IP-Adressen und Ports, an denen der Server lauscht
ListenBacklog backlogsM
Maximale Lnge 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 +of active modules
<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 +regulre Ausdrcke passen
LockFile Dateiname logs/accept.lock sM
Ablageort der Lock-Datei fr 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 Ausfhrlichkeit 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 +zulssig sind
MaxMemFree KBytes 0 sM
Maximale Menge des Arbeitsspeichers, den die + Haupt-Zuteilungsroutine verwalten darf, ohne free() + aufzurufen
MaxRequestsPerChild number 10000 sM
Obergrenze fr die Anzahl von Anfragen, die ein einzelner + Kindprozess whrend seines Lebens bearbeitet
MaxRequestsPerThread Anzahl 0 sM
Die maximale Anzahl von Anfragen, die ein einzelner Thread + whrend seiner Lebensdauer bedient.
MaxSpareServers Anzahl 10 sM
Maximale Anzahl der unbeschftigten Kindprozesse des + Servers
MaxSpareThreads AnzahlsM
Maximale Anzahl unbeschftigter 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
The maximum number of objects allowed to be placed in the +cache
MCacheMaxObjectSize bytes 10000 sX
The maximum size (in bytes) of a document allowed in the +cache
MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sX
Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
MCacheMinObjectSize bytes 0 sX
The minimum size (in bytes) of a document to be allowed in the +cache
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
The algorithm used to select documents for removal from the +cache
MCacheSize KBytes 100 sX
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 +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 Anzahl 5 sM
Minimale Anzahl der unbeschftigten Kindprozesse des + Servers
MinSpareThreads AnzahlsM
Minimale Anzahl unbeschftigter Threads, die zur + Bedienung von Anfragespitzen zur Verfgung 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 fr 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 verfgbar 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 +ablegt
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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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
Gre des TCP-Empfangspuffers
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
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|add|unset header +[value [env=[!]variable]]svdhE
Configure HTTP request headers
Require Name [Name] ...dhC
Whlt die authentisierten Benutzer aus, die auf eine +Ressource zugreifen knnen
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 Options MaxRedirects=10 svdhE
Sets some special options for the rewrite engine
RewriteRule + Pattern SubstitutionsvdhE
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 knnen, 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 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
Methode zur Ermittlung des Interpreters von +CGI-Skripten
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 +the cgi daemon
SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
Enables SSL encryption for the specified port
SendBufferSize Bytes 0 sM
Gre des TCP-Sendepuffers
ServerAdmin E-Mail-AdressesvC
E-Mail-Adresse, die der Server in Fehlermeldungen einfgt, +welche an den Client gesendet werden
ServerAlias Hostname [Hostname] ...vC
Alternativer Name fr einen Host, der verwendet wird, wenn +Anfragen einem namensbasierten virtuellen Host zugeordnet werden
ServerLimit AnzahlsM
Obergrenze fr die konfigurierbare Anzahl von + Prozessen
ServerName +voll-qualifizierter-Domainname[:port]svC
Rechnername und Port, die der Server dazu verwendet, sich +selbst zu identifizieren
ServerPath URL-PfadvC
Veralteter URL-Pfad fr 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 Fuzeile von servergenerierten +Dokumenten
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 + 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 Handlername|NonesvdhC
Erzwingt die Verarbeitung aller passenden Dateien durch +einen Handler
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
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 +displayed
SSIUndefinedEcho string "(none)" svB
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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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 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 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 + werden
ThreadStackSize number 65536 sM
Determine the stack size for each thread
TimeOut Sekunden 300 sC
Zeitspanne, die der Server auf verschiedene Ereignisse wartet, +bevor er die Anfrage abbricht
TraceEnable [on|off|extended] on sC
Legt das Serververhalten bei TRACE-Anfragen +fest
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 On svdC
Bestimmt, wie der Server seinen eigenen Namen und Port +ermittelt
User Unix-User-ID #-1 sM
Die Benutzerkennung, unter welcher der Server Anfragen + beantwortet
UserDir directory-filename public_html 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 + Adresse[:Port] [Adresse[:Port]] + ...> ... </VirtualHost>sC
Enthlt 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 +a given virtual host
VirtualScriptAliasIP interpolated-directory|none none svE
Dynamically configure the location of the cgi directory for +a given virtual host
Win32DisableAcceptExsM
Fr 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
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.en b/rubbos/app/apache2/manual/mod/quickreference.html.en new file mode 100644 index 00000000..5c4b9f59 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.en @@ -0,0 +1,721 @@ + + + +Directive Quick Reference - Apache HTTP Server + + + + + + +
<-
+ +

Directive Quick Reference

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

The directive quick reference shows the usage, default, status, + and context of each Apache configuration directive. For more + 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 "+".

+ +

The third and fourth columns list the contexts where the directive + is allowed and the status of the directive according to the legend + tables below.

+
+
+ + + +
 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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-scriptsvdhB
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 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_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhX
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhX
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhX
Name of the text file containing the list of groups +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
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
Sets the name of a text file containing the list +of user groups for authentication
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-domaindhC
Authorization realm for use in HTTP +authentication
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
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
BS2000Account accountsM
Define the non-privileged account on BS2000 +machines
BufferedLogs On|Off Off sB
Buffer log entries in memory before writing to disk
CacheDefaultExpire seconds 3600 (one hour) svX
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 svX
The number of characters in subdirectory names
CacheDirLevels levels 3 svX
The number of levels of subdirectories in the +cache.
CacheDisable url-stringsvX
Disable caching of specified URLs
CacheEnable cache_type url-stringsvX
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On svX
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sX
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 svX
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? svX
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? svX
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hourssvX
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? svX
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? svX
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off svX
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None svX
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off svX
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 svX
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) svX
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 svX
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 svX
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 directorysvX
The directory root under which cache files are +stored
CacheSize KBytes 1000000 svX
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? svX
The minimum time margin to cache a document
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 +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 +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
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
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 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
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 and sub-directories
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 sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
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
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 +filenames
<FilesMatch regex> ... </FilesMatch>svdhC
Contains directives that apply to regular-expression matched +filenames
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 +requests
Header [condition] set|append|add|unset|echo +header [value] [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 svdC
Enables logging of the RFC1413 identity of the remote +user
<IfDefine [!]parameter-name> ... + </IfDefine>svdhC
Encloses directives that will be processed only +if a test is true at startup
<IfModule [!]module-name> ... + </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
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
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 15 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 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<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 sC
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 +client
LimitRequestLine bytes 8190 sC
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:]portnumbersM
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()
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
MaxThreadsPerChild number 64 sM
Maximum number of threads per child process
MCacheMaxObjectCount value 1009 sX
The maximum number of objects allowed to be placed in the +cache
MCacheMaxObjectSize bytes 10000 sX
The maximum size (in bytes) of a document allowed in the +cache
MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sX
Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
MCacheMinObjectSize bytes 0 sX
The minimum size (in bytes) of a document to be allowed in the +cache
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
The algorithm used to select documents for removal from the +cache
MCacheSize KBytes 100 sX
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 +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
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 +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
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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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
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|add|unset header +[value [env=[!]variable]]svdhE
Configure HTTP request headers
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-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 Options MaxRedirects=10 svdhE
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 +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_status 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 svB
The name 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
TCP buffer size
ServerAdmin email-addresssvC
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 +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 valuesvdhB
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
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 +displayed
SSIUndefinedEcho string "(none)" svB
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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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
Number of child server processes created at startup
StartThreads numbersM
Number of threads created on startup
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 number 65536 sM
Determine the stack size for each thread
TimeOut seconds 300 svC
Amount of time the server will wait for +certain events before failing a request
TraceEnable [on|off|extended] on sC
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 On 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
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
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.es b/rubbos/app/apache2/manual/mod/quickreference.html.es new file mode 100644 index 00000000..2fe3d6cf --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.es @@ -0,0 +1,732 @@ + + + +Gua Rpida de Referencia de Directivas - Servidor HTTP Apache + + + + + + +
<-
+ +

Gua Rpida de Referencia de Directivas

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

La Gua Rpida de Referencia de Directivas muestra el uso, las + opciones por defecto, el estado y el contexto de cada directiva de + configuracin de Apache. Para ms informacin sobre cada + directiva, consulte el Diccionario + de Directivas.

+ +

La primera columna muestra el nombre y el uso de la directiva. + La segunda columna muestra el valor por defecto de la directiva, + si existe ese valor por defecto. Si el valor por defecto es + demasiado largo para mostrarlo, el primer caracter va seguido de + un signo "+".

+ +

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 ms abajo.

+
+
+ + + +
 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
EExtensin
XExperimental
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AcceptMutex Default|method Default sM
Mtodo que usa Apache para serializar mltiples procesos +hijo que aceptan peticiones en las conexiones de red
AcceptPathInfo On|Off|Default Default svdhC
Especifica si los recursos aceptan informacin de +path aadida (trailing pathname information)
AccessFileName filename [filename] ... .htaccess svC
Nombre del fichero de configuracin distribuida
Action action-type cgi-scriptsvdhB
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
Parmetro del conjunto de caracteres que se +aade cuando el tipo de contenido de una respuesta es +text/plain o 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
Asigna un filtro de +salida a un tipo MIME en particular
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 Off svC
Determina si se acepta el uso de separadores de +ubicacin codificados en las URLs
AllowOverride All|None|directive-type +[directive-type] ... All dC
Tipos de directivas que cuyo uso est permitido en los ficheros .htaccess
Anonymous user [user] ...dhE
Specifies userIDs that are allowed access without +password verification
Anonymous_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhX
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhX
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhX
Name of the text file containing the list of groups +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
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
Sets the name of a text file containing the list +of user groups for authentication
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-domaindhC
Ambito de autorizacin para su uso en +autentificacin HTTP
AuthType Basic|DigestdhC
Tipo de autentificacin de usuarios
AuthUserFile file-pathdhB
Sets the name of a text file containing the list of users and +passwords for authentication
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
BS2000Account accountsM
Define la cuenta sin privilegios en mquinas +BS2000
BufferedLogs On|Off Off sB
Buffer log entries in memory before writing to disk
CacheDefaultExpire seconds 3600 (one hour) svX
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 svX
The number of characters in subdirectory names
CacheDirLevels levels 3 svX
The number of levels of subdirectories in the +cache.
CacheDisable url-stringsvX
Disable caching of specified URLs
CacheEnable cache_type url-stringsvX
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On svX
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sX
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 svX
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? svX
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? svX
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hourssvX
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? svX
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? svX
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off svX
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None svX
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off svX
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 svX
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) svX
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 svX
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 svX
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 directorysvX
The directory root under which cache files are +stored
CacheSize KBytes 1000000 svX
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? svX
The minimum time margin to cache a document
CGIMapExtension cgi-path +.extensiondhC
Tcnica para localizar +un intrprete de scripts 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
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
Activa la generacin de cabeceras de respuesta HTTP +Content-MD5
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
Directorio al que Apache intenta cambiarse antes de +realizar un volcado de memoria
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
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
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 text/plain svdhC
Tipo de contenido MIME por defecto que usar el servidor si no +puede determinar el tipo MIME en concreto del documento a servir
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 +server
<Directory directory-path> +... </Directory>svC
Engloba a un grupo de directivas +que se aplicarn solamente al directorio del sistema de ficheros +especificado y a sus subdirectorios
DirectoryIndex + local-url [local-url] ... index.html svdhB
List of resources to look for when the client requests +a directory
<DirectoryMatch regex> +... </DirectoryMatch>svC
Incluye las directivas que se +aplican a los directorios y subdirectorios del sistema de ficheros que +equivalen a una expresin regular
DirectorySlash On|Off On svdhB
Toggle trailing slash redirects on or off
DocumentRoot directory-path /usr/local/apache/h +svC
Directorio principal que contiene la estructura de +directorios visible desde la web
DumpIOInput On|Off Off sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
Dump all output data to the error log
EnableExceptionHook On|Off Off sM
Activa un hook que inicia handlers de excepcin +despus de un error irrecuperable
EnableMMAP On|Off On svdhC
Permite el uso de mapeo de memoria para leer archivos mientras se +sirven
EnableSendfile On|Off On svdhC
Permite el uso del soporte de sendfile del kernel para servir ficheros @@@@@ Use the kernel sendfile support to deliver files to the client @@@@@
ErrorDocument error-code +documentsvdhC
Es lo que el servidor devuelve al cliente si se produce +algn error
ErrorLog file-path|syslog[:facility] logs/error_log (Uni +svC
Ubicacin del fichero en +el que se almacenan los mensajes de error
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
FileETag component ... INode MTime Size svdhC
Atributos de fichero usados para crear la ETAG de la +cabecera de respuesta HTTP
<Files filename> ... </Files>svdhC
Contiene directivas que se aplican a los ficheros cuyos +nombres coincidan con los que se especifiquen
<FilesMatch regex> ... </FilesMatch>svdhC
Contiene las directivas que se aplican a los ficheros +cuyos nombres equivalen a las expresiones regulares que se especifiquen
ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
Action to take if a single acceptable document is not +found
ForceType MIME-type|NonedhC
Hace que todos los ficheros cuyos nombres tengan una equivalencia con con lo que se especifique sean +servidos como contenido del tipo MIME que se establezca
ForensicLog filename|pipesvE
Sets filename of the forensic log
Group unix-group #-1 sM
Grupo con el que el servidor atender las +peticiones
Header [condition] set|append|add|unset|echo +header [value] [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
Activa la resolucin de +DNS de las direcciones IP de los clientes
IdentityCheck On|Off Off svdC
Activa que se registre en los archivos log la entidad RFC1413 del usuario remoto
<IfDefine [!]parameter-name> ... + </IfDefine>svdhC
Engloba directivas que sern procesadas solo si se +cumple una determinada condicin al iniciar el servidor
<IfModule [!]module-name> ... + </IfModule>svdhC
Engloba directivas que se procesan de forma condicional +segn est presente o ausente un mdulo especfico
<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
Incluye otros ficheros de configuracin dentro de +los ficheros de configuracin del servidor
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
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
Permite que se establezcan conexiones HTTP +persistentes
KeepAliveTimeout seconds 15 svC
Tiempo que el servidor esperar peticiones subsiguientes +en conexiones persistentes
LanguagePriority MIME-lang [MIME-lang] +...svdhB
The precendence of language variants for cases where +the client does not express a preference
LDAPCacheEntries number 1024 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<Limit method [method] ... > ... + </Limit>svdhC
Restringe la aplicacin de los controles de acceso incluidos a solo ciertos mtodos HTTP
<LimitExcept method [method] ... > + ... </LimitExcept>svdhC
Restringe los controles de acceso a todos los mtodos +HTTP excepto a los que se especifiquen
LimitInternalRecursion number [number] 10 svC
Determina el nmero mximo de redirecciones internas y +subpeticiones anidadas
LimitRequestBody bytes 0 svdhC
Restringe el tamao total del cuerpo de las peticiones +HTTP enviadas desde el cliente
LimitRequestFields number 100 sC
Limita el nmero de campos de la cabecera de las +peticiones HTTP del cliente que sern aceptadas
LimitRequestFieldsize bytessC
Limita el tamao permitido de las cabeceras de las peticiones HTTP de los clientes
LimitRequestLine bytes 8190 sC
Limita el tamao la lnea de peticin HTTP que ser +aceptada
LimitXMLRequestBody bytes 1000000 svdhC
Limita el tamao del cuerpo de una peticin XML
Listen [IP-address:]portnumbersM
Direcciones IP y puertos en los que escucha el servidor
ListenBacklog backlogsM
Longitud mxima de la cola de conexiones en espera
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
Aplica las directivas que contiene solo a las URLs que tengan una equivalencia con los valores que se especifiquen
<LocationMatch + regex> ... </LocationMatch>svC
Aplica las directiva que incluye solo a las URLs que tengan equivalencia con alguna de las expresiones regulares que se especifiquen
LockFile filename logs/accept.lock sM
Ubicacin del fichero de lock de serializacin de aceptacion de peticiones
LogFormat format|nickname +[nickname] "%h %l %u %t \"%r\" +svB
Describes a format for use in a log file
LogLevel level warn svC
Controla la extensin de los mensajes que se almacenan +en el ErrorLog
MaxClients numbersM
Nmero mximo de procesos hijo que sern creados para +atender peticiones
MaxKeepAliveRequests number 100 svC
Nmero de peticiones permitidas en una conexin +persistente
MaxMemFree KBytes 0 sM
Cantidad mxima de memoria que el asignador principal puede tomar sin hacer una llamada a free()
MaxRequestsPerChild number 10000 sM
Lmite en el nmero de peticiones que un proceso hijo puede +atender durante su vida
MaxRequestsPerThread number 0 sM
Limita el nmero de peticiones que una hebra (thread) puede +atender durante su vida
MaxSpareServers number 10 sM
Nmero mximo de procesos hijo en espera que +puede tener el servdor
MaxSpareThreads numbersM
Nmero mximo de hebras en espera
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
The maximum number of objects allowed to be placed in the +cache
MCacheMaxObjectSize bytes 10000 sX
The maximum size (in bytes) of a document allowed in the +cache
MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sX
Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
MCacheMinObjectSize bytes 0 sX
The minimum size (in bytes) of a document to be allowed in the +cache
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
The algorithm used to select documents for removal from the +cache
MCacheSize KBytes 100 sX
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 +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
Nmero mnimo de procesos hijo en espera
MinSpareThreads numbersM
Nmero mnimo de hebras en espera para atender picos de +demanda en las peticiones
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
Designa una direccin IP para usar hosting virtual basado en nombres
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
Configura las funcionalidades disponibles en un directorio en particular
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
Fichero en el que el servidor guarda +el ID del proceso demonio de escucha (daemon)
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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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 +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
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|add|unset header +[value [env=[!]variable]]svdhE
Configure HTTP request headers
Require entity-name [entity-name] ...dhC
Selecciona qu usuarios autentificados pueden acceder a +un recurso
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 Options MaxRedirects=10 svdhE
Sets some special options for the rewrite engine
RewriteRule + Pattern SubstitutionsvdhE
Defines rules for the rewriting engine
RLimitCPU seconds|max [seconds|max]svdhC
Limita el consumo de tiempo de CPU que pueden hacer proceses creados +por procesos hijo de Apache
RLimitMEM bytes|max [bytes|max]svdhC
Limita el consumo de memoria que pueden hacer procesos creados por procesos hijo de Apache
RLimitNPROC number|max [number|max]svdhC
Limita el nmero de procesos que pueden crearse por parte de +procesos creados por procesos hijo de Apache
Satisfy Any|All All dhC
Interaccin entre el control de acceso basado en host +y la autentificacin de usuarios
ScoreBoardFile file-path logs/apache_status sM
Ubicacin del fichero que almacena los datos necesarios para +coordinar el funcionamiento de los procesos hijo del servidor
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
Tcnica para ubicar el intrprete de scripts CGI's
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 +the cgi daemon
SecureListen [IP-address:]portnumber +Certificate-Name [MUTUAL]sB
Enables SSL encryption for the specified port
SendBufferSize bytes 0 sM
Tamao del buffer TCP
ServerAdmin email-addresssvC
Direccin de email que el servidor incluye en los +mensajes de error que se envan al cliente
ServerAlias hostname [hostname] ...vC
Nombres alternativos usados para un host cuando se +intentan encontrar equivalencias a hosts virtuales basados en el +nombre
ServerLimit numbersM
Lmite superior del nmero configurable de procesos
ServerName fully-qualified-domain-name[:port]svC
Nombre de host y nmero de puerto que el servidor usa +para identificarse
ServerPath URL-pathvC
URL que se usar para hosts virtuales basados en +nombre que son accedidos con un navegador incompatible
ServerRoot directory-path /usr/local/apache sC
Directorio base de la instalacin del servidor
ServerSignature On|Off|EMail Off svdhC
Configura el pie de pgina en documentos generados +por el servidor
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full Full sC
Configura la cabecera de respuesta HTTP +Server
SetEnv env-variable valuesvdhB
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
Hace que todos los ficheros que correspondan con el valor +especificado sean procesados obligatoriamente por un +handler
SetInputFilter filter[;filter...]svdhC
Especifica los filtros que procesarn las peticiones de +los clientes y el contenido de peticiones POST
SetOutputFilter filter[;filter...]svdhC
Especifica los filtros que procesarn las respuestas del +servidor
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 +displayed
SSIUndefinedEcho string "(none)" svB
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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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
Nmero de procesos hijo del servidor que se crean al +iniciar Apache
StartThreads numbersM
Nmero de hebras que se crean al iniciar Apache
SuexecUserGroup User GroupsvE
User and group for CGI programs to run as
ThreadLimit numbersM
Marca el lmite superior del nmero de hebras por +proceso hijo que pueden especificarse
ThreadsPerChild numbersM
Nmero de hebras creadas por cada proceso +hijo
ThreadStackSize number 65536 sM
Determine the stack size for each thread
TimeOut seconds 300 sC
Cantidad de tiempo que el servidor esperar para que +ocurran determinados eventos antes de cerrar una +peticin
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 On svdC
Configura la forma en que el servidor determina su propio +nombre u puerto
User unix-userid #-1 sM
Nombre de usuario con el que el servidor responder a las +peticiones
UserDir directory-filename public_html 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
Contiene las directivas que se aplican solo a un nombre +de host especfico o direccin 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
Usa accept() en lugar de AcceptEx() para aceptar +conexiones de red
XBitHack on|off|full off svdhB
Parse SSI directives in files with the execute bit +set
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.ja.utf8 b/rubbos/app/apache2/manual/mod/quickreference.html.ja.utf8 new file mode 100644 index 00000000..6f1a633e --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.ja.utf8 @@ -0,0 +1,670 @@ + + + +ディレクティブ クイックリファレンス - Apache HTTP サーバ + + + + + + +
<-
+ +

ディレクティブ クイックリファレンス

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

ディレクティブ クイックリファレンスでは、各 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AcceptMutex default|method default sM
複数の子プロセスがネットワークソケットでリクエストを +accept しようとしているときに、Apache がそれらの子プロセスを直列化するために +使う方法
AcceptPathInfo On|Off|Default Default svdhC
後に続くパス名情報を受け付けるリソースの指定
AccessFileName filename [filename] ... .htaccess svC
分散設定ファイルの名前
Action action-type cgi-scriptsvdhB
特定のハンドラやコンテントタイプに対して 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
明示的に文字セットを指定していない応答に追加される +デフォルトの文字セット
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
Ports that are allowed to CONNECT through the +proxy
AllowEncodedSlashes On|Off Off svC
URL 中の符号化されたパス分離文字が先に伝えられるのを許可するかどうかを +決定する
AllowOverride All|None|directive-type +[directive-type] ... All dC
.htaccess で許可されるディレクティブの種類
Anonymous user [user] ...dhE
Specifies userIDs that are allowed access without +password verification
Anonymous_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
認証と承認プロセスを、 +より低いレベルのモジュールに移行させるかどうかを設定する
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhX
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhX
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhX
Name of the text file containing the list of groups +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
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
認証に使用するユーザグループの一覧が格納されている、 +テキストファイルの名前を設定する
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-domaindhC
HTTP 認証の認可領域 (訳注: realm)
AuthType Basic|DigestdhC
ユーザ認証の種類
AuthUserFile file-pathdhB
認証に使用するユーザとパスワードの一覧が格納されている、 +テキストファイルの名前を設定する
BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
HTTP User-Agent に基づいて環境変数を設定する +
BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
HTTP User-Agent に基づいて大文字小文字を区別せずに +環境変数を設定する
BS2000Account accountsM
BS2000 での非特権アカウントを定義する
CacheDefaultExpire seconds 3600 (one hour) svX
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 svX
The number of characters in subdirectory names
CacheDirLevels levels 3 svX
The number of levels of subdirectories in the +cache.
CacheDisable url-stringsvX
Disable caching of specified URLs
CacheEnable cache_type url-stringsvX
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On svX
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sX
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 svX
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? svX
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? svX
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hourssvX
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? svX
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? svX
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off svX
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None svX
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off svX
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 svX
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) svX
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 svX
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 svX
The minimum size (in bytes) of a document to be placed in the +cache
CacheNegotiatedDocs On|Off Off svB
コンテントネゴシエーションされたドキュメントをプロキシサーバが +キャッシュできるようにする
CacheRoot directorysvX
The directory root under which cache files are +stored
CacheSize KBytes 1000000 svX
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? svX
The minimum time margin to cache a document
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 リクエストを許可します
DavLockDB file-pathsvE
DAV ロックデータベースの位置
DavMinTimeout seconds 0 svdE
サーバが DAV リソースのロックを維持する最小時間です。 +
DefaultIcon url-pathsvdhB
特定のアイコンが何も設定されていない時に +ファイルに表示するアイコン
DefaultLanguage MIME-langsvdhB
あるスコープのすべてのファイルを指定された言語に +設定する
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 sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
Dump all output data to the error log
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
Define an external filter
ExtFilterOptions option [option] ... DebugLevel=0 NoLogS +dE
Configure mod_ext_filter options
FileETag component ... INode MTime Size svdhC
ETag HTTP 応答ヘッダを作成するために使用される +ファイルの属性
<Files filename> ... </Files>svdhC
マッチするファイル名に適用されるディレクティブを囲む
<FilesMatch regex> ... </FilesMatch>svdhC
正規表現にマッチするファイル名に適用される +ディレクティブを囲む
ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback] Prefer svdhB
要求に合う単独のドキュメントが見つからなかったときに行なうことを指定 +
ForceType MIME-type|NonedhC
すべてのマッチするファイルが指定の MIME コンテントタイプで +送られるようにする
ForensicLog filename|pipesvE
Sets filename of the forensic log
Group unix-group #-1 sM
リクエストに応答する際に所属するグループ
Header [condition] set|append|add|unset|echo +header [value] [env=[!]variable]svdhE
Configure HTTP response headers
HeaderName filenamesvdhB
+インデックス一覧の先頭に挿入されるファイルの名前
HostnameLookups On|Off|Double Off svdC
クライアントの IP アドレスの DNS ルックアップを +有効にする
IdentityCheck On|Off Off svdC
リモートユーザの RFC1413 によるアイデンティティのロギングを +有効にする
<IfDefine [!]parameter-name> ... + </IfDefine>svdhC
起動時にテストが真であるときのみに処理されるディレクティブを +囲む
<IfModule [!]module-name> ... + </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
+ディレクトリインデックスの標準の順番付けを設定
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 15 svC
持続的な接続で次のリクエストが来るまでサーバが待つ時間
LanguagePriority MIME-lang [MIME-lang] +...svdhB
クライアントが優先度を示さなかったときの言語の variant の優先度を +指定
LDAPCacheEntries number 1024 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<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:]portnumbersM
サーバが 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 sX
キャッシュに保管されるオブジェクトの最大数
MCacheMaxObjectSize bytes 10000 sX
キャッシュに保管できるドキュメントの最大サイズ (バイト)
MCacheMaxStreamingBuffer size_in_bytes of 100000 か MCacheM +sX
ストリームされている応答をキャッシュ不能と決定するまでに +メモリにバッファする最大量
MCacheMinObjectSize bytes 0 sX
キャッシュに保管されるドキュメントの最小サイズ (バイト)
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
キャッシュから削除するドキュメントを選ぶためのアルゴリズム
MCacheSize KBytes 100 sX
キャッシュに使われるメモリの最大量をキロバイト単位で指定
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
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
ディレクトリに対して使用可能な機能を設定する
Order ordering Deny,Allow dhB
デフォルトのアクセス可能な状態と、Allow と +Deny が評価される順番を制御する
PassEnv env-variable [env-variable] +...svdhB
シェルからの環境変数を渡す
PidFile filename logs/httpd.pid M
デーモンのプロセス ID +をサーバが記録するためのファイル
ProtocolEcho On|OffsvX
エコーサーバの有効無効を設定します。
<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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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
インデックス一覧の最後に挿入されるファイルの名前
Redirect [status] URL-path +URLsvdhB
クライアントが違う URL を取得するように外部へのリダイレクトを +送る
RedirectMatch [status] regex +URLsvdhB
現在の URL への正規表現のマッチにより +外部へのリダイレクトを送る
RedirectPermanent URL-path URLsvdhB
クライアントが違う URL を取得するように外部への永久的な +リダイレクトを送る
RedirectTemp URL-path URLsvdhB
クライアントが違う URL を取得するように外部への一時的な +リダイレクトを送る
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 [env=[!]variable]]svdhE
Configure HTTP request headers
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 Options MaxRedirects=10 svdhE
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-addresssvC
サーバがクライアントに送るエラーメッセージに含める電子メールの +アドレス
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)" svB
未定義の変数が 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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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 GroupsvE
CGI プログラムのユーザパーミッション、グループパーミッション
ThreadLimit numbersM
設定可能な子プロセス毎のスレッド数の上限を +設定します
ThreadsPerChild numbersM
子プロセスそれぞれに生成されるスレッド数
ThreadStackSize number 65536 sM
Determine the stack size for each thread
TimeOut seconds 300 sC
各イベントについて、リクエストを失敗させるまでにサーバが +待つ時間を設定
TransferLog file|pipesvB
ログファイルの位置を指定
TypesConfig file-path conf/mime.types sB
mime.types ファイルの位置
UnsetEnv env-variable [env-variable] +...svdhB
環境から変数を取り除く
UseCanonicalName On|Off|Dns On svdC
サーバが自分自身の名前とポートを決定する方法を設定する
User unix-userid #-1 sM
リクエストに応答する際に用いるユーザ ID
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 +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  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.ko.euc-kr b/rubbos/app/apache2/manual/mod/quickreference.html.ko.euc-kr new file mode 100644 index 00000000..617e43d1 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.ko.euc-kr @@ -0,0 +1,674 @@ + + + +þ - Apache HTTP Server + + + + + + +
<-
+ +

þ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ þ 뵵, ⺻, , + Ҹ ش. ̵ þ Ѵ.

+ +

ù° þ ̸ 뵵 ˷ش. ι° + þ ⺻ ִٸ ⺻ ش. ⺻ + ʹ ٸ, "+" ȣ ˸.

+ +

° ׹° Ʒ ǥ þ + ִ ҿ þ ¸ Ÿ.

+
+
+ + + +
 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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-scriptsvdhB
Ư ڵ鷯 content-type CGI ũƮ +Ѵ
AddAlt string file [file] ...svdhB
ϸ ܴ
AddAltByEncoding string MIME-encoding +[MIME-encoding] ...svdhB
MIME-encoding ܴ +
AddAltByType string MIME-type +[MIME-type] ...svdhB
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
Ͽ
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
̸ Ͽ
AddIconByEncoding icon MIME-encoding +[MIME-encoding] ...svdhB
MIME content-encoding Ͽ
AddIconByType icon MIME-type +[MIME-type] ...svdhB
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
⿡ ߰ server-info ڵ鷯 ֵ +߰Ѵ
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
URL Ư Ͻý ҷ Ѵ
AliasMatch regex +file-path|directory-pathsvB
ǥ Ͽ URL Ͻý ҷ +Ѵ
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 +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_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
digest authentication challenge response +hash ϴ ˰ Ѵ
AuthDigestDomain URI [URI] ...dhX
digest authentication ȣ ϴ +URI
AuthDigestFile file-pathdhX
digest authentication ڸ ڵ +ȣ ġ
AuthDigestGroupFile file-pathdhX
digest authentication ׷ +ϸ
AuthDigestNcCheck On|Off Off sX
nonce-count ˻
AuthDigestNonceFormat formatdhX
nonce Ѵ
AuthDigestNonceLifetime seconds 300 dhX
nonce ȿ Ⱓ
AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhX
digest authentication +ȣ(quality-of-protection) Ѵ.
AuthDigestShmemSize size 1000 sX
Ŭ̾Ʈ ϱ Ҵϴ ޸𸮷
AuthGroupFile file-pathdhB
Sets the name of a text file containing the list +of user groups for authentication
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-domaindhC
Authorization realm for use in HTTP +authentication
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
BrowserMatch regex [!]env-variable[=value] +[[!]env-variable[=value]] ...svdhB
HTTP User-Agent ȯ溯 Ѵ
BrowserMatchNoCase regex [!]env-variable[=value] + [[!]env-variable[=value]] ...svdhB
ҹڸ ʰ User-Agent ȯ溯 +Ѵ
BS2000Account accountsM
Define the non-privileged account on BS2000 +machines
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Ѵ
CacheExpiryCheck On|Off On svX
ij ã ð
CacheFile file-path [file-path] ...sX
۽ ڵ ijѴ
CacheForceCompletion Percentage 60 svX
û ҵǴ ijϱ +ʿ 񽺷.
CacheGcClean hours url-string ? svX
URL شϴ ij ð
CacheGcDaily time ? svX
÷͸ ݺ ð (24 ð)
CacheGcInterval hourssvX
÷͸ ϴ .
CacheGcMemUsage KBytes ? svX
÷Ͱ ִ ޸𸮷 (kilobyte )
CacheGcUnused hours url-string ? svX
URL شϴ ij Ⱓ.
CacheIgnoreCacheControl On|Off Off svX
Ŭ̾Ʈ ijʴ û Ѵ.
CacheIgnoreNoLastMod On|Off Off svX
信 Last Modified ٴ Ѵ.
CacheLastModifiedFactor float 0.1 svX
LastModified ð ð ϴµ ϴ +.
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
CacheSize KBytes 1000000 svX
ij ִ ũ (KByte )
CacheTimeMargin ? ? svX
ij ּҽð Ѱ
CGIMapExtension cgi-path .extensiondhC
Technique for locating the interpreter for CGI +scripts
CharsetDefault charsetsvdhX
ȯ
CharsetOptions option [option] ... DebugLevel=0 NoImpl +svdhX
ȯ
CharsetSourceEnc charsetsvdhX
CheckSpelling on|off Off svdhE
Ѵ
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 +headers
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
Directory where Apache attempts to +switch before dumping core
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 û 㰡Ѵ
DavLockDB file-pathsvE
DAV ͺ̽ ġ
DavMinTimeout seconds 0 svdE
DAV ڿ ּҽð
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 +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
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
Ŭ̾Ʈ 丮 ûҶ ãƺ ڿ
<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 +from the web
DumpIOInput On|Off Off sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
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
ġ API ϱ þ
ExpiresActive On|OffsvdhE
Expires Ѵ
ExpiresByType MIME-type +<code>secondssvdhE
MIME type 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
File attributes used to create the ETag +HTTP response header
<Files filename> ... </Files>svdhC
Contains directives that apply to matched +filenames
<FilesMatch regex> ... </FilesMatch>svdhC
Contains directives that apply to regular-expression matched +filenames
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 +requests
Header [condition] set|append|add|unset|echo +header [value] [env=[!]variable]svdhE
HTTP Ѵ
HeaderName filenamesvdhB
ϸ ̸
HostnameLookups On|Off|Double Off svdC
Enables DNS lookups on client IP addresses
IdentityCheck On|Off Off svdC
Enables logging of the RFC1413 identity of the remote +user
<IfDefine [!]parameter-name> ... + </IfDefine>svdhC
Encloses directives that will be processed only +if a test is true at startup
<IfModule [!]module-name> ... + </IfModule>svdhC
Encloses directives that are processed conditional on the +presence or absence of a specific module
<IfVersion [[!]operator] version> ... +</IfVersion>svdhE
´
ImapBase map|referer|URL http://servername/ svdhB
̹ Ͽ base
ImapDefault error|nocontent|map|referer|URL nocontent svdhB
̹ʿ ش ʴ ǥ + ⺻ ൿ
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
丮 ⺻ Ѵ
ISAPIAppendLogToErrors on|off off 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 ʴ ûϸ +α׿ Ѵ
ISAPIReadAheadBuffer size 49152 svdhB
ISAPI extension ̸б(read ahead buffer) +ũ
KeepAlive On|Off On svC
Enables HTTP persistent connections
KeepAliveTimeout seconds 15 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 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<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 sC
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 +client
LimitRequestLine bytes 8190 sC
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:]portnumbersM
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
̳ ̺귯 о̰, 밡 + Ͽ ߰Ѵ
<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
αϿ Ѵ
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()
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Ѵٰ ϱ ޸ ۿ + Ʈ ִ ũ
MCacheMinObjectSize bytes 0 sX
ij ּ ũ (Ʈ )
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
ij ã ˰
MCacheSize KBytes 100 sX
ij ִ ޸𸮷 (KByte )
MetaDir directory .web svdhE
CERN Ÿ ã 丮 ̸
MetaFiles on|off off svdhE
CERN Ÿ óѴ
MetaSuffix suffix .meta svdhE
CERN Ÿ ϴ ̻
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
۽ ޸𸮿 Ѵ
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
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 +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
ȯ溯 ´
PidFile filename logs/httpd.pid sM
File where the server records the process ID +of the daemon
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 +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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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
ϸ ̸
ReceiveBufferSize bytes 0 sM
TCP receive buffer size
Redirect [status] URL-path +URLsvdhB
Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ +̷
RedirectMatch [status] regex +URLsvdhB
URL ǥĿ شϸ ܺ ̷ +
RedirectPermanent URL-path URLsvdhB
Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ + ̷
RedirectTemp URL-path URLsvdhB
Ŭ̾Ʈ ٸ URL ϵ ûϴ ܺ +ӽ ̷
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|add|unset header +[value]svdhE
HTTP û Ѵ
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-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 Options MaxRedirects=10 svdhE
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 +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_status sM
Location of the file used to store coordination data for +the child processes
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
Technique for locating the interpreter for CGI +scripts
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 buffer size
ServerAdmin email-addresssvC
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 +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 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
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
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 +displayed
SSIUndefinedEcho string "(none)" svB
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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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
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 +per child process
ThreadsPerChild numbersM
Number of threads created by each child process
ThreadStackSize number 65536 sM
Determine the stack size for each thread
TimeOut seconds 300 svC
Amount of time the server will wait for +certain events before failing a request
TraceEnable [on|off|extended] on sC
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 On 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 +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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.ru.koi8-r b/rubbos/app/apache2/manual/mod/quickreference.html.ru.koi8-r new file mode 100644 index 00000000..924715e0 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.ru.koi8-r @@ -0,0 +1,726 @@ + + + + - HTTP Apache + + + + + + +
<-
+
+Apache > HTTP > > 2.0 >
+

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
. + + .
+ +

ģ + , , ţ , + . «» «», + .

+ +

ţ + . - , + . , + ޣ «+».

+ +

ף , + ( ), + ţ . , , + .

+
+
+ + + +
 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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-scriptsvdhB
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 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_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idvM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhB
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhX
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhX
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhX
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhX
Name of the text file containing the list of groups +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
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
Sets the name of a text file containing the list +of user groups for authentication
AuthLDAPAuthoritative on|off on dhX
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhX
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhX
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsX
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhX
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhX
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhX
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhX
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhX
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhX
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhX
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhX
URL specifying the LDAP search parameters
AuthName auth-domaindhC
Authorization realm for use in HTTP +authentication
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
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
BS2000Account accountsM
Define the non-privileged account on BS2000 +machines
BufferedLogs On|Off Off sB
Buffer log entries in memory before writing to disk
CacheDefaultExpire seconds 3600 (one hour) svX
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 svX
The number of characters in subdirectory names
CacheDirLevels levels 3 svX
The number of levels of subdirectories in the +cache.
CacheDisable url-stringsvX
Disable caching of specified URLs
CacheEnable cache_type url-stringsvX
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On svX
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sX
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 svX
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? svX
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? svX
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hourssvX
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? svX
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? svX
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off svX
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None svX
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off svX
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 svX
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) svX
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 svX
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 svX
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 directorysvX
The directory root under which cache files are +stored
CacheSize KBytes 1000000 svX
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? svX
The minimum time margin to cache a document
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 +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 +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
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
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 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
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 and sub-directories
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 sX
Dump all input data to the error log
DumpIOOutput On|Off Off sX
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
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 +filenames
<FilesMatch regex> ... </FilesMatch>svdhC
Contains directives that apply to regular-expression matched +filenames
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 +requests
Header [condition] set|append|add|unset|echo +header [value] [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 svdC
Enables logging of the RFC1413 identity of the remote +user
<IfDefine [!]parameter-name> ... + </IfDefine>svdhC
Encloses directives that will be processed only +if a test is true at startup
<IfModule [!]module-name> ... + </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
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
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 15 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 sX
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sX
Time that cached items remain valid
LDAPConnectionTimeout secondssX
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sX
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sX
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesX
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sX
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesX
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesX
Specifies the type of the Certificate Authority file
<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 sC
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 +client
LimitRequestLine bytes 8190 sC
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:]portnumbersM
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()
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
MaxThreadsPerChild number 64 sM
Maximum number of threads per child process
MCacheMaxObjectCount value 1009 sX
The maximum number of objects allowed to be placed in the +cache
MCacheMaxObjectSize bytes 10000 sX
The maximum size (in bytes) of a document allowed in the +cache
MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sX
Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
MCacheMinObjectSize bytes 0 sX
The minimum size (in bytes) of a document to be allowed in the +cache
MCacheRemovalAlgorithm LRU|GDSF GDSF sX
The algorithm used to select documents for removal from the +cache
MCacheSize KBytes 100 sX
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 +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
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 +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
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 10 svE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlsvdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlsvdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 svE
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
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|add|unset header +[value [env=[!]variable]]svdhE
Configure HTTP request headers
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-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 Options MaxRedirects=10 svdhE
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 +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_status 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 svB
The name 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
TCP buffer size
ServerAdmin email-addresssvC
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 +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 valuesvdhB
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
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 +displayed
SSIUndefinedEcho string "(none)" svB
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
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
SSLEngine on|off off svE
SSL Engine Operation Switch
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
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
Number of child server processes created at startup
StartThreads numbersM
Number of threads created on startup
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 number 65536 sM
Determine the stack size for each thread
TimeOut seconds 300 svC
Amount of time the server will wait for +certain events before failing a request
TraceEnable [on|off|extended] on sC
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 On 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
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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/quickreference.html.tr.utf8 b/rubbos/app/apache2/manual/mod/quickreference.html.tr.utf8 new file mode 100644 index 00000000..512004ee --- /dev/null +++ b/rubbos/app/apache2/manual/mod/quickreference.html.tr.utf8 @@ -0,0 +1,723 @@ + + + +Hızlı Yönerge Kılavuzu - Apache HTTP Sunucusu + + + + + + +
<-
+ +

Hızlı Yönerge Kılavuzu

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

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ısmın 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
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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-scriptskdhT
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 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_Authoritative On|Off Off dhE
Configures if authorization will fall-through +to other methods
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
AssignUserID user-id group-idkM
Tie a virtual host to a user and group ID
AuthAuthoritative On|Off On dhT
Sets whether authorization and authentication are +passed to lower level modules
AuthDBMAuthoritative On|Off On dhE
Sets whether authentication and authorization will be +passed on to lower level modules
AuthDBMGroupFile file-pathdhE
Sets the name of the database file containing the list +of user groups for authentication
AuthDBMType default|SDBM|GDBM|NDBM|DB default dhE
Sets the type of database file that is used to +store passwords
AuthDBMUserFile file-pathdhE
Sets thename of a database file containing the list of users and +passwords for authentication
AuthDigestAlgorithm MD5|MD5-sess MD5 dhD
Selects the algorithm used to calculate the challenge and +response hases in digest authentication
AuthDigestDomain URI [URI] ...dhD
URIs that are in the same protection space for digest +authentication
AuthDigestFile file-pathdhD
Location of the text file containing the list +of users and encoded passwords for digest authentication
AuthDigestGroupFile file-pathdhD
Name of the text file containing the list of groups +for digest authentication
AuthDigestNcCheck On|Off Off sD
Enables or disables checking of the nonce-count sent by the +server
AuthDigestNonceFormat formatdhD
Determines how the nonce is generated
AuthDigestNonceLifetime seconds 300 dhD
How long the server nonce is valid
AuthDigestQop none|auth|auth-int [auth|auth-int] auth dhD
Determines the quality-of-protection to use in digest +authentication
AuthDigestShmemSize size 1000 sD
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 authentication
AuthLDAPAuthoritative on|off on dhD
Prevent other authentication modules from +authenticating the user if this one fails
AuthLDAPBindDN distinguished-namedhD
Optional DN to use in binding to the LDAP server
AuthLDAPBindPassword passworddhD
Password used in conjuction with the bind DN
AuthLDAPCharsetConfig file-pathsD
Language to charset conversion configuration file
AuthLDAPCompareDNOnServer on|off on dhD
Use the LDAP server to compare the DNs
AuthLDAPDereferenceAliases never|searching|finding|always Always dhD
When will the module de-reference aliases
AuthLDAPEnabled on|off on dhD
Turn on or off LDAP authentication
AuthLDAPFrontPageHack on|off off dhD
Allow LDAP authentication to work with MS FrontPage
AuthLDAPGroupAttribute attributedhD
LDAP attributes used to check for group membership
AuthLDAPGroupAttributeIsDN on|off on dhD
Use the DN of the client username when checking for +group membership
AuthLDAPRemoteUserIsDN on|off off dhD
Use the DN of the client username to set the REMOTE_USER +environment variable
AuthLDAPUrl urldhD
URL specifying the LDAP search parameters
AuthName yetki-alanıdhÇ
HTTP kimlik doğrulamasında kullanmak için yetki alanı ismi
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
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.
BS2000Account accountsM
BS2000 makinelerde yetkisiz hesap tanımlar.
BufferedLogs On|Off Off sT
Günlük girdilerini diske yazmadan önce bellekte tamponlar +
CacheDefaultExpire seconds 3600 (one hour) skD
The default duration to cache a document when no expiry date is specified.
CacheDirLength length 2 skD
The number of characters in subdirectory names
CacheDirLevels levels 3 skD
The number of levels of subdirectories in the +cache.
CacheDisable url-stringskD
Disable caching of specified URLs
CacheEnable cache_type url-stringskD
Enable caching of specified URLs using a specified storage +manager
CacheExpiryCheck On|Off On skD
Indicates if the cache observes Expires dates when seeking +files
CacheFile file-path [file-path] ...sD
Cache a list of file handles at startup time
CacheForceCompletion Percentage 60 skD
Percentage of document served, after which the server +will complete caching the file even if the request is cancelled.
CacheGcClean hours url-string ? skD
The time to retain unchanged cached files that match a +URL
CacheGcDaily time ? skD
The recurring time each day for garbage collection to be run. +(24 hour clock)
CacheGcInterval hoursskD
The interval between garbage collection attempts.
CacheGcMemUsage KBytes ? skD
The maximum kilobytes of memory used for garbage +collection
CacheGcUnused hours url-string ? skD
The time to retain unreferenced cached files that match a +URL.
CacheIgnoreCacheControl On|Off Off skD
Ignore the fact that the client requested the content not be +cached.
CacheIgnoreHeaders header-string [header-string] ... None skD
Do not store the given HTTP header(s) in the cache. +
CacheIgnoreNoLastMod On|Off Off skD
Ignore the fact that a response has no Last Modified +header.
CacheLastModifiedFactor float 0.1 skD
The factor used to compute an expiry date based on the +LastModified date.
CacheMaxExpire seconds 86400 (one day) skD
The maximum time in seconds to cache a document
CacheMaxFileSize bytes 1000000 skD
The maximum size (in bytes) of a document to be placed in the +cache
CacheMinFileSize bytes 1 skD
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 directoryskD
The directory root under which cache files are +stored
CacheSize KBytes 1000000 skD
The maximum amount of disk space that will be used by the +cache in KBytes
CacheTimeMargin ? ? skD
The minimum time margin to cache a document
CGIMapExtension cgi-yolu .uzantıdhÇ
CGI betik yorumlayıcısını saptama tekniğini belirler. +
CharsetDefault charsetskdhD
Charset to translate into
CharsetOptions option [option] ... DebugLevel=0 NoImpl +skdhD
Configures charset translation behavior
CharsetSourceEnc charsetskdhD
Source charset of files
CheckSpelling on|off Off skdhE
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 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
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
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ü 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
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 dizininde ve bunun + altdizinlerinde 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 sD
Dump all input data to the error log
DumpIOOutput On|Off Off sD
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
FileETag bileşen ... INode MTime Size skdhÇ
ETag 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.
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.
Group unix-grubu #-1 sM
İsteklere yanıt verecek sunucunun ait olacağı grubu belirler.
Header [condition] set|append|add|unset|echo +header [value] [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. +
IdentityCheck On|Off Off skdÇ
Uzak kullanıcıların RFC 1413’e göre kimlik bilgilerinin günlük +kayıtlarını etkin kılar.
<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-ismi ... + </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. +
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. +
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 15 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 sD
Maximum number of entries in the primary LDAP cache
LDAPCacheTTL seconds 600 sD
Time that cached items remain valid
LDAPConnectionTimeout secondssD
Specifies the socket connection timeout in seconds
LDAPOpCacheEntries number 1024 sD
Number of entries used to cache LDAP compare +operations
LDAPOpCacheTTL seconds 600 sD
Time that entries in the operation cache remain +valid
LDAPSharedCacheFile directory-path/filenamesD
Sets the shared memory cache file
LDAPSharedCacheSize bytes 102400 sD
Size in bytes of the shared-memory cache
LDAPTrustedCA directory-path/filenamesD
Sets the file containing the trusted Certificate Authority certificate or database
LDAPTrustedCAType typesD
Specifies the type of the Certificate Authority file
<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 sÇ
İstemciden kabul edilecek HTTP isteği başlık alanlarının sayısını +sınırlar.
LimitRequestFieldSize bayt-sayısı 8190 sÇ
İstemciden kabul edilecek HTTP isteği başlık uzunluğunu sınırlar. +
LimitRequestLine bayt-sayısı 8190 sÇ
İ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ı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.
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
MaxThreadsPerChild number 64 sM
Maximum number of threads per child process
MCacheMaxObjectCount value 1009 sD
The maximum number of objects allowed to be placed in the +cache
MCacheMaxObjectSize bytes 10000 sD
The maximum size (in bytes) of a document allowed in the +cache
MCacheMaxStreamingBuffer size_in_bytes the smaller of 1000 +sD
Maximum amount of a streamed response to buffer in memory +before declaring the response uncacheable
MCacheMinObjectSize bytes 0 sD
The minimum size (in bytes) of a document to be allowed in the +cache
MCacheRemovalAlgorithm LRU|GDSF GDSF sD
The algorithm used to select documents for removal from the +cache
MCacheSize KBytes 100 sD
The maximum amount of memory used by the cache in +KBytes
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 numbersM
İ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
NumServers number 2 sM
Total number of children alive at the same time
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.
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 10 skE
Maximium number of proxies that a request can be forwarded +through
ProxyPass [path] !|urlskdE
Maps remote servers into the local server URL-space
ProxyPassReverse [path] urlskdE
Adjusts the URL in HTTP response headers sent 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
ProxyTimeout seconds 300 skE
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.
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|add|unset header +[value [env=[!]variable]]skdhE
Configure HTTP request headers
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-pathskE
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 Options MaxRedirects=10 skdhE
Sets some special options for the rewrite engine
RewriteRule + Pattern SubstitutionskdhE
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_status 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 skT
The name 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
SendBufferSize bayt-sayısı 0 sM
TCP tamponu boyu
ServerAdmin eposta-adresiskÇ
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 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ğerskdhT
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.
SSIEndTag tag "-->" skT
String that ends an include element
SSIErrorMsg message "[an error occurred +skdhT
Error message displayed when there is an SSI +error
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)" skT
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
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
SSLEngine on|off off skE
SSL Engine Operation Switch
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
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
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 skdhE
Type of remote server Certificate verification
SSLProxyVerifyDepth number 1 skdhE
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 skE
Number of seconds before an SSL session expires +in the Session Cache
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.
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 number 65536 sM
Determine the stack size for each thread
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 sÇ
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 On 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 public_html 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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/threadpool.html b/rubbos/app/apache2/manual/mod/threadpool.html new file mode 100644 index 00000000..80593756 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/threadpool.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: threadpool.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/mod/threadpool.html.en b/rubbos/app/apache2/manual/mod/threadpool.html.en new file mode 100644 index 00000000..9cff4706 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/threadpool.html.en @@ -0,0 +1,81 @@ + + + +threadpool - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM threadpool

+
+

Available Languages:  en 

+
+ + + +
Description:Yet another experimental variant of the standard +worker MPM
Status:MPM
ModuleIdentifier:mpm_threadpool_module
SourceFile: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/rubbos/app/apache2/manual/mod/worker.html b/rubbos/app/apache2/manual/mod/worker.html new file mode 100644 index 00000000..f3d38e58 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: worker.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: worker.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: worker.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: worker.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/mod/worker.html.de b/rubbos/app/apache2/manual/mod/worker.html.de new file mode 100644 index 00000000..823e16d2 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.de @@ -0,0 +1,173 @@ + + + +worker - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache-MPM worker

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ + + +
Beschreibung:Multi-Processing-Modul, das einen Hybrid-Webserver mit + Multi-Thread und Multi-Prozess-Untersttzung 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-Untersttzung. Durch die Verwendung + von Threads fr die Bedienung von Anfragen ist er in der Lage, + eine groe Anzahl von Anfragen mit weniger Systemressourcen als + ein Prozess-basierter Server zu bedienen. Er behlt jedoch viel von + der Stabilitt eines Prozess-basierten Servers bei, indem er + mehrere Prozesse verfgbar hlt, 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 + knnen.

+
+ +
top
+
+

Arbeitsweise

+

Ein einzelner Steuerprozess (der Elternprozess) ist fr 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 + diese an einen Server-Thread zur Bearbeitung weiterreicht, sobald sie + eintreffen.

+ +

Der Apache versucht immer, einen Vorrat von freien oder + unbeschftigten 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, whrend des Betriebes, berechnet der Apache die Gesamtzahl + der unbeschftigten 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 + maximale Anzahl Clients, die gleichzeitig bedient werden kann (d.h. + die maximale Gesamtzahl der Threads in allen Prozessen), wird mit der + Direktive MaxClients + festgelegt. Die maximale Anzahl der aktiven Kindprozesse ergibt sich aus + MaxClients dividiert durch + ThreadsPerChild.

+ +

Zwei Direktiven legen harte Limits fr die Anzahl der aktiven + Kindprozesse fest und knnen nur gendert werden, indem der Server + komplett gestoppt und dann wieder neu gestartet wird. ServerLimit stellt die obere Grenze fr + die Anzahl der aktiven Kindprozesse dar und muss grer oder + gleich dem Quotienten aus MaxClients und ThreadsPerChild sein. ThreadLimit ist die obere Grenze fr + die Anzahl der Server-Threads und muss grer oder gleich + ThreadsPerChild sein. Sofern fr + diese Direktiven keine Voreinstellungen verwendet werden, sollten sie vor + allen anderen worker-Direktiven platziert werden.

+ +

Neben den normalen aktiven Kindprozessen gibt es mglicherweise noch + zustzliche Kindprozesse, welche gerade beendet werden, wo allerdings + zumindest noch ein Server-Thread eine existierende Verbindung bearbeitet. + Obwohl die tatschlich zu erwartende Anzahl deutlich kleiner ist, + knnen bis zu MaxClients + solcher Prozesse auftreten. Dieses Verhalten knnen Sie vermeiden, + indem Sie die Terminierung einzelner Kindprozesse wie folgt abschalten:

+ + + +

Eine typische Konfiguration der Prozess-Thread-Steuerung fr + das MPM worker knnte wie folgt aussehen:

+ +

+ ServerLimit 16
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25 +

+ +

Whrend der Elternprozess unter Unix normalerweise als + root gestartet wird, um sich an Port 80 binden zu knnen, + 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 + mssen in der Lage sein, alle Inhalte zu lesen, die sie ausliefern + sollen, sollten darber hinaus jedoch so wenig wie mglich Rechte + besitzen. Zustzlich, solange nicht suexec verwendet wird, legen diese + Direktiven auch die Privilegien fest, die von CGI-Skripts + geerbt werden.

+ +

MaxRequestsPerChild + bestimmt, wie hufig der Server Prozesse erneuert, indem er alte + beendet und neue startet.

+
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/worker.html.en b/rubbos/app/apache2/manual/mod/worker.html.en new file mode 100644 index 00000000..e38e1a03 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.en @@ -0,0 +1,180 @@ + + + +worker - Apache HTTP Server + + + + + + +
<-
+ +
+

Apache MPM worker

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ + + +
Description:Multi-Processing Module implementing a hybrid + multi-threaded multi-process web server
Status:MPM
ModuleIdentifier:mpm_worker_module
SourceFile:worker.c
+

Summary

+ +

This Multi-Processing Module (MPM) implements a hybrid + 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 + retains much of the stability of a process-based server by + keeping multiple processes available, each with many threads.

+ +

The most important directives used to control this MPM are + ThreadsPerChild, which + controls the number of threads deployed by each child process and + MaxClients, which + controls the maximum total number of threads that may be + launched.

+
+ +
top
+
+

How it Works

+

A single control process (the parent) is responsible for launching + child processes. Each child process creates a fixed number of server + threads as specified in the ThreadsPerChild directive, as well + as a listener thread which listens for connections and passes them + to a server thread for processing 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 a new + threads or processes to be created before their requests can be + served. The number of processes that will initially launched is + set by the StartServers + directive. Then 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 + these directives from their default values. The maximum number of + clients that may be served simultaneously (i.e., the maximum total + number of threads in all processes) is determined by the + MaxClients directive. + The maximum number of active child processes is determined by + the MaxClients + 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 + 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 + ThreadsPerChild directive. + ThreadLimit is a hard + limit of the number of server threads, and must be greater than + or equal to the ThreadsPerChild directive. If + non-default values are specified for these directives, they + should appear before other worker directives.

+ +

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 + the following:

+ + + +

A typical configuration of the process-thread controls in + the worker MPM could look as follows:

+ +

+ ServerLimit 16
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25 +

+ +

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.

+
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/worker.html.es b/rubbos/app/apache2/manual/mod/worker.html.es new file mode 100644 index 00000000..3dcd5a29 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.es @@ -0,0 +1,188 @@ + + + +worker - Servidor HTTP Apache + + + + + + +
<-
+ +
+

MPM de Apache worker

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ + + +
Descripcin:Mdulo de MultiProcesamiento que implementa un +servidor web hbrido multihebra-multiproceso
Estado:MPM
Identificador de Mdulos:mpm_worker_module
Fichero de Cdigo Fuente:worker.c
+

Resumen de contenidos

+ +

Este Mdulo de MultiProcesamiento (MPM) implementa un + servidor hbrido multiproceso-multihebra. Usando hebras para + atender peticiones, el servidor puede servir un mayor nmero + de peticiones con menos recursos de sistema que un servidor basado + nicamente en procesos. No obtante, se mantiene casi por + completo la estabilidad de un servidor basado en procesos + manteniendo la capacidad multiproceso, pudiendo cada proceso tener + muchas hebras.

+ +

Las directivas ms importantes que se usan para controlar + este MPM son ThreadsPerChild, que controla el + nmero de hebras que tiene cada proceso hijo y MaxClients, que controla el + nmero mximo de hebras que pueden crearse.

+
+ +
top
+
+

Cmo funciona

Un + solo proceso de control (el padre) es el responsable de crear los + procesos hijo. Cada proceso hijo crea un nmero fijo de + hebras del servidor de la forma que se especifica en la directiva + ThreadsPerChild, + as como una hebra de escucha que escuchar si se + producen peticiones y las pasar a una hebra del servidor + para que la procese.

+ +

Apache siempre intenta mantener en reserva cierto nmero + de hebras de sobra o en espera, que estn + preparadas para servir peticiones en el momento en que + lleguen. As, los clientes no tienen que esperar a que se + creen nuevas hebras o procesos para que sean atendidas sus + peticiones. El nmero de procesos que se crean al principio + est determinado por la directiva StartServers. Despus durante + el funcionamiento del servidor, Apache calcula el nmero + total de hebras en espera entre todos los procesos, y crea o + elimina procesos para mantener ese nmero dentro de los + lmites especificados en las directivas MinSpareThreads y MaxSpareThreads. Como este proceso + est bastante autorregulado, no es muy habitual que sea + necesario modificar los valores que estas directivas traen por + defecto. El nmero mximo de clientes que pueden ser + servidos simultneamente (por ejemplo, el nmero + mximo de hebras entre todos los procesos) est + determinado por la directiva MaxClients. El nmero + mximo de procesos hijo activos est determinado por el + valor especificado en la directiva MaxClients dividido por el valor + especificado en la directiva + ThreadsPerChild.

+ +

Hay dos directivas que establecen lmites estrictos al + nmero de procesos hijo activos y al nmero de hebras + del servidor en un proceso hijo, y puede cambiarse solo parando + completamente el servidor y volviendo a iniciarlo. La directiva + ServerLimit marca el + lmite estricto de procesos hijo activos posibles, y debe ser + mayor o igual al valor de la directiva MaxClients dividido por el valor + de la directiva + ThreadsPerChild. El valor de la directiva ThreadLimit es el lmite + estricto del nmero de hebras del servidor, y debe ser mayor + o igual al valor de la directiva ThreadsPerChild. Si los valores + de esas directivas no son los que vienen por defecto, deben + aparecer antes que el resto de directivas del mdulo + worker.

+ +

Adems del conjunto de procesos hijo activos, puede haber + otros procesos hijo que estn terminando pero en los que al + menos una hebra del servidor est todava tratando una + conexin con un cliente. Puede haber hasta MaxClients procesos terminando, + aunque el nmero real de estos procesos que puede esperarse + es mucho menor. Este comportamiento puede evitarse desactivando la + eliminacin individual de procesos hijo, lo que se hace de la + siguiente manera:

+ + + +

Una configuracin tpica del sistema de control de + procesos y hebras del mdulo de MPM worker + prodra ser como sigue:

+ +

+ ServerLimit 16
+ StartServers 2
+ MaxClients 150
+ MinSpareThreads 25
+ MaxSpareThreads 75
+ ThreadsPerChild 25 +

+ +

Mientras que el proceso padre se inicia con privilegios de + usuario root en Unix para usar el puerto de escucha + 80, los procesos hijo y las hebras se inician con menores + privilegios de usuario. Las directivas User y Group se usan para determinar los + privilegios con los que se iniciarn los procesos hijo. Los + procesos hijo deben ser capaces de leer los contenidos que van a + servir, pero solo los permisos extrictamente necesarios para + cumplir su tarea. Adems. a menos que se use suexec, los privilegios fijados en estas + directivas son los que que van a heredar los scripts CGI.

+ +

La directiva MaxRequestsPerChild controla con + qu frecuencia el servidor recicla los procesos eliminando + los antiguos y creando nuevos.

+
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/worker.html.ja.utf8 b/rubbos/app/apache2/manual/mod/worker.html.ja.utf8 new file mode 100644 index 00000000..d9ebd661 --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.ja.utf8 @@ -0,0 +1,190 @@ + + + +worker - Apache HTTP サーバ + + + + + + +
<-
+ +
+

Apache MPM worker

+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + + +
説明:マルチスレッドとマルチプロセスのハイブリッド型 +ウェブサーバを実装したマルチプロセッシングモジュール
ステータス: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 + は、古いプロセスを停止して新しいプロセスを起動することによって、 + どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。

+
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mod/worker.html.tr.utf8 b/rubbos/app/apache2/manual/mod/worker.html.tr.utf8 new file mode 100644 index 00000000..0f72e03a --- /dev/null +++ b/rubbos/app/apache2/manual/mod/worker.html.tr.utf8 @@ -0,0 +1,170 @@ + + + +worker - Apache HTTP Sunucusu + + + + + + +
<-
+ +
+

Apache MPM worker

+
+

Mevcut Diller:  de  | + en  | + es  | + 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  | + es  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html b/rubbos/app/apache2/manual/mpm.html new file mode 100644 index 00000000..8b03fb60 --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mpm.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: mpm.html.ja.utf8 +Content-Language: ja +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.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: mpm.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/mpm.html.de b/rubbos/app/apache2/manual/mpm.html.de new file mode 100644 index 00000000..4e81d36b --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.de @@ -0,0 +1,131 @@ + + + +Multi-Processing-Module (MPMs) - Apache HTTP Server + + + + + +
<-
+

Multi-Processing-Module (MPMs)

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Das Dokument beschreibt, was ein Multi-Processing-Modul ist und wie solche + Module beim Apache HTTP Server verwendet werden.

+
+ +
top
+
+

Einfhrung

+ +

Der Apache HTTP Server wurde als leistungsfhiger 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 + Fhigkeiten oder kennen verschiedene Wege, die gleiche + Funktionaltt sehr effizient zu implementieren. Der Apache hat durch + seinen modularen Aufbau schon immer eine breite Auswahl von Umgebungen + untersttzt. Dieses Design erlaubt es dem Webmaster, durch Auswahl der + Module, die zur Kompilierungszeit oder zur Laufzeit geladen werden, die + Features auszuwhlen, 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 fr die Bindung an + Netzwerkports der Maschine, die Annahme von Anfragen und die Abfertigung von + Kindprozessen zur Behandlung der Anfragen zustndig 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 untersttzen. Insbesondere die Windows-Version des Apache + ist jetzt deutlich effizienter, da mpm_winnt native + Netzwerkfhigkeiten anstelle der im Apache 1.3 verwendeten + POSIX-Schicht benutzen kann. Dieser Vorteil gilt auch fr andere + Betriebssysteme, fr die spezielle MPMs implementiert sind.
  • + +
  • Der Server lt sich besser auf die Bedrfnisse der + jeweiligen Website anpassen. Sites beispielsweise, die eine hohe + Skalierbarkeit bentigen, knnen ein Threaded-MPM wie + worker whlen, whrend Sites, die + Stabilitt oder Kompatibilitt mit lterer Software + erfordern, prefork whlen knnen. Darber + hinaus knnen Spezialfhigkeiten wie die Bedienung verschiedener + Hosts unter unterschiedlichen User-IDs (perchild) + angeboten werden.
  • +
+ +

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 verfgbaren MPMs finden Sie im Modul-Index.

+ +
top
+
+

Auswahl eines MPMs

+ +

MPMs mssen whrend der + (Anm.d..: Quelltext-)Konfiguration ausgewhlt und in den + Server einkompiliert werden. Compiler sind in der Lage eine Reihe von + Funktionen zu optimieren, wenn Threads verwendet werden. Sie knnen + dies allerdings nur, wenn sie wissen, dass Threads benutzt werden.

+ +

Um das gewnschte MPM tatschlich auszuwhlen, verwenden Sie + beim configure-Skript das Argument + --with-mpm=NAME. NAME ist der Name des + gewnschten MPMs.

+ +

Ist der Server kompiliert, so ist es mittels ./httpd -l + mglich, das ausgewhlte MPM zu ermitteln. Dieser Befehl listet + alle in den Server einkompilierten Module auf, einschlielich des + MPM.

+
top
+
+

MPM-Voreinstellungen

+ +

Die folgende Tabelle gibt die voreingestellten MPMs fr verschiedene + Betriebssysteme an. Wenn Sie whrend der Kompilierung keine andere + Auswahl treffen, wird dieses MPM gewhlt.

+ + + + + + + + +
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2
Unixprefork
Windowsmpm_winnt
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.en b/rubbos/app/apache2/manual/mpm.html.en new file mode 100644 index 00000000..012906f1 --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.en @@ -0,0 +1,132 @@ + + + +Multi-Processing Modules (MPMs) - Apache HTTP Server + + + + + +
<-
+

Multi-Processing Modules (MPMs)

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

This document describes what a Multi-Processing Module is and +how they are used by the Apache HTTP Server.

+
+ +
top
+
+

Introduction

+ +

The Apache HTTP Server is designed to be a powerful and + flexible web server that can work on a very wide variety of + platforms in a range of different environments. Different + platforms and different environments often require different + features, or may have different ways of implementing the same + feature most efficiently. Apache has always accommodated a wide + variety of environments through its modular design. This design + allows the webmaster to choose which features will be included + in the server by selecting which modules to load either at + compile-time or at run-time.

+ +

Apache 2.0 extends this modular design to the most basic + functions of a web server. The server ships with a selection of + Multi-Processing Modules (MPMs) which are responsible for + binding to network ports on the machine, accepting requests, + and dispatching children to handle the requests.

+ +

Extending the modular design to this level of the server + allows two important benefits:

+ +
    +
  • Apache can more cleanly and efficiently support a wide + variety of operating systems. In particular, the Windows + version of Apache is now much more efficient, since + mpm_winnt can use native + networking features in place of the POSIX layer used in + Apache 1.3. This benefit also extends to other operating + systems that implement specialized MPMs.
  • + +
  • The server can be better customized for the needs of the + particular site. For example, sites that need a great deal of + scalability can choose to use a threaded MPM like + worker, 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.
  • +
+ +

At the user level, MPMs appear much like other Apache + modules. The main difference is that one and only one MPM must + be loaded into the server at any time. The list of available + MPMs appears on the module index page.

+ +
top
+
+

Choosing an MPM

+ +

MPMs must be chosen during configuration, and compiled into + the server. Compilers are capable of optimizing a lot of + functions if threads are used, but only if they know that + threads are being used.

+ +

To actually choose the desired MPM, use the argument + --with-mpm=NAME with the + configure script. NAME is the name of the + desired MPM.

+ +

Once the server has been compiled, it is possible to + determine which MPM was chosen by using ./httpd + -l. This command will list every module that is compiled + into the server, including the MPM.

+
top
+
+

MPM Defaults

+ +

The following table lists the default MPMs for various operating +systems. This will be the MPM selected if you do not make another +choice at compile-time.

+ + + + + + + + +
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2
Unixprefork
Windowsmpm_winnt
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.es b/rubbos/app/apache2/manual/mpm.html.es new file mode 100644 index 00000000..eb050a16 --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.es @@ -0,0 +1,141 @@ + + + +Mdulos de MultiProcesamiento (MPMs) - Servidor HTTP Apache + + + + + +
<-
+

Mdulos de MultiProcesamiento (MPMs)

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

Este documento explica que son los Mdulos de +Multiprocesamiento y como los usa Apache.

+
+ +
top
+
+

Introduccin

+ +

Apache est diseado para ser un servidor web potente + y flexible que pueda funcionar en la ms amplia variedad de + plataformas y entornos. Las diferentes plataformas y los + diferentes entornos, hacen que a menudo sean necesarias diferentes + caractersticas o funcionalidades, o que una misma + caracterstica o funcionalidad sea implementada de diferente + manera para obtener una mayor eficiencia. Apache se ha adaptado + siempre a una gran variedad de entornos a travs de su + diseo modular. Este diseo permite a los + administradores de sitios web elegir que funcionalidades van a ser + incluidas en el servidor seleccionando que mdulos se van a + usar, ya sea al compilar o al ejecutar el servidor.

+ +

Apache 2.0 extiende este diseo modular hasta las + funcionalidades ms bsicas de un servidor web. El + servidor viene con una serie de Mdulos de MultiProcesamiento + que son los responsables de conectar con los puertos de red de la + mquina, acceptar las peticiones, y generar los procesos hijo + que se encargan de servirlas.

+ +

La extensin del diseo modular a este nivel del + servidor ofrece dos beneficios importantes:

+ +
    +
  • Apache puede soportar de una forma ms fcil y + eficiente una amplia variedad de sistemas operativos. En + concreto, la versin de Windows de Apache es mucho ms + eficiente, porque el mdulo mpm_winnt + puede usar funcionalidades nativas de red en lugar de usar la + capa POSIX como hace Apache 1.3. Este beneficio se extiende + tambin 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 + ms 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. Adems, se pueden configurar + funcionalidades especiales como servir diferentes hosts con + diferentes identificadores de usuario + (perchild).
  • +
+ +

A nivel de usuario, los mdulos de multiprocesamiento + (MPMs) son como cualquier otro mdulo de Apache. La + diferencia ms importante es que solo un MPM puede estar + cargado en el servidor en un determinado momento. La lista de MPMs + disponibles est en la seccin de + ndice de mdulos.

+ +
top
+
+

Cmo Elegir un MPM

+ +

Los mdulos de multiprocesamiento que se van a usar + posteriormente deben elegirse durante el proceso de + configuracin, 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 estn usando hebras.

+ +

Para elegir el mdulo de multiprocesamiento deseado, use + el argumento --with-mpm= NAME con el script + configure. NAME es el nombre del MPM + deseado.

+ +

Una vez que el servidor ha sido compilado, es posible + determinar que mdulos de multiprocesamiento ha sido elegido + usando ./httpd -l. Este comando lista todos los + mdulos compilados en el servidor, incluido en MPM.

+
top
+
+

MPM por defecto

+ +

En la siguiente tabla se muestran los mdulos de +multiprocesamiento por defecto para varios sistemas operativos. Estos +sern los mdulos de multiprocesamiento seleccionados si no +se especifica lo contrario al compilar.

+ + + + + + + + +
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2
Unixprefork
Windowsmpm_winnt
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.ja.utf8 b/rubbos/app/apache2/manual/mpm.html.ja.utf8 new file mode 100644 index 00000000..1f6e9caa --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.ja.utf8 @@ -0,0 +1,143 @@ + + + +マルチプロセッシングモジュール (MPM) - Apache HTTP サーバ + + + + + +
<-
+

マルチプロセッシングモジュール (MPM)

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

この文書ではマルチプロセッシングモジュールがどのようなもので、 +Apache HTTP サーバでどのように使用されるかについて解説しています。

+
+ +
top
+
+

はじめに

+ +

Apache HTTP サーバは異なる幅広い環境、多種多様なプラットホームで + 動作するように、パワフルで柔軟性に富んだ設計になっています。 + 異なるプラットホーム・異なる環境ではしばしば、 + 異なる機能が必要になったり、 + 同じ機能でも効率のために異なる実装が必要になったりします。 + Apache ではモジュール化された設計により幅広い環境に適応してきました。 + この設計のおかげで、管理者は + コンパイル時または実行時にどのモジュールをロードするか選ぶことによって、 + どの機能をサーバに取り込むか選択することがができます。

+ +

Apache 2.0 では、 + このモジュール化された設計をサーバの基本機能にまで拡張しました。 + サーバには精選されたマルチプロセッシングモジュール (MPM) + が付いてきて、これらはマシンのネットワークポートをバインドしたり、 + リクエストを受け付けたり、リクエストを扱うよう子プロセスに割り当てたり、 + といった役割を持ちます。

+ +

モジュール化された設計をサーバのこのレベルまで拡張することで + 二つの重要な利点が生まれます:

+ +
    +
  • Apache は幅広いオペレーティングシステムを + より美しく効率的にサポートできます。 + 特に Windows 版の Apache は随分効率的になりました。 + なぜなら mpm_winnt + によって、Apache 1.3 で用いられていた POSIX + レイヤの代わりにネイティブのネットワーク機能を + 利用できるからです。 + 特別化された MPM + を実装した他のオペレーティングシステムでも、 + 同様にこの利点は生まれます。
  • + +
  • サーバは特定のサイト向けに、より上手にカスタマイズできます。 + 例えば、非常に大きなスケーラビリティを必要とするサイトでは、 + worker といったスレッド化された + MPM を利用できる一方で、安定性や古いソフトウェアとの互換性を + 必要とするサイトでは prefork + が利用できます。また、 + 異なるホストを異なるユーザ ID で動作させる + (perchild) といった + 特別な機能も提供できます。
  • +
+ +

ユーザレベルでは、MPM は他の Apache + モジュールと同等に見えます。 + 主な違いは、いつでも唯一の MPM + がロードされなければならないという点です。 + 利用可能な MPM は + module インデックスにあります。

+ +
top
+
+

MPM を選ぶ

+ +

MPM は設定中に選択して、サーバ内部にコンパイルされなければ + なりません。 + コンパイラは、スレッドが使用されていれば様々な機能を最適化できますが、 + そもそもスレッドが使われているということを知る必要があります。 + MPM には Unix 上でスレッドを用いるものや、スレッドをまったく + 使わないものがあるので、 + Apache は、MPM が設定中に選択されて Apache 内部に組み込まれた場合の方が + 常により良いパフォーマンスを発揮します。

+ +

望みの 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
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.ko.euc-kr b/rubbos/app/apache2/manual/mpm.html.ko.euc-kr new file mode 100644 index 00000000..b8ce714e --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.ko.euc-kr @@ -0,0 +1,126 @@ + + + +ó (MPM) - Apache HTTP Server + + + + + +
<-
+

ó (MPM)

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ó (Multi-Processing Module) ̸, +ġ ̸  ϴ Ѵ.

+
+ +
top
+
+

Ұ

+ +

ġ پ ȯ پ ÷ + ֵ ϰ ϰ Ǿ. ٸ ÷ ٸ + ȯ ٸ 䱸ϸ,  ȿ + ϴ ٸ ִ. ġ ȭ ̷ + پ ȯ濡 ׻ ؿԴ. ׷ ʹ Ͻ + Ȥ  о Ͽ + ִ.

+ +

Apache 2.0 ̷ ȭ 踦 ⺻ + κп Ȯߴ. ý Ʈ Ʈ ϰ, + û ޾Ƶ̸, ޾Ƶ û óϱ ڽĵ鿡 + йϴ ó (Multi-Processing Modules, MPMs) + ִ.

+ +

ȭϸ ΰ ߿ + ִ:

+ +
    +
  • mpm_winnt Apache 1.3 + POSIX ü Ʈ ִ , + ġ پ ü ϰ ȿ + ִ. Ưȭ MPM ٸ + ü ȴ.
  • + +
  • Ư Ʈ 䱸ǿ Ưȭ ִ. + Ȯ尡ɼ(scalability) ʿ Ʈ + worker MPM ϰ, + Ʈ ȣȯ ʿ Ʈ + preforking MPM ִ. + ߰ ٸ ھ̵ ȣƮ ϴ + (perchild) Ư ɵ + ȴ.
  • +
+ +

ڰ ⿡ MPM ٸ ġ + δ. ֵ ̴ ѹ MPM ؾ + Ѵٴ ̴. 밡 MPM + ִ.

+ +
top
+
+

MPM ϱ

+ +

MPMs ߿ Ͽ ϵǾ Ѵ. + 带 ϴ Ϸ ˸ Լ + ȭ ִ. н MPM 带 + ƴϹǷ, MPM ߿ õǾ ġ + ϵɶ ġ ӵ .

+ +

ϴ MPM Ϸ ./configure ũƮ + with-mpm= NAME ƱԸƮ ϶. NAME + ϴ MPM ̸̴.

+ +

./httpd -l ɾ + MPM ִ. ɾ MPM Ͽ ϵ + ˷ش.

+
top
+
+

MPM ⺻

+ +

ǥ ü ⺻ MPM ش. Ͻ +ٸ MPM õȴ.

+ + + + + + + + +
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2
нprefork
mpm_winnt
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.ru.koi8-r b/rubbos/app/apache2/manual/mpm.html.ru.koi8-r new file mode 100644 index 00000000..a63a669d --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.ru.koi8-r @@ -0,0 +1,138 @@ + + + +- (-) - HTTP Apache + + + + + +
<-
+

- (-)

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

, - + HTTP- Apache.

+
+
+
top
+
+

+ +

HTTP- Apache -, + + . + + + . Apache + ޣ , + , + , + .

+ +

Apache 2.0 + -. + - (-), + , ɣ + .

+ +

+ :

+ + + +

- + Apache. + , + -. - + .

+ +
top
+
+

-

+ +

- , + , + . + , , + , + .

+ +

- Apache, + --with-mpm=MPM + configure, MPM - + -.

+ +

, , + , - , + ./httpd -l, + , , + -.

+
top
+
+

-

+ +

ģ , - + . +-, , + -.

+ + + + + + + + +
BeOSbeos
Netwarempm_netware
OS/2mpmt_os2
Unixprefork
Windowsmpm_winnt
+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/mpm.html.tr.utf8 b/rubbos/app/apache2/manual/mpm.html.tr.utf8 new file mode 100644 index 00000000..d197c484 --- /dev/null +++ b/rubbos/app/apache2/manual/mpm.html.tr.utf8 @@ -0,0 +1,128 @@ + + + +Çok Süreçlilik Modülleri (MPM’ler) - Apache HTTP Sunucusu + + + + + +
<-
+

Çok Süreçlilik Modülleri (MPM’ler)

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

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 gibi evreli bir MPM modülünü + seçebilmektedir. Ek olarak, farklı konakların farklı kullanıcı + kimlikleri ile sunulması gibi özel oluşumlar da + (perchild) sağlanabilmektedir.
  • +
+ +

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  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html b/rubbos/app/apache2/manual/new_features_2_0.html new file mode 100644 index 00000000..dbf31509 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html @@ -0,0 +1,33 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: new_features_2_0.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_0.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_0.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_0.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: new_features_2_0.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: new_features_2_0.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +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/rubbos/app/apache2/manual/new_features_2_0.html.de b/rubbos/app/apache2/manual/new_features_2_0.html.de new file mode 100644 index 00000000..3e6924d7 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.de @@ -0,0 +1,265 @@ + + + +bersicht der neuen Funktionen in Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

bersicht der neuen Funktionen in Apache 2.0

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Dieses Dokument beschreibt einige der wichtigsten nderungen + des Apache HTTP Servers 2.0 gegenber der Version 1.3.

+
+ +
top
+
+

Core-Erweiterungen

+ + +
+
Unix-Threading
+ +
Auf Unix-Systemen mit Untersttzung fr POSIX-Threads, + kann Apache jetzt in einem Multi-Process, Multi-Threaded Hybrid-Mode + gestartet werden. Dies verbessert die Skalierfhigkeit fr + viele, jedoch nicht unbedingt alle Konfigurationen.
+ +
Neues Build-System
+ +
Das Build-System wurde komplett auf der Basis von + autoconf und libtool neu geschrieben. Dadurch + wird das Apache-Konfigurationssystem dem vieler anderer Packages + hnlicher.
+ +
Multi-Protokoll-Untersttzung
+ +
Apache stellt jetzt die notwendigen Grundfunktionalitten + bereit, um mehrere Protokolle untersttzen und verarbeiten zu + knnen. mod_echo wurde hierfr als + Beispiel geschrieben.
+ +
Bessere Untersttzung von + Nicht-Unix-Plattformen
+ +
Apache 2.0 ist schneller und stabiler auf Nicht-Unix-Plattformen + wie BeOS, OS/2 und Windows. Mit der Einfhrung 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 + hufig fehlerbehafteten und schlecht funktionierenden + POSIX-Emulation-Layer vermieden wird.
+ +
Neues Apache API
+ +
Das API fr Module hat sich in 2.0 stark verndert. + Die meisten der Sortierungs-/Priorittsprobleme von Modulen bei + 1.3 sollten nun verschwunden sein. In 2.0 wird hiervon vieles + automatisch durchgefhrt. Die Modulsortierung wird jetzt + ber einen pre-hook vorgenommen, um mehr Flexibilitt + zu bieten. Auerdem wurden neue API-Calls hinzugefgt, + die zustzliche Modulfhigkeiten zur Verfgung stellen, + ohne den Apache-Kern anpassen zu mssen.
+ +
IPv6-Untersttzung
+ +
Auf Systemen, bei denen die zugrundeliegende Apache Portable + Runtime-Bibliothek IPv6 untersttzt, bekommt Apache + standarmig IPv6 Listening Sockets. Zustzlich + untersttzen die Konfigurationsanweisungen Listen, NameVirtualHost und VirtualHost numerische IPv6-Adressangaben + (z.B., "Listen [2001:db8::1]:8080").
+ +
Filterung
+ +
Apache-Module knnen 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 ausgefhrt werden. Das Modul + mod_ext_filter erlaubt externen Programmen + als Filter zu agieren, in der gleichen Weise wie CGI-Programme als + Eingabe dienen knnen.
+ +
Mehrsprachige Fehlermeldungen
+ +
Fehlermeldungen die an den Browser rausgehen, stehen jetzt als + SSI-Dokumente in verschiedenen Sprachen zur Verfgung. Sie + knnen bei Bedarf durch den Administrator angepasst werden, + um ein einheitliches Design zu erreichen.
+ +
Vereinfachte Konfiguration
+ +
Viele der verwirrenden Konfigurationsanweisungen wurden vereinfacht. + Die oft fr Verwirrung sorgenden Port- und + BindAddress-Anweisungen wurden entfernt. + Ausschlielich die Listen-Anweisung wird nun zum + Setzen von IP-Addressen und Portnummern benutzt. + Der Servername und die Portnummer, die fr Weiterleitungen und + zur Erkennung virtueller Server verwendet werden, werden ber + die ServerName-Anweisung + konfiguriert.
+ +
Native Windows NT Unicode-Untersttzung
+ +
Apache 2.0 auf Windows NT benutzt jetzt utf-8 fr alle + Dateinamen-Kodierungen. Diese werden direkt auf das zugrundeliegende + Unicode-Dateisystem abgebildet, wodurch Mehrsprach-Untersttzung + fr alle Windows NT-basierten Installationen, inklusive Windows + 2000 und Windows XP, zur Verfgung gestellt wird. + Diese Untersttzung ist nicht auf Windows 95, 98 oder ME + verfgbar. Hier wird weiterhin die jeweils lokale Codepage des + Rechners fr den Zugriff auf das Dateisystem verwendet.
+ +
Bibliothek fr regulre Ausdrcke aktualisiert
+ +
Apache 2.0 enthlt die "Perl Compatible + Regular Expression Library" (PCRE). + Bei der Auswertung aller regulren Ausdrcke wird nun + die leistungsfhigere Syntax von Perl 5 verwendet.
+ +
+
top
+
+

Modul-Erweiterungen

+ + +
+
mod_ssl
+ +
Neues Modul in Apache 2.0. Dieses Modul ist ein Interface + zu den von OpenSSL bereitgestellten SSL/TLS + Verschlsselungs-Protokollen.
+ +
mod_dav
+ +
Neues Modul in Apache 2.0. Dieses Modul implementiert die HTTP + Distributed Authoring and Versioning (DAV) Spezifikation zur + Erzeugung und Pflege von Web-Inhalten.
+ +
mod_deflate
+ +
Neues Modul in Apache 2.0. Dieses Modul erlaubt es Browsern, die + dies untersttzen, eine Komprimierung des Inhaltes vor der + Auslieferung anzufordern, um so Netzwerk-Bandbreite zu sparen.
+ +
mod_auth_ldap
+ +
Neues Modul in Apache 2.0.41. Diese Modul ermglicht + die Verwendung einer LDAP-Datenbank zur Speicherung von + Berechtigungsdaten fr die HTTP-Basic-Authentication. + Ein Begleitmodul, mod_ldap, stellt einen + Verbindungs-Pool und die Pufferung von Abfrageergebnissen zur + Verfgung. +
+ +
mod_auth_digest
+ +
Zustzliche Untersttzung fr + prozessbergreifendes Session-Caching mittels Shared-Memory. +
+ +
mod_charset_lite
+ +
Neues Modul in Apache 2.0. + Dieses experimentelle Modul erlaubt Zeichensatz-bersetzungen oder + -Umschlsselung.
+ +
mod_file_cache
+ +
Neues Modul in Apache 2.0. Dieses Modul beinhaltet die + Funktionalitt 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 mglich Response-Header auf Basis von + definierten Bedingungen zu verndern.
+ +
mod_proxy
+ +
Das Proxy Modul wurde komplett neu geschrieben um die + Mglichkeiten der neuen Filter-Funktionalitt + auszuschpfen und um einen zuverlssigen 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 + "proxy:...">-Konfigurationen werden nicht + mehr untersttzt. Das Modul ist nun in mehrere Module + unterteilt, die jeweils ein bestimmtes bertragungsprotokoll + untersttzen, wie proxy_connect, + proxy_ftp und proxy_http.
+ +
mod_negotiation
+ +
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. Zustzlich wurden die + Negotiation- und Multiview-Algorithmen angepasst um einheitlichere + Ergebnisse zu liefern. Auerdem wird ein neues + Type-Map-Format bereitgestellt, das Dokumenteninhalte direkt + enthalten kann.
+ +
mod_autoindex
+ +
Automatisch erzeugte Verzeichnisindizes knnen zur besseren + bersichtlichkeit durch HTML-Tabellen dargestellt werden. + Genauere Sortierungen, wie Sortierung nach Versionsnummer und + Wildcard-Filterung des Verzeichnisindizes werden untersttzt.
+ +
mod_include
+ +
Neue Anweisungen erlauben es, die Standard Start- und Endtags von + SSI-Elementen zu ndern. Zudem knnen die Default-Formate + fr Fehlermeldungen und Zeitangaben nun ebenfalls in der + Serverkonfiguration vorgenommen werden. Auf die Ergebnisse der + Auswertung und Gruppierung von regulren Ausdrcken (jetzt + auf Basis der Perl-Syntax fr regulre Ausdrcke) kann + ber die mod_include Variablen $0 + bis $9 zugegriffen werden.
+ +
mod_auth_dbm
+ +
DBM-hnliche Datenbanken werden jetzt durch die + Konfigurationsaweisung AuthDBMType untersttzt.
+
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.en b/rubbos/app/apache2/manual/new_features_2_0.html.en new file mode 100644 index 00000000..a248f752 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.en @@ -0,0 +1,245 @@ + + + +Overview of new features in Apache 2.0 - Apache HTTP Server + + + + + +
<-
+

Overview of new features in Apache 2.0

+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

This document describes some of the major changes between the + 1.3 and 2.0 versions of the Apache HTTP Server.

+
+ +
top
+
+

Core Enhancements

+ + +
+
Unix Threading
+ +
On Unix systems with POSIX threads support, Apache can + now run in a hybrid multiprocess, multithreaded mode. This + improves scalability for many, but not all configurations.
+ +
New Build System
+ +
The build system has been rewritten from scratch to be + based on autoconf and libtool. + This makes Apache's configuration system more similar to + that of other packages.
+ +
Multiprotocol Support
+ +
Apache now has some of the infrastructure in place to + support serving multiple protocols. mod_echo has + been written as an example.
+ +
Better support for non-Unix + platforms
+ +
Apache 2.0 is faster and more stable on non-Unix + platforms such as BeOS, OS/2, and Windows. With the + introduction of platform-specific multi-processing modules (MPMs) and the + Apache Portable Runtime (APR), these platforms are now + implemented in their native API, avoiding the often buggy and + poorly performing POSIX-emulation layers.
+ +
New Apache API
+ +
The API for modules has changed significantly for 2.0. + Many of the module-ordering/-priority problems from 1.3 should + be gone. 2.0 does much of this automatically, and module ordering + is now done per-hook to allow more flexibility. Also, new calls + have been added that provide additional module capabilities + without patching the core Apache server.
+ +
IPv6 Support
+ +
On systems where IPv6 is supported by the underlying + 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 + [2001:db8::1]:8080").
+ +
Filtering
+ +
Apache modules may now be written as filters which act on + the stream of content as it is delivered to or from the + server. This allows, for example, the output of CGI scripts to + be parsed for Server Side Include directives using the + INCLUDES filter in mod_include. The + module mod_ext_filter allows external programs to + act as filters in much the same way that CGI programs can act as + handlers.
+ +
Multilanguage Error Responses
+ +
Error response messages to the browser are now provided in + several languages, using SSI documents. They may be customized + by the administrator to achieve a consistent look and feel.
+ +
Simplified configuration
+ +
Many confusing directives have been simplified. The often + confusing Port and BindAddress directives + are gone; only the Listen + directive is used for IP address binding; the ServerName directive specifies the + server name and port number only for redirection and vhost + recognition.
+ +
Native Windows NT Unicode Support
+ +
Apache 2.0 on Windows NT now uses utf-8 for all filename + encodings. These directly translate to the underlying Unicode + file system, providing multilanguage support for all Windows + NT-based installations, including Windows 2000 and Windows XP. + This support does not extend to Windows 95, 98 or ME, which + continue to use the machine's local codepage for filesystem + access.
+ +
Regular Expression Library Updated
+ +
Apache 2.0 includes the Perl + Compatible Regular Expression Library (PCRE). All regular + expression evaluation now uses the more powerful Perl 5 + syntax.
+ +
+
top
+
+

Module Enhancements

+ + +
+
mod_ssl
+ +
New module in Apache 2.0. This module is an interface + to the SSL/TLS encryption protocols provided by + OpenSSL.
+ +
mod_dav
+ +
New module in Apache 2.0. This module implements the HTTP + Distributed Authoring and Versioning (DAV) specification for + posting and maintaining web content.
+ +
mod_deflate
+ +
New module in Apache 2.0. This module allows supporting + browsers to request that content be compressed before delivery, + saving network bandwidth.
+ +
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 + Authentication. A companion module, mod_ldap + provides connection pooling and results caching.
+ +
mod_auth_digest
+ +
Includes additional support for session caching across + processes using shared memory.
+ +
mod_charset_lite
+ +
New module in Apache 2.0. This experimental module allows + for character set translation or recoding.
+ +
mod_file_cache
+ +
New module in Apache 2.0. This module includes the + functionality of mod_mmap_static in Apache 1.3, + plus adds further caching abilities.
+ +
mod_headers
+ +
This module is much more flexible in Apache 2.0. It can now + modify request headers used by mod_proxy, and + it can conditionally set response headers.
+ +
mod_proxy
+ +
The proxy module has been completely rewritten to take + advantage of the new filter infrastructure and to implement a + more reliable, HTTP/1.1 compliant proxy. In addition, new + <Proxy> + configuration sections provide more readable (and internally + faster) control of proxied sites; overloaded <Directory + "proxy:..."> configuration are not supported. The module + is now divided into specific protocol support modules including + proxy_connect, proxy_ftp and + proxy_http.
+ +
mod_negotiation
+ +
A new ForceLanguagePriority directive can be used to assure that + the client receives a single document in all cases, rather than + NOT ACCEPTABLE or MULTIPLE CHOICES responses. In addition, the + negotiation and MultiViews algorithms have been cleaned up to + provide more consistent results and a new form of type map that + can include document content is provided.
+ +
mod_autoindex
+ +
Autoindex'ed directory listings can now be configured to + use HTML tables for cleaner formatting, and allow finer-grained + control of sorting, including version-sorting, and wildcard + filtering of the directory listing.
+ +
mod_include
+ +
New directives allow the default start and end tags for SSI elements + to be changed and allow for error and time format configuration + to take place in the main configuration file rather than in the + SSI document. Results from regular expression parsing and grouping + (now based on Perl's regular expression syntax) can be retrieved + using mod_include's variables $0 + .. $9.
+ +
mod_auth_dbm
+ +
Now supports multiple types of DBM-like databases using the + AuthDBMType + directive.
+ +
+
+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.es b/rubbos/app/apache2/manual/new_features_2_0.html.es new file mode 100644 index 00000000..fac3f6e1 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.es @@ -0,0 +1,274 @@ + + + +Visin general de las nuevas funcionalidades de Apache +2.0 - Servidor HTTP Apache + + + + + +
<-
+

Visin general de las nuevas funcionalidades de Apache +2.0

+
+

Idiomas disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

Este documento describe algunas de las diferencias ms + importantes que existen entre las versiones 1.3 y 2.0 del Servidor + HTTP Apache.

+
+ +
top
+
+

Principales Mejoras

+ + +
+
Hebrado en Unix
+ +
En los sistemas Unix que soportan hebras POSIX, la nueva + versin de Apache puede ejecutarse en modo hbrido + multiproceso-multihebra. Esto mejora la escalabilidad para + muchas aunque no para todas las configuraciones.
+ +
Nuevo sistema de configuracin y compilacin
+ +
El sistema de configuracin y compilacin ha sido + escrito de nuevo desde cero para basarlo en + autoconf y libtool. Esto hace que el + sistema de configuracin de Apache se parezca ahora + ms al de otros proyectos Open Source.
+ +
Soporte Multiprotocolo
+ +
La nueva versin tiene la infraestructura necesaria + para servir distintos protocolos. Por ejemplo, se ha escrito el + mdulo mod_echo.
+ +
Soporte mejorado para las plataformas que no son tipo Unix
+ +
La versin 2.0 de Apache es ms rpida y + ms estable en sistemas que no son tipo Unix, tales como + BeOS, OS/2 y Windows, que la versin antigua. Con la + introduccin de mdulos de + multiprocesamiento (MPMs) especficos para cada + plataforma y del Apache Portable Runtime (APR), estas + plataformas tienen ahora implementada su propia API nativa, + evitando las capas de emulacin POSIX que provocan + problemas y un bajo rendimiento.
+ +
Nueva interfaz de programacin (API) de Apache
+ +
La API para los mdulos ha cambiado significativamente + en la nueva versin. Muchos de los problemas de + ordencin y prioridad de mdulos de la versin + 1.3 deben haber desaparecido. Apache 2.0 hace automaticamente + mucho de lo que es necesario, y la ordenacin de + mdulos se hace ahora por hooks, lo que ofrece una mayor + flexibilidad. Tambin se han aadido nuevas llamadas + que ofrecen capacidades adicionales sin tener que parchear el + ncleo del servidor Apache.
+ +
Soporte de IPv6
+ +
En los sitemas que soportan IPv6 con la libreria Apache + Portable Runtime, Apache soporta IPv6 listening sockets por + defecto. Adems, las directivas Listen, NameVirtualHost, y VirtualHost soportan direcciones IPv6 + numricas (por ejemplo, "Listen + [2001:db8::1]:8080").
+ +
Filtros
+ +
Los mdulos de Apache pueden ahora escribirse para que + se comporten como filtros que actan sobre el flujo de + contenidos tal y como salen del servidor o tal y como son + recibidos por el servidor. Esto permite, por ejemplo, que el + resultado de un script CGI sea analizado por las directivas + Server Side Include usando el filtro INCLUDES del + mdulo mod_include. El mdulo + mod_ext_filter permite que programas externos + acten como filtros casi del mismo modo que los CGIs pueden + actuar como handlers.
+ +
Mensajes de error en diferentes idiomas
+ +
Los mensajes de error que se envan a los navegadores + estn ahora disponibles en diferentes idiomas, usando + documentos SSI. Estos mensajes pueden personalizarse por el + administrador del sitio web para conseguir un look and feel + coherente con el resto de los contenidos.
+ +
Configuracin simplificada
+ +
Muchas directivas que podan inducir a confusin + han sido simplificadas. Las directivas Port y + BindAddress han desaparecido; para configurar la + direccin IP en la que escucha el servidor ahora se usa + nicamente la directiva Listen; la directiva ServerName especifica el nombre del + servidor y el nmero del puerto solo para redirecionamiento + y reconocimento de host virtual.
+ +
Soporte de Unicode Nativo para Windows NT
+ +
Apache 2.0 en Windows NT usa ahora utf-8 para la + codificacin de los nombres de fichero. Estos se mapean + directamente al sistema de ficheros Unicode subyanciente, + suministrando soporte para diferentes idiomas para todas + instalaciones en Windows NT, includidos Windows 2000 y Windows + XP. Este soporte no se extiende a Windows 95, 98 o ME, que + continan usando la codificacin que tenga la + mquina local para el acceso al sistema de + archivos.
+ +
Actulizacin de la librera de expresiones + regulares (regular expressions)
+ +
Apache 2.0 incluye la Librera de expresiones + regulares compatibles de/con Perl (PCRE). Ahora, cuando se + evalan las expresiones tipo, se usa siempre la potente + sintaxis de Perl 5.
+ +
+
top
+
+

Mejoras en los mdulos

+ + +
+
mod_ssl
+ +
Mdulo nuevo en Apache 2.0. Este mdulo es una + interfaz para los protocolos de encriptado SSL/TLS de + OpenSSL.
+ +
mod_dav
+ +
Mdulo nuevo en Apache 2.0. Este mdulo implementa + la especificacin del HTTP Distributed Authoring and + Versioning (DAV) para colgar y mantener contenidos web.
+ +
mod_deflate
+ +
Mdulo nuevo en Apache 2.0. Este mdulo permite + soportar nevagadores que requieren que el contenido sea + comprimido antes de ser servido, ahorrando ancho de banda.
+ +
mod_auth_ldap
+ +
Mdulo nuevo en Apache 2.0.41. Este mdulo permite + que se pueda usar una base de datos LDAP para almacenar las + credenciales en la autentificacin bsica HTTP. El + mdulo de acompaamiento, mod_ldap + ofrece connection pooling y cache de resultados.
+ +
mod_auth_digest
+ +
Incluye soporte adicional para cache de sesiones entre + procesos usando memoria compartida.
+ +
mod_charset_lite
+ +
Mdulo nuevo en Apache 2.0. Este mdulo + experimental permite for traduccin o recodificacin + de sets de caracteres.
+ +
mod_file_cache
+ +
Mdulo nuevo en Apache 2.0. Este mdulo incluye la + funcionalidad que mod_mmap_static tena en + Apache 1.3, e incorpora nuevas capacidades de cacheado.
+ +
mod_headers
+ +
Este mdulo es mucho ms flexible en Apache + 2.0. Ahora puede modificar las cabeceras de las peticiones + usadas por mod_proxy, y puede fijar + condicionalmente cabeceras de respuesta.
+ +
mod_proxy
+ +
El mdulo proxy ha sido completamente reescrito para + aprovechar la nueva infraestructura de filtros y para + implementar de una manera ms fiable un proxy que cumpla + con requerimientos de la especificacin + HTTTP/1.1. Adems, se han incorporado nuevas secciones de + configuracin a la directiva <Proxy> que hacen mas fcil (e + internamente ms rpido) el control de los sitios web + que usan proxys; las configuraciones de sobrecarga + <Directory "proxy:..."> no se soportan. El + mdulo est ahora dividido en mdulos + especficos para cada protocolo, incluidos + proxy_connect, proxy_ftp y + proxy_http.
+ +
mod_negotiation
+ +
La nueva directiva ForceLanguagePriority se puede usar para asegurarse + de que el cliente recibe siempre solo un documento, en lugar de + obtener una respuesta de tipo NOT ACCEPTABLE o MULTIPLE + CHOICES. Adems, los algoritmos de negociacin y + MultiView han sido modificados para ofrecer resultados ms + consistentes y se ha incluido a nuevo tipo de correspondecia de + tipos (type map).
+ +
mod_autoindex
+ +
Ahora pueden configurarse listados de directorios + autoindexados para usar tablas HTML, darles formato de forma + ms sencilla, y permitir control detallado del + ordenamiento, incluidos ordenamiento por versin, y + filtrado usando caracteres comodines de los listados de + directorios.
+ +
mod_include
+ +
Estas nuevas directivas permiten cambiar las etiquetas por + defecto de comienzo y final para elementos SSI y permiten que la + configuracin de errores y el formato de la hora y la fecha + se hagan en el fichero de configuracin pricipal en lugar + de en el documento SSI. Los resultados del anlisis y la + agrupacin de las expresiones tipo (ahora basadas en la + sintaxis de Perl 5) pueden ser devueltos usando las variables + $0 .. $9 del mdulo + mod_include.
+ +
mod_auth_dbm
+ +
Ahora se soportan varias clases de bases de datos de tipo + DBM usando la directiva AuthDBMType.
+ +
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.fr b/rubbos/app/apache2/manual/new_features_2_0.html.fr new file mode 100644 index 00000000..71e7178e --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.fr @@ -0,0 +1,124 @@ + + + + + + + + Nouvelles fonctionnalités d'Apache 2.0 + + + + +
+ [APACHE DOCUMENTATION] + +

Apache HTTP Server Version 2.0

+
+ + + + +

Aperçu des nouvelles + fonctionnalités d'Apache 2.0

+ +

Améliorations : Noyau | Module

+
+ +

Améliorations du noyau +  :

+ +
+
Threads sur Unix
+ +
Sur les systèmes Unix, Apache peut + s'exécuter selon un modèle hybride + multi-processus et multi-threads, en employant les threads + selon la norme POSIX. Ceci devrait améliorer les + performances.
+ +
Nouveau système de + construction
+ +
Le système de construction a été + entièrement réécrit et repose sur + autoconf et libtool. Cela rend le système de + configuration plus semblable aux autres paquetages.
+ +
Support multiprotocole
+ +
Apache possède maintenant une infrastructure afin + de servir de multiples protocoles. mod_echo a + été écrit comme exemple de ces nouvelles + fonctions.
+ +
Meilleur support des plates-formes autres + qu'Unix
+ +
Apache 2.0 est plus rapide et plus stable sur les + plates-formes non Unix telles que BeOS, OS/2, et Windows. + Avec l'introduction des modules multi + traitements (MPMs) spécifiques aux plates-formes + et l'exécuteur portable Apache (APR), le code pour ces + plates-formes est réalisé en employant leurs + API natives, permettant ainsi d'éviter les couches + d'émulation POSIX souvent boguées et peu + performantes.
+ +
Nouvelle API Apache
+ +
L'API pour les modules de la version 2.0 a changé + de manière importante. Beaucoup de problèmes + d'ordonnancement des modules existants dans la version 1.3 + devraient disparaître. La version 2.0 gère ceci + de manière automatique, et l'ordonnancement des + modules s'effectue selon une fonction d'accrochage afin de + permettre une plus grande flexibilité.
+
+
+ +

Améliorations + concernant les modules :

+ +
+
mod_auth_digest
+ +
Il inclut une nouvelle gestion des sessions en utilisant + un cache commun aux processus grâce à une + mémoire partagée.
+ +
mod_charset_lite
+ +
Nouveau module dans Apache 2.0. Ce module + expérimental permet la traduction des pages de + caractères ou leur recodage.
+ +
mod_dav
+ +
Nouveau module dans Apache 2.0. Ce module met en œuvre + la spécification "HTTP Distributed Authoring and + Versioning (DAV)" permettant de distribuer et maintenir le + contenu d'un site web.
+ +
mod_file_cache
+ +
Nouveau module dans Apache 2.0. Ce module inclut les + fonctionnalités du module mod_mmap_static existant + dans la version d'Apache 1.3, en ajoutant davantage de + possibilités de cache.
+
+
+ +

Apache HTTP Server Version 2.0

+ Index + + + + + + diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.ja.utf8 b/rubbos/app/apache2/manual/new_features_2_0.html.ja.utf8 new file mode 100644 index 00000000..49355a9b --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.ja.utf8 @@ -0,0 +1,255 @@ + + + +Apache 2.0 の新機能の概要 - Apache HTTP サーバ + + + + + +
<-
+

Apache 2.0 の新機能の概要

+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

この文書では、Apache HTTP サーババージョン 1.3 と 2.0 + の主な違いについて記述しています。

+
+ +
top
+
+

コア機能の拡張

+ + +
+
Unix のスレッド
+ +
POSIX スレッドをサポートしている Unix システム上では、 + Apache はマルチプロセス、マルチスレッドのハイブリッドモードで + 実行できるようになりました。これにより + 多くの設定においてスケーラビリティが向上します。
+ +
新しいビルドシステム
+ +
ビルドシステムは autoconflibtool + に基づいたものになるように、 + 新しく書き直されました。これにより、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_includeINCLUDES フィルタを使って + 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 型のデータベースをサポートする + ようになりました。
+ +
+
+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.ko.euc-kr b/rubbos/app/apache2/manual/new_features_2_0.html.ko.euc-kr new file mode 100644 index 00000000..208c557d --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.ko.euc-kr @@ -0,0 +1,235 @@ + + + +Apache 2.0 ο - Apache HTTP Server + + + + + +
<-
+

Apache 2.0 ο

+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

ġ 1.3 2.0 ֵ + Ѵ.

+
+ +
top
+
+

ٽ κп

+ + +
+
н
+ +
POSIX 带 ϴ н ýۿ ġ + μ ȥؼ ִ. + δ ƴ Ȯ尡ɼ(scalability) δ.
+ +
ο ý
+ +
ý autoconf libtool + ϵ ۼǾ. ׷ ġ ý ٸ + Ű .
+ +
+ +
ġ ִ + . mod_echo ۼǾ.
+ +
н ÷
+ +
Apache 2.0 BeOS, OS/2, н + ÷ ȭǾ. ġ ̵ + ÷ װ ȴ POSIX ȣȯ + ü API ÷ Ư ó + (MPM) Apache Portable Runtime (APR) Ͽ ȴ.
+ +
ο ġ API
+ +
API 2.0 ߴ. 1.3 + 켱 . 2.0 ̸ κ ڵ + óϸ, (hook) Ѵ. + , ġ ٽ κ ʰ ο + ϴ Լ ߰Ǿ.
+ +
IPv6
+ +
Apache Portable Runtine ̺귯 IPv6 ϴ + ýۿ ġ ⺻ IPv6 ٸ. , + Listen, + NameVirtualHost, + VirtualHost þ + IPv6 ּҸ Ѵ. (, + "Listen [2001:db8::1]:8080").
+ +
͸
+ +
ġ 帧 + ͷ ִ. mod_include + INCLUDES ͸ Ͽ CGI ũƮ ¿ + Server Side Include þ ó ִ. + mod_ext_filter CGI α׷ + ڵ鷯 ϴ Ͱ ܺ α׷ ͷ + ְ Ѵ.
+ +
ٱ
+ +
乮 SSI + Ͽ ٱ ȴ. ڴ ϵ ܰ + ִ.
+ +
+ +
ȥ ִ þ . ȥ + ִ Port BindAddress þ + IP ּ ῡ + Listen þ + Ѵ. ServerName + þ ̷ǰ ȣƮ νĿ + Ʈ Ѵ.
+ +
Windows NT ڵ ü
+ +
Windows NT Apache 2.0 ϸ ڵ + utf-8 Ѵ. ϸ ڵ Ͻý + Ǿ, Windows 2000 Windows XP Windows NT + ýۿ ٱ Ѵ. Windows 95, + 98, ME ʰ, Ͻý ٿ ý + ڵ Ѵ.
+ +
ǥ ̺귯 Updated
+ +
Apache 2.0 Perlȣȯ + ǥ ̺귯 (Perl Compatible Regular Expression + Library) (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 + Basic Authentication ϴ LDAP ͺ̽ + Ѵ. õ mod_ldap + Ǯ(connection pool) ϰ, ijѴ.
+ +
mod_auth_digest
+ +
޸𸮸 Ͽ μ ij Ѵ.
+ +
mod_charset_lite
+ +
Apache 2.0 ߰Ǿ. + ȯ ۼ Ѵ.
+ +
mod_file_cache
+ +
Apache 2.0 ߰Ǿ. Apache 1.3 + mod_mmap_static ɿ ij + ߰ߴ.
+ +
mod_headers
+ +
Apache 2.0 . + mod_proxy ϴ û + ְ, 쿡 ִ.
+ +
mod_proxy
+ +
Ͻ ο ̿ϰ + HTTP/1.1 Ͻø ϱ ۼǾ. ߰ + ο <Proxy> + Ͻ (׸ + ) . <Directory "proxy:..."> + ʴ´. proxy_connect, + proxy_ftp, proxy_http + ϴ .
+ +
mod_negotiation
+ +
ο ForceLanguagePriority + þ Ŭ̾Ʈ NOT ACCEPTABLE̳ MULTIPLE CHOICES + Ѵ. ߰ + ˰ MultiViews ˰ ϰ + Ǿ, ִ ο + type map ߰Ǿ.
+ +
mod_autoindex
+ +
ڵ 丮 + HTML ǥ ְ Ǿ, Ͽ + ļ ڼ , 丮 ϵī + ɷ ִ.
+ +
mod_include
+ +
ο þ Ͽ SSI ⺻ ±׿ + ħ ±׸ ְ, ð SSI ܿ + Ͽ ְ Ǿ. mod_include ( + Perl ǥ ) ǥ Ľ̰ ׷ + mod_include $0 + ... $9 ִ.
+ +
mod_auth_dbm
+ +
AuthDBMType + þ Ͽ DBM ͺ̽ Ѵ.
+ +
+
+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.ru.koi8-r b/rubbos/app/apache2/manual/new_features_2_0.html.ru.koi8-r new file mode 100644 index 00000000..b6b743d3 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.ru.koi8-r @@ -0,0 +1,252 @@ + + + + Apache 2.0 - HTTP Apache + + + + + +
<-
+

Apache 2.0

+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ +

1.3 2.0 HTTP Apache

+
+ +
top
+
+

+ + +
+
UNIX
+ +
UNIX , () POSIX, + Apache - . + + , .
+ +
+ +
, autoconf libtool. + Apache + .
+ +
+ +
Apache , + . + mod_echo + .
+ +
UNIX +
+ +
Apache 2.0 + UNIX , : BeOS, + OS/2 Windows. + - (MPMs) + Apache Portable Runtime (APR), + API, + + - POSIX - .
+ +
API Apache
+ +
API 2.0. + 1.3, + , . 2.0 + , + + (hook), . + , + , + - + .
+ +
IPv6
+ +
, IPv6 + Apache Portable Runtime, Apache + IPv6 . + Listen, NameVirtualHost VirtualHost , + IPv6 (.. "Listen [2001:db8::1]:8080").
+ +
+ +
Apache , + , + , + . , , , + CGI-, SSI + INCLUDES, + mod_include. mod_ext_filter + , + CGI (handlers).
+ +
+ +
, , + SSI + . + .
+ +
+ +
. + Port BindAddress ; + IP + Listen; + ServerName + .
+ +
Windows NT
+ +
Apache 2.0 Windows NT utf-8 + . + , Unicode, + NT- + , Windows 2000 Windows XP. + , + Windows 95, 98 ME, + .
+ +
+ +
Apache 2.0 + Perl- (PCRE). + Perl 5.
+ +
+
top
+
+

+ + +
+
mod_ssl
+ +
Apache 2.0. + SSL/TLS, OpenSSL.
+ +
mod_dav
+ +
Apache 2.0. + Distributed Authoring and Versioning (DAV), + HTTP.
+ +
mod_deflate
+ +
Apache 2.0. , + , , + .
+ +
mod_auth_ldap
+ +
Apache 2.0.41. LDAP + , + Basic. mod_ldap + (connection pools) .
+ +
mod_auth_digest
+ +
+ , ( + ).
+ +
mod_charset_lite
+ +
Apache 2.0. + (character set) + .
+ +
mod_file_cache
+ +
Apache 2.0. + mod_mmap_static Apache 1.3 + .
+ +
mod_headers
+ +
Apache 2.0. + , + mod_proxy, + .
+ +
mod_proxy
+ +
, + + , HTTP/1.1 -. + <Proxy>, , + ( ) , + proxy-. <Directory "proxy:..."> + . , + . proxy_connect, proxy_ftp + proxy_http.
+ +
mod_negotiation
+ +
ForceLanguagePriority, + NOT ACCEPTABLE MULTIPLE CHOICES + . + (negotiation) MultiViews , + , + (type map).
+ +
mod_autoindex
+ +
+ HTML-. , + (wildcard).
+ +
mod_include
+ +
, + SSI , , + + , SSI . + ( + Perl) + $0 .. $9 mod_include.
+ +
mod_auth_dbm
+ +
DBM- + AuthDBMType.
+ +
+
+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/new_features_2_0.html.tr.utf8 b/rubbos/app/apache2/manual/new_features_2_0.html.tr.utf8 new file mode 100644 index 00000000..177421a0 --- /dev/null +++ b/rubbos/app/apache2/manual/new_features_2_0.html.tr.utf8 @@ -0,0 +1,251 @@ + + + +Apache 2.0’da Yeni olan Özellikler - Apache HTTP Sunucusu + + + + + +
<-
+

Apache 2.0’da Yeni olan Özellikler

+
+

Mevcut Diller:  de  | + en  | + es  | + fr  | + ja  | + ko  | + 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  | + es  | + fr  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/ebcdic.html b/rubbos/app/apache2/manual/platform/ebcdic.html new file mode 100644 index 00000000..a48afa88 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/ebcdic.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ebcdic.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: ebcdic.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/ebcdic.html.en b/rubbos/app/apache2/manual/platform/ebcdic.html.en new file mode 100644 index 00000000..9fd5da46 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/ebcdic.html.en @@ -0,0 +1,584 @@ + + + +The Apache EBCDIC Port - Apache HTTP Server + + + + + +
<-
+

The Apache EBCDIC Port

+
+

Available Languages:  en  | + ko 

+
+ + +
Warning: This document + has not been updated to take into account changes made in + the 2.0 version of the Apache HTTP Server. Some of the + information may still be relevant, but please use it with care. +
+ +
+ +
top
+
+

Overview of the Apache EBCDIC Port

+ + + +

Version 1.3 of the Apache HTTP Server is the first version + which includes a port to a (non-ASCII) mainframe machine which + uses the EBCDIC character set as its native codeset.

+ +

(It is the SIEMENS family of mainframes running the BS2000/OSD + operating system. This mainframe OS nowadays features a + SVR4-derived POSIX subsystem).

+ +

The port was started initially to

+ +
    +
  • prove the feasibility of porting the Apache HTTP server to + this platform
  • + +
  • find a "worthy and capable" successor for the venerable + CERN-3.0 daemon + (which was ported a couple of years ago), and to
  • + +
  • prove that Apache's preforking process model can on this + platform easily outperform the accept-fork-serve model used + by CERN by a factor of 5 or more.
  • +
+ +

This document serves as a rationale to describe some of the + design decisions of the port to this machine.

+ +
top
+
+

Design Goals

+ + + +

One objective of the EBCDIC port was to maintain enough + backwards compatibility with the (EBCDIC) CERN server to make + the transition to the new server attractive and easy. This + required the addition of a configurable method to define + whether a HTML document was stored in ASCII (the only format + accepted by the old server) or in EBCDIC (the native document + format in the POSIX subsystem, and therefore the only realistic + format in which the other POSIX tools like grep or + sed could operate on the documents). The current + solution to this is a "pseudo-MIME-format" which is intercepted + and interpreted by the Apache server (see below). Future versions + might solve the problem by defining an "ebcdic-handler" for all + documents which must be converted.

+ +
top
+
+

Technical Solution

+ + + +

Since all Apache input and output is based upon the BUFF + data type and its methods, the easiest solution was to add the + conversion to the BUFF handling routines. The conversion must + be settable at any time, so a BUFF flag was added which defines + whether a BUFF object has currently enabled conversion or not. + This flag is modified at several points in the HTTP + protocol:

+ +
    +
  • set before a request is received + (because the request and the request header lines are always + in ASCII format)
  • + +
  • set/unset when the request body is + received - depending on the content type of the request body + (because the request body may contain ASCII text or a binary + file)
  • + +
  • set before a reply header is sent + (because the response header lines are always in ASCII + format)
  • + +
  • set/unset when the response body is sent + - depending on the content type of the response body (because + the response body may contain text or a binary file)
  • +
+ +
top
+
+

Porting Notes

+ + + +
    +
  1. +

    The relevant changes in the source are #ifdef'ed + into two categories:

    + +
    +
    #ifdef + CHARSET_EBCDIC
    + +
    +

    Code which is needed for any EBCDIC based machine. + This includes character translations, differences in + contiguity of the two character sets, flags which + indicate which part of the HTTP protocol has to be + converted and which part doesn't etc.

    +
    + +
    #ifdef _OSD_POSIX
    + +
    +

    Code which is needed for the SIEMENS BS2000/OSD + mainframe platform only. This deals with include file + differences and socket implementation topics which are + only required on the BS2000/OSD platform.

    +
    +
    +
  2. + +
  3. +

    The possibility to translate between ASCII and EBCDIC at + the socket level (on BS2000 POSIX, there is a socket option + which supports this) was intentionally not chosen, + because the byte stream at the HTTP protocol level consists + of a mixture of protocol related strings and non-protocol + related raw file data. HTTP protocol strings are always + encoded in ASCII (the GET request, any Header: lines, + the chunking information etc.) whereas the file transfer + parts (i.e., GIF images, CGI output etc.) + should usually be just "passed through" by the server. This + separation between "protocol string" and "raw data" is + reflected in the server code by functions like bgets() + or rvputs() for strings, and functions like + bwrite() for binary data. A global translation + of everything would therefore be inadequate.

    + +

    (In the case of text files of course, provisions must be + made so that EBCDIC documents are always served in + ASCII)

    +
  4. + +
  5. +

    This port therefore features a built-in protocol level + conversion for the server-internal strings (which the + compiler translated to EBCDIC strings) and thus for all + server-generated documents. The hard coded ASCII escapes + \012 and \015 which are ubiquitous + in the server code are an exception: they are already the binary + encoding of the ASCII \n and \r and + must not be converted to ASCII a second time. + This exception is only relevant for server-generated strings; + and external EBCDIC documents are not expected to + contain ASCII newline characters.

    +
  6. + +
  7. +

    By examining the call hierarchy for the BUFF management + routines, I added an "ebcdic/ascii conversion layer" which + would be crossed on every puts/write/get/gets, and a + conversion flag which allowed enabling/disabling the + conversions on-the-fly. Usually, a document crosses this + layer twice from its origin source (a file or CGI output) to + its destination (the requesting client): file -> + Apache, and Apache -> client.

    + +

    The server can now read the header lines of a CGI-script + output in EBCDIC format, and then find out that the remainder + of the script's output is in ASCII (like in the case of the + output of a WWW Counter program: the document body contains a + GIF image). All header processing is done in the native + EBCDIC format; the server then determines, based on the type + of document being served, whether the document body (except + for the chunking information, of course) is in ASCII already + or must be converted from EBCDIC.

    +
  8. + +
  9. +

    For Text documents (MIME types text/plain, text/html + etc.), an implicit translation to ASCII can be + used, or (if the users prefer to store some documents in + raw ASCII form for faster serving, or because the files + reside on a NFS-mounted directory tree) can be served + without conversion.

    + +

    Example:

    + +

    to serve files with the suffix .ahtml as a + raw ASCII text/html document without implicit + conversion (and suffix .ascii as ASCII + text/plain), use the directives:

    + +

    + AddType text/x-ascii-html .ahtml
    + AddType text/x-ascii-plain .ascii +

    + +

    Similarly, any text/foo MIME type can be + served as "raw ASCII" by configuring a MIME type + "text/x-ascii-foo" for it using + AddType.

    +
  10. + +
  11. +

    Non-text documents are always served "binary" without + conversion. This seems to be the most sensible choice for, + .e.g., GIF/ZIP/AU file types. This of course + requires the user to copy them to the mainframe host using + the "rcp -b" binary switch.

    +
  12. + +
  13. +

    Server parsed files are always assumed to be in native + (i.e., EBCDIC) format as used on the machine, and + are converted after processing.

    +
  14. + +
  15. +

    For CGI output, the CGI script determines whether a + conversion is needed or not: by setting the appropriate + Content-Type, text files can be converted, or GIF output can + be passed through unmodified. An example for the latter case + is the wwwcount program which we ported as well.

    +
  16. + +
+ +
top
+
+

Document Storage Notes

+ + + +

Binary Files

+ + + +

All files with a Content-Type: which does not + start with text/ are regarded as binary + files by the server and are not subject to any conversion. + Examples for binary files are GIF images, gzip-compressed files + and the like.

+ +

When exchanging binary files between the mainframe host and + a Unix machine or Windows PC, be sure to use the ftp "binary" + (TYPE I) command, or use the + rcp -b command from the mainframe host (the + -b switch is not supported in unix + rcp's).

+ + + +

Text Documents

+ + + +

The default assumption of the server is that Text Files + (i.e., all files whose Content-Type: + starts with text/) are stored in the native + character set of the host, EBCDIC.

+ + + +

Server Side Included Documents

+ + + +

SSI documents must currently be stored in EBCDIC only. + No provision is made to convert it from ASCII before + processing.

+ + + +
top
+
+

Apache Modules' Status

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModuleStatusNotes
core+ +
mod_access+ +
mod_actions+ +
mod_alias+ +
mod_asis+ +
mod_auth+ +
mod_auth_anon+ +
mod_auth_dbm?with own libdb.a
mod_autoindex+ +
mod_cern_meta? +
mod_cgi+ +
mod_digest+ +
mod_dir+ +
mod_so-no shared libs
mod_env+ +
mod_example-(test bed only)
mod_expires+ +
mod_headers+ +
mod_imap+ +
mod_include+ +
mod_info+ +
mod_log_agent+ +
mod_log_config+ +
mod_log_referer+ +
mod_mime+ +
mod_mime_magic?not ported yet
mod_negotiation+ +
mod_proxy+ +
mod_rewrite+untested
mod_setenvif+ +
mod_speling+ +
mod_status+ +
mod_unique_id+ +
mod_userdir+ +
mod_usertrack?untested
+ +
top
+
+

Third Party Modules' Status

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModuleStatusNotes
mod_jserv + -JAVA still being ported.
mod_php3+mod_php3 runs fine, with LDAP and GD + and FreeType libraries.
mod_put?untested
mod_session-untested
+ +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/ebcdic.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/ebcdic.html.ko.euc-kr new file mode 100644 index 00000000..44526cf8 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/ebcdic.html.ko.euc-kr @@ -0,0 +1,557 @@ + + + +ġ EBCDIC - Apache HTTP Server + + + + + +
<-
+

ġ EBCDIC

+
+

:  en  | + ko 

+
+ + +
ġ 2.0 + ʴ. ȿ , + ؼ ϱ ٶ. +
+ +
+ +
top
+
+

ġ EBCDIC

+ + + +

ġ 1.3 ó EBCDIC + ⺻ ϴ (-ASCII) ÷ ǻͷ + õǾ.

+ +

(BS2000/OSD + ü ϴ SIEMENS 迭 ÷ Ѵ. + ÷ ü SVR4迭 POSIX ý + ִ).

+ +

ó ۵Ǿ

+ +
    +
  • ÷ε ġ + ִٴ ɼ ̱ؼ
  • + +
  • ( õ) CERN-3.0 ü + "ϰ " İڸ ã
  • + +
  • ÷ ġ prefork μ CERN + accept-fork-serve 5 ̻ + ̱ؼ.
  • +
+ +

ý Ѵ.

+ +
top
+
+

ǥ

+ + + +

EBCDIC ϳ ο ȯ ϰ + ȯ ֵ (EBCDIC) CERN ȣȯ + ϴ ̴. ׷ HTML ( CERN νϴ + ) ASCII (POSIX ý ⺻ . + ׷Ƿ grep̳ sed POSIX + ִ ) EBCDIC + ־ Ѵ. ذå ġ ߰ + ä ľϴ " MIME "̴ + (Ʒ ). ȯؾ + "ebcdic-handler" ϴ ذ ̴.

+ +
top
+
+

ذå

+ + + +

ġ BUFF ڷ ޽带 Ͽ + ϹǷ BUFF ó Լ ȯ ߰ϴ + ̴. ȯ ־ ϱ⶧ BUFF ü + ȯؾ ϴ ˷ִ BUFF ǥø ߰ߴ. ǥô + HTTP ܰ迡 ִ:

+ +
    +
  • û ޱ ȯ (û û + ׻ ASCII ̱ )
  • + +
  • û ޾ content type + ȯ/ȯ (û ASCII ڳ + ̳ʸ ȯؾ ϱ⶧)
  • + +
  • ȯ ( + ׻ ASCII ̱⶧)
  • + +
  • content type + ȯ/ȯ ( ̰ų + ̳ʸ ̱⶧)
  • +
+ +
top
+
+

ÿ ؼ

+ + + +
    +
  1. +

    ҽ ȭ ΰ #ifdef + ִ:

    + +
    +
    #ifdef + CHARSET_EBCDIC
    + +
    +

    EBCDIC ǻͿ ʿ ڵ. ںȯ, + հ ӵ ڰ ,  HTTP + κ ȯǾ ϴ ˷ִ ǥ .

    +
    + +
    #ifdef _OSD_POSIX
    + +
    +

    SIEMENS BS2000/OSD ÷ ÷ ʿ + ڵ. BS2000/OSD ÷ ʿ ̿ + ٷ.

    +
    +
    +
  2. + +
  3. +

    ؿ ASCII EBCDIC ȭ (BS2000 POSIX + ϴ ɼ ִ) HTTP ؿ + ۵Ǵ ڷῡ ݰ ڿ ݰ + Ϲ ֱ⶧ ǵ + ʾҴ. HTTP ڿ (GET + û, Header: , Ÿ .) ׻ ASCII + ̰, κ (, GIF ׸, CGI + .) ׻ "ȯʰ ׳" + Ѵ. ڵ " ڿ" "Ϲ ڷ", + ڿ bgets() rvputs(), + ̳ʸ ڷῡ bgets() + rvputs() Լ Ͽ Ѵ. ׷Ƿ + ȯϴ ʴ.

    + +

    ( EBCDIC ׻ ASCII + ϵ غؾ Ѵ)

    +
  4. + +
  5. +

    ׷ ÿ (Ϸ EBCDIC ڿ ȯ) + ڿ ⺻ + ؿ ȯϴ ִ. ڵ忡 ASCII + escape \012 \015 ܴ: + ̵ ̹ ASCII \n \r + ̳ʸ ̱⶧ ASCII ι ȯϸ ȵȴ. + ܴ ڿ ȴ; ܺ + EBCDIC ASCII ٹٲ޹ڸ ϸ ȵȴ.

    +
  6. + +
  7. +

    BUFF Լ ϴ 캻 + puts/write/get/gets ġԵǴ "ebcdic/ascii ȯ + " ߰ϰ, ȯ ִ + ȯ ǥø ߰ߴ. (̳ CGI ) + (û Ŭ̾Ʈ) ̵Ҷ ׻ + ι : -> ġ, ġ + -> Ŭ̾Ʈ.

    + +

    EBCDIC CGI ũƮ + а, ũƮ ASCII ˾Ƴ + ִ (WWW 湮ڼ α׷ : + GIF ׸̴). ⺻ EBCDIC + óѴ; ׷ type + ̹ ASCII Ȥ EBCDIC ȯ ؾ + ϴ Ѵ.

    +
  8. + +
  9. +

    (MIME type text/plain, text/html ) + Ϲ Ϲ ASCII ȯϰų, (ڿ + ϱ ̸ ASCII Ͽų + NFS Ʈ 丮 ִ ) ȯ + ִ.

    + +

    :

    + +

    ̸ .ahtml Ϲ + ȯ ASCII text/html (׸ + .ascii Ȯڴ ASCII + text/plain) Ϸ þ + Ѵ:

    + +

    + AddType text/x-ascii-html .ahtml
    + AddType text/x-ascii-plain .ascii +

    + +

    , text/foo MIME type + AddType "text/x-ascii-foo" + Ͽ "Ϲ ASCII" ִ.

    +
  10. + +
  11. +

    Ϲ ڰ ƴ ȯ ׻ "̳ʸ" + Ѵ. , GIF/ZIP/AU Ŀ + ̴. ڴ "rcp -b" + ̳ʸ ɼ Ͽ ÷ ȣƮ + ߾ Ѵ.

    +
  12. + +
  13. +

    Ľ ׻ ǻͰ ϴ ⺻ + (, EBCDIC) Ǿٰ ϰ, óĿ + ȯѴ.

    +
  14. + +
  15. +

    CGI CGI ũƮ ȯ ʿ Ѵ: + Content-Type Ͽ, ȯϰ, + GIF ȯ ִ. 츮 wwwcount + α׷ .

    +
  16. + +
+ +
top
+
+

忡 ؼ

+ + + +

̳ʸ

+ + + +

Content-Type: text/ + ϴ ʴ ̳ʸ Ͽ +  ȯ ʴ´. ̳ʸ Ͽ GIF ׸, gzip + ִ.

+ +

÷ ȣƮ н Ȥ PC ̳ʸ + ftp "binary" (TYPE I) ɾ + ÷ ȣƮ (н rcp + -b ɼ ʴ´) rcp -b + ɾ ݵ ϶.

+ + + +

+ + + +

⺻ (, + Content-Type: text/ ϴ + ) ȣƮ ⺻ EBCDIC Ǿٰ + Ѵ.

+ + + +

Server Side Include

+ + + +

SSI EBCDIC θ ؾ Ѵ. óϱ + ASCII ȯ ʴ´.

+ + + +
top
+
+

ġ

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
core+ +
mod_access+ +
mod_actions+ +
mod_alias+ +
mod_asis+ +
mod_auth+ +
mod_auth_anon+ +
mod_auth_dbm?ü libdb.a Ͽ
mod_autoindex+ +
mod_cern_meta? +
mod_cgi+ +
mod_digest+ +
mod_dir+ +
mod_so-̺귯
mod_env+ +
mod_example-( ܰ)
mod_expires+ +
mod_headers+ +
mod_imap+ +
mod_include+ +
mod_info+ +
mod_log_agent+ +
mod_log_config+ +
mod_log_referer+ +
mod_mime+ +
mod_mime_magic? þȵ
mod_negotiation+ +
mod_proxy+ +
mod_rewrite+׽Ʈȵ
mod_setenvif+ +
mod_speling+ +
mod_status+ +
mod_unique_id+ +
mod_userdir+ +
mod_usertrack?׽Ʈȵ
+ +
top
+
+

ڰ

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
mod_jserv + -JAVA ̴.
mod_php3+mod_php3 LDAP, GD, FreeType ̺귯 + Բ Ѵ.
mod_put?׽Ʈȵ
mod_session-׽Ʈȵ
+ +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/index.html b/rubbos/app/apache2/manual/platform/index.html new file mode 100644 index 00000000..df57cd0f --- /dev/null +++ b/rubbos/app/apache2/manual/platform/index.html @@ -0,0 +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.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/index.html.en b/rubbos/app/apache2/manual/platform/index.html.en new file mode 100644 index 00000000..a8870ebf --- /dev/null +++ b/rubbos/app/apache2/manual/platform/index.html.en @@ -0,0 +1,94 @@ + + + +Platform Specific Notes - Apache HTTP Server + + + + + +
<-
+

Platform Specific Notes

+
+

Available Languages:  en  | + ko 

+
+
+ +
top
+
+

Microsoft Windows

+ + + +
+
Using Apache
+
+

This document explains how to install, configure and run Apache 2.0 + under Microsoft Windows.

+ +

See: Using Apache with Microsoft Windows

+
+
+ +
+
Compiling Apache
+
+

There are many important points before you begin compiling Apache. + This document explain them.

+ +

See: Compiling Apache for Microsoft Windows

+
+
+ +
top
+
+

Other Platforms

+ + + +
+
Novell NetWare
+
+

This document explains how to install, configure and run Apache 2.0 + under Novell NetWare 5.1 and above.

+ +

See: Using Apache With Novell NetWare

+
+
+ +
+
EBCDIC
+
+

Version 1.3 of the Apache HTTP Server is the first version which + includes a port to a (non-ASCII) mainframe machine which uses the + EBCDIC character set as its native codeset.

+ +
Warning: This document + has not been updated to take into account changes made in + the 2.0 version of the Apache HTTP Server. Some of the + information may still be relevant, but please use it + with care.
+ +

See: The Apache EBCDIC Port

+
+
+ +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/index.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/index.html.ko.euc-kr new file mode 100644 index 00000000..0486d8fb --- /dev/null +++ b/rubbos/app/apache2/manual/platform/index.html.ko.euc-kr @@ -0,0 +1,94 @@ + + + +÷ - Apache HTTP Server + + + + + +
<-
+

÷

+
+

:  en  | + ko 

+
+
+ +
top
+
+

Microsoft Windows

+ + + +
+
ġ
+
+

Microsoft Windows ġ 2.0 ġ, + , ϴ Ѵ.

+ +

: Microsoft Windows + ġ

+
+
+ +
+
ġ
+
+

ġ ϱ . + Ѵ.

+ +

: Microsoft Windows ġ

+
+
+ +
top
+
+

Ÿ ÷

+ + + +
+
Novell NetWare
+
+

Novell NetWare 5.1 ̻󿡼 ġ 2.0 + ġ, , ϴ Ѵ.

+ +

: Novell NetWare ġ + ϱ

+
+
+ +
+
EBCDIC
+
+

ġ 1.3 ó EBCDIC + ⺻ ϴ (-ASCII) ÷ ǻͷ + õǾ.

+ +
: + ġ 2.0 ʴ. + ȿ , ؼ ϱ ٶ.
+ +

: ġ EBCDIC

+
+
+ +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/netware.html b/rubbos/app/apache2/manual/platform/netware.html new file mode 100644 index 00000000..953689aa --- /dev/null +++ b/rubbos/app/apache2/manual/platform/netware.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: netware.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: netware.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/netware.html.en b/rubbos/app/apache2/manual/platform/netware.html.en new file mode 100644 index 00000000..b304f348 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/netware.html.en @@ -0,0 +1,589 @@ + + + +Using Apache With Novell NetWare - Apache HTTP Server + + + + + +
<-
+

Using Apache With Novell NetWare

+
+

Available Languages:  en  | + ko 

+
+ + +

This document explains how to install, configure and run + Apache 2.0 under Novell NetWare 6.0 and above. If you find any bugs, + or wish to contribute in other ways, please use our + bug reporting + page.

+ +

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 + 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 + willing to answer new and obscure questions about using Apache on NetWare.

+ +

Most of this document assumes that you are installing Apache + from a binary distribution. If you want to compile Apache + yourself (possibly to help with development, or to track down + bugs), see the section on Compiling Apache for + NetWare below.

+ +
+ +
top
+
+

Requirements

+ + + +

Apache 2.0 is designed to run on NetWare 6.0 service pack 3 + and above. If you are running a service pack less + than SP3, you must install the latest + NetWare Libraries + for C (LibC).

+ +

NetWare service packs are available here.

+ +

Apache 2.0 for NetWare can also be run in a NetWare 5.1 environment + as long as the latest service pack or the latest version + of the NetWare Libraries + for C (LibC) has been installed . WARNING: Apache 2.0 + for NetWare has not been targeted for or tested in this environment.

+ +
top
+
+

Downloading Apache for NetWare

+ + + +

Information on the latest version of Apache can be found on + the Apache web server at http://www.apache.org/. This + will list the current release, any more recent alpha or + beta-test releases, together with details of mirror web and + anonymous ftp sites. Binary builds of the latest releases of + Apache 2.0 for NetWare can be downloaded from + here.

+ +
top
+
+

Installing Apache for NetWare

+ + + +

There is no Apache install program for NetWare currently. If you + are building Apache 2.0 for NetWare from source, you will need to + copy the files over to the server manually.

+ +

Follow these steps to install Apache on NetWare from the + binary download (assuming you will install to + sys:/apache2):

+ +
    +
  • Unzip the binary download file to the root of the SYS: + volume (may be installed to any volume)
  • + +
  • Edit the httpd.conf file setting ServerRoot and ServerName along with any file path values + to reflect your correct server settings
  • + +
  • Add SYS:/APACHE2 to the search path, for example: +

    SEARCH ADD SYS:\APACHE2

    +
  • + +
+ +

Follow these steps to install Apache on NetWare manually + from your own build source (assuming you will install to + sys:/apache2):

+ +
    +
  • Create a directory called Apache2 on a + NetWare volume
  • + +
  • Copy APACHE2.NLM, APRLIB.NLM + to SYS:/APACHE2
  • + +
  • Create a directory under SYS:/APACHE2 + called BIN
  • + +
  • Copy HTDIGEST.NLM, HTPASSWD.NLM, + HTDBM.NLM, LOGRES.NLM, ROTLOGS.NLM + to SYS:/APACHE2/BIN
  • + +
  • Create a directory under SYS:/APACHE2 + called CONF
  • + +
  • Copy the HTTPD-STD.CONF file to the + SYS:/APACHE2/CONF directory and rename to + HTTPD.CONF
  • + +
  • Copy the MIME.TYPES, CHARSET.CONV and + MAGIC files to SYS:/APACHE2/CONF directory
  • + +
  • Copy all files and subdirectories in \HTTPD-2.0\DOCS\ICONS + to SYS:/APACHE2/ICONS
  • + +
  • Copy all files and subdirectories in \HTTPD-2.0\DOCS\MANUAL + to SYS:/APACHE2/MANUAL
  • + +
  • Copy all files and subdirectories in \HTTPD-2.0\DOCS\ERROR + to SYS:/APACHE2/ERROR
  • + +
  • Copy all files and subdirectories in \HTTPD-2.0\DOCS\DOCROOT + to SYS:/APACHE2/HTDOCS
  • + +
  • Create the directory SYS:/APACHE2/LOGS + on the server
  • + +
  • Create the directory SYS:/APACHE2/CGI-BIN + on the server
  • + +
  • Create the directory SYS:/APACHE2/MODULES + and copy all nlm modules into the modules directory
  • + +
  • Edit the HTTPD.CONF file searching for all + @@Value@@ markers and replacing them with the + appropriate setting
  • + +
  • Add SYS:/APACHE2 to the search path, for example: +

    SEARCH ADD SYS:\APACHE2

    +
  • +
+ +

Apache may be installed to other volumes besides the default SYS volume.

+ +

During the build process, adding the keyword "install" to the makefile command line + will automatically produce a complete distribution package under the subdirectory + DIST. Install Apache by simply copying the distribution that was produced + by the makfiles to the root of a NetWare volume (see: Compiling Apache for + NetWare below).

+ +
top
+
+

Running Apache for NetWare

+ + + +

To start Apache just type apache at the + console. This will load apache in the OS address space. If you + prefer to load Apache in a protected address space you may + specify the address space with the load statement as follows:

+ +

+ load address space = apache2 apache2 +

+ +

This will load Apache into an address space called apache2. + Running multiple instances of Apache concurrently on NetWare is + possible by loading each instance into its own protected + address space.

+ +

After starting Apache, it will be listening to port 80 + (unless you changed the Listen + directive in the configuration files). + To connect to the server and access the default page, + launch a browser and enter the server's name or address. This + should respond with a welcome page, and a link to the Apache + manual. If nothing happens or you get an error, look in the + error_log file in the logs + directory.

+ +

Once your basic installation is working, you should + configure it properly by editing the files in the + conf directory.

+ +

To unload Apache running in the OS address space just type + the following at the console:

+ +

+ unload apache2 +

+ +

or

+ +

+ apache2 shutdown +

+ +

If apache is running in a protected address space specify the + address space in the unload statement:

+ +

+ unload address space = apache2 apache2 +

+ +

When working with Apache it is important to know how it will + find the configuration files. You can specify a configuration + file on the command line in two ways:

+ +
    +
  • -f specifies a path to a particular + configuration file
  • +
+ +

+ apache2 -f "vol:/my server/conf/my.conf" +

+ +

+ apache -f test/test.conf +

+ +

In these cases, the proper ServerRoot + should be set in the configuration file.

+ +

If you don't specify a configuration file name with -f, + Apache will use the file name compiled into the server, usually + conf/httpd.conf. Invoking Apache with the -V + switch will display this value labeled as SERVER_CONFIG_FILE. + Apache will then determine its ServerRoot + by trying the following, in this order:

+ +
    +
  • A ServerRoot directive via a + -C switch.
  • + +
  • The -d switch on the command line.
  • + +
  • Current working directory
  • + +
  • The server root compiled into the server.
  • +
+ +

The server root compiled into the server is usually sys:/apache2. + invoking apache with the -V switch will display this value labeled as + HTTPD_ROOT.

+ +

Apache 2.0 for NetWare includes a set of command line directives that can + be used to modify or display information about the running instance of the + web server. These directives are only available while Apache is running. Each + of these directives must be preceded by the keyword APACHE2.

+ +
+
RESTART
+
Instructs Apache to terminate all running worker + threads as they become idle, reread the configuration file and restart each + worker thread based on the new configuration.
+ +
VERSION
+
Displays version information about the currently + running instance of Apache.
+ +
MODULES
+
Displays a list of loaded modules both built-in + and external.
+ +
DIRECTIVES
+
Displays a list of all available directives.
+ +
SETTINGS
+
Enables or disables the thread status display + on the console. When enabled, the state of each running threads is displayed + on the Apache console screen.
+ +
SHUTDOWN
+
Terminates the running instance of the Apache + web server.
+ +
HELP
+
Describes each of the runtime directives.
+
+ +

By default these directives are issued against the instance of Apache running + in the OS address space. To issue a directive against a specific instance running + in a protected address space, include the -p parameter along with the name of the + address space. For more information type "apache2 Help" on the command line.

+ +
top
+
+

Configuring Apache for NetWare

+ + + +

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 + documentation for all the available directives.

+ +

The main differences in Apache for NetWare are:

+ +
    +
  • +

    Because Apache for NetWare is multithreaded, it does not + use a separate process for each request, as Apache does on some Unix + implementations. Instead there are only threads running: a parent + thread, and multiple child or worker threads which handle the requests.

    + +

    Therefore the "process"-management directives are different:

    + +

    MaxRequestsPerChild - + Like the Unix directive, this controls how many requests + a worker thread will serve before exiting. The recommended default, + MaxRequestsPerChild 0, causes the thread to continue servicing + request indefinitely. It is recommended on NetWare, unless there is some + specific reason, that this directive always remain set to 0.

    + +

    StartThreads - + This directive tells the server how many threads it should start initially. + The recommended default is StartThreads 50.

    + +

    MinSpareThreads - + This directive instructs the server to spawn additional worker threads + if the number of idle threads ever falls below this value. The recommended + default is MinSpareThreads 10.

    + +

    MaxSpareThreads - + This directive instructs the server to begin terminating worker threads + if the number of idle threads ever exceeds this value. The recommended + default is MaxSpareThreads 100.

    + +

    MaxThreads - + This directive limits the total number of work threads to a maximum + value. The recommended default is ThreadsPerChild 250.

    + +

    ThreadStackSize - + This directive tells the server what size of stack to use + for the individual worker thread. The recommended default + is ThreadStackSize 65536.

    +
  • + +
  • +

    The directives that accept filenames as arguments must use + NetWare filenames instead of Unix names. However, because Apache + uses Unix-style names internally, forward slashes must be used + rather than backslashes. It is recommended that all rooted file paths + begin with a volume name. If omitted, Apache will assume the + SYS: volume which may not be correct.

    +
  • + +
  • +

    Apache for NetWare has 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 other modules, the LoadModule directive + must be used. For example, to active the status module, use + the following:

    + +

    + LoadModule status_module modules/status.nlm +

    + +

    Information on creating loadable + modules is also available.

    +
  • +
+ +

Additional NetWare specific directives:

+ + + +
    +
  • CGIMapExtension - + This directive maps a CGI file extension to a script interpreter.
  • +
+
    +
  • SecureListen - + Enables SSL encryption for a specified port.
  • +
+
    +
  • NWSSLTrustedCerts - + Adds trusted certificates that are used to create secure connections to proxied servers.
  • +
+
    +
  • NWSSLUpgradeable - + Allow a connection created on the specified address/port to be upgraded to an SSL connection.
  • +
+ + + +
top
+
+

Compiling Apache for NetWare

+ + + +

Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once + Apache has been built, it can be installed to the root of any NetWare + volume. The default is the sys:/Apache2 directory.

+ +

Before running the server you must fill out the conf + directory. Copy the file HTTPD-STD.CONF from the distribution + conf directory and rename it to HTTPD.CONF. + Edit the HTTPD.CONF file searching for all @@Value@@ + markers and replacing them with the appropriate setting. Copy over + the conf/magic and conf/mime.types files as well. + Alternatively, a complete distribution can be built by including the keyword + install when invoking the makefiles.

+ +

Requirements:

+ + + +

The following development tools are required to build + Apache 2.0 for NetWare:

+ + + + + +

Building Apache using the NetWare makefiles:

+ + + +
    +
  • Set the environment variable NOVELLLIBC to the + location of the NetWare Libraries for C SDK, for example: +

    Set NOVELLLIBC=c:\novell\ndk\libc

    +
  • + +
  • Set the environment variable METROWERKS to the + location where you installed the Metrowerks CodeWarrior compiler, + for example: +

    Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior

    + If you installed to the default location C:\Program + Files\Metrowerks\CodeWarrior, you don't need to set this.
  • + +
  • Set the environment variable LDAPSDK to the + location where you installed the LDAP Libraries for C, for example: +

    Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc

    +
  • + +
  • Set the environment variable ZLIBSDK to the + location where you installed the source code for the ZLib Library, + for example: +

    Set ZLIBSDK=D:\NOVELL\zlib

    +
  • + +
  • Set the environment variable AP_WORK to the full path of + the \httpd-2.0 directory.
  • + +
  • Set the environment variable APR_WORK to the full path of + the \httpd-2.0\srclib\apr directory.
  • + +
  • Make sure that the path to the AWK utility and the GNU make utility + (gmake.exe) have been included in the system's + PATH environment variable.
  • + +
  • Download the source code and unzip to an appropriate directory on + your workstation.
  • + +
  • Change directory to \httpd-2.0\srclib\apr-util\uri and build + GENURI.nlm by running "gmake -f nwgnumakefile".
  • + +
  • Copy the file GENURI.nlm to the SYS: volume + of a NetWare server and run using the following command: +

    SYS:\genuri > sys:\uri_delims.h

    +
  • + +
  • Copy the file uri_delims.h to the directory + \httpd-2.0\srclib\apr-util\uri on the build machine.
  • + +
  • Change directory to \httpd-2.0\srclib\apr and build APR + by running "gmake -f nwgnumakefile"
  • + +
  • Change directory to \httpd-2.0\srclib\pcre and build + DFTABLES.nlm by running "gmake -f nwgnumakefile"
  • + +
  • Change directory to \httpd-2.0\server and build + GENCHARS.nlm by running "gmake -f nwgnumakefile"
  • + +
  • Copy the files GENCHARS.nlm and DFTABLES.nlm + from their respective directories to the SYS: volume of a + NetWare server and run them using the following commands: +

    + SYS:\genchars > sys:\test_char.h
    + SYS:\dftables > sys:\chartables.c
    +

    +
  • + +
  • Copy the files test_char.h and chartables.c + to the directory \httpd-2.0\os\netware on the build machine.
  • + +
  • Change directory to \httpd-2.0 and build Apache by running + "gmake -f nwgnumakefile". You can create a distribution directory by + adding an install parameter to the command, for example: +

    gmake -f nwgnumakefile install

    +
  • +
+ + + +

Additional make options

+ + + +
    +
  • gmake -f nwgnumakefile

    Builds release versions of all of the + binaries and copies them to a \release destination directory.

  • + +
  • gmake -f nwgnumakefile DEBUG=1

    Builds debug versions of all of the + binaries and copies them to a \debug destination directory.

  • + +
  • gmake -f nwgnumakefile install

    Creates a complete Apache + distribution with binaries, docs and additional support files in a + \dist\Apache2 directory.

  • + +
  • gmake -f nwgnumakefile installdev

    Same as install but also creates a + \lib and \include directory in the destination directory + and copies headers and import files.

  • + +
  • gmake -f nwgnumakefile clean

    Cleans all object files and binaries + from the \release or \debug build areas depending on whether + DEBUG has been defined.

  • + +
  • gmake -f nwgnumakefile clobber_all

    Same as clean and also deletes + the distribution directory if it exists.

  • +
+ + + +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/netware.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/netware.html.ko.euc-kr new file mode 100644 index 00000000..fa57fc44 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/netware.html.ko.euc-kr @@ -0,0 +1,579 @@ + + + +Novell NetWare ġ ϱ - Apache HTTP Server + + + + + +
<-
+

Novell NetWare ġ ϱ

+
+

:  en  | + ko 

+
+ + +

Novell NetWare 6.0 ̻󿡼 ġ 2.0 ġ, + , ϴ Ѵ. ׸ ãҰų ٸ + ʹٸ, + ̿ϱ ٶ.

+ +

dev-httpd ϸƮ ġ + ࿡ ʴ´. ׸ ϱ +  + (FAQ) , ٸ ù . ׷ ñ + ̳ ִٸ, NetWare ġ 뿡 ư + ο ġ ڰ ִ + novell.devsup.webserver ׷쿡 ø ٶ.

+ +

̳ʸ ġ ġߴٰ Ѵ. + (Ƹ ߿ ְų ׸ ã) ġ + Ϸ Ʒ NetWare ġ + ϱ ϶.

+ +
+ +
top
+
+

+ + + +

ġ 2.0 NetWare 6.0 service pack 3 ̻󿡼 ϵ + Ǿ. SP3 service pack Ѵٸ ֽ + NetWare + Libraries for C (LibC) ġؾ Ѵ.

+ +

NetWare service pack + ִ.

+ +

ֽ service pack̳ ֽ NetWare + Libraries for C (LibC) ġߴٸ NetWare 5.1 ȯ濡 + NetWare ġ 2.0 ִ. : + NetWare ġ 2.0 ȯ ʾҰ ׽Ʈ + ʾҴ.

+ +
top
+
+

NetWare ġ ٿޱ

+ + + +

ġ ֽ http://www.apache.org/ + (ġ ) ã ִ. ⿡ ֱ + /Ÿ׽Ʈ , ̷ Ʈ ftp Ʈ + ִ. NetWare ġ 2.0 ֽ ̳ʸ + ٿ ִ.

+ +
top
+
+

NetWare ġ ġϱ

+ + + +

NetWare ġ ġα׷ . NetWare + ġ 2.0 ҽ Ѵٸ + Ѵ.

+ +

̳ʸ ٿ NetWare ġ ġϴ + (sys:/apache2 ġѴٰ Ѵ):

+ +
    +
  • ̳ʸ ٿ SYS: + ֻ 丮 Ǭ (ٸ ġص ȴ)
  • + +
  • httpd.conf Ͽ ServerRoot ServerName ϰ + ˸° Ѵ
  • + +
  • SEARCH ADD SYS:\APACHE2

    + ˻ο SYS:/APACHE2 ߰Ѵ +
  • + +
+ +

ҽ NetWare ġ ġϴ + (sys:/apache2 ġѴٰ + Ѵ):

+ +
    +
  • NetWare Apache2 丮 +
  • + +
  • APACHE2.NLM APRLIB.NLM + SYS:/APACHE2 Ѵ
  • + +
  • SYS:/APACHE2 Ʒ BIN̶ + 丮
  • + +
  • HTDIGEST.NLM, HTPASSWD.NLM, + HTDBM.NLM, LOGRES.NLM, + ROTLOGS.NLM SYS:/APACHE2/BIN + Ѵ
  • + +
  • SYS:/APACHE2 Ʒ CONF + 丮
  • + +
  • HTTPD-STD.CONF + SYS:/APACHE2/CONF ϰ ϸ + HTTPD.CONF Ѵ
  • + +
  • MIME.TYPES, CHARSET.CONV, + MAGIC SYS:/APACHE2/CONF + 丮 Ѵ
  • + +
  • \HTTPD-2.0\DOCS\ICONS ִ ϰ + 丮 SYS:/APACHE2/ICONS Ѵ
  • + +
  • \HTTPD-2.0\DOCS\MANUAL ִ ϰ + 丮 SYS:/APACHE2/MANUAL Ѵ
  • + +
  • \HTTPD-2.0\DOCS\ERROR ִ ϰ + 丮 SYS:/APACHE2/ERROR Ѵ
  • + +
  • \HTTPD-2.0\DOCS\DICROOT ִ ϰ + 丮 SYS:/APACHE2/HTDOCS Ѵ
  • + +
  • SYS:/APACHE2/LOGS
  • + +
  • SYS:/APACHE2/APACHE2/CGI-BIN̶ + 丮
  • + +
  • SYS:/APACHE2/MODULES 丮 + nlm modules 丮 Ѵ
  • + +
  • HTTPD.CONF @@Value@@ + ǥø üѴ
  • + +
  • SEARCH ADD SYS:\APACHE2

    ˻ο + SYS:/APACHE2 ߰Ѵ +
  • +
+ +

SYS ƴ ٸ ġ + ġ ִ.

+ +

makefile ɾ "install" Ű带 ϸ Ͻ + ڵ DIST 丮 + . makefile NetWare ֻ 丮 + ϸ ġ ġȴ (Ʒ NetWare + ġ ϱ ).

+ +
top
+
+

NetWare ġ ϱ

+ + + +

ġ Ϸ ֿܼ apache Էϸ + ȴ. ׷ ü ּҿ ġ оδ. + ȣּҿ ġ о̷ load ɾ + ּҿ Ѵ:

+ +

+ load address space = apache2 apache2 +

+ +

׷ ġ apache2 ּҿ оδ. + NetWare ġ ٸ ȣּҿ о鿩 + ġ ÿ ִ.

+ +

ġ ϸ (Ͽ Listen þ + ʴ) Ʈ 80 ٸ. Ͽ + Ȥ ּҸ Էϸ Ͽ ⺻ + Ѵ. ġ ũ ִ ȯ ; + Ѵ. ƹ ϵ ų ߻ϸ logs + 丮 ִ error_log .

+ +

⺻ ġ ϸ conf 丮 ִ + Ѵ.

+ +

ü ּҿ ġ ֿܼ + ԷѴ:

+ +

+ unload apache2 +

+ +

Ȥ

+ +

+ apache2 shutdown +

+ +

ȣּҿ ġ ߴٸ unload ɾ + ּҿ Ѵ:

+ +

+ unload address space = apache2 apache2 +

+ +

ġ ġ ã ˾Ƶξ Ѵ. + ࿡ ϴ ΰ:

+ +
    +
  • -f Ư θ Ѵ
  • +
+ +

+ apache2 -f "vol:/my server/conf/my.conf" +

+ +

+ apache -f test/test.conf +

+ +

ùٸ ServerRoot ؾ Ѵ.

+ +

-f ϸ , ġ + ϵ ϸ ( conf/httpd.conf) + Ѵ. -V ɼ ġ ϸ + SERVER_CONFIG_FILE̶ ׸ ش. + ġ ServerRoot ã´:

+ +
    +
  • -C ɼ ServerRoot þ.
  • + +
  • -d ɼ.
  • + +
  • + +
  • ϵ server root.
  • +
+ +

ϵ server root + sys:/apache2̴. -V ɼ + ġ ϸ HTTPD_ROOT ׸ ش.

+ +

NetWare ġ 2.0 ̰ų + ˷ִ þ ִ. ̵ þ ġ ߿ + ִ. þ տ APACHE2 Ű带 + ٿ Ѵ.

+ +
+
RESTART
+
尡 ϶ ġ ̰, + ٽ ο worker Ѵ.
+ +
VERSION
+
ġ Ѵ.
+ +
MODULES
+
⺻ ܺ Ѵ.
+ +
DIRECTIVES
+
þ Ѵ.
+ +
SETTINGS
+
ֿܼ ǥø ̰ų ش. ¸ + ̸, ġ ܼâ ϴ ° ´.
+ +
SHUTDOWN
+
ġ δ.
+ +
HELP
+
ɼǵ Ѵ.
+
+ +

⺻ þ ü ּҿ + ġ Ѵ. ġ ȣּҿ ̶, + -p ּҿ ̸ ߰Ѵ. ࿡ + "apache2 Help" ԷѴ.

+ +
top
+
+

NetWare ġ ϱ

+ + + +

ġ conf 丮 ִ Ϸ + Ѵ. н , NetWare ġ + ٸ þ ִ. 밡 þ ؼ + ġ ϶.

+ +

NetWare ġ ֵ :

+ +
    +
  • +

    NetWare ġ ߾ ϱ⶧, + н û ٸ μ ʴ´. + 带 Ѵ: θ û óϴ + ڽ Ȥ worker .

    + +

    ׷Ƿ "μ"- þ ٸ:

    + +

    MaxRequestsPerChild - + н worker 尡 û 󸶸ŭ óϰ + Ѵ. ϴ ⺻ + MaxRequestsPerChild 0 ϸ + ʰ û Ѵ. Ư ٸ + NetWare þ 0 ϱ + Ѵ.

    + +

    StartThreads - + þ ó Ѵ. + ϴ ⺻ StartThreads 50̴.

    + +

    MinSpareThreads - + (idle) worker + 带 . ϴ ⺻ + MinSpareThreads 10̴.

    + +

    MaxSpareThreads - + worker 带 + ̱ Ѵ. ϴ ⺻ + MaxSpareThreads 100̴.

    + +

    MaxThreads - + þ worker ִ Ѵ. ϴ + ⺻ ThreadsPerChild 250̴.

    + +

    ThreadStackSize - + worker 尡 ũ⸦ Ѵ. ϴ + ⺻ ThreadStackSize 65536̴.

    +
  • + +
  • +

    ƱԸƮ ϸ ޴ þ н ϸ + ƴ NetWare ϸ ؾ Ѵ. ׷ ġ + н ϸ ϱ⶧ 齽 + ؾ Ѵ. ο + ϱ ٶ. ϸ ġ + SYS: ̶ ߸ ִ.

    +
  • + +
  • +

    NetWare ġ ٽ ʰ Ҷ + о ִ. ġ ϸ + \Apache2\modules 丮 ߰ + ġѴ. ̵ Ȥ ٸ Ϸ LoadModule þ Ѵ. + status Ѵٸ:

    + +

    + LoadModule status_module modules/status.nlm +

    + +

    о + ִ ִ.

    +
  • +
+ +

̿ NetWare þ:

+ + + + + + + + + + +
top
+
+

Netware ġ ϱ

+ + + +

ġ Ϸ MetroWerks CodeWarrior 6.x ̻ + ʿϴ. ġ ϸ  Netware ġ + ִ. ⺻ sys:/Apache2 丮.

+ +

ϱ conf 丮 ۼؾ + Ѵ. conf 丮 ִ + HTTPD-STD.CONF ϸ HTTPD.CONF + Ѵ. HTTPD.CONF Ͽ @@Value@@ + ǥø ãƼ üѴ. conf/magic + conf/mime.types ϵ Ѵ. ƴϸ makefile + Ҷ install Ű带 ϸ + .

+ +

䱸:

+ + + +

NetWare ġ 2.0 Ϸ ߵ + ʿϴ:

+ + + + + +

NetWare makefile Ͽ ġ ϱ:

+ + + +
    +
  • NOVELLLIBC ȯ溯 +

    Set NOVELLLIBC=c:\novell\ndk\libc

    + NetWare Libraries for C SDK ġ Ѵ. +
  • + +
  • METROWERKS ȯ溯 +

    Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior

    + Metrowerks CodeWarrior Ϸ ġ ġ + Ѵ. ⺻ ġ + C:\Program Files\Metrowerks\CodeWarrior + ġϿٸ, ȯ溯 ʿ .
  • + +
  • LDAPSDK ȯ溯 +

    Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc

    + LDAP Libraries for C ġ ġ Ѵ. +
  • + +
  • ZLIBSDK ȯ溯 +

    Set ZLIBSDK=D:\NOVELL\zlib

    + ZLib ̺귯 ҽڵ ġ Ѵ. +
  • + +
  • AP_WORK ȯ溯 \httpd-2.0 + 丮 ü η Ѵ.
  • + +
  • APR_WORK ȯ溯 + \httpd-2.0\srclib\apr 丮 ü η + Ѵ.
  • + +
  • AWK GNU make (gmake.exe) + ý PATH ȯ溯 Եִ + ȮѴ.
  • + +
  • ҽڵ带 ٿ޾ 丮 Ǭ.
  • + +
  • \httpd-2.0\srclib\apr-util\uri 丮 + "gmake -f nwgnumakefile" Ͽ + GENURI.nlm Ѵ.
  • + +
  • GENURI.nlm NetWare + SYS: ϰ +

    SYS:\genuri > sys:\uri_delims.h

    + Ѵ. +
  • + +
  • uri_delims.h ϴ ǻ + \httpd-2.0\srclib\apr-util\uri 丮 + Ѵ.
  • + +
  • \httpd-2.0\srclib\apr 丮 + "gmake -f nwgnumakefile" Ͽ APR + Ѵ.
  • + +
  • \httpd-2.0\srclib\pcre 丮 + "gmake -f nwgnumakefile" Ͽ + DFTABLES.nlm Ѵ.
  • + +
  • \httpd-2.0\server 丮 + "gmake -f nwgnumakefile" Ͽ + GENCHARS.nlm Ѵ.
  • + +
  • GENCHARS.nlm + DFTABLES.nlm NetWare + SYS: ϰ Ѵ: +

    + SYS:\genchars > sys:\test_char.h
    + SYS:\dftables > sys:\chartables.c
    +

    +
  • + +
  • test_char.h chartables.c + ϴ ǻ \httpd-2.0\os\netware + 丮 Ѵ.
  • + +
  • \httpd-2.0 丮 + "gmake -f nwgnumakefile" Ͽ ġ + Ѵ. +

    gmake -f nwgnumakefile install

    + install Ķ͸ ߰ϸ 丮 + ִ. +
  • +
+ + + +

߰ make ɼ

+ + + +
    +
  • gmake -f nwgnumakefile

    Ϲ + Ͽ \release 丮 Ѵ.

  • + +
  • gmake -f nwgnumakefile DEBUG=1

    ׿ + Ͽ \debug 丮 + Ѵ.

  • + +
  • gmake -f nwgnumakefile install +

    \dist\Apache2 丮 , , + ߰ ġ .

  • + +
  • gmake -f nwgnumakefile installdev +

    install , \lib + \include 丮 ϰ import + Ѵ.

  • + +
  • gmake -f nwgnumakefile clean +

    DEBUG \release + \debug ִ Ʈϰ + .

  • + +
  • gmake -f nwgnumakefile clobber_all

    clean + 丮 .

  • +
+ + + +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/perf-hp.html b/rubbos/app/apache2/manual/platform/perf-hp.html new file mode 100644 index 00000000..951a04bd --- /dev/null +++ b/rubbos/app/apache2/manual/platform/perf-hp.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: perf-hp.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: perf-hp.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/perf-hp.html.en b/rubbos/app/apache2/manual/platform/perf-hp.html.en new file mode 100644 index 00000000..8ff50e52 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/perf-hp.html.en @@ -0,0 +1,105 @@ + + + +Running a High-Performance Web Server on HPUX - Apache HTTP Server + + + + + +
<-
+

Running a High-Performance Web Server on HPUX

+
+

Available Languages:  en  | + ko 

+
+ + +
+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
+
+ +

Here are some tuning tips for HP-UX to add to the tuning page.

+ +

For HP-UX 9.X: Upgrade to 10.20
+ For HP-UX 10.[00|01|10]: Upgrade to 10.20

+ +

For HP-UX 10.20:

+ +

Install the latest cumulative ARPA Transport Patch. This + will allow you to configure the size of the TCP connection + lookup hash table. The default is 256 buckets and must be set + to a power of two. This is accomplished with adb against the + *disc* image of the kernel. The variable name is tcp_hash_size. + Notice that it's critically important that you use "W" + to write a 32 bit quantity, not "w" to write a 16 bit + value when patching the disc image because the tcp_hash_size + variable is a 32 bit quantity.

+ +

How to pick the value? Examine the output of ftp://ftp.cup.hp.com/dist/networking/tools/connhist + and see how many total TCP connections exist on the system. You + probably want that number divided by the hash table size to be + reasonably small, say less than 10. Folks can look at HP's + SPECweb96 disclosures for some common settings. These can be + found at http://www.specbench.org/. + If an HP-UX system was performing at 1000 SPECweb96 connections + per second, the TIME_WAIT time of 60 seconds would mean + 60,000 TCP "connections" being tracked.

+ +

Folks can check their listen queue depths with ftp://ftp.cup.hp.com/dist/networking/misc/listenq.

+ +

If folks are running Apache on a PA-8000 based system, they + should consider "chatr'ing" the Apache executable to have a + large page size. This would be "chatr +pi L <BINARY>". + The GID of the running executable must have MLOCK privileges. + Setprivgrp(1m) should be consulted for assigning + MLOCK. The change can be validated by running Glance + and examining the memory regions of the server(s) to make sure that + they show a non-trivial fraction of the text segment being locked.

+ +

If folks are running Apache on MP systems, they might + consider writing a small program that uses mpctl() + to bind processes to processors. A simple pid % numcpu + algorithm is probably sufficient. This might even go into the + source code.

+ +

If folks are concerned about the number of FIN_WAIT_2 + connections, they can use nettune to shrink the value of + tcp_keepstart. However, they should be careful there - + certainly do not make it less than oh two to four minutes. If + tcp_hash_size has been set well, it is probably OK to + let the FIN_WAIT_2's take longer to timeout (perhaps + even the default two hours) - they will not on average have a big + impact on performance.

+ +

There are other things that could go into the code base, but + that might be left for another email. Feel free to drop me a + message if you or others are interested.

+ +

sincerely,

+ +

rick jones

+ +

http://www.cup.hp.com/netperf/NetperfPage.html

+ +
+
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/perf-hp.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/perf-hp.html.ko.euc-kr new file mode 100644 index 00000000..fa1568e2 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/perf-hp.html.ko.euc-kr @@ -0,0 +1,100 @@ + + + +HPUX ϱ - Apache HTTP Server + + + + + +
<-
+

HPUX ϱ

+
+

:  en  | + ko 

+
+ + +
+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
+
+ +

߰ HP-UX ̴.

+ +

HP-UX 9.X: 10.20 ׷̵϶
+ HP-UX 10.[00|01|10]: 10.20 ׷̵϶

+ +

HP-UX 10.20:

+ +

ֱ ARPA Transport ġ ġѴ. ׷ TCP + ã ؽ̺ ũ⸦ ִ. ⺻ + 256 ̰, 2 ŵ ؾ Ѵ. adb Ŀ + *disc* ̹ Ͽ Ѵ. + tcp_hash_size̴. tcp_hash_size + 32Ʈ̹Ƿ disc ̹ Ҷ ݵ 16Ʈ + ϴ "w" 32Ʈ ϴ + "W" ؾ Ѵ.

+ +

 ? ftp://ftp.cup.hp.com/dist/networking/tools/connhist + , ýۿ ϴ TCP Ѱ . + ڸ ؽ̺ ũ (10 ) + . HP SPECweb96 Ϲ ִ. + http://www.specbench.org/ + ִ. HP-UX ý ʴ 1000 SPECweb96 ϴ + TIME_WAIT 60ʶ 60,000 TCP "" + Ѵٴ ̴.

+ +

ftp://ftp.cup.hp.com/dist/networking/misc/listenq + Ͽ ý ̸ ִ.

+ +

PA-8000 ýۿ ġ Ѵٸ, ġ + ū ũ⸦ ϵ "chatr"Ѵ. + "chatr +pi L <>"̴. + ϴ GID MLOCK ݵ ʿϴ. + MLOCK ο ؼ Setprivgrp(1m) + ϶. Glance Ͽ ޸𸮿 캸 + text ׸Ʈ Ȯ ִ.

+ +

μ ýۿ ġ Ѵٸ, μ + μ ϴ mpctl() + α׷ ۼغ. ܼ pid % numcpu + ˰ε ̴. κ ҽڵ忡 + Ե ִ.

+ +

FIN_WAIT_2 ٸ, + nettune Ͽ tcp_keepstart + ִ. ׷ ؾ Ѵ - 4 ۰ . + tcp_hash_size Ͽٸ, + FIN_WAIT_2 Ŀ ( ⺻ 2ð) + - ɿ ū ʴ´.

+ +

ҽڵ忡 Ե κ , ⼭ δ. + ִٸ ֱ ٶ.

+ +

׷ ̸,

+ +

rick jones

+ +

http://www.cup.hp.com/netperf/NetperfPage.html

+ +
+
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/win_compiling.html b/rubbos/app/apache2/manual/platform/win_compiling.html new file mode 100644 index 00000000..2ac828ca --- /dev/null +++ b/rubbos/app/apache2/manual/platform/win_compiling.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: win_compiling.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: win_compiling.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/win_compiling.html.en b/rubbos/app/apache2/manual/platform/win_compiling.html.en new file mode 100644 index 00000000..96a130a7 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/win_compiling.html.en @@ -0,0 +1,431 @@ + + + +Compiling Apache for Microsoft Windows - Apache HTTP Server + + + + + +
<-
+

Compiling Apache for Microsoft Windows

+
+

Available Languages:  en  | + ko 

+
+ + +

There are many important points before you begin compiling + Apache. See Using Apache with Microsoft + Windows before you begin.

+ +
+ +
top
+
+

Requirements

+ + + +

Compiling Apache requires the following environment to be + properly installed:

+ +
    +
  • +

    Disk Space

    +

    Make sure you have at least 50 MB of free disk space + available. After installation Apache requires approximately + 10 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.

    +
  • + +
  • +

    Microsoft Visual C++ 5.0 or higher.

    +

    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" +

    +
  • + +
  • +

    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:

    + +

    + "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).

    +

    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/ + 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.
    +
  • + +
  • +

    [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 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.rel
    + 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 -f makefile.rel
    + nmake -f makefile.dbg +

    + +

    Note; you can use the scripts in the ms\ subdirectory, however, + it's rather tricky to force ms\do_masm.bat, for example, to perform + the patent encumberances as mentioned above. Patches to add the $* argument list + to the appropriate .bat lines in these scripts aren't incorporated, thus far.

    +
  • + +
  • +

    [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.zlib.net/ -- mod_deflate is confirmed to build + correctly with version 1.1.4. To use a later version of zlib, upgrade to + Apache HTTP Server release 2.2 or later.

    +
  • + +
+ +
top
+
+

Command-Line Build

+ + + +

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:

+ +
+nmake /f Makefile.win _apacher
+
+nmake /f Makefile.win _apached
+    
+ +

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.

+ +
top
+
+

Developer Studio Workspace IDE Build

+ + + +

Apache can also be compiled using VC++'s Visual Studio + development environment. To simplify this process, a + Visual Studio workspace, Apache.dsw, is provided. + This workspace exposes the entire list of working .dsp + projects that are required for the complete Apache binary release. + It includes dependencies between the projects to assure that they + are built in the appropriate order.

+ +

Open the Apache.dsw workspace, and select + InstallBin (Release or Debug build, + as desired) as the Active Project. InstallBin causes all + related project to be built, and then invokes Makefile.win to + move the compiled executables and dlls. You may personalize the + INSTDIR= choice by changing InstallBin's Settings, + General tab, Build command line entry. INSTDIR defaults to the + /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.

+ +

Visual C++ 7.0 (.net) 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.

+ +

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:

+ +

+ perl srclib\apr\build\fixwin32mak.pl +

+ +

You must type this command from the top level + directory of the httpd source tree. Every + .mak and .dep project file within + the current directory and below will be corrected, and the + timestamps adjusted to reflect the .dsp.

+ +

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.

+ +
top
+
+

Project Components

+ + + +

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.

+ +

To build and install all the files into the desired folder + dir automatically, use one of the following + nmake commands:

+ +
+nmake /f Makefile.win installr INSTDIR=dir
+
+nmake /f Makefile.win installd INSTDIR=dir
+    
+ +

The dir argument to INSTDIR gives + 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
  • + +
  • 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.

+ + + +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/win_compiling.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/win_compiling.html.ko.euc-kr new file mode 100644 index 00000000..fccb14b6 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/win_compiling.html.ko.euc-kr @@ -0,0 +1,423 @@ + + + +Microsoft Windows ġ - Apache HTTP Server + + + + + +
<-
+

Microsoft Windows ġ

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ġ ϱ . ̸ Microsoft Windows ġ + ϶.

+ +
+ +
top
+
+

+ + + +

ġ Ϸ ġǾ Ѵ:

+ +
    +
  • +

    ũ

    +

    ũ ּ 50 MB Ǿ Ѵ. ġ + ġĿ ϴ α׿ ij ϰ + 10 MB ʿϴ. ũ 뷮 + ڰ Ȥ ̺귯 ũ + ٸ.

    +
  • + +
  • +

    Microsoft Visual C++ 5.0 ̻.

    +

    ġ ϰų Visual Studio IDE + Workbench ȿ ִ. ࿡ Ѵٸ + vcvars32 ġ ϴ PATH, + INCLUDE, LIB ȯ溯 + ʿϴ:

    + +

    + "c:\Program Files\DevStudio\VC\Bin\vcvars32.bat" +

    +
  • + +
  • +

    Windows Platform SDK.

    +

     ġ Ϸ Visual C++ 5.0 ߰ + ֽ Microsoft Windows Platform SDK ʿϴ. ࿡ + Ѵٸ setenv ġ Platform + SDK ȯ :

    + +

    + "c:\Program Files\Platform SDK\setenv.bat" +

    + +

    Visual C++ 6.0 ̻ Ե Platform SDK + ϴ. ϴ ڴ ص + ȴ.

    + +
    mod_isapi Ϸ + ֽ Windows Platform SDK ʿϴ. ֽ ƴϸ + MSVC++ 5.0 mod_isapi Ϻθ + ٰ Ѵ. http://msdn.microsoft.com/downloads/sdks/platform/platform.asp + ֽ ִ.
    +
  • + +
  • +

    awk (awk, gawk ).

    +

    ýۿ ġ ġϷ + awk.exe Ͽ ؾ + Ѵ. (Perl̳ WSH/VB Ͽ) ٿޱ⿡ ſ ۰ + ۾ Ͽ awk ߴ. Brian Kernighan + http://cm.bell-labs.com/cm/cs/who/bwk/ Ʈ + ϵ Win32 http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe + ִ. ̸ awk95.exe + awk.exe ؾ Ѵ.

    + +
    Developer Studio IDE Tools ޴ Options... + Directories (Developer Studio 7.0̶ Projects + - VC++ Directories pane) Executable files Ͽ + awk.exe ã´. Ͽ awk.exe + θ ߰ϰ, ʿϴٸ PATH ȯ溯 + ߰Ѵ.
    + +
    Cygwin (http://www.cygwin.com/) Ѵٸ + gawk.exe ̸ awk , + awk.exe gawk.exe + ɺũ ϶. Windows Ʈ ɺũ + ν ϱ⶧ InstallBin Ҷ Ѵ. + ذå cygwin awk.exe ϰ + gawk.exe ̸ awk.exe + ٲ۴.
    +
  • + +
  • +

    [] OpenSSL ̺귯 (mod_ssl + ab.exe ssl )

    +

    : ȣȭ Ư㰡 ɸ + 迡 ϴµ ִ. + OpenSSL ̱ ϸ ̱ Ÿ + Ư ȣǴ ȣȭ Ѵ. + Apache Software Foundation OpenSSL Ʈ OpenSSL + Ʈ ϴ ڵ带 , , ϴµ + ڹ ʴ´. + ޱ ٶ. ൿ å ſ ִ.

    + +

    mod_ssl̳ (SSL ϴ + ab.exe) abs Ʈ Ϸ, OpenSSL + http://www.openssl.org/source/ ٿ޾Ƽ + srclib openssl̶ + 丮 ġؾ Ѵ. release + debug ġ Ҷ ϸ 0.9.7 + ִ Ư㰡 ɸ ʴ´ٸ, Ʒ + ɾ Ѵ:

    + +

    + 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 +

    + +
  • + +
  • +

    [] zlib ҽ (mod_deflate + )

    +

    Zlib srclib zlib + 丮 ġؾ , ҽ ̸ + ʿ . ý ҽ + mod_deflate Ѵ. + Zlib http://www.gzip.org/zlib/ ִ -- + mod_deflate 1.1.4 + ϵǾ.

    +
  • + +
+ +
top
+
+

࿡ ϱ

+ + + +

丮 ġ Ǭ. + Ʈ 丮 cdѴ.

+ +

Makefile.win Ͽ ġ makefile + ִ. Windows NT release debug + ϴ ɾ :

+ +
+nmake /f Makefile.win _apacher
+
+nmake /f Makefile.win _apached
+    
+ +

ɾ ġ Ѵ. ڴ Ͽ + Ͽ ׸ ã ϱ + Ѵ.

+ +
top
+
+

Developer Studio Workspace IDE ϱ

+ + + +

VC++ Visual Studio ȯ Ͽ ġ + ִ. Ϸ Visual Studio workspace + Apache.dsw Ѵ. workspace + ġ ̳ʸ ʿ .dsp Ʈ + ִ. , ˸ ϱ Ʈ + Ѵ.

+ +

Apache.dsw workspace + InstallBin (Release + Debug ϴ ) Active Project Ѵ. + InstallBin õ Ʈ ϰ, + ϵ ϰ dll ű Makefile.win + ȣѴ. InstallBin Settings, General , + Build command line ׸ Ͽ INSTDIR= + ִ. INSTDIR= ⺻ + /Apache2 丮̴. (ġʰ) ׽Ʈ + ϸ غ BuildBin Ʈ + Ѵ.

+ +

.dsp Ʈ Visual C++ 6.0 ̴. + Visual C++ 5.0 (97) ִ. Visual + C++ 7.0 (.net) Apache.dsw .dsp + ϵ Apache.sln .msproj + ϵ ȯѴ. .dsp ҽ ϸ + ݵ .msproj Ϸ ٽ ȯ϶! ׳ VC++ + 7.0 IDE Apache.dsw ٽ ⸸ ϸ ȴ.

+ +

, Visual C++ 7.0 (.net) ڴ Build ޴, Configuration + Manager ȭâ Debug Release + abs, mod_ssl, mod_deflate + Solution modules ؾ Ѵ. srclib + openssl̳ zlib 丮 ִ + 쿡 nmake ϰų ( + ϴ) IDE BinBuild Ͽ + ִ.

+ +

Export .mak ϵ ȥ, Visual + C++ 5.0 ڰ mod_ssl, abs (SSL ϴ + ab), mod_deflate Ҷ ʿϴ. + VC++ 7.0 (.net) ڿԵ binenv + nmake ϸ . VC++ 5.0̳ + 6.0 IDE ü Ʈ ϰ, Project ޴ Export + for all makefiles ϶. ڵ ϴ + ϰ ùٸ ؼ + Ʈ ؾ Ѵ. ɾ Ͽ θ + ϸ  ο ִ:

+ +

+ perl srclib\apr\build\fixwin32mak.pl +

+ +

httpd ҽ ֻ 丮 + ɾ ؾ Ѵ. 丮 丮 ִ + .mak .dep Ʈ + ϰ, .dsp Ͽ Ͻð Ѵ.

+ +

Ʈ ٵ ġ ٸ, Ʈ + Visual Studio 6.0 Ѵ. ϰ, + VC++ 5.0 7.0 ȯ濡 νϴ ּ + ɼǰ Ŀ ɼ ؾ Ѵ.

+ +
top
+
+

Ʈ

+ + + +

Apache.dsw workspace makefile.win + nmake ũƮ ġ + .dsp Ʈ Ѵ:

+ +
    +
  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. +
+ +

, modules\ 丮 Ʒ κ + ⿡ Ʈ ִ.

+ +

support\ 丮 ġ ϴµ + ʿ , ڰ ġ ˻ϰų ȣϰ + α ϴµ ߰ α׷ Ʈ + ִ. Windows α׷ support\win32\ + 丮 ִ.

+ +
    +
  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. +
+ +

ġ ϸ server root 丮 ġؾ Ѵ. + ⺻ ũ \Apache2 丮̴.

+ +

ϰ ϴ dir ڵ + ġϷ nmake ɾ ϳ Ѵ:

+ +
+nmake /f Makefile.win installr INSTDIR=dir
+
+nmake /f Makefile.win installd INSTDIR=dir
+    
+ +

INSTDIR dir ƱԸƮ ġ丮 + Ѵ. ϸ \Apache2 ġ ġѴ.

+ +

ġѴ:

+ +
    +
  • dir\bin\Apache.exe - ġ +
  • + +
  • dir\bin\ApacheMonitor.exe - + ÿ ۾ǥ
  • + +
  • dir\bin\htdigest.exe - Digest + auth ȣ
  • + +
  • dir\bin\htdbm.exe - SDBM auth + ͺ̽ ȣ
  • + +
  • dir\bin\htpasswd.exe - Basic + auth ȣ
  • + +
  • dir\bin\logresolve.exe - αϿ + dns ̸ ã
  • + +
  • dir\bin\rotatelogs.exe - α + ȯ
  • + +
  • dir\bin\wintty.exe - ܼâ +
  • + +
  • dir\bin\libapr.dll - Apache + Portable Runtime ̺귯
  • + +
  • dir\bin\libaprutil.dll - Apache + Utility Runtime ̺귯
  • + +
  • dir\bin\libhttpd.dll - Apache + Core ̺귯
  • + +
  • dir\modules\mod_*.so - о + ִ ġ
  • + +
  • dir\conf - 丮
  • + +
  • dir\logs - ִ α + 丮
  • + +
  • dir\include - C
  • + +
  • dir\lib - ũ ̺귯
  • +
+ +

ġ Ҷ

+ + + +
.dsp release + . ð + .mak ʴ´. ׷Ƿ + NMAKE ɾ Ͽ ο .dsp + Ʈ . Ʈ + .mak exportؾ Ѵ. Microsoft Developer + Studio ȯ濡 Ѵٸ ۾ ʿ.
+ +
, makefile exportϱ BuildBin + Ʈ (Ȥ _apacher _apached + ) ϸ ſ ȴ. ߿ + ڵ . ü ؾ߸ + Ҷ ʿ .
+ +

.mak ׻ + .mak.dep) Platform + SDK ϶. + DevStudio\SharedIDE\bin\ (VC5) + DevStudio\Common\MSDev98\bin\ (VC6) 丮 + sysincl.dat + ִ. Ͽ ߰Ѵ + (sys/time.h sys\time.h , + δ Ͱ 齽 θ + ߰Ѵ). .mak Ͽ ǻͿ + شϴ ġΰ ִٸ Ѵ. + ׷Ƿ srclib/apr/build/fixwin32mak.pl + Ͽ .mak Ͽ ִ θ ־ + Ѵ.

+ + + +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/windows.html b/rubbos/app/apache2/manual/platform/windows.html new file mode 100644 index 00000000..a4e6fa16 --- /dev/null +++ b/rubbos/app/apache2/manual/platform/windows.html @@ -0,0 +1,9 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: windows.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: windows.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR diff --git a/rubbos/app/apache2/manual/platform/windows.html.en b/rubbos/app/apache2/manual/platform/windows.html.en new file mode 100644 index 00000000..8508075e --- /dev/null +++ b/rubbos/app/apache2/manual/platform/windows.html.en @@ -0,0 +1,754 @@ + + + +Using Apache with Microsoft Windows - Apache HTTP Server + + + + + +
<-
+

Using Apache with 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.

+ +

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.
  • +
+ +
+ +
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. +

+ +

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.

+
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.

+
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.

+ +

Note that you cannot install two versions of Apache 2.0 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 + compile and install Apache from the + source.

+ +

Run the Apache .msi file you downloaded above. The + installation will ask you for these things:

+ +
    +
  1. Network Domain. Enter the DNS domain in which + your server is or will be registered in. For example, if your + server's full DNS name is server.mydomain.net, you would + type mydomain.net here.

  2. + +
  3. Server Name. Your server's full DNS name. + From the example above, you would type server.mydomain.net + here.

  4. + +
  5. Administrator's Email Address. Enter the + server administrator's or webmaster's email address here. This + address will be displayed along with error messages to the client + by default.

  6. + +
  7. For whom to install Apache Select for + All Users, on Port 80, as a Service - Recommended if you'd + like your new Apache to listen at port 80 for incoming traffic. + It will run as a service (that is, Apache will run even if no one + is logged in on the server at the moment) Select only for + the Current User, on Port 8080, when started Manually if + you'd like to install Apache for your personal experimenting or + if you already have another WWW server running on port 80.

  8. + +
  9. The installation type. Select Typical + for everything except the source code and libraries for module + development. With Custom you can specify what to + install. A full install will require about 13 megabytes of free + disk space. This does not include the size of your web + site(s).

  10. + +
  11. Where to install. The default path is + C:\Program Files\Apache Group under which a directory + called Apache2 will be created by default.

  12. +
+ +

During the installation, Apache will configure the files in the + conf subdirectory to reflect the chosen installation + directory. However, if any of the configuration files in this + directory already exist, they will not be overwritten. Instead, the + new copy of the corresponding file will be left with the extension + .default. So, for example, if conf\httpd.conf + already exists, it will be renamed as conf\httpd.conf.default. + After the installation you should manually check to see what new + settings are in the .default file, and if necessary, + update your existing configuration file.

+ +

Also, if you already have a file called htdocs\index.html, + it will not be overwritten (and no index.html.default + will be installed either). This means it should be safe to install + Apache over an existing installation, although you would have to + stop the existing running server before doing the installation, and + then start the new one after the installation is finished.

+ +

After installing Apache, you must edit the configuration files + in the conf subdirectory as required. These files + will be configured during the installation so that Apache is ready + to be run from the directory it was installed into, with the + documents server from the subdirectory htdocs. There + are lots of other options which you should set before you really + start using Apache. However, to get started quickly, the files + should work as installed.

+
top
+
+

Customizing Apache for Windows

+ + +

Apache is configured by the files in the conf + subdirectory. These are the same files used to configure the Unix + version, but there are a few different directives for Apache on + Windows. See the directive index + for all the available directives.

+ +

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. + 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. +

    + +

    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.

    + +
    Warning: The server configuration + file is reread when a new child process is started. If you have + modified httpd.conf, the new child may not start or + you may receive unexpected results.
    + +

    ThreadsPerChild: + This directive is new. It tells the server how many threads it + 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.

  • + +
  • 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.

  • + +
  • 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] +

  • + +
  • 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 + 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 + directives in access.conf):

    + +

    + LoadModule status_module modules/mod_status.so +

    + +

    Information on creating + 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.

  • + +
  • When running CGI scripts, the method Apache uses to find + the interpreter for the script is configurable using the + ScriptInterpreterSource + directive.

  • + +
  • Since it is often difficult to manage files with names + like .htaccess in Windows, you may find it useful to + change the name of this per-directory configuration file using + the AccessFilename + directive.

  • + +
  • 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.
  • +
+ +
top
+
+

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 + to install for yourself only, you can manually register Apache as a + service after the installation. You have to be a member of the + Administrators group for the service installation to succeed.

+ +

Apache comes with a utility called the Apache Service Monitor. + With it you can see and manage the state of all installed Apache + services on any machine on your network. To be able to manage an + Apache service with the monitor, you have to first install the + service (either automatically via the installation or manually). +

+ +

You can install Apache as a Windows NT service as follows from + the command prompt at the Apache bin subdirectory:

+ +

+ httpd -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.

+ +

+ httpd -k install -n "MyServiceName" +

+ +

If you need to have specifically named configuration files for + different services, you must use this:

+ +

+ httpd -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 + and the configuration will be assumed to be conf\httpd.conf. +

+ +

Removing an Apache service is easy. Just use:

+ +

+ httpd -k uninstall +

+ +

The specific Apache service to be uninstalled can be specified by using:

+ +

+ httpd -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 + starting Apache as a service by any means, you should test the + service's configuration file by using:

+ +

+ httpd -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:

+ +

+ httpd -k start +

+ +

To stop an Apache service via the command line switches, use + this:

+ +

+ httpd -k stop +

+ +

or

+ +

+ httpd -k shutdown +

+ +

You can also restart a running service and force it to reread + its configuration file by using:

+ +

+ httpd -k restart +

+ +

By default, all Apache services are registered to run as the + system user (the LocalSystem account). The + LocalSystem account has no privileges to your network + via any Windows-secured mechanism, including the file system, named + pipes, DCOM, or secure RPC. It has, however, wide privileges locally. +

+ +
Never grant any network privileges to + the LocalSystem account! If you need Apache to be able + 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.

+ +
    +
  1. Create a normal domain user account, and be sure to + memorize its password.
  2. + +
  3. Grant the newly-created user a privilege of Log on + as a service and Act as part of the operating + system. On Windows NT 4.0 these privileges are granted via + User Manager for Domains, but on Windows 2000 and XP you probably + want to use Group Policy for propagating these settings. You can + also manually set these via the Local Security Policy MMC snap-in. +
  4. + +
  5. Confirm that the created account is a member of the Users + group.
  6. + +
  7. Grant the account read and execute (RX) rights to all document + and script folders (htdocs and cgi-bin + for example).
  8. + +
  9. Grant the account change (RWXD) rights to the + Apache logs directory.
  10. + +
  11. Grant the account read and execute (RX) rights to the + Apache.exe binary executable.
  12. +
+ +
It is usually a good practice to grant the user the Apache + service runs as read and execute (RX) access to the whole Apache2 + 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 + 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.

+ +
Error code 2186 is a good indication that + you need to review the "Log On As" configuration for the service, + since Apache cannot access a required network resource. Also, pay + close attention to the privileges of the user Apache is + configured to run as.
+ +

When starting Apache as a service you may encounter an error + message from the Windows Service Control Manager. For example, + if you try to start Apache by using the Services applet in the + Windows Control Panel, you may get the following message:

+ +

+ Could not start the Apache2 service on \\COMPUTER
+ Error 1067; The process terminated unexpectedly. +

+ +

You will get this generic error if there is any problem with + starting the Apache service. In order to see what is really causing + 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

    + +

    + httpd -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.

+ +
top
+
+

Running Apache as a Console Application

+ + +

Running Apache as a service is usually the recommended way to + use it, but it is sometimes easier to work from the command line + (on Windows 9x running Apache from the command line is the + recommended way due to the lack of reliable service support.)

+ +

To run Apache from the command line as a console application, + use the following command:

+ +

+ httpd +

+ +

Apache will execute, and will remain running until it is stopped + by pressing Control-C.

+ +

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. + 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 + window where Apache is running in. The server will exit in a few + seconds. However, if you do have Apache installed as a service, the + 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 + window and entering:

+ +

+ httpd -k shutdown +

+ +

This should be preferred over pressing Control-C because this + lets Apache end any current operations and clean up gracefully.

+ +

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:

+ +

+ httpd -k restart +

+ +
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 + command line option used, -k, was chosen as a reminder + of the kill command used on Unix.
+ +

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 + 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"
+ httpd +

+ +

Then wait for Apache to stop, or press Control-C. Then enter the + following:

+ +

+ cd ..\logs
+ more < error.log +

+ +

When working with Apache it is important to know how it will + find the configuration file. You can specify a configuration file + on the command line in two ways:

+ +
    +
  • -f specifies an absolute or relative path to + a particular configuration file:

    + +

    + httpd -f "c:\my server files\anotherconfig.conf" +

    + +

    or

    + +

    + httpd -f files\anotherconfig.conf +

  • + +
  • -n specifies the installed Apache service + whose configuration file is to be used:

    + +

    + httpd -n "MyServiceName" +

    +
  • +
+ +

In both of these cases, the proper + ServerRoot should be set in + the configuration file.

+ +

If you don't specify a configuration file with -f + or -n, Apache will use the file name compiled into the + server, such as conf\httpd.conf. This built-in path + is relative to the installation directory. You can verify the compiled + file name from a value labelled as SERVER_CONFIG_FILE when + invoking Apache with the -V switch, like this:

+ +

+ httpd -V +

+ +

Apache will then try to determine its ServerRoot by trying the following, in this order:

+ +
    +
  1. A ServerRoot directive + via the -C command line switch.
  2. + +
  3. The -d switch on the command line.
  4. + +
  5. Current working directory.
  6. + +
  7. A registry entry which was created if you did a binary + installation.
  8. + +
  9. 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_ROOT.
  10. +
+ +

During the installation, a version-specific registry key is + created in the Windows registry. The location of this key depends + on the type of the installation. If you chose to install Apache + for all users, the key is located under the + HKEY_LOCAL_MACHINE hive, like this (the version + numbers will of course vary between different versions of Apache: +

+ +

+ HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43 +

+ +

Correspondingly, if you chose to install Apache for the current + user only, the key is located under the HKEY_CURRENT_USER + hive, the contents of which are dependent of the user currently + logged on:

+ +

+ HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43 +

+ +

This key is compiled into the server and can enable you to test + new versions without affecting the current version. Of course, you + must take care not to install the new version in the same + directory as another version.

+ +

If you did not do a binary install, Apache will in some + scenarios complain about the missing registry key. This warning can + be ignored if the server was otherwise able to find its + configuration file.

+ +

The value of this key is the + ServerRoot directory which + contains the conf subdirectory. When Apache starts it + reads the httpd.conf file from that directory. If + this file contains a ServerRoot + directive which contains a different directory from the one + obtained from the registry key above, Apache will forget the + registry key and use the directory from the configuration file. If + you copy the Apache directory or configuration files to a new + location it is vital that you update the + ServerRoot directive in the + httpd.conf file to reflect the new location.

+ +
top
+
+

Testing the Installation

+ + +

After starting Apache (either in a console window or as a + service) it will be listening on port 80 (unless you changed the + Listen directive in the + configuration files or installed Apache only for the current user). + To connect to the server and access the default page, launch a + browser and enter this URL:

+ +

+ 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 + 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 + may have to use this URL:

+ +

+ http://127.0.0.1/ +

+ +

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/ +

+ +

Once your basic installation is working, you should configure it + properly by editing the files in the conf subdirectory. + Again, if you change the configuration of the Windows NT service + for Apache, first attempt to start it from the command line to + make sure that the service starts with no errors.

+ +

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. +

+ +
+
+

Available Languages:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/platform/windows.html.ko.euc-kr b/rubbos/app/apache2/manual/platform/windows.html.ko.euc-kr new file mode 100644 index 00000000..cc46d62f --- /dev/null +++ b/rubbos/app/apache2/manual/platform/windows.html.ko.euc-kr @@ -0,0 +1,688 @@ + + + +Microsoft Windows ġ - Apache HTTP Server + + + + + +
<-
+

Microsoft Windows ġ

+
+

:  en  | + ko 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

Microsoft Windows ġ 2.0 ġ, , + ϴ Ѵ. ߸ κ ְų ٸ + ַ, + ϱ ٶ.

+ +

ġ ̳ʸ ġѴٰ Ѵ. + (Ƹ Ȥ ׸ ã) ġ Ϸ + Microsoft Windows ġ + ϶.

+ +

Microsoft Windows ü å + Ѵ:

+
    +
  • Windows NT: Windows NT Ŀ + ϴ Windows ǹѴ. Windows NT, Windows + 2000, Windows XP, Windows .Net Server 2003 ĪѴ.
  • +
  • Windows 9x: Һ ߽ + Windows Ѵ. Windows 95 (OSR2 ), Windows + 98, Windows ME ĪѴ.
  • +
+ +
+ +
top
+
+

ü 䱸

+ + +

ġ 2.0 ϱ ⺻ Windows ÷ Windows + NT̴. ̳ʸ ġα׷ Intel AMD x86 + μ Ѵ. ġ Windows 9x + ˻ ʾұ⶧ 񽺿 ʱ + ٶ. +

+ +

ü ġ TCP/IP Ʈũ ؾ Ѵ. Windows + 95 Ѵٸ, Winsock 2 ׷̵带 ġؾ Ѵ. + Windows 95 Winsock 2 + ٿ ִ. +

+ +

Windows NT 4.0 Ѵٸ 4 TCP/IP + Winsock ѿ ذǾ⶧, + 6 ġϱ Ѵ.

+
top
+
+

Windows ġ ٿε

+ + +

ġ http://httpd.apache.org/download.cgi + ġ ֽ ִ. ⿡ ֽ + ǥǰ Ȥ Ÿ ׽Ʈ, ġ ٿε + ִ HTTP ̷ FTP ̷ ִ. ϰ + ٿ ̷ ϱ ٶ.

+ +

Windows ġϷ Ȯڰ .msi Windows + ġ ٿ޾ƾ Ѵ. ٷ + ִ ġ Microsoft ġ̴. ҽڵ常 + .zip ִ. Microsoft Visual C++ + (Visual Studio) Ͽ ġ ִ.

+
top
+
+

Windows ġ ġϱ

+ + +

ġϷ Microsoft Installer 1.2 ̻ ʿϴ. + Windows 9x Ѵٸ + Microsoft Installer 2.0 ׷̵ ְ, + Windows NT 4.0 2000 Ѵٸ + 2.0 Ʈ ִ. Windows XP Ʈ + ʿ䰡 .

+ +

̳ʸ ġϷδ ǻͿ ٸ ġ + 2.0 ġ ϶. ׷ 1.3 + 2.0 ǻͿ ƹ + ġ ִ. ǻͿ ΰ ٸ 2.0 ġϷ + ҽ Ͽ ġ + ġؾ Ѵ.

+ +

ٿ ġ .msi Ѵ. + ġҶ :

+ +
    +
  1. Ʈũ (Network Domain). + ϵ DNS ԷѴ. , + ü DNS ̸ server.mydomain.net̶ + ⿡ mydomain.net ԷѴ.

  2. + +
  3. (Server Name). ü + DNS ̸. ⿡ server.mydomain.net + ԷѴ.

  4. + +
  5. ڿ ּ (Administrator's Email + Address). ⿡ ڳ ڿ + ּҸ ԷѴ. ⺻ Ŭ̾Ʈ + ּҸ Ѵ.

  6. + +
  7. (For whom to install + Apache) ġϴ ġ 80 Ʈ + û ٸ Ϸ for All Users, on Port 80, + as a Service - Recommended ( , 80 Ʈ, + service - õ) Ѵ. ġ service Ѵ + (, ġ α  ȴ). + ׽Ʈغų ̹ 80 Ʈ ϴ ٸ + ִٸ only for the Current User, on Port + 8080, when started Manually ( ڸ, 8080 + Ʈ, ) Ѵ.

  8. + +
  9. ġ (The installation type). + ߿ ʿ ҽڵ ̺귯 + ġϷ Typical Ѵ. + Custom ϸ ġ + ִ. ü ġ ũ 13 ްƮ + ʿϴ. ġ Ʈ ũ⸦ + ̴.

  10. + +
  11. ġ (Where to install). + ⺻ δ C:\Program Files\Apache Group̰, + ̰ Apache2 丮 .

  12. +
+ +

ġ ġ conf 丮 + ִ ϵ ġ 丮 ° Ѵ. ׷ + 丮 ̹ ִٸ ״ д. , + ش ο 纻 Ȯ .default + δ. , conf\httpd.conf ̹ ִٸ + conf\httpd.conf.default ̸ Ѵ. + ġ .default 캸, + ʿϴٸ ؾ Ѵ.

+ +

, ̹ htdocs\index.html̶ + ִٸ ״ д (index.html.default + ʴ´). , ġ ġִ ϰ + ġ ġ ִ. ġϱ + ߴϰ, ġ ο ؾ Ѵ.

+ +

ġ ġ ʿϴٸ conf 丮 + ִ ؾ Ѵ. ġ ġ 丮 + htdocs 丮 ִ ϵ + ִ. ġ ϱ ؾ ɼ + . ׷ غ ֵ ⺻ Ϸε Ѵ.

+
top
+
+

Windows ġ ϱ

+ + +

ġ conf 丮 ִ Ϸ + Ѵ. н , Windows ġ + Ư þ  ִ. 밡 þ + þ ϶.

+ +

Windows ġ ֵ :

+
    +
  • Windows ġ ߾ ϱ⶧, + н ޸ û ٸ μ ʴ´. + ġ μ ׻, θ μ û óϴ + ڽ μ, 2̴. ڽ μ ִ + û óѴ. +

    + +

    μ þ ٸ:

    + +

    MaxRequestsPerChild: н + , ڽ μ û 󸶸ŭ óϰ + Ѵ. ׷ н ޸ μ ѹ û + óʰ ѹ û ϱ⶧, Ѵٸ + ſ ū ϱ Ѵ. ϴ ⺻ + MaxRequestsPerChild 0 ϸ ڽ μ + ʰ û Ѵ.

    + +
    : ڽ μ + д´. + httpd.conf ߴٸ, ڽ μ + ʰų ġ ߻ ִ.
    + +

    ThreadsPerChild: + þ ߰Ǿ. þ + Ѵ. ѹ ó + ִ ִ ᰳ̱⶧, Ʈ ӷ ٸ + ū ؾ Ѵ. ϴ ⺻ + ThreadsPerChild 50̴.

  • + +
  • ϸ ƱԸƮ ޴ þ н ϸ + ƴ Windows ϸ ؾ Ѵ. ׷ ġ ο + н ̸ ϱ⶧ 齽 ƴ + ؾ Ѵ. ̺ ڸ ִ. ̺긦 + ġ ִ ̺긦 + Ѵ.

  • + +
  • Windows ġ ٽ ʰ + ߿ о ִ. ⺻ ġ + ϸ \Apache2\modules 丮 + ð ġѴ. Ȥ ٸ + Ϸ LoadModule þ Ѵ. + , status Ѵٸ + (access.conf status þ Բ) + Ʒ Ѵ:

    + +

    + LoadModule status_module modules/mod_status.so +

    + +

    о ִ + ִ.

  • + +
  • ġ Microsoft IIS ٸ Windows ϴ + ISAPI (Internet Server Application Programming Interface) + Ȯ (, ͳ α׷) о ִ. + ڼ ִ. + ġ ISAPI ͸ о + ϶.

  • + +
  • CGI ũƮ Ѵٸ ScriptInterpreterSource þ + Ͽ ġ ũƮ ͸ ã + ִ.

  • + +
  • Windows .htaccess ϸ + ٷ Ƿ, AccessFilename þ Ͽ + 丮 ̸ ϸ ϴ.

  • + +
  • Windows NT ġ ۽ ߻ Windows + ̺Ʈ α׿ Ѵ. ׷ ġ ϴ + error.log 쿡 Ѵ. + Windows ̺Ʈ α״ Windows NT 4.0 ̺Ʈ + α׷, ֽ Windows ̺Ʈ MMC + ο ִ.

    + +
    Windows 9x Windows ̺Ʈ αװ ⶧ + ۽ ߻ ʴ´.
  • +
+ +
top
+
+

ġ Service ϱ

+ + +

Windows NT ġ service ִ. Windows + 9x ſ Ѵ.

+ +

ġ ڵ ġ service ġ ִ. " + " ϸ, ġ service . " + ڸ" ϴ ġ ġ service + ִ. service ġϷ Administrators ׷ + ̾ Ѵ.

+ +

ġ Apache Service Monitor ִ. + ϸ Ʈ ִ ٸ ǻͿ ġ ġ + µ Ȯϰ ִ. monitor ġ service + Ϸ service (ġ ڵ Ȥ ) ġؾ + Ѵ. +

+ +

ġ bin 丮 Ʈ + Էϸ ġ Windows NT service ġѴ:

+ +

+ apache -k install +

+ +

ġ service ̸ ϰ ʹٸ ɾ Ѵ. + ǻͿ ġ ġִٸ ̸ ٸ ־ + Ѵ.

+ +

+ apache -k install -n "MyServiceName" +

+ +

service Ϸ + Ѵ:

+ +

+ apache -k install -n "MyServiceName" -f "c:\files\my.conf" +

+ +

-k install ܿ ٸ Ķ͸ + , service ̸ Apache2 ǰ + conf\httpd.conf ȴ. +

+ +

ġ service ϱ . :

+ +

+ apache -k uninstall +

+ +

ġ service ִ:

+ +

+ apache -k uninstall -n "MyServiceName" +

+ +

ġ service , , Apache Service + Monitor NET START Apache2, NET STOP + Apache2 ɾ Ȥ Windows â + Ѵ.  ϵ ġ service ϱ + ˻غ Ѵ:

+ +

+ apache -n "MyServiceName" -t +

+ +

ɼε ġ service ִ. ġ + ġ serivce Ϸ:

+ +

+ apache -k start +

+ +

ɼ ġ service Ϸ:

+ +

+ apache -k stop +

+ +

Ȥ

+ +

+ apache -k shutdown +

+ +

service Ͽ ٽ е + ִ:

+ +

+ apache -k restart +

+ +

⺻ ġ service ý + (LocalSystem ) ϵ ϵȴ. + Windows ȱ LocalSystem Ͻý, + named pipes, DCOM, secure RPC  ϵ + Ʈ . ׷ ش ǻͿ + . +

+ +
LocalSystem + Ʈ ! ġ Ʈ ڿ ؾ + Ѵٸ, Ʒ ϴ ġ + .
+ +

ġ service ϱ + ִ. Ư ġ Ʈ ڿ ؾ Ѵٸ + Ѵ.

+ +
    +
  1. Ϲ ȣ ϶.
  2. + +
  3. 񽺷 α׿ +  ü Ϻη Ȱ + οѴ. Windows NT 4.0 User Manager for Domains + ο ְ, Windows 2000 XP Ƹ + "׷ å" ؾ Ѵ. " " MMC + ο ִ. +
  4. + +
  5. Users ׷쿡 ϴ ȮѴ.
  6. + +
  7. ũƮ ( + htdocs cgi-bin) б + (RX) οѴ.
  8. + +
  9. ġ logs 丮 (RWXD) + οѴ.
  10. + +
  11. Apache.exe Ͽ б (RX) + οѴ.
  12. +
+ +
ġ service ϴ ڿ ּ (RWXD) + ʿ logs 丮 ϰ + Apache2 丮 ü б (RX) οϴ + .
+ +

" α׿" "񽺷 α׿" ִٸ, + α׿Ͽ ũƮ ϰ + ܼâ ġ ִ ˻غ + ִ. ⼭ ٸ ġ service ص + .

+ +
Error code 2186 ġ ʿ + Ʈ ڿ ٴ service "α׿" + Ȯ϶. , ġ ϴ + .
+ +

ġ service ϸ Windows Service Control + Manager ִ. , ǿ + "" Ͽ ġ ϴ + ִ:

+ +

+ Could not start the Apache2 service on \\COMPUTER
+ Error 1067; The process terminated unexpectedly. +

+ +

ġ service Ҷ Ϲ ̷ + ´. ˷ ġ ܼ + α׷ غ.

+ +

Windows 9x ġ Windows NT service + Ѵ. ׷ ſ ̴. + 񽺿 Ҹŭ ʰ + . ϹǷ Ȥó Ѵٸ ؼ + ؾ Ѵ!

+ +

ΰ service ߿ :

+ +
    +
  • ġ ϸ 濡 Ѵ. + , ũž ٷΰ⸦  + ϴ ,

    + +

    + apache -n "MyServiceName" -k start +

    + +

    service ϸ ܼâ ٰ ݹ + . httpd.conf Ͽ ߸ ִ + ġ ۽ ߻ϸ ܼâ δ. ܼâ + ľϴµ ִ ش.

  • + +
  • Windows 9x NET START NET + STOP ɾ ʴ´. Ʈ + -k ɼ Ͽ ġ service ؾ + Ѵ. +

  • + +
  • + ġ Windows 9x Ʈ Ư ڷ + ġ Ѵ. Windows 9x + ʴ´. ̰ ٷ Apache Software Foundation Windows + 9x ý ϱ ʴ . + ڰ ϰ ġ н , + ƴϸ 缳 Ʈ ġ Ʈ , + Windows 9x ̴.

  • + +
+ +

ġ ܼ α׷ ȮϿٸ Windows + NT ɾ service ġ, , + ִ. , Apache Service Monitor Ͽ Windows 9x + service ִ.

+ +
top
+
+

ġ ܼ α׷ ϱ

+ + +

Ϲ ġ service ϱ Ѵ. ׷ + ࿡ ϴ° 찡 ִ (Windows 9x + service ʱ⶧ ࿡ ġ + ϴ Ѵ).

+ +

ġ ܼ α׷ Ϸ, ࿡ + ɾ Ѵ:

+ +

+ apache +

+ +

ġ Control-C ȴ.

+ +

, ޴ --> α׷ --> Apache HTTP + Server 2.0.xx --> Control Apache Server ġ + Start Apache in Console ٷΰ ġ ִ. + ٷΰ⸦ ϸ ܼâ ȿ ġ Ѵ. + ġ service ġ ʾҴٸ, ġ ϴ + ܼâ Control-C ġ ߴҶ â ִ. + ʾȿ Ѵ. ׷, ġ service + ġϿٸ ٷΰ service Ѵ. ġ service + ̹ ̶ ٷΰ ƹϵ ʴ´.

+ +

ٸ ܼâ ԷϿ ġ + ִ:

+ +

+ apache -k shutdown +

+ +

ġ ۾ ġ ݰ + ֱ⶧ Control-C .

+ +

, ġ ִ. ٽ + д´. ۾ ߰ ʰ ϷѴ. ġ + Ϸ:

+ +

+ apache -k restart +

+ +
н ġ ͼ : ɾ + kill -TERM pid kill -USR1 + pid Windows̴. ɼ + -k н kill ɾ ̸ + .
+ +

ġ ܼâ Ȥ ڱ ġ ޴ + --> α׷ Ʈ Ѵ. ġ ġ + apache ɾ غ ߻ + 캻. ׸ logs , + ߸Ǿ error.log 캻. ġ + ġҶ ⺻ ߴٸ :

+ +

+ c:
+ cd "\Program Files\Apache Group\Apache2\bin"
+ apache +

+ +

ġ ٸų Control-C . + ׸ ԷѴ:

+ +

+ cd ..\logs
+ more < error.log +

+ +

ġ ٷ궧 ġ  ã ƴ + ߿ϴ. ΰ ࿡ + ִ:

+ +
    +
  • -f Ȥ θ + Ѵ:

    + +

    + apache -f "c:\my server files\anotherconfig.conf" +

    + +

    Ȥ

    + +

    + apache -f files\anotherconfig.conf +

  • + +
  • -n ġ service ϰ, ش + service Ѵ:

    + +

    + apache -n "MyServiceName" +

    +
  • +
+ +

ServerRoot ؾ Ѵ.

+ +

-f -n + , ġ conf\httpd.conf + ϵ ϸ Ѵ. ⺻ δ ġ 丮 + ̴. -V ɼ ġ + ϸ SERVER_CONFIG_FILE̶ ׸񿡼 + ִ:

+ +

+ apache -V +

+ +

ġ ServerRoot ã´:

+ +
    +
  1. -C ɼǿ ServerRoot þ.
  2. + +
  3. -d ɼ.
  4. + +
  5. ۾ 丮.
  6. + +
  7. ̳ʸ ġ ߴٸ ġҶ registry ׸.
  8. + +
  9. ϵ server root. ⺻ + /apachḛ, apache -V ϸ + HTTPD_ROOT ׸񿡼 Ȯ ִ.
  10. +
+ +

ġҶ Ʈ Ư Ʈ + Ű . Ű ġ ġ ٸ. install + Apache for all users Ͽٸ + HKEY_LOCAL_MACHINE Ʒ Ű + ( ȣ ġ ٸ): +

+ +

+ HKEY_LOCAL_MACHINE\SOFTWARE\Apache Group\Apache\2.0.43 +

+ +

" " ġ ġϿٸ + HKEY_CURRENT_USER Ʒ Ű . + α׿ ڿ ٸ:

+ +

+ HKEY_CURRENT_USER\SOFTWARE\Apache Group\Apache\2.0.43 +

+ +

Ű ̸ ϵDZ⶧ ǵ帮ʰ + ο ġϿ ׽Ʈغ ִ. + ٸ 丮 ġʵ ؾ Ѵ.

+ +

̳ʸ ġ ġ Ʈ Ű + ٰ ִ. ٸ ã + ִٸ ص ȴ.

+ +

Ű ServerRoot + 丮̸, 丮 conf 丮 + ִ. ġ ϸ 丮 + httpd.conf д´. Ͽ + ServerRoot þ + Ʈ Ű 丮 ٸٸ, ġ Ʈ + ϰ Ͽ 丮 Ѵ. + ġ 丮 ٸ ҷ ϸ ݵ + httpd.conf Ͽ ִ ServerRoot þ ġ + ϶.

+ +
top
+
+

ġǾ ˻ϱ

+ + +

(ܼâ̳ service ) ġ ϸ ( + Listen þ + ϰų ġ " ڸ" ġ ʴ + ) 80 Ʈ ٸ. ϰ URL ԷϿ + ⺻ ϴ:

+ +

+ http://localhost/ +

+ +

ġ ġ ũ ִ ȯ + Ѵ. ƹ ϵ Ͼ ʰų , logs + 丮 ִ error.log . + ȣƮ Ʈ ʰų DNS (Domain Name Service) + ִٸ URL ؾ Ѵ:

+ +

+ http://127.0.0.1/ +

+ +

⺻ ġ ϸ conf 丮 + ִ Ѵ. , Windows NT ġ service + ࿡ ġ Ͽ + ߻ʴ Ȯؾ Ѵ.

+ +

ġ ٸ TCP/IP α׷ Ʈ + ġ ϱ ٸ + 񽺸 ߴ, , 缳ؾ 𸥴. ٸ + Ư ȭ 浹 ִ. +

+ +
+
+

:  en  | + ko 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/ab.html b/rubbos/app/apache2/manual/programs/ab.html new file mode 100644 index 00000000..f5a9c816 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/ab.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ab.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/ab.html.en b/rubbos/app/apache2/manual/programs/ab.html.en new file mode 100644 index 00000000..9ce30ca7 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/ab.html.en @@ -0,0 +1,200 @@ + + + +ab - Apache HTTP server benchmarking tool - Apache HTTP Server + + + + + +
<-
+

ab - Apache HTTP server benchmarking tool

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

ab is a tool for benchmarking your Apache Hypertext + Transfer Protocol (HTTP) server. It is designed to give you an impression + of how your current Apache installation performs. This especially shows + you how many requests per second your Apache installation is capable of + serving.

+
+

See also

+
top
+
+

Synopsis

+

ab + [ -A auth-username:password ] + [ -c concurrency ] + [ -C cookie-name=value ] + [ -d ] + [ -e csv-file ] + [ -g gnuplot-file ] + [ -h ] + [ -H custom-header ] + [ -i ] + [ -k ] + [ -n requests ] + [ -p POST-file ] + [ -P proxy-auth-username:password ] + [ -q ] + [ -s ] + [ -S ] + [ -t timelimit ] + [ -T content-type ] + [ -v verbosity] + [ -V ] + [ -w ] + [ -x <table>-attributes ] + [ -X proxy[:port] ] + [ -y <tr>-attributes ] + [ -z <td>-attributes ] + [http://]hostname[:port]/path

+
top
+
+

Options

+
+
-A auth-username:password
+
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 (i.e., has sent an 401 authentication needed).
+ +
-c concurrency
+
Number of multiple requests to perform at a time. Default is one + request at a time.
+ +
-C cookie-name=value
+
Add a Cookie: line to the request. The argument is + typically in the form of a name=value + pair. This field is repeatable.
+ +
-d
+
Do not display the "percentage served within XX [ms] table". (legacy + support).
+ +
-e csv-file
+
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'.
+ +
-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, + IDL, Mathematica, Igor or even Excel. The labels are on the first line of + the file.
+ +
-h
+
Display usage information.
+ +
-H custom-header
+
Append extra headers to the request. The argument is typically in + the form of a valid header line, containing a colon-separated field-value + pair (i.e., "Accept-Encoding: zip/zop;8bit").
+ +
-i
+
Do HEAD requests instead of GET.
+ +
-k
+
Enable the HTTP KeepAlive feature, i.e., perform multiple + requests within one HTTP session. Default is no KeepAlive.
+ +
-n requests
+
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.
+ +
-p POST-file
+
File containing data to POST.
+ +
-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 + 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 + -q flag will suppress these messages.
+ +
-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 + do not want to use it.
+ +
-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 + min/avg/max values. (legacy support).
+ +
-t timelimit
+
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.
+ +
-T content-type
+
Content-type header to use for POST data.
+ +
-v verbosity
+
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.
+ +
-V
+
Display version number and exit.
+ +
-w
+
Print out results in HTML tables. Default table is two columns wide, + with a white background.
+ +
-x <table>-attributes
+
String to use as attributes for <table>. Attributes + are inserted <table here >.
+ +
-X proxy[:port]
+
Use a proxy server for the requests.
+ +
-y <tr>-attributes
+
String to use as attributes for <tr>.
+ +
-z <td>-attributes
+
String to use as attributes for <td>.
+
+
top
+
+

Bugs

+

There are various statically declared buffers of fixed length. Combined + with the lazy parsing of the command line arguments, the response headers + from the server and other external inputs, this might bite you.

+ +

It does not implement HTTP/1.x fully; only accepts some 'expected' forms + of responses. The rather heavy use of strstr(3) shows up top + in profile, which might indicate a performance problem; i.e., you + would measure the ab performance rather than the server's.

+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/ab.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/ab.html.ko.euc-kr new file mode 100644 index 00000000..8292de2f --- /dev/null +++ b/rubbos/app/apache2/manual/programs/ab.html.ko.euc-kr @@ -0,0 +1,203 @@ + + + +ab - ġ ɰ˻ - Apache HTTP Server + + + + + +
<-
+

ab - ġ ɰ˻

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ab ġ ؽƮ (HTTP) + ˻ϴ(benchmarking) ̴. ġ +  ϴ ˷ش. Ư ġ ʴ  + û ϴ ˷ش.

+
+

+
top
+
+

+

ab + [ -A auth-username:password ] + [ -c concurrency ] + [ -C cookie-name=value ] + [ -d ] + [ -e csv-file ] + [ -g gnuplot-file ] + [ -h ] + [ -H custom-header ] + [ -i ] + [ -k ] + [ -n requests ] + [ -p POST-file ] + [ -P proxy-auth-username:password ] + [ -q ] + [ -s ] + [ -S ] + [ -t timelimit ] + [ -T content-type ] + [ -v verbosity] + [ -V ] + [ -w ] + [ -x <table>-attributes ] + [ -X proxy[:port] ] + [ -y <tr>-attributes ] + [ -z <td>-attributes ] + [http://]hostname[:port]/path

+
top
+
+

ɼ

+
+
-A auth-username:password
+
BASIC Authentication Ѵ. + : ڸ ȣ base64 ڵϿ + Ѵ. 䱸ϴ ( , + 401 ʿ並 ) ڿ Ѵ.
+ +
-c concurrency
+
ÿ ûϴ û. ⺻ ѹ û + .
+ +
-C cookie-name=value
+
û Cookie: ߰Ѵ. ƱԸƮ + name=value + ̴. ɼ ִ.
+ +
-d
+
"percentage served within XX [ms] table" + ʴ´. (ȣȯ ).
+ +
-e csv-file
+
û óϴµ ɸ (и ) ð (1% + 100%) ǥ (CSV) Ѵ. + ̹ ''Ͽ⶧ 'gnuplot' Ϻ + ϴ.
+ +
-g gnuplot-file
+
'gnuplot' Ȥ TSV (Tab separate values, + ) Ͽ Ѵ. Gnuplot, IDL, Mathematica, + Igor, Excel α׷ ̷ + ִ. ù° ٿ ׸̸ ´.
+ +
-h
+
Ѵ.
+ +
-H custom-header
+
û ߰Ѵ. ƱԸƮ ݷ + ( , + "Accept-Encoding: zip/zop;8bit") ȿ + ̴.
+ +
-i
+
GET HEAD û Ѵ.
+ +
-k
+
HTTP KeepAlive Ѵ. , + HTTP ǿ û Ѵ. ⺻ KeepAlive + ʴ´.
+ +
-n requests
+
˻ϱ û. ⺻ û + ѹ ⶧ Ϲ ɰ˻ .
+ +
-p POST-file
+
POST ڷ .
+ +
-P proxy-auth-username:password
+
Ͻø BASIC Authentication Ѵ. + : ڸ ȣ base64 ڵϿ + Ѵ. Ͻð 䱸ϴ ( , + 401 ʿ並 ) ڿ Ѵ.
+ +
-q
+
150 ̻ û ab 10% Ȥ + 100 û ǥؿ Ȳ Ѵ. + -q ɼ ʴ´.
+ +
-s
+
߰Ͽ Ͽٸ (ab -h + Ȯ ִ) http SSL + https Ѵ. ̰ + ſ ̴. Ƹ ̴.
+ +
-S
+
߰ ǥ ʰ, հ ߰ ̰ + ǥ ũ / ʴ´. + ּ//ִ Ѵ. (ȣȯ ).
+ +
-t timelimit
+
˻ϴ ִ ʴ ð. + -n 50000 Ѵ. ð + ˻Ҷ Ѵ. ⺻ ð ˻Ѵ.
+ +
-T content-type
+
POST ڷ Content-type .
+ +
-v verbosity
+
ڼ Ѵ. 4 ̸̻ + , 3 ̸̻ (404, 202, ) + ڵ带, 2 ̸̻ (warning) + (info) Ѵ.
+ +
-V
+
ϰ Ѵ.
+ +
-w
+
HTML ǥ Ѵ. ⺻ ǥ 濡 + ۼѴ.
+ +
-x <table>-attributes
+
<table> Ӽ ڿ. + Ӽ <table > + ߰Ѵ.
+ +
-X proxy[:port]
+
Ͻ Ͽ ûѴ.
+ +
-y <tr>-attributes
+
<tr> Ӽ ڿ.
+ +
-z <td>-attributes
+
<td> Ӽ ڿ.
+
+
top
+
+

+

̰ ۸ Ѵ. + ƱԸƮ, , ٸ ܺ Էµ + о̸鼭 ߻ ִ.

+ +

α׷ HTTP/1.x ʴ´; + 'ϴ' 丸 ޴´. strstr(3) + ſ ⶧ ӵ ִ; , + ɺٴ ab ϰ + ִ.

+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/ab.html.tr.utf8 b/rubbos/app/apache2/manual/programs/ab.html.tr.utf8 new file mode 100644 index 00000000..c0465f58 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/ab.html.tr.utf8 @@ -0,0 +1,224 @@ + + + +ab - Apache HTTP sunucusu başarım ölçme aracı - Apache HTTP Sunucusu + + + + + +
<-
+

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.

+
+

Ayrıca bakınız:

+
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ı ] + [ -g gnuplot-dosyası ] + [ -h ] + [ -H özel-başlık ] + [ -i ] + [ -k ] + [ -n istek-sayısı ] + [ -p POST-dosyası ] + [ -P vekil-yetkilisi:parola ] + [ -q ] + [ -s ] + [ -S ] + [ -t saniye ] + [ -T içerik-türü ] + [ -v ayrıntı-düzeyi] + [ -V ] + [ -w ] + [ -x <table>-öznitelikleri ] + [ -X vekil[:port] ] + [ -y <tr>-öznitelikleri ] + [ -z <td>-öznitelikleri ] + [http://]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.
+ +
-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.
+ +
-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.
+ +
-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 verisi için kullanılacak içerik türü belirtilir.
+ +
-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.
+
+
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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apachectl.html b/rubbos/app/apache2/manual/programs/apachectl.html new file mode 100644 index 00000000..7e1885c8 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apachectl.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: apachectl.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/apachectl.html.en b/rubbos/app/apache2/manual/programs/apachectl.html.en new file mode 100644 index 00000000..4ae4dcc1 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apachectl.html.en @@ -0,0 +1,154 @@ + + + +apachectl - Apache HTTP Server Control Interface - Apache HTTP Server + + + + + +
<-
+

apachectl - Apache HTTP Server Control Interface

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

apachectl is a front end to the Apache HyperText + Transfer Protocol (HTTP) server. It is designed to help the + administrator control the functioning of the Apache + httpd daemon.

+ +

The apachectl script can operate in two modes. + First, it can act as a simple front-end to the httpd + command that simply sets any necessary environment variables and + then invokes httpd, passing through any command line + arguments. Second, apachectl can act as a SysV init + script, taking simple one-word arguments like start, + restart, and stop, and translating them + into appropriate signals to httpd.

+ +

If your Apache installation uses non-standard paths, you will + need to edit the apachectl script to set the + appropriate paths to the httpd binary. You can also + specify any necessary httpd command line arguments. + See the comments in the script for details.

+ +

The apachectl script returns a 0 exit value on + success, and >0 if an error occurs. For more details, view + the comments in the script.

+
+ +
top
+
+

Synopsis

+ +

When acting in pass-through mode, apachectl can take +all the arguments available for the httpd +binary.

+ +

apachectl [ httpd-argument ]

+ +

When acting in SysV init mode, apachectl takes simple, +one-word commands, defined below.

+ +

apachectl command

+ +
top
+
+

Options

+ +

Only the SysV init-style options are defined here. Other arguments +are defined on the httpd manual page.

+ +
+ +
start
+ +
Start the Apache httpd daemon. Gives an error if it +is already running. This is equivalent to apachectl -k +start.
+ +
stop
+ +
Stops the Apache httpd daemon. This is equivalent to +apachectl -k stop.
+ +
restart
+ +
Restarts the Apache httpd daemon. If the daemon is +not running, it is started. This command automatically checks the +configuration files as in configtest before initiating +the restart to make sure the daemon doesn't die. This is equivalent +to apachectl -k restart.
+ +
fullstatus
+ +
Displays a full status report from mod_status. +For this to work, you need to have mod_status enabled +on your server and a text-based browser such as lynx +available on your system. The URL used to access the status report +can be set by editing the STATUSURL variable in the +script.
+ +
status
+ +
Displays a brief status report. Similar to the +fullstatus option, except that the list of requests +currently being served is omitted.
+ +
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.
+ +
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.
+ +
+ +

The following additional option is available, but deprecated.

+ +
+ +
startssl
+ +
This is equivalent to apachectl -k start -DSSL. We +recommend that you use that command explicitly, or you adjust your +httpd.conf to remove the <IfDefine> section so that SSL will always be +available.
+ +
+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apachectl.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/apachectl.html.ko.euc-kr new file mode 100644 index 00000000..564912c7 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apachectl.html.ko.euc-kr @@ -0,0 +1,146 @@ + + + +apachectl - ġ ̽ - Apache HTTP Server + + + + + +
<-
+

apachectl - ġ ̽

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

apachectl ġ ؽƮ + (HTTP) մ̴. α׷ ڰ + ġ httpd ϵ + ´.

+ +

apachectl ũƮ ΰ Ѵ. + ù° httpd θ ũƮ + Ͽ, ʿ ȯ溯 ϰ ƱԸƮ + httpd Ѵ. ι° + apachectl SysV init ũƮ Ͽ, + start, restart, stop + Ѵܾ ƱԸƮ ޾Ƽ httpd + ȣ .

+ +

ġ Ϲ ο ġ ʾҴٸ, + httpd η apachectl ũƮ + ؾ Ѵ. , httpd ƱԸƮ + ߰ ִ. ڼ ũƮ ּ + ϶.

+ +

apachectl ũƮ ڵ 0, + >0 ȯѴ. ڼ ũƮ ּ + ϶.

+
+ +
top
+
+

+ +

ũƮ ϸ, apachectl +httpd ƱԸƮ ޴´.

+ +

apachectl [ httpd-argument ]

+ +

SysV init ϸ, apachectl Ʒ + Ѵܾ ɾ ޴´.

+ +

apachectl command

+ +
top
+
+

ɼ

+ +

⼭ SysV init- ɼǸ Ѵ. ٸ ɼ httpd manpage Ѵ.

+ +
+ +
start
+ +
ġ httpd Ѵ. ̹ ̶ + . apachectl -k start .
+ +
stop
+ +
ġ httpd ߴѴ. apachectl +-k stop .
+ +
restart
+ +
ġ httpd Ѵ. +ƴ϶, Ѵ. ۽ Ȯϱ + ڵ configtest ɰ +˻Ѵ. apachectl -k restart .
+ +
fullstatus
+ +
mod_status Ѵ. + ϱؼ mod_status +ϰ, ýۿ lynx ڱ +ʿϴ. ϴ URL ũƮ +STATUSURL Ͽ ִ.
+ +
status
+ +
Ѵ. fullstatus ɼǰ +, û ʴ´.
+ +
graceful
+ +
ġ httpd ݰ(gracefully) Ѵ. + ƴ϶, Ѵ. Ϲ ۰ ޸ +ִ ʴ´. , α ʴ´. +, α׼ȯ ũƮ Ѵٸ, α +óϱ α ϱ ٷ +Ѵ. ġ ۽ Ȯϱ + ڵ configtest ɰ +˻Ѵ. apachectl -k graceful .
+ +
configtest
+ +
˻Ѵ. а Syntax +Ok Ȥ Ư ڼ ˷ش. +apachectl -t .
+ +
+ +

Ʒ ɼ , ̴.

+ +
+ +
startssl
+ +
apachectl -k start -DSSL . 츮 + ɾ ϰų ׻ SSL ϵ +httpd.conf <IfDefine> ϱ Ѵ.
+ +
+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apachectl.html.tr.utf8 b/rubbos/app/apache2/manual/programs/apachectl.html.tr.utf8 new file mode 100644 index 00000000..594cf1c5 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apachectl.html.tr.utf8 @@ -0,0 +1,160 @@ + + + +apachectl - Apache HTTP Sunucusu Denetim Arayüzü - Apache HTTP Sunucusu + + + + + +
<-
+

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.
+ +
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ımı önerilmemektedir.

+ +
+
startssl
+
apachectl -k start -DSSL komutuna + eşdeğerdir; doğrudan doğruya bu komutu kullanmanızı öneriyoruz. Veya + httpd.conf dosyanızdan <IfDefine> bölümünü silmek suretiyle SSL’nin + daima etkin olmasını sağlayabilir ve normal apachectl + start komutunu da kullanabirsiniz.
+
+
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apxs.html b/rubbos/app/apache2/manual/programs/apxs.html new file mode 100644 index 00000000..bcf33408 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apxs.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: apxs.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/apxs.html.en b/rubbos/app/apache2/manual/programs/apxs.html.en new file mode 100644 index 00000000..d8ebfd2a --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apxs.html.en @@ -0,0 +1,339 @@ + + + +apxs - APache eXtenSion tool - Apache HTTP Server + + + + + +
<-
+

apxs - APache eXtenSion tool

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

apxs is a tool for building and installing extension + modules for the Apache HyperText Transfer Protocol (HTTP) server. This is + achieved by building a dynamic shared object (DSO) from one or more source + or object files which then can be loaded into the Apache server + under runtime via the LoadModule + directive from mod_so.

+ +

So to use this extension mechanism your platform has to support the DSO + feature and your Apache httpd binary has to be built with the + mod_so module. The apxs tool automatically + complains if this is not the case. You can check this yourself by manually + running the command

+ +

+ $ httpd -l +

+ +

The module mod_so should be part of the displayed list. + If these requirements are fulfilled you can easily extend your Apache + server's functionality by installing your own modules with the DSO mechanism + by the help of this apxs tool:

+ +

+ $ apxs -i -a -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ $ apachectl restart
+ /path/to/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
+ /path/to/apache/sbin/apachectl restart: httpd started
+ $ _ +

+ +

The arguments files can be any C source file (.c), a object + file (.o) or even a library archive (.a). The apxs tool + automatically recognizes these extensions and automatically used the C + source files for compilation while just using the object and archive files + for the linking phase. But when using such pre-compiled objects make sure + they are compiled for position independent code (PIC) to be able to use them + for a dynamically loaded shared object. For instance with GCC you always + just have to use -fpic. For other C compilers consult its + manual page or at watch for the flags apxs uses to compile the + object files.

+ +

For more details about DSO support in Apache read the documentation of + mod_so or perhaps even read the + src/modules/standard/mod_so.c source file.

+
+ +
top
+
+

Synopsis

+

apxs -g + [ -S name=value ] + -n modname

+ +

apxs -q + [ -S name=value ] + query ...

+ +

apxs -c + [ -S name=value ] + [ -o dsofile ] + [ -I incdir ] + [ -D name=value ] + [ -L libdir ] + [ -l libname ] + [ -Wc,compiler-flags ] + [ -Wl,linker-flags ] + files ...

+ +

apxs -i + [ -S name=value ] + [ -n modname ] + [ -a ] + [ -A ] + dso-file ...

+ +

apxs -e + [ -S name=value ] + [ -n modname ] + [ -a ] + [ -A ] + dso-file ...

+
top
+
+

Options

+

Common Options

+
+
-n modname
+
This explicitly sets the module name for the -i (install) + and -g (template generation) option. Use this to explicitly + specify the module name. For option -g this is required, for + option -i the apxs tool tries to determine the + name from the source or (as a fallback) at least by guessing it from the + filename.
+
+ + +

Query Options

+
+
-q
+
Performs a query for apxs's knowledge about certain + settings. The query parameters can be one or more of the + following strings: CC, CFLAGS, + CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, + LDFLAGS_SHLIB, LIBEXECDIR, + LIBS_SHLIB, SBINDIR, SYSCONFDIR, + TARGET. + +

Use this for manually determining settings. For instance use

+

+ INC=-I`apxs -q INCLUDEDIR` +

+ +

inside your own Makefiles if you need manual access to Apache's C + header files.

+
+ + +

Configuration Options

+
+
-S name=value
+
This option changes the apxs settings described above.
+
+ + +

Template Generation Options

+
+
-g
+
This generates a subdirectory name (see option + -n) and there two files: A sample module source file named + mod_name.c which can be used as a template for + creating your own modules or as a quick start for playing with the + apxs mechanism. And a corresponding Makefile for even easier + build and installing of this module.
+
+ + +

DSO Compilation Options

+
+
-c
+
This indicates the compilation operation. It first compiles the C + source files (.c) of files into corresponding object files (.o) + and then builds a dynamically shared object in dsofile by + linking these object files plus the remaining object files (.o and .a) of + files. If no -o option is specified the output + file is guessed from the first filename in files and thus + usually defaults to mod_name.so.
+ +
-o dsofile
+
Explicitly specifies the filename of the created dynamically shared + object. If not specified and the name cannot be guessed from the + files list, the fallback name mod_unknown.so is + used.
+ +
-D name=value
+
This option is directly passed through to the compilation command(s). + Use this to add your own defines to the build process.
+ +
-I incdir
+
This option is directly passed through to the compilation command(s). + Use this to add your own include directories to search to the build + process.
+ +
-L libdir
+
This option is directly passed through to the linker command. Use this + to add your own library directories to search to the build process.
+ +
-l libname
+
This option is directly passed through to the linker command. Use this + to add your own libraries to search to the build process.
+ +
-Wc,compiler-flags
+
This option passes compiler-flags as additional flags to + the compiler command. Use this to add local compiler-specific options.
+ +
-Wl,linker-flags
+
This option passes linker-flags as additional flags to + the linker command. Use this to add local linker-specific options.
+
+ + +

DSO Installation and Configuration Options

+ +
+
-i
+
This indicates the installation operation and installs one or more + dynamically shared objects into the server's modules + directory.
+ +
-a
+
This activates the module by automatically adding a corresponding + LoadModule line to Apache's + httpd.conf configuration file, or by enabling it if it + already exists.
+ +
-A
+
Same as option -a but the created LoadModule directive is prefixed with a hash + sign (#), i.e., the module is just prepared for + later activation but initially disabled.
+ +
-e
+
This indicates the editing operation, which can be used with the + -a and -A options similarly to the + -i operation to edit Apache's httpd.conf + configuration file without attempting to install the module.
+
+ +
top
+
+

Examples

+

Assume you have an Apache module named mod_foo.c available + which should extend Apache's server functionality. To accomplish this you + first have to compile the C source into a shared object suitable for loading + into the Apache server under runtime via the following command:

+ +

+ $ apxs -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ $ _ +

+ +

Then you have to update the Apache configuration by making sure a + LoadModule directive is present to + load this shared object. To simplify this step apxs provides + an automatic way to install the shared object in its "modules" directory + and updating the httpd.conf file accordingly. This can be + achieved by running:

+ +

+ $ apxs -i -a mod_foo.c
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ $ _ +

+ +

This way a line named

+ +

+ LoadModule foo_module modules/mod_foo.so +

+ +

is added to the configuration file if still not present. If you want to + have this disabled per default use the -A option, + i.e.

+ +

+ $ apxs -i -A mod_foo.c +

+ +

For a quick test of the apxs mechanism you can create a sample Apache + module template plus a corresponding Makefile via:

+ +

+ $ apxs -g -n foo
+ Creating [DIR] foo
+ Creating [FILE] foo/Makefile
+ Creating [FILE] foo/mod_foo.c
+ $ _ +

+ +

Then you can immediately compile this sample module into a shared object + and load it into the Apache server:

+ +

+ $ cd foo
+ $ make all reload
+ apxs -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ apxs -i -a -n "foo" mod_foo.so
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ apachectl restart
+ /path/to/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
+ /path/to/apache/sbin/apachectl restart: httpd started
+ $ _ +

+ +

You can even use apxs to compile complex modules outside the + Apache source tree, like PHP3:

+ +

+ $ cd php3
+ $ ./configure --with-shared-apache=../apache-1.3
+ $ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a
+ gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3.c
+ ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a
+ $ _ +

+ +

because apxs automatically recognized C source files and + object files. Only C source files are compiled while remaining object + files are used for the linking phase.

+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apxs.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/apxs.html.ko.euc-kr new file mode 100644 index 00000000..b5d83921 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apxs.html.ko.euc-kr @@ -0,0 +1,335 @@ + + + +apxs - APache eXtenSion - Apache HTTP Server + + + + + +
<-
+

apxs - APache eXtenSion

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

apxs ġ ؽƮ + (HTTP) Ȯ ϰ ġϴ ̴. + ҽ Ʈ , + mod_so LoadModule þ ߿ + ġ о ִ ü(DSO) .

+ +

׷ ̷ Ȯ Ϸ ÷ DSO + ϰ ġ httpd + mod_so ؾ Ѵ. + apxs + ʴ´. ɾ Ͽ ϴ ˾ƺ + ִ

+ +

+ $ httpd -l +

+ +

Ͽ mod_so ; Ѵ. + ϸ apxs DSO ġϿ + ġ Ȯ ִ:

+ +

+ $ apxs -i -a -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ $ apachectl restart
+ /path/to/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
+ /path/to/apache/sbin/apachectl restart: httpd started
+ $ _ +

+ +

ƱԸƮ files C ҽ (.c) ̳ + Ʈ (.o), ̺귯 (.a) ִ. + apxs Ȯڸ ڵ C ҽ + ϰ, Ʈ ũ Ѵ. ׷ + Ʈ Ϸ о ִ + ü ϱ ݵ Ʈ ġڵ(PIC, + position independent code) ؾ Ѵ. GCC + -fpic ϸ ȴ. ٸ C Ϸ + ϰų apxs Ʈ Ҷ + ϴ ɼ ϶.

+ +

ġ DSO ڼ + mod_so ϰų + src/modules/standard/mod_so.c ҽ о.

+
+ +
top
+
+

+

apxs -g + [ -S name=value ] + -n modname

+ +

apxs -q + [ -S name=value ] + query ...

+ +

apxs -c + [ -S name=value ] + [ -o dsofile ] + [ -I incdir ] + [ -D name=value ] + [ -L libdir ] + [ -l libname ] + [ -Wc,compiler-flags ] + [ -Wl,linker-flags ] + files ...

+ +

apxs -i + [ -S name=value ] + [ -n modname ] + [ -a ] + [ -A ] + dso-file ...

+ +

apxs -e + [ -S name=value ] + [ -n modname ] + [ -a ] + [ -A ] + dso-file ...

+
top
+
+

ɼ

+

ɼ

+
+
-n modname
+
-i (install) -g (template + generation) ɼ Ҷ Ѵ. + ɼ Ͽ Ѵ. -g + ɼ Ѵٸ ɼ ݵ ؾϰ, + -i ɼ Ѵٸ apxs + ҽ ( õ) ϸ ̸ Ѵ.
+
+ + +

ɼ

+
+
-q
+
apxs ˾Ƴ. query + ִ: CC, CFLAGS, + CFLAGS_SHLIB, INCLUDEDIR, + LD_SHLIB, LDFLAGS_SHLIB, + LIBEXECDIR, LIBS_SHLIB, + SBINDIR, SYSCONFDIR, TARGET. + +

˾Ƴ Ѵ.

+

+ INC=-I`apxs -q INCLUDEDIR` +

+ +

, ġ C Ѵٸ + Makefile Ѵ.

+
+ + +

ɼ

+
+
-S name=value
+
ɼ apxs Ѵ.
+
+ + +

ߺ(template) ɼ

+
+
-g
+
name (-n + ɼ ) װ ΰ : + mod_name.c ߺ ҽϷ, + ڽ 鶧 ߺ ϰų apxs + غ Ѵ. ٸ ϰ + ġϱ Makefile̴.
+
+ + +

DSO ɼ

+
+
-c
+
Ѵ. files C + ҽϵ(.c) Ʈ(.o) ϰ, + files Ʈϵ(.o .a) + ũϿ ü dsofile . + -o ɼ files + ù° ϸ ̸ Ͽ + mod_name.so Ѵ.
+ +
-o dsofile
+
ü ϸ Ѵ. ̸ + ʰ files Ͽ ̸ + ϸ mod_unknown.so ̸ + Ѵ.
+ +
-D name=value
+
ɼ ɾ Ѵ. + ϶ ڽ define ߰Ѵ.
+ +
-I incdir
+
ɼ ɾ Ѵ. + ϶ include ã 丮 ߰Ѵ.
+ +
-L libdir
+
ɼ Ŀ ɾ Ѵ. + ϶ ̺귯 ã 丮 ߰Ѵ.
+ +
-l libname
+
ɼ Ŀ ɾ Ѵ. + ϶ ̺귯 ߰Ѵ.
+ +
-Wc,compiler-flags
+
ɼ ߰ ɼ compiler-flags + ɾ Ѵ. Ϸ Ư ɼ ߰Ҷ + Ѵ.
+ +
-Wl,linker-flags
+
ɼ ߰ ɼ linker-flags + Ŀ ɾ Ѵ. Ŀ Ư ɼ ߰Ҷ + Ѵ.
+
+ + +

DSO ġ ɼ

+ +
+
-i
+
ġ Ѵ. ü + modules 丮 ġѴ.
+ +
-a
+
ġ httpd.conf Ͽ + LoadModule + ߰ϰų ̹ ִٸ ȰȭϿ ϵ + .
+ +
-A
+
-a , LoadModule þ տ + 칰(#) δ. , + ߿ ֵ غѴ.
+ +
-e
+
Ѵ. -a Ȥ -A + ɼǰ , -i ɰ + ġʰ ġ + httpd.conf ϸ Ѵ.
+
+ +
top
+
+

+

ġ Ȯϴ mod_foo.c + ġ ִٰ . ɾ Ͽ + C ҽ ġ о ü Ѵ:

+ +

+ $ apxs -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ $ _ +

+ +

׸ ü о̴ LoadModule þ ġ + ߰Ѵ. apxs ڵ ü + "modules" 丮 ġϰ httpd.conf + ˸° Ͽ ۾ ģ. Ѵ:

+ +

+ $ apxs -i -a mod_foo.c
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ $ _ +

+ +

׷

+ +

+ LoadModule foo_module modules/mod_foo.so +

+ +

Ͽ ٸ ߰Ѵ. ⺻ + ʴ´ٸ -A ɼ Ѵ.

+ +

+ $ apxs -i -A mod_foo.c +

+ +

apxs Ϸ ġ ߺ + Makefile ִ:

+ +

+ $ apxs -g -n foo
+ Creating [DIR] foo
+ Creating [FILE] foo/Makefile
+ Creating [FILE] foo/mod_foo.c
+ $ _ +

+ +

׷ ٷ ߺ ü Ͽ ġ + еѴ:

+ +

+ $ cd foo
+ $ make all reload
+ apxs -c mod_foo.c
+ gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ apxs -i -a -n "foo" mod_foo.so
+ cp mod_foo.so /path/to/apache/modules/mod_foo.so
+ chmod 755 /path/to/apache/modules/mod_foo.so
+ [activating module `foo' in /path/to/apache/etc/httpd.conf]
+ apachectl restart
+ /path/to/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
+ /path/to/apache/sbin/apachectl restart: httpd started
+ $ _ +

+ +

ġ ҽ ۿ apxs Ͽ + PHP3 ִ:

+ +

+ $ cd php3
+ $ ./configure --with-shared-apache=../apache-1.3
+ $ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a
+ gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3.c
+ ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a
+ $ _ +

+ +

apxs ڵ C ҽϰ Ʈ + Ѵ. C ҽϸ ϰ Ʈ + ũҶ Ѵ.

+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/apxs.html.tr.utf8 b/rubbos/app/apache2/manual/programs/apxs.html.tr.utf8 new file mode 100644 index 00000000..a751af4e --- /dev/null +++ b/rubbos/app/apache2/manual/programs/apxs.html.tr.utf8 @@ -0,0 +1,360 @@ + + + +apxs - Apache Eklenti Aracı - Apache HTTP Sunucusu + + + + + +
<-
+

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 derleme 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 nesne ilintileme 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
+ gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ $ _ +

+ +

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.c
+ 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'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/mod_foo.c
+ $ _ +

+ +

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
+ gcc -fpic -DSHARED_MODULE -I/dosya/yolu/apache/include -c mod_foo.c
+ ld -Bshareable -o mod_foo.so mod_foo.o
+ apxs -i -a -n "foo" mod_foo.so
+ 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
+ $ _ +

+ +

apxs C kaynak dosyalarını va nesne + dosyalarını özdevinimli olarak tanıdığından, + apxs'yi PHP3 gibi karmaşık modülleri + Apache kaynak ağacının dışında derlemek için de kullanabilirsiniz:

+ +

+ $ cd php3
+ $ ./configure --with-shared-apache=../apache-1.3
+ $ apxs -c -o libphp3.so mod_php3.c libmodphp3-so.a
+ gcc -fpic -DSHARED_MODULE -I/tmp/apache/include -c mod_php3.c
+ ld -Bshareable -o libphp3.so mod_php3.o libmodphp3-so.a
+ $ _ +

+ +

Sadece C kaynak dosyaları derlenir ve diğer nesne dosyaları ile + ilintilenir.

+
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/configure.html b/rubbos/app/apache2/manual/programs/configure.html new file mode 100644 index 00000000..a8bdca0c --- /dev/null +++ b/rubbos/app/apache2/manual/programs/configure.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: configure.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/configure.html.en b/rubbos/app/apache2/manual/programs/configure.html.en new file mode 100644 index 00000000..55a5c7d3 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/configure.html.en @@ -0,0 +1,916 @@ + + + +configure - Configure the source tree - Apache HTTP Server + + + + + +
<-
+

configure - Configure the source tree

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

The configure script configures the source tree + for compiling and installing the Apache HTTP Server on your + particular platform. Various options allow the compilation of a + server corresponding to your personal requirements.

+ +

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.

+
+ +
top
+
+

Synopsis

+

You should call the configure script from within the + root directory of the distribution.

+ +

./configure [OPTION]... + [VAR=VALUE]...

+ +

To assign environment variables (e.g. CC, + CFLAGS ...), specify them as + VAR=VALUE. See below + for descriptions of some of the useful variables.

+
top
+
+

Options

+ + +

Configuration options

+ +

The following options influence the behavior of + configure itself.

+ +
+
-C
+
--config-cache
+
This is an alias for --cache-file=config.cache
+ +
--cache-file=FILE
+
The test results will be cached in file FILE. + This option is disabled by default.
+ +
-h
+
--help [short|recursive]
+
Output the help and exit. With the argument short only + options specific to this package will displayed. The argument + recursive displays the short help of all the included + packages.
+ +
-n
+
--no-create
+
The configure script is run normally but does + not create output files. This is useful to check the test results + before generating makefiles for compilation.
+ +
-q
+
--quiet
+
Do not print checking ... messages during the + configure process.
+ +
--srcdir=DIR
+
Defines directory DIR to be the source file directory. + Default is the directory, where configure is located, or the parent + directory ...
+ +
--silent
+
Same as --quiet
+ +
-V
+
--version
+
Display copyright information and exit.
+
+ + +

Installation + directories

+ +

These options define the installation directory. The installation + tree depends on the selected layout.

+ +
+
--prefix=PREFIX
+
Install architecture-independent files in PREFIX. + By default the installation directory is set to + /usr/local/apache2.
+ +
--exec-prefix=EPREFIX
+
Install architecture-dependent files in EPREFIX. + By default the installation directory is set to the + PREFIX directory.
+
+ +

By default, make install will install all the files in + /usr/local/apache2/bin, /usr/local/apache2/lib + etc. You can specify an installation prefix other than + /usr/local/apache2 using --prefix, + for instance --prefix=$HOME.

+ +

Define a directory layout

+
+
--enable-layout=LAYOUT
+
Configure the source code and build scripts to assume an + installation tree based on the layout LAYOUT. This allows + you to separately specify the locations for each type of file within + the Apache HTTP Server installation. The config.layout + file contains several example configurations, and you can also create + your own custom configuration following the examples. The different + layouts in this file are grouped into <Layout + FOO>...</Layout> sections and referred to by name as + in FOO. The default layout is Apache.
+
+ + +

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 + setting.

+ +
+ +
--bindir=DIR
+
Install user executables in DIR. The user executables + are supporting programs like htpasswd, + dbmmanage, etc. which are useful for site + administrators. By default DIR is set to + EPREFIX/bin.
+ +
--datadir=DIR
+
Install read-only architecture-independent data in DIR. + By default datadir is set to + PREFIX/share. This option is offered by + autoconf and currently unused.
+ +
--includedir=DIR
+
Install C header files in DIR. By default + includedir is set to + EPREFIX/include.
+ +
--infodir=DIR
+
Install info documentation in DIR. + 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 + EPREFIX/lib.
+ +
--libexecdir=DIR
+
Install the program executables (i.e., shared modules) in + DIR. By default libexecdir is set to + EPREFIX/libexec.
+ +
--localstatedir=DIR
+
Install modifiable single-machine data in DIR. + By default localstatedir is set to + PREFIX/var. This option is offered by + autoconf and currently unused.
+ +
--mandir=DIR
+
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, + apachectl, suexec, etc. which + are neccessary to run the Apache HTTP Server. By default + sbindir is set to + EPREFIX/sbin.
+ +
--sharedstatedir=DIR
+
Install modifiable architecture-independent data in DIR. + By default sharedstatedir is set to + PREFIX/com. This option is offered by + autoconf and currently unused.
+ +
--sysconfdir=DIR
+
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/conf.
+
+ + + +

System types

+ +

These options are used to cross-compile the Apache HTTP Server to run on + another system. In normal cases, when building and running the server on + the same system, these options are not used.

+ +
+
--build=BUILD
+
Defines the system type of the system on which the tools are being + built. It defaults to the result of the script + config.guess.
+ +
--host=HOST
+
Defines the system type of the system on which the server will run. + HOST defaults to BUILD.
+ +
--target=TARGET
+
Configure for building compilers for the system type + TARGET. It defaults to HOST. This option is + offered by autoconf and not necessary for the Apache HTTP + Server.
+
+ + +

Optional Features

+ +

These options are used to fine tune the features your HTTP server will + have.

+ +

General syntax

+

Generally you can use the following syntax to enable or disable a + feature:

+ +
+
--disable-FEATURE
+
Do not include FEATURE. This is the same as + --enable-FEATURE=no.
+ +
--enable-FEATURE[=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 + this explicitly.
+
+ +

Note

+ configure will not complain about + --enable-foo even if foo doesn't + exist, so you need to type carefully. +
+ + + +

Modules enabled by default

+

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 + mod_actions.
+ +
--disable-alias
+
Disable the mapping of requests to different parts of the + filesystem, which is provided by mod_alias.
+ +
--disable-asis
+
Disable support for as-is filetypes, which is provided by + mod_asis.
+ +
--disable-auth
+
Disable user-based access control provided by + mod_auth. This module provides for HTTP Basic + Authentication, where the usernames and passwords are stored in + plain text files.
+ +
--disable-autoindex
+
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 + mod_cgid by default. To disable CGI support use + this option.
+ +
--disable-charset-lite
+
Disable character set translation provided by + mod_charset_lite. This module will be installed by + default only on EBCDIC systems.
+ +
--disable-dir
+
Disable directory request handling provided by + mod_dir.
+ +
--disable-env
+
Disable setting and clearing of environment variables, which is + provided by mod_env.
+ + +
--disable-http
+
Disable the HTTP protocol handling. The http + module is a basic one, enabling the server to function as an + HTTP server. It is only useful to disable it if you want to use + 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.
+ +
--disable-imap
+
Disable support for server based imagemaps, which provided by + mod_imap.
+ +
--disable-include
+
Disable Server Side Includes provided by + mod_include.
+ +
--disable-log-config
+
Disable the logging configuration provided by + mod_log_config. You won't be able to log requests + 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.
+ +
--disable-negotiation
+
Disable content negotiation provided by + mod_negotiation.
+ +
--disable-setenvif
+
Disable support for basing environment variables on headers, + which is provided by mod_setenvif.
+ +
--disable-status
+
Disable the process/thread monitoring, which is provided by + mod_status.
+ +
--disable-userdir
+
Disable the mapping of requests to user-specific directories, + which is provided by mod_userdir.
+
+ + +

Modules, disabled by default

+

Some modules are compiled by default and have to be enabled + explicitly or by using the keywords most or + all (see --enable-mods-shared below for + further explanation) to be available. Therefore use the options + below.

+ +
+
--enable-auth-anon
+
Enable anonymous user access provided by + mod_auth_anon.
+ +
--enable-auth-dbm
+
mod_auth_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-auth-digest
+
Enable RFC2617 Digest authentication provided by + mod_auth_digest. This module uses plain text files + to store the credentials.
+ +
--enable-auth-ldap
+
Enable LDAP based authentication provided by + mod_auth_ldap.
+ +
--enable-cache
+
Enable dynamic file caching provided by + mod_cache. This experimental module may be + interesting for servers with high load or caching proxy servers. At + least one storage management module (e.g. + mod_disk_cache or mod_mem_cache) + is also necessary.
+ +
--enable-cern-meta
+
Enable the CERN-type meta files support provided by + mod_cern_meta.
+ +
--enable-charset-lite
+
Enable character set translation provided by + mod_charset_lite. This module will be installed by + default only on EBCDIC systems. On other systems, you have to enable + it.
+ +
--enable-dav
+
Enable the WebDAV protocol handling provided by + mod_dav. Support for filesystem resources is + provided by the seperate module mod_dav_fs. This + module is also automatically enabled with + --enable-dav.
+ Note: mod_dav can only be used together with the + http protocol module.
+ +
--enable-dav-fs
+
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-deflate
+
Enable deflate transfer encoding provided by + mod_deflate.
+ +
--enable-disk-cache
+
Enable disk caching provided by + mod_disk_cache.
+ +
--enable-expires
+
Enable Expires header control provided by + mod_expires.
+ +
--enable-ext-filter
+
Enable the external filter support provided by + mod_ext_filter.
+ +
--enable-file-cache
+
Enable the file cache provided by + mod_file_cache.
+ +
--enable-headers
+
Enable control of HTTP headers provided by + mod_headers.
+ +
--enable-info
+
Enable the server information provided by + mod_info.
+ +
--enable-ldap
+
Enable LDAP caching and connection pooling services provided by + mod_ldap.
+ +
--enable-logio
+
Enable logging of input and output bytes including headers provided + by mod_logio.
+ +
--enable-mem-cache
+
Enable memory caching provided by + mod_mem_cache.
+ +
--enable-mime-magic
+
Enable automatical determining of MIME types, which is provided by + mod_mime_magic.
+ +
--enable-isapi
+
Enable the isapi extension support provided by + mod_isapi.
+ +
--enable-proxy
+
Enable the proxy/gateway functionality provided by + mod_proxy. The proxying capabilities for + CONNECT, FTP and HTTP are + provided by the seperate modules mod_proxy_connect, + mod_proxy_ftp and mod_proxy_http. + These three modules are also automatically enabled with + --enable-proxy.
+ +
--enable-proxy-connect
+
Enable proxy support for CONNECT request handling, + which is provided by mod_proxy_connect. This module + is an extension for the mod_proxy module, so you + should also use --enable-proxy.
+ +
--enable-proxy-ftp
+
Enable proxy support for FTP requests, which is + provided by mod_proxy_ftp.. This module + is an extension for the mod_proxy module, so you + should also use --enable-proxy.
+ +
--enable-proxy-http
+
Enable proxy support for HTTP requests, which is + provided by mod_proxy_http. This module + is an extension for the mod_proxy module, so you + should also use --enable-proxy.
+ +
--enable-rewrite
+
Enable rule based URL manipulation provided by + mod_rewrite.
+ +
--enable-so
+
Enable DSO capability provided by mod_so. This + module will be automatically enabled if you use the + --enable-mods-shared option.
+ +
--enable-speling
+
Enable the functionality to correct common URL misspellings, which + is provided by mod_speling.
+ +
--enable-ssl
+
Enable support for SSL/TLS provided by + mod_ssl.
+ +
--enable-unique-id
+
Enable the generation of per-request unique ids, which is provided + by mod_unique_id.
+ +
--enable-usertrack
+
Enable user-session tracking provided by + mod_usertrack.
+ +
--enable-vhost-alias
+
Enable mass virtual hosting provided by + mod_vhost_alias.
+
+ + +

Modules for developers

+

The following modules are useful only for developers and testing + purposes and are disabled by default. Use the following options to + enable them. If you are not sure whether you need one of these + modules, omit them.

+ +
+ +
--enable-bucketeer
+
Enable the manipulation filter for buckets, which is provided by + mod_bucketeer.
+ + +
--enable-case-filter
+
Enable the example uppercase conversion output filter support of + mod_case_filter.
+ + +
--enable-case-filter-in
+
Enable the example uppercase conversion input filter support of + mod_case_filter_in.
+ +
--enable-echo
+
Enable the ECHO server provided by + mod_echo.
+ +
--enable-example
+
Enable the example and demo module + mod_example.
+ + +
--enable-optional-fn-export
+
Enable the example for an optional function exporter, which is + provided by mod_optional_fn_export.
+ + +
--enable-optional-fn-import
+
Enable the example for an optional function importer, which is + provided by mod_optional_fn_import.
+ + +
--enable-optional-hook-export
+
Enable the example for an optional hook exporter, which is provided + by mod_optional_hook_export.
+ + +
--enable-optional-hook-import
+
Enable the example optional hook importer, which is provided by + mod_optional_hook_import.
+
+ + +

MPMs and third-party modules

+

To add the necessary Multi Processing Module and additional third-party + modules use the following options:

+ +
+
--with-module=module-type:module-file[, + module-type:module-file]
+

Add one or more third-party modules to the list of statically linked + modules. The module source file module-file + will be searched in the modules/module-type + subdirectory of your Apache HTTP server source tree. If it is not found + there configure is considering module-file to be + an absolute file path and tries to copy the source file into the + module-type subdirectory. If the subdirectory doesn't + exist it will be created and populated with a standard + Makefile.in.

+

This option is useful to add small external modules consisting of + one source file. For more complex modules you should read the + vendor's documentation.

+

Note

+ If you want to build a DSO module instead of a statically linked + use apxs.
+
+ +
--with-mpm=MPM
+
Choose the process model for your server. You have to select + 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 + worker.
+
+ + +

Cumulative and other options

+
+
--enable-maintainer-mode
+
Turn on debugging and compile time warnings.
+ +
--enable-mods-shared=MODULE-LIST
+
+

Defines a list of modules to be enabled and build as dynamic + shared modules. This mean, these module have to be loaded + dynamically by using the LoadModule directive.

+

MODULE-LIST is a space separated list of modulenames + enclosed by quotation marks. The module names are given without the + preceding mod_. For example:

+

+ --enable-mods-shared='headers rewrite dav' +

+

Additionally you can use the special keywords all and + most. For example,

+

+ --enable-mods-shared=most +

+

will compile most modules and build them as DSO modules. +

+
+ +
--enable-modules=MODULE-LIST
+
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.
+ +
--enable-v4-mapped
+
Allow IPv6 sockets to handle IPv4 connections.
+ +
--with-port=PORT
+
This defines the port on which httpd will listen. + This port number is used when generating the configuration file + httpd.conf. The default is 80.
+ +
--with-program-name
+
Define an alternative executable name. The default is + httpd.
+
+ + + +

Optional packages

+

These options are used to define optional packages.

+ +

General syntax

+

Generally you can use the following syntax to define an optional + package:

+ +
+
--with-PACKAGE[=ARG]
+
Use the package PACKAGE. The default value for + ARG is yes.
+ +
--without-PACKAGE
+
Do not use the package PACKAGE. This is the same as + --with-PACKAGE=no. This option is provided by + autoconf but not very useful for the Apache HTTP + Server.
+
+ + + + +

Specific packages

+
+
--with-apr=DIR|FILE
+
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 + 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 + together with the HTTP server. If you want to use an already installed + 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 + exist within this directory or the subdirectory + bin.
+ +
--with-ssl=DIR
+
If mod_ssl has been enabled configure + searches for an installed OpenSSL. You can set the directory path + to the SSL/TLS toolkit instead.
+ +
--with-z=DIR
+
configure searches automatically for an installed + zlib library if your source configuration requires one + (e.g., when mod_deflate is enabled). You can set the + directory path to the compression library instead.
+
+ +

Several features of the Apache HTTP Server, including + mod_authn_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 + search for the include files and libraries of a GNU DBM + installation in the usual search paths. An explicit + path will cause configure to look in + path/lib and + 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 + installation.
+ +
--with-berkeley-db[=path]
+
Like --with-gdbm, but searches for a Berkeley DB + installation.
+
+ +

Note

+

The DBM options are provided by the APU and passed through to its + configuration script. They are useless when using an already + installed APU defined by --with-apr-util.

+

You may use more then one DBM implementation together with your + HTTP server. The appropriated DBM type will be configured within + the runtime configuration at each time.

+
+ + + +

Options for support programs

+
+
--enable-static-support
+
Build a statically linked version of the support binaries. This + means, a stand-alone executable will be built with all the necessary + libraries integrated. Otherwise the support binaries are linked + dynamically by default.
+ +
--enable-suexec
+
Use this option to enable suexec, which allows you to set + 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.
+
+ +

It is possible to create a statically linked binary of a single + support program by using the following options:

+ +
+
--enable-static-ab
+
Build a statically linked version of ab.
+ + +
--enable-static-checkgid
+
Build a statically linked version of checkgid.
+ +
--enable-static-htdbm
+
Build a statically linked version of htdbm.
+ +
--enable-static-htdigest
+
Build a statically linked version of htdigest.
+ +
--enable-static-htpasswd
+
Build a statically linked version of htpasswd.
+ +
--enable-static-logresolve
+
Build a statically linked version of logresolve.
+ +
--enable-static-rotatelogs
+
Build a statically linked version of rotatelogs.
+
+ +

suexec configuration options

+ +

The following options are used to fine tune the behavior of + suexec. See Configuring and installing suEXEC or further information.

+ +
+
--with-suexec-bin
+
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.
+ +
--with-suexec-docroot
+
This defines the directory tree under which suexec access is allowed for executables. Default value is + --datadir/htdocs.
+ +
--with-suexec-gidmin
+
Define this as the lowest GID allowed to be a target user for + suexec. The default value is 100.
+ +
--with-suexec-logfile
+
This defines the filename of the suexec logfile. + By default the logfile is named suexec_log and located in + --logfiledir.
+ +
--with-suexec-safepath
+
Define the value of the environment variable PATH to + be set for processes started by suexec. Default + value is /usr/local/bin:/usr/bin:/bin.
+ +
--with-suexec-userdir
+
This defines the subdirectory under the user's directory that + contains all executables for which suexec access + is allowed. This setting is necessary when you want to use + suexec together with user-specific directories (as + provided by mod_userdir). The default is + public_html.
+ +
--with-suexec-uidmin
+
Define this as the lowest UID allowed to be a target user for + suexec. The default value is 100.
+ +
--with-suexec-umask
+
Set umask for processes started by + suexec. It defaults to your system settings.
+
+ + +
top
+
+

Environment variables

+

There are some useful environment variables to override the choices made by + configure or to help it to find libraries and programs with + nonstandard names or locations.

+ + +
+
CC
+
Define the C compiler command to be used for compilation.
+ +
CFLAGS
+
Set C compiler flags you want to use for compilation.
+ +
CPP
+
Define the C preprocessor command to be used.
+ +
CPPFLAGS
+
Set C/C++ preprocessor flags, e.g. -Iincludedir + if you have headers in a nonstandard directory includedir.
+ +
LDFLAGS
+
Set linker flags, e.g. -Llibdir if you have + libraries in a nonstandard directory libdir.
+
+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/configure.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/configure.html.ko.euc-kr new file mode 100644 index 00000000..6d1ed229 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/configure.html.ko.euc-kr @@ -0,0 +1,932 @@ + + + +configure - ҽ Ʈ Ѵ - Apache HTTP Server + + + + + +
<-
+

configure - ҽ Ʈ Ѵ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

configure ũƮ Ư ÷ ġ + ϰ ġϱ ҽ Ʈ Ѵ. + ɼ Ͽ ϴ 䱸ǿ ° + ִ.

+ +

ҽ ֻ 丮 ִ ũƮ н + н ýۿ Ѵ. ٸ ÷ Ѵٸ + ÷ ϶.

+
+

+
top
+
+

+

configure ũƮ ֻ + 丮 ؾ Ѵ.

+ +

./configure [OPTION]... + [VAR=VALUE]...

+ +

ȯ溯 ( , CC, CFLAGS, + ...) Ϸ, VAR=VALUE + Ѵ. Ʒ ȯ溯 + Ѵ.

+
top
+
+

ɼ

+ + +

ɼ

+ +

ɼǵ configure ü ൿ + ش.

+ +
+
-C
+
--config-cache
+
--cache-file=config.cache .
+ +
--cache-file=FILE
+
˻ FILE Ͽ ijѴ. + ⺻ ˻ ʴ´.
+ +
-h
+
--help [short|recursive]
+
ϰ Ѵ. short ƱԸƮ + Ű Ư ɼǸ Ѵ. recursive + ƱԸƮ Ե Ű ª + ش.
+ +
-n
+
--no-create
+
configure ũƮ , + ʴ´. ɼ makefile + ˻ Ȯغ ϴ.
+ +
-q
+
--quiet
+
߿ checking ... + ʴ´.
+ +
--srcdir=DIR
+
DIR 丮 ҽ 丮 Ѵ. + ⺻ configure ִ 丮 Ȥ 丮 + ..̴.
+ +
--silent
+
--quiet .
+ +
-V
+
--version
+
۱ ϰ Ѵ.
+
+ + +

ġ 丮

+ +

ɼǵ ġ 丮 Ѵ. ġ ġ + (layout) ٸ.

+ +
+
--prefix=PREFIX
+
ŰĿ PREFIX ġѴ. + ⺻ /usr/local/apache2̴.
+ +
--exec-prefix=EPREFIX
+
ŰĿ EPREFIX ġѴ. + ⺻ PREFIX 丮̴.
+
+ +

make install + /usr/local/apache2/bin, + /usr/local/apache2/lib ġ + ġѴ. --prefix=$HOME + --prefix ɼ Ͽ + /usr/local/apache2 ̿ ġ 丮 + ִ.

+ +

+
+
--enable-layout=LAYOUT
+
ġ ġ LAYOUT + ҽڵ ũƮ Ѵ. ϸ + ġ ġ ִ. + config.layout Ͽ ְ, + ̸ Ͽ ִ. Ͽ + <Layout + FOO>...</Layout> еǸ, + κ FOO ̸ Ÿ. + ⺻ Apache̴.
+
+ + +

ġ 丮 + ڼ

+ +

ġ 丮 Ѵٸ Ʒ ɼ Ѵ. + 丮 ⺻ autoconf ϸ, + ٸ ϶.

+ +
+ +
--bindir=DIR
+
DIR ġѴ. + Ͽ Ʈ ڿ + htpasswd dbmmanage + α׷ Եȴ. DIR ⺻ + EPREFIX/bin̴.
+ +
--datadir=DIR
+
Ű б ڷḦ DIR + ġѴ. datadir ⺻ + PREFIX/share̴. + autoconf ɼ + ʴ´.
+ +
--includedir=DIR
+
C DIR ġѴ. + includedir ⺻ + EPREFIX/include̴.
+ +
--infodir=DIR
+
info DIR ġѴ. + infodir ⺻ + PREFIX/info̴. ɼ + ʴ´.
+ +
--libdir=DIR
+
Ʈڵ ̺귯 DIR ġѴ. + libdir ⺻ + EPREFIX/lib̴.
+ +
--libexecdir=DIR
+
α׷ (, ) DIR + ġѴ. libexecdir ⺻ + EPREFIX/libexec̴.
+ +
--localstatedir=DIR
+
Ǵ ӽ DIR ġѴ. + localstatedir ⺻ + PREFIX/var̴. + autoconf ɼ + ʴ´.
+ +
--mandir=DIR
+
man DIR ġѴ. + mandir ⺻ + EPREFIX/man̴.
+ +
--oldincludedir=DIR
+
gcc ƴ Ϸ C DIR + ġѴ. oldincludedir ⺻ + /usr/include̴. autoconf + ɼ ʴ´.
+ +
--sbindir=DIR
+
ý ڿ DIR ġѴ. + ý ڿ ̶ ġ ϴµ + ʿ httpd, apachectl, + suexec α׷ Ѵ. + sbindir ⺻ + EPREFIX/sbin̴.
+ +
--sharedstatedir=DIR
+
Ǵ Ű ڷḦ DIR + ġѴ. sharedstatedir ⺻ + PREFIX/com̴. + autoconf ɼ + ʴ´.
+ +
--sysconfdir=DIR
+
httpd.conf, + mime.types б ӽ ڷḦ + DIR ġѴ. sysconfdir + ⺻ PREFIX/etc̴.
+
+ + + +

ý

+ +

ٸ ýۿ ġ + ϱ(cross-compile)ϱ ɼǵ̴. + ýۿ ϴ Ϲ , + ɼ ʴ´.

+ +
+
--build=BUILD
+
ϴ ý Ѵ. ⺻ + config.guess ũƮ ̴.
+ +
--host=HOST
+
ý Ѵ. HOST + ⺻ BUILD̴.
+ +
--target=TARGET
+
TARGET ý Ϸ 鶧 + Ѵ. ⺻ HOST̴. + autoconf ɼ ġ ʹ + .
+
+ + +

+ +

ɼ Ѵ.

+ +

Ϲ

+

Ϲ Ͽ ϰ :

+ +
+
--disable-FEATURE
+
FEATURE . + --enable-FEATURE=no .
+ +
--enable-FEATURE[=ARG]
+
FEATURE Ѵ. ARG + ⺻ yes̴.
+ +
--enable-MODULE=shared
+
ش DSO Ѵ.
+ +
--enable-MODULE=static
+
ϴ ⺻ ũȴ. + ɼ ũ Ѵ.
+
+ +

+ configure foo + --enable-foo ص + ˷ Ƿ ؼ Էؾ Ѵ. +
+ + + +

⺻ ϴ

+

 ⺻ ϵDZ⶧ ʴ´ٸ + Ѵ. ɼ Ư + Ѵ.

+ +
+
--disable-actions
+
mod_actions ϴ û + ൿ ʴ´.
+ +
--disable-alias
+
mod_alias ϴ û + Ͻý ٸ κ ϴ + ʴ´.
+ +
--disable-asis
+
mod_asis ϴ as-is + ʴ´.
+ +
--disable-auth
+
mod_auth ϴ ں + ʴ´. ڸ ȣ + Ϲ Ͽ ϴ HTTP Basic Authentication + Ѵ.
+ +
--disable-autoindex
+
mod_autoindex ϴ 丮 + ʴ´.
+ +
--disable-access
+
mod_access ϴ ȣƮ + ʴ´.
+ +
--disable-cgi
+
񾲷 MPM ϴ CGI ũƮ ϴ + mod_cgi ⺻ Ѵ. + ɼ ϸ CGI ʴ´.
+ +
--disable-cgid
+
MPM worker + perchild ϴ ⺻ + mod_cgid CGI ũƮ Ѵ. + ɼ ϸ CGI ʴ´.
+ +
--disable-charset-lite
+
mod_charset_lite ϴ + ȯ ʴ´. EBCDIC ýۿ + ⺻ Ѵ.
+ +
--disable-dir
+
mod_dir ϴ 丮 û + ó ʴ´.
+ +
--disable-env
+
mod_env ϴ ȯ溯 / + ʴ´.
+ + +
--disable-http
+
HTTP ó ʴ´. http + ϴµ ⺻ ̴. + ٸ 쿡 + ϴ. ڽ ϴ Ȯ + Ѵٸ ɼ +
+ : ׻ ũȴ.
+ +
--disable-imap
+
mod_imap ϴ imagemap + ʴ´.
+ +
--disable-include
+
mod_include ϴ Server Side + Includes ʴ´.
+ +
--disable-log-config
+
mod_log_config ϴ α + ʴ´. û + α׿ .
+ +
--disable-mime
+
mod_mime û ϸ Ȯڿ + ൿ (mime-type, , , + ڵ) Ѵ. ( Ͽ) Ȯڸ + MIME ʴ Ϲ õ ʴ´.
+ +
--disable-negotiation
+
mod_negotiation ϴ + ʴ´.
+ +
--disable-setenvif
+
mod_setenvif ϴ + ȯ溯 ϴ ʴ´.
+ +
--disable-status
+
mod_status ϴ μ/ + ʴ´.
+ +
--disable-userdir
+
mod_userdir ϴ û ں + 丮 ϴ ʴ´.
+
+ + +

⺻ ʴ

+

⺻ ϵǴ ⵵ , Ϸ + Ȥ most all Ű带 + Ͽ ؾ ϴ ִ. ׷ + Ʒ ɼǵ Ѵ.

+ +
+
--enable-auth-anon
+
mod_auth_anon ϴ ͸ + Ѵ.
+ +
--enable-auth-dbm
+
mod_auth_dbm ڸ ȣ + DBM ͺ̽ Ͽ ϴ HTTP Basic + Authentication Ѵ. Ϸ + ɼ Ѵ.
+ +
--enable-auth-digest
+
mod_auth_digest ϴ RFC2617 + Digest authentication Ѵ. + Ϲ Ͽ Ѵ.
+ +
--enable-auth-ldap
+
mod_auth_ldap ϴ LDAP + Ѵ.
+ +
--enable-cache
+
mod_cache ϴ ϴ + ij Ѵ. ſ ϰ ų Ͻ + ijϴ + ִ. ּ Ѱ (storage management + module) ( , mod_disk_cache + mod_mem_cache) ؾ Ѵ.
+ +
--enable-cern-meta
+
mod_cern_meta ϴ CERN Ÿ + Ѵ.
+ +
--enable-charset-lite
+
mod_charset_lite ϴ + ȯ Ѵ. EBCDIC ýۿ + ⺻ Եȴ. ٸ ýۿ Խ + Ѵ.
+ +
--enable-dav
+
mod_dav ϴ WebDAV + ó Ѵ. mod_dav_fs + Ͻý ڿ Ѵ. + --enable-dav ϸ ڵ Ѵ.
+ : mod_dav http + ؾ Ѵ.
+ +
--enable-dav-fs
+
mod_dav_fs ϴ DAV Ͻý + ڿ Ѵ. + mod_dav ̱ + --enable-dav ؾ Ѵ.
+ +
--enable-deflate
+
mod_deflate ϴ + ڵ Ѵ.
+ +
--enable-disk-cache
+
mod_disk_cache ϴ ũ + ij Ѵ.
+ +
--enable-expires
+
mod_expires ϴ Expires + Ѵ.
+ +
--enable-ext-filter
+
mod_ext_filter ϴ ܺ + Ѵ.
+ +
--enable-file-cache
+
mod_file_cache ϴ + ij Ѵ.
+ +
--enable-headers
+
mod_headers ϴ HTTP + Ѵ.
+ +
--enable-info
+
mod_info ϴ + Ѵ.
+ +
--enable-ldap
+
mod_ldap ϴ LDAP ij̰ + Ǯ Ѵ.
+ +
--enable-logio
+
mod_logio ϴ α׿ + Ʈ ϴ Ѵ.
+ +
--enable-mem-cache
+
mod_mem_cache ϴ ޸ + ij Ѵ.
+ +
--enable-mime-magic
+
mod_mime_magic ϴ MIME + type ڵ ν Ѵ.
+ +
--enable-isapi
+
mod_isapi ϴ isapi Ȯ + Ѵ.
+ +
--enable-proxy
+
mod_proxy ϴ Ͻ/Ʈ + Ѵ. CONNECT, FTP, + HTTP Ͻ + mod_proxy_connect, + mod_proxy_ftp, + mod_proxy_http + Ѵ. --enable-proxy ϸ + ڵ Ѵ.
+ +
--enable-proxy-connect
+
mod_proxy_connect ϴ + CONNECT û Ͻ + Ѵ. mod_proxy + Ȯ̹Ƿ, --enable-proxy ؾ + Ѵ.
+ +
--enable-proxy-ftp
+
mod_proxy_ftp ϴ + FTP û Ͻ Ѵ. + mod_proxy Ȯ̹Ƿ, + --enable-proxy ؾ Ѵ.
+ +
--enable-proxy-http
+
mod_proxy_http ϴ + HTTP û Ͻ Ѵ. + mod_proxy Ȯ̹Ƿ, + --enable-proxy ؾ Ѵ.
+ +
--enable-rewrite
+
mod_rewrite ϴ Ģ + URL Ѵ.
+ +
--enable-so
+
mod_so ϴ DSO Ѵ. + --enable-mods-shared ɼ ϸ + ڵ Ѵ.
+ +
--enable-speling
+
mod_spelling ϴ URL + Ϲ Ǽ ġ Ѵ.
+ +
--enable-ssl
+
mod_ssl ϴ SSL/TLS + Ѵ.
+ +
--enable-unique-id
+
mod_unique_id ϴ û + ĺڸ Ѵ.
+ +
--enable-usertrack
+
mod_usertrack ϴ ڼ + Ѵ.
+ +
--enable-vhost-alias
+
mod_vhost_alias ϴ 뷮 + ȣƮ Ѵ.
+
+ + +

ڸ

+

׽Ʈ ڿԸ ϸ, ⺻ + ʴ´. Ϸ ɼ Ѵ. + ʿ Ȯġʴٸ .

+ +
+ +
--enable-bucketeer
+
mod_bucketeer ϴ Ŷ(bucket) + ͸ Ѵ.
+ + +
--enable-case-filter
+
mod_case_filter 빮ںȯ + ߺ Ѵ.
+ + +
--enable-case-filter-in
+
mod_case_filter_in 빮ںȯ Է + ߺ Ѵ.
+ +
--enable-echo
+
mod_echo ϴ ECHO + Ѵ.
+ +
--enable-example
+
ߺ mod_example + Ѵ.
+ + +
--enable-optional-fn-export
+
mod_optional_fn_export ϴ + Լ Ʈ(exporter) Ѵ.
+ + +
--enable-optional-fn-import
+
mod_optional_fn_import ϴ + Լ Ʈ(importer) Ѵ.
+ + +
--enable-optional-hook-export
+
mod_optional_hook_export ϴ + (hook) Ʈ Ѵ.
+ + +
--enable-optional-hook-import
+
mod_optional_hook_import ϴ + Ʈ Ѵ.
+
+ + +

MPM ڰ

+

ɼ Ͽ ʿ ó ڰ + ߰Ѵ:

+ +
+
--with-module=module-type:module-file +
+

ڰ ũ Ͽ + ߰Ѵ. ġ ҽ Ʈ + modules/module-type + ҽ module-file ã⶧ + װ ҽ ־ Ѵ. װ ٸ + configure module-file + ϰζ ϰ ҽ + module-type 丮 Ϸ + õѴ.

+

ɼ ҽ Ѱ ܺ ߰ϴµ + ϴ. ߻簡 + ؾ Ѵ.

+

+ ũ ƴ DSO Ѵٸ + apxs ϶.
+
+ +
--with-mpm=MPM
+
۹ Ѵ. Ȯ Ѱ ó ؾ Ѵ. + ϴ ü ⺻ MPM Ѵ. + ִ MPM beos, + leader, mpmt_os2, + perchild, prefork, + threadpool, worker + ִ.
+
+ + +

Ÿ ɼ

+
+
--enable-maintainer-mode
+
Ͻ ۵Ѵ.
+ +
--enable-mods-shared=MODULE-LIST
+
+

Ѵ. , + LoadModule þ + Ͽ о鿩 Ѵ.

+

MODULE-LIST + ǥ ̴. տ + mod_ . :

+

+ --enable-mods-shared='headers rewrite dav' +

+

, Ư Ű all most + ִ. ,

+

+ --enable-mods-shared=most +

+

κ DSO Ѵ. +

+
+ +
--enable-modules=MODULE-LIST
+
--enable-mods-shared , + ɼ ũѴ. , + httpd ϸ + ִ. LoadModule о + ʿ䰡 .
+ +
--enable-v4-mapped
+
IPv6 IPv4 ó ֵ Ѵ.
+ +
--with-port=PORT
+
httpd ٸ Ʈ Ѵ. + Ʈȣ httpd.conf 鶧 + δ. ⺻ 80̴.
+ +
--with-program-name
+
ٸ ϸ Ѵ. ⺻ + httpd̴.
+
+ + + +

߰ Ű

+

ɼ ߰ Ű Ѵ.

+ +

Ϲ

+

Ϲ Ͽ ߰ Ű + ٷ:

+ +
+
--with-PACKAGE[=ARG]
+
Ű PACKAGE Ѵ. + ARGyes̴.
+ +
--without-PACKAGE
+
Ű PACKAGE ʴ´. + --with-PACKAGE=no . + autoconf ɼ ġ ʹ + 谡 .
+
+ + + + +

Ư Ű

+
+
--with-apr=DIR|FILE
+
httpd ҽ Ե Apache Portable + Runtime (APR) ڵ ϵȴ. + ̹ ġ APR ϰ ʹٸ + configure apr-config + ũƮ θ ˷־ Ѵ. APR ġ , + ϸ, 丮 ִ. 丮 + 丮 丮 bin + apr-config ־ Ѵ.
+ +
--with-apr-util=DIR|FILE
+
httpd ҽ Ե Apache Portable + Runtime Utilities (APU) ڵ + ϵȴ. ̹ ġ APU ϰ ʹٸ + configure apu-config + ũƮ θ ˷־ Ѵ. APU ġ , + ϸ, 丮 ִ. 丮 + 丮 丮 bin + apu-config ־ Ѵ.
+ +
--with-ssl=DIR
+
mod_ssl ϴ + configure ġ OpenSSL ã´. + ɼ Ͽ SSL/TLS 丮θ + ˷ ִ.
+ +
--with-z=DIR
+
(mod_deflate ϴ + ) ʿϴٸ ڵ configure + ġ zlib ̺귯 ã´. + ɼ Ͽ ̺귯 丮θ + ˷ ִ.
+
+ +

mod_authn_dbm + mod_rewrite DBM RewriteMap ġ + Ϻ ã Ű/ + ͺ̽ Ѵ. APU SDBM ־ + ּ ͺ̽ ִ. ٸ + ͺ̽ ϰ ʹٸ Ʒ ɼ Ѵ:

+ +
+
--with-gdbm[=path]
+
path , + configure Ϲ ˻ο ġ + GNU DBM ϰ ̺귯 ã´. + path ϸ configure + path/lib + path/include ʿ + ã´. path ο + ̺귯 θ ݷ ̿ ΰ + ִ.
+ +
--with-ndbm[=path]
+
--with-gdbm ġ New DBM + ã´.
+ +
--with-berkeley-db[=path]
+
--with-gdbm ġ Berkeley + DB ã´.
+
+ +

+

DBM ɼ APU ϸ APU ũƮ + ޵ȴ. ׷ --with-apr-util Ͽ + ̹ ġ APU Ѵٸ DBM ɼ ҿ .

+

DBM ִ. + DBM ִ.

+
+ + + +

α׷ ɼ

+
+
--enable-static-support
+
α׷ ũ Ϸ . + , ʿ ̺귯 ϵ + Ѵ. ɼ ⺻ + α׷ ũѴ.
+ +
--enable-suexec
+
ϴ μ uid gid ϴ + suexec Ϸ + ɼ Ѵ. suid Ȼ + Ѵٸ ɼ . + suexec ϴ ɼ + Ʒ Ѵ.
+
+ +

ɼ Ͽ α׷ ũ + ִ:

+ +
+
--enable-static-ab
+
ab ũ + Ϸ Ѵ.
+ + +
--enable-static-checkgid
+
checkgid ũ Ϸ + Ѵ.
+ + +
--enable-static-htdbm
+
htdbm ũ Ϸ + Ѵ.
+ +
--enable-static-htdigest
+
htdigest + ũ Ϸ Ѵ.
+ +
--enable-static-htpasswd
+
htpasswd + ũ Ϸ Ѵ.
+ +
--enable-static-logresolve
+
logresolve + ũ Ϸ Ѵ.
+ +
--enable-static-rotatelogs
+
rotatelogs + ũ Ϸ Ѵ.
+
+ +

suexec ɼ

+

Ʒ ɼ suexec ڼ Ѵ. + ڼ suEXEC + ġ ϶.

+ +
+
--with-suexec-bin
+
suexec θ Ѵ. ⺻ + --sbindir̴ (ġ 丮 ڼ + ).
+ +
--with-suexec-caller
+
suexec ڸ Ѵ. + ڴ httpd ϴ ڿ + ƾ Ѵ.
+ +
--with-suexec-docroot
+
suexec ɼ 丮 + Ʒ ִ ϸ ִ. ⺻ + --datadir/htdocs.
+ +
--with-suexec-gidmin
+
suexec ּ GID Ѵ. + ⺻ 100̴.
+ +
--with-suexec-logfile
+
suexec αϸ Ѵ. αϸ + ⺻ suexec_log̰, + --logfiledir ġѴ.
+ +
--with-suexec-safepath
+
suexec ϴ μ + PATH ȯ溯 Ѵ. ⺻ + /usr/local/bin:/usr/bin:/bin̴.
+ +
--with-suexec-userdir
+
suexec + ִ ( ִ) 丮 Ѵ. + suexec + (mod_userdir ϴ) ں + 丮 Ҷ ʿϴ. ⺻ + public_html̴.
+ +
--with-suexec-uidmin
+
suexec ּ UID Ѵ. + ⺻ 100̴.
+ +
--with-suexec-umask
+
suexec ϴ μ + umask Ѵ. ⺻ ϴ ý + ⺻ .
+
+ + +
top
+
+

ȯ溯

+

configure ϰų ʿ ٸ + ̸̳ ġ ִ ̺귯 α׷ ã ִ + ȯ溯 ִ.

+ + +
+
CC
+
Ͽ C Ϸ ɾ Ѵ.
+ +
CFLAGS
+
϶ ϱ ٶ C Ϸ ɼ Ѵ.
+ +
CPP
+
C ó ɾ Ѵ.
+ +
CPPFLAGS
+
C/C++ ó ɼ. , ʿ ޸ + includedir 丮 ִٸ + -Iincludedir Ѵ.
+ +
LDFLAGS
+
Ŀ ɼ. , ̺귯 ʿ ޸ + libdir 丮 ִٸ + -Llibdir Ѵ.
+
+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/configure.html.tr.utf8 b/rubbos/app/apache2/manual/programs/configure.html.tr.utf8 new file mode 100644 index 00000000..39b48f5c --- /dev/null +++ b/rubbos/app/apache2/manual/programs/configure.html.tr.utf8 @@ -0,0 +1,989 @@ + + + +configure - kaynak ağacını yapılandırır - Apache HTTP Sunucusu + + + + + +
<-
+

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/libexec 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. + sysconfdir için PREFIX/conf + öntanımlı dizindir.
+
+ + + +

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
+
mod_auth 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-access
+
mod_access modülü tarafından sağlanan konağa + dayalı erişim denetimi iptal edilir.
+ +
--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 veya perchild çok + evreli MPM’leri 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-imap
+
mod_imap 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-auth-anon
+
mod_auth_anon modülünün sağladığı anonim + kullanıcı erişimi etkin kılınır.
+ +
--enable-auth-dbm
+
mod_auth_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-auth-ldap
+
mod_auth_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. CONNECT, + FTP ve HTTP yetenekleri ayrı olarak + mod_proxy_connect, mod_proxy_ftp + ve mod_proxy_http modülleri tarafından sağlanır. + Bu üç modül bu seçenekle kendiliğinden etkin olur.
+ +
--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, leader, + mpmt_os2, perchild, + prefork, threadpool 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.

+
+ +
--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ülü 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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/dbmmanage.html b/rubbos/app/apache2/manual/programs/dbmmanage.html new file mode 100644 index 00000000..dcbee7ab --- /dev/null +++ b/rubbos/app/apache2/manual/programs/dbmmanage.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: dbmmanage.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/dbmmanage.html.en b/rubbos/app/apache2/manual/programs/dbmmanage.html.en new file mode 100644 index 00000000..bd533d1f --- /dev/null +++ b/rubbos/app/apache2/manual/programs/dbmmanage.html.en @@ -0,0 +1,193 @@ + + + +dbmmanage - Manage user authentication files in DBM format - Apache HTTP Server + + + + + +
<-
+

dbmmanage - Manage user authentication files in DBM format

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

dbmmanage is used to create and update the DBM format files + used to store usernames and password for basic authentication of HTTP users + via mod_auth_dbm. + Resources available from the Apache HTTP server can be restricted to just + the users listed in the files created by dbmmanage. This + program can only be used when the usernames are stored in a DBM file. To + use a flat-file database see htpasswd.

+ +

This manual page only lists the command line arguments. For details of + the directives necessary to configure user authentication in + httpd see the httpd manual, which is part of + the Apache distribution or can be found at http://httpd.apache.org/.

+
+ +
top
+
+

Synopsis

+

dbmmanage [ encoding ] + filename add|adduser|check|delete|update + username + [ encpasswd + [ group[,group...] + [ comment ] ] ]

+ +

dbmmanage filename + view [ username ]

+ +

dbmmanage filename import

+
top
+
+

Options

+
+
filename
+
The filename of the DBM format file. Usually without the extension + .db, .pag, or .dir.
+ +
username
+
The user for which the operations are performed. The username + may not contain a colon (:).
+ +
encpasswd
+
This is the already encrypted password to use for the + update and add commands. You may use a hyphen + (-) if you want to get prompted for the password, but fill + in the fields afterwards. Additionally when using the update + command, a period (.) keeps the original password + untouched.
+ +
group
+
A group, which the user is member of. A groupname may not contain a + colon (:). You may use a hyphen (-) if you don't + want to assign the user to a group, but fill in the comment field. + Additionally when using the update command, a period + (.) keeps the original groups untouched.
+ +
comment
+
This is the place for your opaque comments about the user, like + realname, mailaddress or such things. The server will ignore this + field.
+
+ +

Encodings

+
+
-d
+
crypt encryption (default, except on Win32, Netware)
+ +
-m
+
MD5 encryption (default on Win32, Netware)
+ +
-s
+
SHA1 encryption
+ +
-p
+
plaintext (not recommended)
+
+ + +

Commands

+
+
add
+
Adds an entry for username to filename using the + encrypted password encpasswd. + +

dbmmanage passwords.dat add rbowen foKntnEF3KSXA

+
+ +
adduser
+
Asks for a password and then adds an entry for username to + filename. + +

dbmmanage passwords.dat adduser krietz

+
+ +
check
+
Asks for a password and then checks if username is in + filename and if it's password matches the specified one. + +

dbmmanage passwords.dat check rbowen

+
+ +
delete
+
Deletes the username entry from filename. + +

dbmmanage passwords.dat delete rbowen

+
+ +
import
+
Reads username:password entries + (one per line) from STDIN and adds them to + filename. The passwords already have to be crypted.
+ +
update
+
Same as the adduser command, except that it makes + sure username already exists in filename. + +

dbmmanage passwords.dat update rbowen

+
+ +
view
+
Just displays the contents of the DBM file. If you specify a + username, it displays the particular record only. + +

dbmmanage passwords.dat view

+
+
+ +
top
+
+

Bugs

+

One should be aware that there are a number of different DBM file formats + in existence, and with all likelihood, libraries for more than one format + may exist on your system. The three primary examples are SDBM, NDBM, the GNU + project's GDBM, and Berkeley DB 2. Unfortunately, all these libraries use + different file formats, and you must make sure that the file format used + by filename is the same format that dbmmanage + expects to see. dbmmanage currently has no way of determining + what type of DBM file it is looking at. If used against the wrong format, + will simply return nothing, or may create a different DBM file with a + different name, or at worst, it may corrupt the DBM file if you were + attempting to write to it.

+ +

dbmmanage has a list of DBM format preferences, defined by + the @AnyDBM::ISA array near the beginning of the program. Since + we prefer the Berkeley DB 2 file format, the order in which + dbmmanage will look for system libraries is Berkeley DB 2, + then NDBM, then GDBM and then SDBM. The first library found will be the + library dbmmanage will attempt to use for all DBM file + transactions. This ordering is slightly different than the standard + @AnyDBM::ISA ordering in Perl, as well as the ordering used by + the simple dbmopen() call in Perl, so if you use any other + utilities to manage your DBM files, they must also follow this preference + ordering. Similar care must be taken if using programs in other languages, + like C, to access these files.

+ +

One can usually use the file program supplied with most + Unix systems to see what format a DBM file is in.

+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/dbmmanage.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/dbmmanage.html.ko.euc-kr new file mode 100644 index 00000000..ce51e388 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/dbmmanage.html.ko.euc-kr @@ -0,0 +1,174 @@ + + + +dbmmanage - DBM Ѵ - Apache HTTP Server + + + + + +
<-
+

dbmmanage - DBM Ѵ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

dbmmanage HTTP basic authentication + ڸ ȣ ϴ DBM + Ѵ. ġ ڿ dbmmanage + Ͽ ڿԸ ִ. ڸ + DBM Ͽ ϵ α׷ ִ. + Ϲ ͺ̽ Ϸ htpasswd ϶.

+ +

manpage ɼǸ Ѵ. httpd ϴ þ + ġ Եְ http://httpd.apache.org/ + ִ ġ ϶.

+
+ +
top
+
+

+

dbmmanage [ encoding ] + filename add|adduser|check|delete|update + username + [ encpasswd + [ group[,group...] + [ comment ] ] ]

+ +

dbmmanage filename + view [ username ]

+ +

dbmmanage filename import

+
top
+
+

ɼ

+
+
filename
+
DBM ϸ. .db, + .pag, .dir Ȯڸ .
+ +
username
+
۾ ڸ. username ݷ(:) + .
+ +
encpasswd
+
update add ɿ + ̹ ȣȭ ȣ̴. ȣ ߿ ϰ + ȣ(-) Ѵ. , update + Ҷ ħǥ(.) ϸ + ȣ ״ д.
+ +
group
+
ڰ ׷. ׷ ݷ(:) + . ڸ ׷쿡 ߰ + ä ʹٸ ȣ(-) Ѵ. , + update Ҷ ħǥ(.) + Ѵٸ ׷ ״ д.
+ +
comment
+
̸, ּ ڿ ̴. + ׸ Ѵ.
+
+ +

ڵ

+
+
-d
+
crypt ȣȭ (Win32 Netware ƴ϶ ⺻)
+ +
-m
+
MD5 ȣȭ (Win32 Netware ⺻)
+ +
-s
+
SHA1 ȣȭ
+ +
-p
+
ȣ ״ (õ )
+
+ + +

+
+
add
+
ȣȭ ȣ encpasswd Ͽ + filename username ׸ ߰Ѵ.
+ +
adduser
+
ȣ  filename + username ׸ ߰Ѵ.
+ +
check
+
ȣ  filename + username ְ ȣ ġϴ ˻Ѵ.
+ +
delete
+
filename username ׸ + Ѵ.
+ +
import
+
STDIN + username:password ׸ + (ٿ ϳ) о filename ߰Ѵ. + ȣ ̹ ȣȭ־ Ѵ.
+ +
update
+
adduser ɰ , + filename ̹ username ִ + ȮѴ.
+ +
view
+
DBM Ѵ. username + ϸ Ư ׸ Ѵ.
+
+ +
top
+
+

+

ٸ DBM ĵ ְ ýۿ + Ŀ ̺귯 ؾ Ѵ. + ǥ װ SDBM, NDBM, GNU Ʈ GDBM, + Berkeley DB 2̴. ̺귯 ٸ + Ѵ. ׷ filename ϴ + dbmmanage ϴ İ + Ȯؾ Ѵ. dbmmanage DBM + ˾Ƴ Ѵ. ٸ ϸ ƹϵ ʰų, + ٸ ̸ DBM ų, ־ Ͽ + DBM ĥ ִ.

+ +

dbmmanage α׷ պκп ִ + @AnyDBM::ISA 迭 DBM ȣ̴. + 츮 Berkeley DB 2 ȣϹǷ + dbmmanage ý ̺귯 ã + Berkeley DB 2, NDBM, GDBM, SDBM ̴. dbmmanage + ã ̺귯 Ͽ DBM ۾ + Ѵ. Perl dbmopen() ȣ + ϴ Perl ǥ @AnyDBM::ISA + ٸ. ׷ ٸ Ͽ DBM Ѵٸ + Ѵ. C ٸ ۼ α׷ + Ͽ ٷ 쿡 .

+ +

κ н ýۿ file α׷ + DBM Ȯ ִ.

+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/dbmmanage.html.tr.utf8 b/rubbos/app/apache2/manual/programs/dbmmanage.html.tr.utf8 new file mode 100644 index 00000000..76168af2 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/dbmmanage.html.tr.utf8 @@ -0,0 +1,209 @@ + + + +dbmmanage - DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu + + + + + +
<-
+

dbmmanage - DBM biçemli kullanıcı kimlik doğrulama dosyalarını yönetir

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ +

dbmmanage, + mod_auth_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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htdbm.html b/rubbos/app/apache2/manual/programs/htdbm.html new file mode 100644 index 00000000..9adf3229 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdbm.html @@ -0,0 +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/rubbos/app/apache2/manual/programs/htdbm.html.en b/rubbos/app/apache2/manual/programs/htdbm.html.en new file mode 100644 index 00000000..08d9e536 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdbm.html.en @@ -0,0 +1,283 @@ + + + +htdbm - Manipulate DBM password databases - Apache HTTP Server + + + + + +
<-
+

htdbm - Manipulate DBM password databases

+
+

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 + documentation for more information about these DBM files.

+
+ +
top
+
+

Synopsis

+

htdbm + [ -TDBTYPE ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + [ -x ] + filename username

+ +

htdbm -b + [ -TDBTYPE ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + filename username password

+ +

htdbm -n + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + username

+ +

htdbm -nb + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + username password

+ +

htdbm -v + [ -TDBTYPE ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + filename username

+ +

htdbm -vb + [ -TDBTYPE ] + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -t ] + [ -v ] + filename username password

+ +

htdbm -x + [ -TDBTYPE ] + [ -m | + -d | + -p | + -s ] + filename username

+ +

htdbm -l + [ -TDBTYPE ] +

+
top
+
+

Options

+
+
-b
+
Use batch mode; i.e., get the password from the command line + rather than prompting for it. This option should be used with extreme care, + since the password is clearly visible on the command + line.
+ +
-c
+
Create the passwdfile. If passwdfile already + exists, it is rewritten and truncated. This option cannot be combined with + the -n option.
+ +
-n
+
Display the results on standard output rather than updating a + database. This option changes the syntax of the command line, since the + passwdfile argument (usually the first 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.
+ +
-d
+
Use crypt() encryption for passwords. The default on all + platforms but Windows, Netware and TPF. Though possibly supported by + htdbm on all platforms, it is not supported by the + httpd server on Windows, Netware and TPF.
+ +
-s
+
Use SHA encryption for passwords. Facilitates migration from/to Netscape + servers using the LDAP Directory Interchange Format (ldif).
+ +
-p
+
Use plaintext passwords. Though htdbm will support + creation on all platforms, the httpd daemon will + only accept plain text passwords on Windows, Netware and TPF.
+ +
-l
+
Print each of the usernames and comments from the database on + stdout.
+ +
-t
+
Interpret the final parameter as a comment. When this option is + specified, an additional string can be appended to the command line; this + string will be stored in the "Comment" field of the database, associated + with the specified username.
+ +
-v
+
Verify the username and password. The program will print a message + indicating whether the supplied password is valid. If the password is + invalid, the program exits with error code 3.
+ +
-x
+
Delete user. If the username exists in the specified DBM file, it + will be deleted.
+ +
filename
+
The filename of the DBM format file. Usually without the extension + .db, .pag, or .dir. If + -c is given, the DBM file is created if it does not already + exist, or updated if it does exist.
+ +
username
+
The username to create or update in passwdfile. If + username does not exist in this file, an entry is added. If it + does exist, the password is changed.
+ +
password
+
The plaintext password to be encrypted and stored in the DBM file. + Used only with the -b flag.
+ +
-TDBTYPE
+
Type of DBM file (SDBM, GDBM, DB, or "default").
+
+
top
+
+

Bugs

+

One should be aware that there are a number of different DBM file + formats in existence, and with all likelihood, libraries for more than + one format may exist on your system. The three primary examples are + SDBM, NDBM, GNU GDBM, and Berkeley/Sleepycat DB 2/3/4. Unfortunately, + all these libraries use different file formats, and you must make sure + that the file format used by filename is the same format that + htdbm expects to see. htdbm currently has + no way of determining what type of DBM file it is looking at. If used + against the wrong format, will simply return nothing, or may create a + different DBM file with a different name, or at worst, it may corrupt + the DBM file if you were attempting to write to it.

+ +

One can usually use the file program supplied with most + Unix systems to see what format a DBM file is in.

+
top
+
+

Exit Status

+

htdbm returns a zero status ("true") if the username and + password have been successfully added or updated in the DBM File. + htdbm returns 1 if it encounters some problem + accessing files, 2 if there was a syntax problem with the + command line, 3 if the password was entered interactively and + the verification entry didn't match, 4 if its operation was + interrupted, 5 if a value is too long (username, filename, + password, or final computed record), 6 if the username + contains illegal characters (see the Restrictions + section), and 7 if the file is not a valid DBM password + file.

+
top
+
+

Examples

+

+ htdbm /usr/local/etc/apache/.htdbm-users jsmith +

+ +

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, htdbm will do nothing except return an error.

+ +

+ htdbm -c /home/doe/public_html/.htdbm jane +

+ +

Creates a new file and stores a record in it for user jane. + The user is prompted for the password. If the file exists and cannot be + read, or cannot be written, it is not altered and htdbm + will display a message and return an error status.

+ +

+ htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve +

+ +

Encrypts the password from the command line (Pwd4Steve) + using the MD5 algorithm, and stores it in the specified file.

+
top
+
+

Security Considerations

+

Web password files such as those managed by htdbm should + not be within the Web server's URI space -- that is, they should + not be fetchable with a browser.

+ +

The use of the -b option is discouraged, since when it is + used the unencrypted password appears on the command line.

+
top
+
+

Restrictions

+

On the Windows and MPE platforms, passwords encrypted with + htdbm are limited to no more than 255 + characters in length. Longer passwords will be truncated to 255 + characters.

+ +

The MD5 algorithm used by htdbm is specific to the Apache + software; passwords encrypted using it will not be usable with other Web + servers.

+ +

Usernames are limited to 255 bytes and may not include the + character :.

+
+
+

Available Languages:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htdbm.html.tr.utf8 b/rubbos/app/apache2/manual/programs/htdbm.html.tr.utf8 new file mode 100644 index 00000000..1819a437 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdbm.html.tr.utf8 @@ -0,0 +1,290 @@ + + + +htdbm - DBM parola veritabanlarını yönetir - Apache HTTP Sunucusu + + + + + +
<-
+

htdbm - DBM parola veritabanlarını yönetir

+
+

Mevcut Diller:  en  | + tr 

+
+ +

htdbm, + mod_auth_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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htdigest.html b/rubbos/app/apache2/manual/programs/htdigest.html new file mode 100644 index 00000000..f2c56799 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdigest.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: htdigest.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/htdigest.html.en b/rubbos/app/apache2/manual/programs/htdigest.html.en new file mode 100644 index 00000000..297fcc1d --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdigest.html.en @@ -0,0 +1,74 @@ + + + +htdigest - manage user files for digest authentication - Apache HTTP Server + + + + + +
<-
+

htdigest - manage user files for digest authentication

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

htdigest is used to create and update the flat-files used + to store usernames, realm and password for digest authentication of HTTP + users. Resources available from the Apache HTTP server can be restricted + to just the users listed in the files created by htdigest.

+ +

This manual page only lists the command line arguments. For details of + the directives necessary to configure digest authentication in + httpd see the Apache manual, which is part + of the Apache distribution or can be found at + http://httpd.apache.org/.

+
+ +
top
+
+

Synopsis

+

htdigest [ -c ] + passwdfile realm username

+
top
+
+

Options

+
+
-c
+
Create the passwdfile. If passwdfile already + exists, it is deleted first.
+ +
passwdfile
+
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.
+ +
realm
+
The realm name to which the user name belongs.
+ +
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.
+
+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htdigest.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/htdigest.html.ko.euc-kr new file mode 100644 index 00000000..529dc662 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdigest.html.ko.euc-kr @@ -0,0 +1,77 @@ + + + +htdigest - digest authentication +Ѵ - Apache HTTP Server + + + + + +
<-
+

htdigest - digest authentication +Ѵ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

htdigest HTTP digest authentication + ڸ, , ȣ ϴ Ϲ + Ѵ. ġ ڿ htdigest + Ͽ ڿԸ ִ.

+ +

manpage ɼǸ Ѵ. httpd digest authentication + ϴ þ ġ Եְ + http://httpd.apache.org/ + ִ ġ ϶.

+
+ +
top
+
+

+

htdigest [ -c ] + passwdfile realm username

+
top
+
+

ɼ

+
+
-c
+
passwdfile . passwdfile + ̹ ִٸ .
+ +
passwdfile
+
ڸ, , ȣ ϸ. -c + ٸ , ִٸ + ٽ .
+ +
realm
+
ڸ ̸.
+ +
username
+
passwdfile ų ڸ. Ͽ + username ٸ ׸ ߰Ѵ. ִٸ ȣ + Ѵ.
+
+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htdigest.html.tr.utf8 b/rubbos/app/apache2/manual/programs/htdigest.html.tr.utf8 new file mode 100644 index 00000000..d18ca6d6 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htdigest.html.tr.utf8 @@ -0,0 +1,78 @@ + + + +htdigest - Özet kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu + + + + + +
<-
+

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.
+ +
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.
+
+
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htpasswd.html b/rubbos/app/apache2/manual/programs/htpasswd.html new file mode 100644 index 00000000..919ac18a --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htpasswd.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: htpasswd.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/htpasswd.html.en b/rubbos/app/apache2/manual/programs/htpasswd.html.en new file mode 100644 index 00000000..8da06909 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htpasswd.html.en @@ -0,0 +1,217 @@ + + + +htpasswd - Manage user files for basic authentication - Apache HTTP Server + + + + + +
<-
+

htpasswd - Manage user files for basic authentication

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

htpasswd is used to create and update the flat-files used to + store usernames and password for basic authentication of HTTP users. If + htpasswd cannot access a file, such as not being able to write + to the output file or not being able to read the file in order to update it, + it returns an error status and makes no changes.

+ +

Resources available from the Apache HTTP server can be restricted to + just the users listed in the files created by htpasswd. This + program can only manage usernames and passwords stored in a flat-file. It + can encrypt and display password information for use in other types of data + stores, though. To use a DBM database see dbmmanage.

+ +

htpasswd encrypts passwords using either a version of MD5 + modified for Apache, or the system's crypt() routine. Files + managed by htpasswd may contain both types of passwords; some + user records may have MD5-encrypted passwords while others in the same file + may have passwords encrypted with crypt().

+ +

This manual page only lists the command line arguments. For details of + the directives necessary to configure user authentication in + httpd see the Apache manual, which is part of the + Apache distribution or can be found at http://httpd.apache.org/.

+
+

See also

  • httpd
  • The scripts in support/SHA1 which come with the +distribution.
+
top
+
+

Synopsis

+

htpasswd + [ -c ] + [ -m ] + [ -D ] passwdfile username

+ +

htpasswd -b + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -D ] passwdfile username + password

+ +

htpasswd -n + [ -m | + -d | + -s | + -p ] username

+ +

htpasswd -nb + [ -m | + -d | + -s | + -p ] username password

+
top
+
+

Options

+
+
-b
+
Use batch mode; i.e., get the password from the command line + rather than prompting for it. This option should be used with extreme care, + since the password is clearly visible on the command + line.
+ +
-c
+
Create the passwdfile. If passwdfile already + exists, it is rewritten and truncated. This option cannot be combined with + the -n option.
+ +
-n
+
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 passwdfile argument (usually the first + 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.
+ +
-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.
+ +
-s
+
Use SHA encryption for passwords. Facilitates migration from/to Netscape + servers using the LDAP Directory Interchange Format (ldif).
+ +
-p
+
Use plaintext passwords. Though htpasswd will support + creation on all platforms, the httpd daemon will + only accept plain text passwords on Windows, Netware and TPF.
+ +
-D
+
Delete user. If the username exists in the specified htpasswd file, it + will be deleted.
+ +
passwdfile
+
Name of the file to contain the user name and password. If + -c is given, this file is created if it does not already exist, + or rewritten and truncated if it does exist.
+ +
username
+
The username to create or update in passwdfile. If + username does not exist in this file, an entry is added. If it + does exist, the password is changed.
+ +
password
+
The plaintext password to be encrypted and stored in the file. Only + used with the -b flag.
+
+
top
+
+

Exit Status

+

htpasswd returns a zero status ("true") if the username and + password have been successfully added or updated in the + passwdfile. htpasswd returns 1 if it + encounters some problem accessing files, 2 if there was a + syntax problem with the command line, 3 if the password was + entered interactively and the verification entry didn't match, + 4 if its operation was interrupted, 5 if a value + is too long (username, filename, password, or final computed record), + 6 if the username contains illegal characters (see the + Restrictions section), and 7 + if the file is not a valid password file.

+
top
+
+

Examples

+

+ htpasswd /usr/local/etc/apache/.htpasswd-users jsmith +

+ +

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.

+ +

+ htpasswd -c /home/doe/public_html/.htpasswd jane +

+ +

Creates a new file and stores a record in it for user jane. + The user is prompted for the password. If the file exists and cannot be + read, or cannot be written, it is not altered and htpasswd + will display a message and return an error status.

+ +

+ htpasswd -mb /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.

+
top
+
+

Security Considerations

+

Web password files such as those managed by htpasswd should + not be within the Web server's URI space -- that is, they should + not be fetchable with a browser.

+ +

The use of the -b option is discouraged, since when it is + used the unencrypted password appears on the command line.

+
top
+
+

Restrictions

+

On the Windows and MPE platforms, passwords encrypted with + htpasswd are limited to no more than 255 + characters in length. Longer passwords will be truncated to 255 + characters.

+ +

The MD5 algorithm used by htpasswd is specific to the Apache + software; passwords encrypted using it will not be usable with other Web + servers.

+ +

Usernames are limited to 255 bytes and may not include the + character :.

+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htpasswd.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/htpasswd.html.ko.euc-kr new file mode 100644 index 00000000..22f49f86 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htpasswd.html.ko.euc-kr @@ -0,0 +1,219 @@ + + + +htpasswd - basic authentication + Ѵ - Apache HTTP Server + + + + + +
<-
+

htpasswd - basic authentication + Ѵ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

htpasswd HTTP basic authentication + ڸ ȣ ϴ Ϲ ϰ Ѵ. + htpasswd ų ٸ, + ¸ ȯϰ ƹ͵ ʴ´.

+ +

ġ ڿ htpasswd Ͽ + ڿԸ ִ. α׷ ڸ + ȣ ϴ Ϲ Ѵ. ׷ ٸ ڷ + ȣ ȣȭϿ ִ. DBM + ͺ̽ Ϸ dbmmanage ϶.

+ +

htpasswd ġ Ư MD5 Ȥ ý + crypt() Ͽ ȣ ȣȭѴ. + htpasswd ϴ ȣ + ִ. , Ͽ MD5 ȣȭ ȣ + ϴ ڿ crypt() ȣȭ ȣ + ϴ ִ.

+ +

manpage ɼǸ Ѵ. httpd ϴ þ + ġ Եְ http://httpd.apache.org/ + ִ ġ ϶.

+
+

+
top
+
+

+

htpasswd + [ -c ] + [ -m ] + [ -D ] passwdfile username

+ +

htpasswd -b + [ -c ] + [ -m | + -d | + -p | + -s ] + [ -D ] passwdfile username + password

+ +

htpasswd -n + [ -m | + -d | + -s | + -p ] username

+ +

htpasswd -nb + [ -m | + -d | + -s | + -p ] username password

+
top
+
+

ɼ

+
+
-b
+
ġ(batch) 带 Ѵ. , ȣ + ʰ ࿡ ޴´. ࿡ ȣ + 巯Ƿ, ɼ ſ ؼ ؾ + Ѵ.
+ +
-c
+
passwdfile . passwdfile + ̹ Ѵٸ, . ɼ -n ɼǰ + .
+ +
-n
+
ʰ ǥ Ѵ. + ġ ̿ ȣ Ҷ ϴ. + (׻ ù° ƱԸƮ) passwdfile ƱԸƮ + ⶧ ٸ. -c ɼǰ + .
+ +
-m
+
MD5 Ͽ ȣ ȣȭѴ. Windows, Netware, + TPF ⺻̴.
+ +
-d
+
crypt() Ͽ ȣ ȣȭѴ. + Windows, Netware, TPF ÷ ⺻̴. + ÷ htpasswd + , Windows, Netware, TPF httpd + ʴ´.
+ +
-s
+
ȣ SHA ȣȭѴ. LDAP 丮ȯ(ldif) + Ͽ Netscape ų ö ϴ.
+ +
-p
+
ȣ ״ Ѵ. ÷ htpasswd + , Windows, Netware, TPF httpd + Ϲ ȣ ޴´.
+ +
-D
+
ڸ Ѵ. htpasswd Ͽ ڸ ִٸ + Ѵ.
+ +
passwdfile
+
ڸ ȣ ϴ ϸ. -c + ٸ , ִٸ .
+ +
username
+
passwdfile ų ڸ. + username Ͽ ٸ ׸ ߰Ѵ. + ִٸ ȣ Ѵ.
+ +
password
+
ȣȭϿ Ͽ ȣ. -b + ɼǰ ִ.
+
+
top
+
+

ڵ

+

htpasswd passwdfile ڸ + ȣ ߰ϰų ("") ڵ + 0 ȯѴ. htpasswd Ͽ Ҷ + ߻ 1, ߸ + 2, Է ȣ Ȯ ٽ Է + ġ 3, ߴܵ + 4, (ڸ, ϸ, ȣ, ) + ʹ 5, ڸ ʴ + ڰ Ե ) + 6, ùٸ ȣ ƴ + 7 ȯѴ.

+
top
+
+

+

+ htpasswd /usr/local/etc/apache/.htpasswd-users jsmith +

+ +

jsmith ȣ ߰ϰų Ѵ. + ڿ ȣ . Windows ýۿ ϸ + ȣ ġ Ư MD5 ˰ Ͽ ȣȭϰ, + ƴϸ ý crypt() Լ Ѵ. + ٸ htpasswd ƹ ϵ ʰ + .

+ +

+ htpasswd -c /home/doe/public_html/.htpasswd jane +

+ +

Ͽ jane + ߰Ѵ. ڿ ȣ . аų + ٸ, htpasswd ʰ + ¸ ȯѴ.

+ +

+ htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve +

+ +

ȣ(Pwd4Steve) MD5 ˰ + ȣȭϿ Ͽ Ѵ.

+
top
+
+

Ȼ

+

htpasswd ϴ ȣ + URI ȵȴ. , + Ѵ.

+ +

࿡ ȣȭ ȣ ϱ⶧ -b + ɼ õ ʴ´.

+
top
+
+

+

Windows MPE ÷ htpasswd ȣȭϴ + ȣ ̸ 255 ڷ Ѵ. ȣ + 255ڿ ©.

+ +

htpasswd ϴ MD5 ˰ ġ + Ʈ Ư ̴. ̸ Ͽ ȣȭ ȣ + ٸ .

+ +

ڸ 255 Ʈ ѵǰ : + ڸ .

+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/htpasswd.html.tr.utf8 b/rubbos/app/apache2/manual/programs/htpasswd.html.tr.utf8 new file mode 100644 index 00000000..c63796a4 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/htpasswd.html.tr.utf8 @@ -0,0 +1,224 @@ + + + +htpasswd - Temel kimlik doğrulama dosyalarını yönetir - Apache HTTP Sunucusu + + + + + +
<-
+

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. 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. + htpasswd 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. 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. 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 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 -mb /usr/web/.htpasswd-all jones Pwd4Steve +

+ +

Komut satırından verilen parolayı (Pwd4Steve) MD5 + 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.

+
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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/httpd.html b/rubbos/app/apache2/manual/programs/httpd.html new file mode 100644 index 00000000..9ef8b2b7 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/httpd.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: httpd.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/httpd.html.en b/rubbos/app/apache2/manual/programs/httpd.html.en new file mode 100644 index 00000000..e45ae42a --- /dev/null +++ b/rubbos/app/apache2/manual/programs/httpd.html.en @@ -0,0 +1,189 @@ + + + +httpd - Apache Hypertext Transfer Protocol Server - Apache HTTP Server + + + + + +
<-
+

httpd - Apache Hypertext Transfer Protocol Server

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

httpd is the Apache HyperText Transfer Protocol + (HTTP) server program. It is designed to be run as a standalone + daemon process. When used like this it will create a pool of + child processes or threads to handle requests.

+ +

In general, httpd should not be invoked directly, + but rather should be invoked via apachectl on Unix-based systems or as a service on Windows NT, + 2000 and XP and as + a console application on Windows 9x and ME.

+
+ +
top
+
+

Synopsis

+

httpd [ -d + serverroot ] [ -f config ] + [ -C directive ] [ -c + directive ] [ -D parameter ] + [ -e level ] [ -E + file ] [ -k start|restart|graceful|stop ] + [ -R directory ] [ -h ] + [ -l ] [ -L ] [ -S ] + [ -t ] [ -v ] [ -V ] + [ -X ]

+ +

On Windows systems, the + following additional arguments are available:

+ +

httpd [ -k + install|config|uninstall ] [ -n name ] + [ -w ]

+
top
+
+

Options

+ +
+
-d serverroot
+ +
Set the initial value for the ServerRoot directive to +serverroot. This can be overridden by the ServerRoot +directive in the configuration file. The default is +/usr/local/apache2.
+ +
-f config
+ +
Uses the directives in the file config on startup. If +config does not begin with a /, then it is taken to be a +path relative to the ServerRoot. The default is +conf/httpd.conf.
+ +
-k start|restart|graceful|stop
+ +
Signals httpd to start, restart, or stop. See Stopping Apache for more information.
+ +
-C directive
+ +
Process the configuration directive before reading +config files.
+ +
-c directive
+ +
Process the configuration directive after reading config +files.
+ + +
-D parameter
+ +
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.
+ +
-e level
+ +
Sets the LogLevel to +level during server startup. This is useful for +temporarily increasing the verbosity of the error messages to find +problems during startup.
+ +
-E file
+ +
Send error messages during server startup to file.
+ +
-R directory
+ +
When the server is compiled using the SHARED_CORE +rule, this specifies the directory for the shared +object files.
+ +
-h
+ +
Output a short summary of available command line options.
+ +
-l
+ +
Output a list of modules compiled into the server. This will +not list dynamically loaded modules included using +the LoadModule directive.
+ +
-L
+ +
Output a list of directives together with expected arguments and +places where the directive is valid.
+ +
-S
+ +
Show the settings as parsed from the config file (currently only +shows the virtualhost settings).
+ +
-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 +DUMP_VHOSTS is also set, details of the virtual host +configuration will be printed.
+ +
-v
+ +
Print the version of httpd, and then exit.
+ +
-V
+ +
Print the version and build parameters of httpd, and +then exit.
+ +
-X
+ +
Run httpd in debug mode. Only one worker will be started and the +server will not detach from the console.
+ +
+ +

The following arguments are available only on the Windows platform:

+ +
+ +
-k install|config|uninstall
+ +
Install Apache as a Windows NT service; change startup options for +the Apache service; and uninstall the Apache service.
+ +
-n name
+ +
The name of the Apache service to signal.
+ +
-w
+ +
Keep the console window open on error so that the error message can +be read.
+ +
+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/httpd.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/httpd.html.ko.euc-kr new file mode 100644 index 00000000..df591e8b --- /dev/null +++ b/rubbos/app/apache2/manual/programs/httpd.html.ko.euc-kr @@ -0,0 +1,184 @@ + + + +httpd - ġ ؽƮ - Apache HTTP Server + + + + + +
<-
+

httpd - ġ ؽƮ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

httpd ġ ؽƮ + (HTTP) α׷̴. ü(standalone) μ + ϵ Ǿ. Ѵٸ û óϱ ڽ + μ .

+ +

Ϲ httpd ϱ⺸ٴ + н ýۿ apachectl , 2000, XP + 񽺷, Windows + 9x ME ݼ α׷ ؾ Ѵ.

+
+ +
top
+
+

+

httpd [ -d + serverroot ] [ -f config ] + [ -C directive ] [ -c + directive ] [ -D parameter ] + [ -e level ] [ -E + file ] [ -k start|restart|graceful|stop ] + [ -R directory ] [ -h ] + [ -l ] [ -L ] [ -S ] + [ -t ] [ -v ] [ -V ] + [ -X ]

+ +

Windows ý + ƱԸƮ ߰ ִ:

+ +

httpd [ -k + install|config|uninstall ] [ -n name ] + [ -w ]

+
top
+
+

ɼ

+ +
+
-d serverroot
+ +
ServerRoot þ +⺻ serverroot Ѵ. Ͽ ServerRoot +þ Ͽ ִ. ⺻ +/usr/local/apache2̴.
+ +
-f config
+ +
Ҷ config Ͽ ִ þ Ѵ. +config / ServerRoot ̴. ⺻ +conf/httpd.conf̴.
+ +
-k start|restart|graceful|stop
+ +
httpd , , ߴѴ. ڼ +ġ ߴϱ ϶.
+ +
-C directive
+ +
б directive þ óѴ.
+ +
-c directive
+ +
б directive þ óѴ.
+ + +
-D parameter
+ +
Ȥ ۽ ɾ óϱ + <IfDefine> +ǿ parameter Ѵ.
+ +
-e level
+ +
ϴµ LogLevel +level Ѵ. ̴ ã + ڼ ϴ.
+ +
-E file
+ +
ϴµ file .
+ +
-R directory
+ +
SHARED_CORE Ģ Ͽ + Ʈ directory Ѵ.
+ +
-h
+ +
ִ ɼǵ ª Ѵ.
+ +
-l
+ +
Ѵ. LoadModule þ Ͽ +о̴ ʴ´.
+ +
-L
+ +
þ þ ޴ ƱԸƮ þ ҿ + Ѵ.
+ +
-S
+ +
Ͽ о ش ( ȣƮ + ش).
+ +
-t
+ +
˻縸 Ѵ. α׷ ˻ +( ùٸ ) 0̳ ( ִ ) 0 ƴ +ڵ Ѵ. -D DUMP_VHOSTS +ϸ ȣƮ ڼ Ѵ.
+ +
-v
+ +
httpd ϰ Ѵ.
+ +
-V
+ +
httpd Ķ͸ ϰ +Ѵ.
+ +
-X
+ +
· Ѵ. μ θ +ϰ, ֿܼ ʴ´.
+ +
+ +

ƱԸƮ Windows +÷ ִ:

+ +
+ +
-k install|config|uninstall
+ +
ġ Windows NT 񽺷 ġѴ; ġ +ɼ Ѵ; ġ ġ .
+ +
-n name
+ +
ġ name.
+ +
-w
+ +
߻ϸ ܼâ  ش.
+ +
+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/httpd.html.tr.utf8 b/rubbos/app/apache2/manual/programs/httpd.html.tr.utf8 new file mode 100644 index 00000000..a33f1a94 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/httpd.html.tr.utf8 @@ -0,0 +1,175 @@ + + + +httpd - Apache Hiper Metin Aktarım Protokolü Sunucusu - Apache HTTP Sunucusu + + + + + +
<-
+

httpd - Apache Hiper Metin Aktarım Protokolü Sunucusu

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ +

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 ] + [ -R dizin ] [ -h ] + [ -l ] [ -L ] [ -S ] + [ -t ] [ -v ] [ -V ] + [ -X ]

+ +

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
+
httpd'yi başlatmak, durdurmak ve yeniden + başlatmak için sinyal gönderir. Daha ayrıntılı bilgi edinmek için Apache'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.
+ +
-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.
+ +
-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
+
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.
+ +
-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 bir Windows NT hizmeti + haline getirilir; başlatma seçenekleri Apache hizmeti için değiştirilir; + ve Apache hizmeti sistemden kaldırılır.
+ +
-n isim
+
Sinyal gönderilecek Apache hizmetinin ismi.
+ +
-w
+
Hata durumunda konsol penceresi açık tutularak hata iletilerinin + okunması sağlanır.
+
+ +
+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/index.html b/rubbos/app/apache2/manual/programs/index.html new file mode 100644 index 00000000..2f5b561b --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html @@ -0,0 +1,21 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +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 diff --git a/rubbos/app/apache2/manual/programs/index.html.en b/rubbos/app/apache2/manual/programs/index.html.en new file mode 100644 index 00000000..47210441 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html.en @@ -0,0 +1,101 @@ + + + +Server and Supporting Programs - Apache HTTP Server + + + + + +
<-
+

Server and Supporting Programs

+
+

Available Languages:  en  | + es  | + ko  | + ru  | + tr 

+
+ +

This page documents all the executable programs included + with the Apache HTTP Server.

+
+
top
+
+

Index

+ +
+
httpd
+ +
Apache hypertext transfer protocol server
+ +
apachectl
+ +
Apache HTTP server control interface
+ +
ab
+ +
Apache HTTP server benchmarking tool
+ +
apxs
+ +
APache eXtenSion tool
+ +
configure
+ +
Configure the source tree
+ +
dbmmanage
+ +
Create and update user authentication files in DBM format + for basic authentication
+ +
htdigest
+ +
Create and update user authentication files for digest + authentication
+ +
htdbm
+ +
Manipulate DBM password databases.
+ +
htpasswd
+ +
Create and update user authentication files for basic + authentication
+ +
logresolve
+ +
Resolve hostnames for IP-addresses in Apache + logfiles
+ +
rotatelogs
+ +
Rotate Apache logs without having to kill the server
+ +
suexec
+ +
Switch User For Exec
+ +
Other Programs
+
Support tools with no own manual page.
+
+
+
+

Available Languages:  en  | + es  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/index.html.es b/rubbos/app/apache2/manual/programs/index.html.es new file mode 100644 index 00000000..7166789e --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html.es @@ -0,0 +1,104 @@ + + + +El Servidor Apache y Programas de Soporte - Servidor HTTP Apache + + + + + +
<-
+

El Servidor Apache y Programas de Soporte

+
+

Idiomas disponibles:  en  | + es  | + ko  | + ru  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

Esta pgina contiene toda la documentacin sobre los programas + ejecutables incluidos en el servidor Apache.

+
+
top
+
+

ndice

+ +
+
httpd
+ +
Servidor Apache del Protocolo de Transmisin de + Hipertexto (HTTP)
+ +
apachectl
+ +
Interfaz de control del servidor HTTP Apache
+ +
ab
+ +
Herramienta de benchmarking del Servidor HTTP Apache
+ +
apxs
+ +
Herramienta de Extensin de Apache
+ +
configure
+ +
Configuracin de la estructura de directorios de Apache
+ +
dbmmanage
+ +
Crea y actualiza los archivos de autentificacin de usuarios + en formato DBM para autentificacin bsica
+ +
htdigest
+ +
Crea y actualiza los ficheros de autentificacin de usuarios + para autentificacin tipo digest
+ +
htpasswd
+ +
Crea y actualiza los ficheros de autentificacin de usuarios + para autentificacin bsica
+ +
logresolve
+ +
Resuelve los nombres de host para direcciones IP que estn + en los ficheros log de Apache
+ +
rotatelogs
+ +
Renueva los logs de Apache sin parar el servidor
+ +
suexec
+ +
Switch User For Exec. Programa para cambiar la identidad de + usuario con la que se ejecuta un CGI
+ +
Otros Programas
+
Herramientas de soporte sin seccin propia en la + documentacin.
+
+
+
+

Idiomas disponibles:  en  | + es  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/index.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/index.html.ko.euc-kr new file mode 100644 index 00000000..b0445c6e --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html.ko.euc-kr @@ -0,0 +1,97 @@ + + + + α׷ - Apache HTTP Server + + + + + +
<-
+

α׷

+
+

:  en  | + es  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

ġ Ե α׷̴.

+
+
top
+
+

+ +
+
httpd
+ +
ġ ؽƮ
+ +
apachectl
+ +
ġ ̽
+ +
ab
+ +
ġ ɰ˻
+ +
apxs
+ +
ġ Ȯ (APache eXtenSion tool)
+ +
configure
+ +
ҽ Ʈ Ѵ
+ +
dbmmanage
+ +
basic authentication DBM + Ѵ
+ +
htdigest
+ +
digest authentication + Ѵ
+ +
htpasswd
+ +
basic authentication + Ѵ
+ +
logresolve
+ +
ġ α IP-ּҸ ȣƮ ȯѴ
+ +
rotatelogs
+ +
ʰ ġ α׸ ȯѴ
+ +
suexec
+ +
ڸ Ѵ (Switch User For Exec)
+ +
ٸ α׷
+
manpage .
+
+
+
+

:  en  | + es  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/index.html.ru.koi8-r b/rubbos/app/apache2/manual/programs/index.html.ru.koi8-r new file mode 100644 index 00000000..76f565cd --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html.ru.koi8-r @@ -0,0 +1,95 @@ + + + + - HTTP Apache + + + + + +
<-
+

+
+

:  en  | + es  | + ko  | + ru  | + tr 

+
+ +

+ HTTP Apache.

+
+
top
+
+

+ +
+
httpd
+ +
HTTP Apache
+ +
apachectl
+ +
HTTP Apache
+ +
ab
+ +
HTTP Apache
+ +
apxs
+ +
APache eXtenSion
+ +
dbmmanage
+ +
DBM, + (basic authentification)
+ +
htdigest
+ +
+ (digest authentification)
+ +
htpasswd
+ +
+ (basic authentification)
+ +
logresolve
+ +
IP- + - Apache
+ +
rotatelogs
+ +
, - Apache +
+ +
suexec
+ +
Switch User For Exec - , CGI- +
+ +
+
,
+
+
+
+

:  en  | + es  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/index.html.tr.utf8 b/rubbos/app/apache2/manual/programs/index.html.tr.utf8 new file mode 100644 index 00000000..390411d3 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/index.html.tr.utf8 @@ -0,0 +1,90 @@ + + + +Sunucu ve Destek Programları - Apache HTTP Sunucusu + + + + + +
<-
+

Sunucu ve Destek Programları

+
+

Mevcut Diller:  en  | + es  | + ko  | + ru  | + tr 

+
+ +

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.
+ +
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.
+ +
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  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/logresolve.html b/rubbos/app/apache2/manual/programs/logresolve.html new file mode 100644 index 00000000..a8958c83 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/logresolve.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: logresolve.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/logresolve.html.en b/rubbos/app/apache2/manual/programs/logresolve.html.en new file mode 100644 index 00000000..419791f7 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/logresolve.html.en @@ -0,0 +1,74 @@ + + + +logresolve - Resolve IP-addresses to hostnames in Apache + log files - Apache HTTP Server + + + + + +
<-
+

logresolve - Resolve IP-addresses to hostnames in Apache + log files

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

logresolve is a post-processing program to + resolve IP-addresses in Apache's access logfiles. To minimize + impact on your nameserver, logresolve has its very own internal + hash-table cache. This means that each IP number will only be + looked up the first time it is found in the log file.

+ +

Takes an Apache log file on standard input. The IP addresses + must be the first thing on each line and must be seperated from + the remainder of the line by a space.

+
+ +
top
+
+

Synopsis

+ +

logresolve [ -s + filename ] [ -c ] < + access_log > access_log.new

+
top
+
+

Options

+ +
+ +
-s filename
+ +
Specifies a filename to record statistics.
+ +
-c
+ +
This causes logresolve to apply some DNS checks: +after finding the hostname from the IP address, it looks up the IP +addresses for the hostname and checks that one of these matches the +original address.
+ +
+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/logresolve.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/logresolve.html.ko.euc-kr new file mode 100644 index 00000000..622db237 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/logresolve.html.ko.euc-kr @@ -0,0 +1,71 @@ + + + +logresolve - ġ α IP-ּҸ ȣƮ + ȯѴ - Apache HTTP Server + + + + + +
<-
+

logresolve - ġ α IP-ּҸ ȣƮ + ȯѴ

+
+

:  en  | + ko  | + tr 

+
+ +

logresolve ġ ٷαϿ ִ + IP-ּҸ ã ó α׷̴. Ӽ ϸ + ּȭϱ logresolve ؽ̺ ij + Ѵ. , IP ּҰ αϿ ó ö ã´.

+ +

ǥԷ ġ α д´. ù° + ׸ IP ּ̰, κа еǾ Ѵ.

+
+
+
top
+
+

+ +

logresolve [ -s + filename ] [ -c ] < + access_log > access_log.new

+
top
+
+

ɼ

+ +
+ +
-s filename
+ +
踦 ϸ Ѵ.
+ +
-c
+ +
logresolve  DNS ˻縦 ϵ Ѵ: +IP ּҷ ȣƮ ã ȣƮ ٽ IP ּҵ +ãƼ ϳ ּҿ ġϴ ˻Ѵ.
+ +
+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/logresolve.html.tr.utf8 b/rubbos/app/apache2/manual/programs/logresolve.html.tr.utf8 new file mode 100644 index 00000000..0f11eae8 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/logresolve.html.tr.utf8 @@ -0,0 +1,71 @@ + + + +logresolve - Apache günlük dosyalarındaki IP adreslerini konak + isimlerine dönüştürür - Apache HTTP Sunucusu + + + + + +
<-
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/other.html b/rubbos/app/apache2/manual/programs/other.html new file mode 100644 index 00000000..d9c31cd3 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/other.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: other.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/other.html.en b/rubbos/app/apache2/manual/programs/other.html.en new file mode 100644 index 00000000..d4114ddb --- /dev/null +++ b/rubbos/app/apache2/manual/programs/other.html.en @@ -0,0 +1,61 @@ + + + +Other Programs - Apache HTTP Server + + + + + +
<-
+

Other Programs

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

The following programs are simple support programs included with the + Apache HTTP Server which do not have their own manual pages. They are not + installed automatically. You can find them after the configuration process + in the support/ directory.

+
+ +
top
+
+

log_server_status

+

This perl script is designed to be run at a frequent interval by + something like cron. It connects to the server and downloads the status + information. It reformats the information to a single line and logs it to + a file. Adjust the variables at the top of the script to specify the + location of the resulting logfile.

+
top
+
+

split-logfile

+

This perl script will take a combined Web server access log file and + break its contents into separate files. It assumes that the first field of + each line is the virtual host identity (put there by "%v"), and + that the logfiles should be named that + ".log" in the current + directory.

+ +

The combined log file is read from stdin. Records read will be appended + to any existing log files.

+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/other.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/other.html.ko.euc-kr new file mode 100644 index 00000000..113ecd8a --- /dev/null +++ b/rubbos/app/apache2/manual/programs/other.html.ko.euc-kr @@ -0,0 +1,59 @@ + + + +Other Programs - Apache HTTP Server + + + + + +
<-
+

Other Programs

+
+

:  en  | + ko  | + tr 

+
+ +

Ͽ manpage , ġ Ե + α׷̴. ڵ ̵ ġ ʴ´. + support/ 丮 α׷ + ã ִ.

+
+ +
top
+
+

log_server_status

+

perl ũƮ cron  ϵ Ǿ. + ũƮ Ͽ ٿεѴ. + ׷ ٷ Ͽ Ͽ Ѵ. α + ġ Ϸ ũƮ պκ Ѵ.

+
top
+
+

split-logfile

+

perl ũƮ յ ٷα + Ϸ . ù° ׸ ("%v" + ߰) ȣƮ ̰, αϸ 丮 + ȣƮ + ".log" Ѵ.

+ +

յ α ǥԷ д´. + αϵ鿡 ߰Ѵ.

+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/other.html.tr.utf8 b/rubbos/app/apache2/manual/programs/other.html.tr.utf8 new file mode 100644 index 00000000..c0cce4c2 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/other.html.tr.utf8 @@ -0,0 +1,64 @@ + + + +Diğer Programlar - Apache HTTP Sunucusu + + + + + +
<-
+

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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/rotatelogs.html b/rubbos/app/apache2/manual/programs/rotatelogs.html new file mode 100644 index 00000000..3879fb33 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/rotatelogs.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rotatelogs.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/rotatelogs.html.en b/rubbos/app/apache2/manual/programs/rotatelogs.html.en new file mode 100644 index 00000000..6bcf7a83 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/rotatelogs.html.en @@ -0,0 +1,148 @@ + + + +rotatelogs - Piped logging program to rotate Apache logs - Apache HTTP Server + + + + + +
<-
+

rotatelogs - Piped logging program to rotate Apache logs

+
+

Available Languages:  en  | + 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.

+ +
+ +
top
+
+

Synopsis

+ +

rotatelogs + [ -l ] + logfile + [ rotationtime [ offset ]] | + [ filesizeM ]

+
top
+
+

Options

+ +
+ +
-l (2.0.51 and later)
+
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!
+ +
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.
+ +
rotationtime
+ +
The time between log file rotations in seconds.
+ +
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
+ +
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
+
+

Portability

+ +

The following logfile format string substitutions should be +supported by all strftime(3) implementations, see +the strftime(3) man page for library-specific +extensions.

+ + + + + + + + + + + + + + + + + + + + + + + +
%Afull weekday name (localized)
%a3-character weekday name (localized)
%Bfull month name (localized)
%b3-character month name (localized)
%cdate and time (localized)
%d2-digit day of month
%H2-digit hour (24 hour clock)
%I2-digit hour (12 hour clock)
%j3-digit day of year
%M2-digit minute
%m2-digit month
%pam/pm of 12 hour clock (localized)
%S2-digit second
%U2-digit week of year +(Sunday first day of week)
%W2-digit week of year +(Monday first day of week)
%w1-digit weekday +(Sunday first day of week)
%Xtime (localized)
%xdate (localized)
%Y4-digit year
%y2-digit year
%Ztime zone name
%%literal `%'
+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/rotatelogs.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/rotatelogs.html.ko.euc-kr new file mode 100644 index 00000000..fdf9cac8 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/rotatelogs.html.ko.euc-kr @@ -0,0 +1,147 @@ + + + +rotatelogs - ġ α׸ ȯϱ + α α׷ - Apache HTTP Server + + + + + +
<-
+

rotatelogs - ġ α׸ ȯϱ + α α׷

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

rotatelogs ġ α + α׷̴. :

+ +

+ CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common +

+ +

׷ /var/logs/logfile.nnnn . nnnn + α׸ ý۽ð̴ ( ð ׻ ȯⰣ + ̴. ׷ cron ũƮ óϱ ). ȯⰣ + (⼭ 24 ð) ο α׸ Ѵ.

+ +

+ CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common +

+ +

α ũⰡ 5 ްƮ ɶ + ȯѴ.

+ +

+ ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" +

+

α ũⰡ 5 ްƮ ɶ + errorlog.YYYY-mm-dd-HH_MM_SS +  α ȯѴ.

+ +
+
+
top
+
+

+ +

rotatelogs + [ -l ] + logfile + [ rotationtime [ offset ]] | + [ filesizeM ]

+
top
+
+

ɼ

+ +
+ +
-l (2.0.51 )
+
ȯֱ GMT ð Ѵ. (BST DST ) +GMT ð ϴ ȯ濡 -l ϸ ġ + ߻ ִ!
+ +
logfile
+ +
α ο ̸. logfile '%' ڰ +ִٸ strftime(3) Ĺڿ óѴ. +'%' ڰ ٸ ڿ ʴ ð .nnnnnnnnnn +ڵ δ. Ⱓ ۽ð Ѵ.
+ +
rotationtime
+ +
α ȯ ʴ ð.
+ +
offset
+ +
UTC д ð. ϸ 0 Ͽ UTC +Ѵ. , UTC -5 ð ð Ѵٸ +ƱԸƮ -300 Ѵ.
+ +
filesizeM
+ +
ð ƴ ũ⸦ Ҷ ްƮ ִ ũ +ڿ M δ. rotationtime offset +Ķ͸ Ѵ.
+
+
top
+
+

ðɼ

+ +

α Ĺڿ ǥ strftime(3) + ؾ Ѵ. ̺귯 Ư Ȯ +strftime(3) manpage ϶.

+ + + + + + + + + + + + + + + + + + + + + + + +
%A(ȭ) ̸
%a(ȭ) 3- ̸
%B(ȭ) ̸
%b(ȭ) 3- ̸
%c(ȭ) ¥ ð
%d2-ڸ
%H2-ڸ ð (24 ð ð)
%I2-ڸ ð (12 ð ð)
%j3-ڸ ¥
%M2-ڸ
%m2-ڸ
%p(ȭ) 12 ð ð am/pm
%S2-ڸ
%U2-ڸ ϼ ( ù +Ͽ)
%W2-ڸ ϼ ( ù +)
%w1-ڸ ϼ ( ù° +Ͽ)
%X(ȭ) ð
%x(ȭ) ¥
%Y4-ڸ
%y2-ڸ
%Zð ̸
%%ڱ״ `%'
+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/rotatelogs.html.tr.utf8 b/rubbos/app/apache2/manual/programs/rotatelogs.html.tr.utf8 new file mode 100644 index 00000000..d272fd0f --- /dev/null +++ b/rubbos/app/apache2/manual/programs/rotatelogs.html.tr.utf8 @@ -0,0 +1,172 @@ + + + +rotatelogs - Apache günlüklerini döndürmek için borulu günlük kayıt + programı - Apache HTTP Sunucusu + + + + + +
<-
+

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 ] + dosyaismi + [ süre [ saat_farkı ]] | + [ boyutM ]

+
top
+
+

Seçenekler

+ +
+
-l (2.0.51 ve sonrası)
+
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!
+ +
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.
+ +
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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/suexec.html b/rubbos/app/apache2/manual/programs/suexec.html new file mode 100644 index 00000000..439a0689 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/suexec.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: suexec.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/programs/suexec.html.en b/rubbos/app/apache2/manual/programs/suexec.html.en new file mode 100644 index 00000000..1e233439 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/suexec.html.en @@ -0,0 +1,63 @@ + + + +suexec - Switch user before executing external programs - Apache HTTP Server + + + + + +
<-
+

suexec - Switch user before executing external programs

+
+

Available Languages:  en  | + ko  | + tr 

+
+ +

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.

+ +

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.0/suexec.html).

+
+ +
top
+
+

Synopsis

+

suexec -V

+
top
+
+

Options

+ +
+
-V
+ +
If you are root, this option displays the compile options of +suexec. For security reasons all configuration options are +changeable only at compile time.
+ +
+
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/suexec.html.ko.euc-kr b/rubbos/app/apache2/manual/programs/suexec.html.ko.euc-kr new file mode 100644 index 00000000..e2b9c5a9 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/suexec.html.ko.euc-kr @@ -0,0 +1,64 @@ + + + +suexec - ܺ α׷ ϱ ڸ Ѵ - Apache HTTP Server + + + + + +
<-
+

suexec - ܺ α׷ ϱ ڸ Ѵ

+
+

:  en  | + ko  | + tr 

+
+ +

ġ CGI α׷ ϱ ٸ ڷ + ȯϱ suexec Ѵ. ̸ Ϸ + root ؾ Ѵ. + root ʱ⶧ + suexec Ͽ setuid Ʈ ϰ + root ̾ Ѵ. root̿ + ٸ ڰ ȵȴ.

+ +

suexec ȸ𵨿 suexec + (http://httpd.apache.org/docs/2.0/suexec.html) ϶.

+
+
+
top
+
+

+

suexec -V

+
top
+
+

ɼ

+ +
+
-V
+ +
root ϸ suexec +ɼ Ѵ. Ȼ ɼ + ִ.
+ +
+
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/programs/suexec.html.tr.utf8 b/rubbos/app/apache2/manual/programs/suexec.html.tr.utf8 new file mode 100644 index 00000000..3c4bae81 --- /dev/null +++ b/rubbos/app/apache2/manual/programs/suexec.html.tr.utf8 @@ -0,0 +1,63 @@ + + + +suexec - harici programları çalıştırmadan önce kullanıcıyı değiştirir - Apache HTTP Sunucusu + + + + + +
<-
+

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.0/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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/rewrite/index.html b/rubbos/app/apache2/manual/rewrite/index.html new file mode 100644 index 00000000..23ec1ec0 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/index.html @@ -0,0 +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.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/rewrite/index.html.en b/rubbos/app/apache2/manual/rewrite/index.html.en new file mode 100644 index 00000000..a442b2e8 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/index.html.en @@ -0,0 +1,99 @@ + + + +Apache mod_rewrite - Apache HTTP Server + + + + + +
<-
+

Apache mod_rewrite

+
+

Available Languages:  en  | + tr 

+
+ +
+

``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!

+ +

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 + 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 + 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.

+ +

But all this functionality and flexibility has its + drawback: complexity. So don't expect to understand this + entire module in just one day.

+ +
+ +
top
+
top
+
+

mod_rewrite

+

Extensive documentation on the directives +provided by this module is provided in the mod_rewrite reference documentation. +

+
+
+

Available Languages:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/rewrite/index.html.tr.utf8 b/rubbos/app/apache2/manual/rewrite/index.html.tr.utf8 new file mode 100644 index 00000000..d9fd5806 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/index.html.tr.utf8 @@ -0,0 +1,91 @@ + + + +Apache mod_rewrite - Apache HTTP Sunucusu + + + + + +
<-
+

Apache mod_rewrite

+
+

Mevcut Diller:  en  | + tr 

+
+ +
+

``mod_rewrite’ı harika yapan şey, Sendmail’ın tüm yapılandırma + kolaylığı ve esnekliğine sahip olmasıdır. mod_rewrite’ı kötü yapan + şey ise Sendmail’ın tüm yapılandırma kolaylığı ve esnekliğine sahip + olmasıdır.''

+ +

-- Brian Behlendorf
+ Apache Group

+
+ +
+

``Hakkında tonlarca örnek ve belge olmasına rağmen mod_rewrite kara + büyüdür. Müthiş güzel bir kara büyü ama yine de kara büyü.''

+ +

-- Brian Moore
+ bem@news.cmc.net

+
+ +

URL kurgulamasının İsviçre Çakısı olan mod_rewrite + modülünün belgelerine hoşgeldiniz!

+ +

Bu modül istenen URL’leri çalışma anında yeniden yazmak için (düzenli + ifade çözümleyiciden yararlanan) kurallara dayalı bir yeniden yazma + motoru kullanır. 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 + dayanır; sunucu değişkenleri, HTTP başlıkları, ortam değişkenleri, + zaman damgaları hatta çeşitli biçimlerde harici veritabanı sorguları + bile bu amaçla kullanılabilir.

+ +

Bu modül URL’lerin tamamında (path-info kısmı dahil) hem sunucu + bağlamında (httpd.conf) hem de dizin bağlamında + (.htaccess) çalışır ve URL üzerinde sorgu dizgesi bölümleri + bile oluşturabilir. Yeniden yazılan URL sonuçta dahili işlemlerde, harici + yönlendirmelerde ve hatta dahili vekalet işlemlerinde kullanılabilir.

+ +

Fakat tüm bu işlevsellik ve esnekliğin bir bedeli vardır: karmaşıklık. + Bu yüzden bu modülün yapabildiklerini bir günde anlayabilmeyi + beklemeyin.

+ +
+ +
top
+
top
+
+

mod_rewrite Modülü

+

Bu modülce sağlanan yönergeler ve ortam değişkenleri + mod_rewrite başvuru kılavuzunda ayrıntılı olarak + açıklanmıştır.

+
+
+

Mevcut Diller:  en  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/rewrite/rewrite_guide.html b/rubbos/app/apache2/manual/rewrite/rewrite_guide.html new file mode 100644 index 00000000..69c288c8 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_guide.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewrite_guide.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/rewrite/rewrite_guide.html.en b/rubbos/app/apache2/manual/rewrite/rewrite_guide.html.en new file mode 100644 index 00000000..527cdac2 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_guide.html.en @@ -0,0 +1,788 @@ + + + +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/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html b/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html new file mode 100644 index 00000000..d08ed10d --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewrite_guide_advanced.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html.en b/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html.en new file mode 100644 index 00000000..c457e5af --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_guide_advanced.html.en @@ -0,0 +1,1289 @@ + + + +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 + commonly 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 adjust the examples for your + situation, e.g., adding the [PT] flag if + using mod_alias and + mod_userdir, etc. Or rewriting a ruleset + to work 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
+
+

Web Cluster with Consistent URL Space

+ + + +
+
Description:
+ +
+

We want to create a homogeneous and consistent URL + layout across all WWW servers on an Intranet web cluster, i.e., + all URLs (by definition server-local and thus + server-dependent!) become server independent! + What we want is to give the WWW namespace a single consistent + layout: no URL should refer to + any particular target server. The cluster itself + should connect users automatically to a physical target + host as needed, invisibly.

+
+ +
Solution:
+ +
+

First, the knowledge of the target servers comes from + (distributed) external maps which contain information on + where our users, groups, and entities reside. They 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 any URL path need not be valid on every server. 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      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 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 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 do 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 want to change anything inside this + hierarchy - not even by putting some CGI scripts at the + top of it. Why? Because the above structure should later be + accessible via FTP as well, and I didn't want any + Web or CGI stuff mixed in 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 public URL path + /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 fourth 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 Another Web Server

+ + + +
+
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 note 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 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 a 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 safe. But it does have a performance impact on + the web server, because for every request there is one + more internal subrequest. So, if your web server runs on a + powerful CPU, use this one. If it is a slow machine, use + the first approach or better an ErrorDocument CGI script.

+
+
+ +
top
+
+

Archive Access Multiplexer

+ + + +
+
Description:
+ +
+

Do you know the great CPAN (Comprehensive Perl Archive + Network) under http://www.perl.com/CPAN? + CPAN automatically redirects browsers to one of many FTP + servers around the world (generally one near the requesting + client); each server carries a full CPAN mirror. This is + effectively an FTP access multiplexing service. + CPAN runs via CGI scripts, but how could a similar approach + be implemented via mod_rewrite?

+
+ +
Solution:
+ +
+

First we notice that as of 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 one version for + current browsers, a different version for the Lynx and text-mode + browsers, and another for other browsers.

+
+ +
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 config + does the following: If the HTTP header "User-Agent" + begins with "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]
+
+
+
+ + + +

Dynamic Mirror

+ + + +
+
Description:
+ +
+

Assume there are nice web pages 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 web server we could use the program + webcopy which runs via HTTP. But both + techniques have a major drawback: The local copy is + always only as up-to-date as the last time we ran the program. It + would be much better if the mirror was not a static one we + have to establish explicitly. Instead we want a dynamic + mirror with data which gets updated automatically + as needed on the remote host(s).

+
+ +
Solution:
+ +
+

To provide this feature we map the remote web page or even + the complete remote web area 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 web server + (www.quux-corp.dom), while actually keeping + and maintaining its data on an (internal) Intranet web server + (www2.quux-corp.dom) which is protected by a + firewall. The trick is that the external web server retrieves + the requested data on-the-fly from the internal + one.

+
+ +
Solution:
+ +
+

First, we must make sure that our firewall still + protects the internal web server and only the + external web server is allowed to retrieve data from it. + On a packet-filtering firewall, for instance, we could + 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 many possible solutions for this problem. + We will first discuss a common DNS-based method, + and then one based on mod_rewrite:

+ +
    +
  1. + DNS Round-Robin + +

    The simplest method for load-balancing is to use + DNS round-robin. + 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 entries:

    + +
    +www   IN  A       1.2.3.1
    +www   IN  A       1.2.3.2
    +www   IN  A       1.2.3.3
    +www   IN  A       1.2.3.4
    +www   IN  A       1.2.3.5
    +
    + +

    Now when www.foo.com gets + resolved, BIND gives out www0-www5 + - but in a permutated (rotated) order every time. + This way the clients are spread over the various + servers. But notice that this is not a perfect load + balancing scheme, because DNS resolutions are + cached by clients and other nameservers, so + once a client has resolved www.foo.com + to a particular wwwN.foo.com, all its + subsequent requests will continue to go to the same + IP (and thus a single server), rather than being + distributed across the other available servers. But the + overall result is + okay because the requests are collectively + spread over the various web servers.

    +
  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 which, in conjunction with auxilliary + tools, provides real load-balancing via + 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 simply passed through its 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 handled done on the other machines. + For a complicated site, this may work well. The biggest + risk here is that www0 is now a single point of failure -- + if it crashes, the other servers are inaccessible.
    +
  6. + +
  7. + Dedicated Load Balancers + +

    There are more sophisticated solutions, as well. Cisco, + F5, and several other companies sell hardware load + balancers (typically used in pairs for redundancy), which + offer sophisticated load balancing and auto-failover + features. There are software packages which offer similar + features on commodity hardware, as well. If you have + enough money or need, check these out. The lb-l mailing list is a + good place to research.

    +
  8. +
+
+
+ + + +

New MIME-type, New Service

+ + + +
+
Description:
+ +
+

On the net there are many nifty CGI programs. But + their usage is usually boring, so a lot of webmasters + 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 if we use a Homogeneous URL Layout + (see above) a file inside the user homedirs might have a URL + like /u/user/foo/bar.scgi, but + cgiwrap needs URLs 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 which area they are really working with. + But usually this is complicated, because they may still be + requested by the alternate URL form, 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, 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 web server if missing. This way you can + have CGI-generated pages which are statically served unless an + admin (or a cron job) 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 for page.html leads to an + internal run of a corresponding page.cgi if + page.html is missing or has filesize + null. The trick here is that page.cgi is a + CGI script which (additionally to its STDOUT) + writes its output to the file page.html. + Once it has completed, the server sends out + page.html. When the webmaster wants to force + a refresh of the contents, he just removes + page.html (typically from cron).

+
+
+ + + +

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##
+
+
+
+ + + +

Mass Virtual Hosting

+ + + +
+
Description:
+ +
+

The <VirtualHost> feature of Apache is nice + and works great when you just have a few dozen + virtual hosts. But when you are an ISP and have hundreds of + virtual hosts, this feature is suboptimal.

+
+ +
Solution:
+ +
+

To provide this feature we map the remote web page or even + the complete remote web area to our namespace using 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 purposes
+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 web server. 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 very special authentication is needed, for + instance authentication which checks for a set of + explicitly configured users. Only these should receive + access and without explicit prompting (which would occur + when using 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/rubbos/app/apache2/manual/rewrite/rewrite_intro.html b/rubbos/app/apache2/manual/rewrite/rewrite_intro.html new file mode 100644 index 00000000..e6e697d2 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_intro.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewrite_intro.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/rewrite/rewrite_intro.html.en b/rubbos/app/apache2/manual/rewrite/rewrite_intro.html.en new file mode 100644 index 00000000..32f666e1 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_intro.html.en @@ -0,0 +1,117 @@ + + + +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

+

Basic regex building blocks

+
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/rubbos/app/apache2/manual/rewrite/rewrite_tech.html b/rubbos/app/apache2/manual/rewrite/rewrite_tech.html new file mode 100644 index 00000000..18b37ed7 --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_tech.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: rewrite_tech.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/rewrite/rewrite_tech.html.en b/rubbos/app/apache2/manual/rewrite/rewrite_tech.html.en new file mode 100644 index 00000000..20c83e6c --- /dev/null +++ b/rubbos/app/apache2/manual/rewrite/rewrite_tech.html.en @@ -0,0 +1,166 @@ + + + +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/rubbos/app/apache2/manual/sections.html b/rubbos/app/apache2/manual/sections.html new file mode 100644 index 00000000..eee94821 --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html @@ -0,0 +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.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: sections.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/sections.html.en b/rubbos/app/apache2/manual/sections.html.en new file mode 100644 index 00000000..a17c7918 --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html.en @@ -0,0 +1,457 @@ + + + +Configuration Sections - Apache HTTP Server + + + + + +
<-
+

Configuration Sections

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+

Directives in the configuration files may apply to the +entire server, or they may be restricted to apply only to particular +directories, files, hosts, or URLs. This document describes how to +use configuration section containers or .htaccess files +to change the scope of other configuration directives.

+
+ +
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.

+ +

The <IfDefine> directive +encloses directives that will only be applied if an appropriate +parameter is defined on the httpd command line. For example, +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> +

+ +

The <IfModule> +directive is very similar, except it encloses directives that will +only be applied if a particular module is available in the server. +The module must either be statically compiled in the server, or it +must be dynamically compiled and its LoadModule line must be earlier in the +configuration file. This directive should only be used if you need +your configuration file to work whether or not certain modules are +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 +applied only if mod_mime_magic is available.

+ +

+<IfModule mod_mime_magic.c>
+MimeMagicFile conf/magic
+</IfModule> +

+ +

Both <IfDefine> +and <IfModule> +can apply negative conditions by preceding their test with "!". +Also, these sections can be nested to achieve more complex +restrictions.

+
top
+
+

Filesystem and Webspace

+ +

The most commonly used configuration section containers are the +ones that change the configuration of particular places in the +filesystem or webspace. First, it is important to understand the +difference between the two. The filesystem is the view of your disks +as seen by your operating system. For example, in a default install, +Apache resides at /usr/local/apache2 in the Unix +filesystem or "c:/Program Files/Apache Group/Apache2" in +the Windows filesystem. (Note that forward slashes should always be +used as the path separator in Apache, even for Windows.) In contrast, +the webspace is the view of your site as delivered by the web server +and seen by the client. So the path /dir/ in the +webspace corresponds to the path +/usr/local/apache2/htdocs/dir/ in the filesystem of a +default Apache install on Unix. The webspace need not map directly to +the filesystem, since webpages may be generated dynamically +from databases or other locations.

+ +

Filesystem Containers

+ +

The <Directory> +and <Files> +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 +following configuration, directory indexes will be enabled for the +/var/web/dir1 directory and all subdirectories.

+ +

+<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. +So for example, the following configuration directives will, +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> +

+ +

To address files found in a particular part of the filesystem, the +<Files> and +<Directory> sections +can be combined. For example, the following configuration will deny +access to /var/web/dir1/private.html, +/var/web/dir1/subdir2/private.html, +/var/web/dir1/subdir3/private.html, and any other instance +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> +

+ + +

Webspace Containers

+ +

The <Location> +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 +http://yoursite.example.com/private, +http://yoursite.example.com/private123, and +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> +

+ +

The <Location> +directive need not have anything to do with the filesystem. +For example, the following example shows how to map a particular +URL to an internal Apache handler provided by mod_status. +No file called server-status needs to exist in the +filesystem.

+ +

+<Location /server-status>
+SetHandler server-status
+</Location> +

+ + +

Wildcards and Regular Expressions

+ +

The <Directory>, +<Files>, and +<Location> +directives can each use shell-style wildcard characters as in +fnmatch from the C standard library. The character "*" +matches any sequence of characters, "?" matches any single character, +and "[seq]" matches any character in seq. The "/" +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 +perl-compatible +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.

+ +

A non-regex wildcard section that changes the configuration of +all user directories could look as follows:

+ +

+<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> +

+ + + +

What to use When

+ +

Choosing between filesystem containers and webspace containers is +actually quite easy. When applying directives to objects that reside +in the filesystem always use <Directory> or <Files>. When applying directives to objects +that do not reside in the filesystem (such as a webpage generated from +a database), use <Location>.

+ +

It is important to never use <Location> when trying to restrict +access to objects in the filesystem. This is because many +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> +

+ +

This works fine if the request is for +http://yoursite.example.com/dir/. But what if you are on +a case-insensitive filesystem? Then your restriction could be easily +circumvented by requesting +http://yoursite.example.com/DIR/. The <Directory> directive, in +contrast, will apply to any content served from that location, +regardless of how it is called. (An exception is filesystem links. +The same directory can be placed in more than one part of the +filesystem using symbolic links. The <Directory> directive will follow the symbolic +link without resetting the pathname. Therefore, for the highest level +of security, symbolic links should be disabled with the appropriate +Options directive.)

+ +

If you are, perhaps, thinking that none of this applies to you +because you use a case-sensitive filesystem, remember that there are +many other ways to map multiple webspace locations to the same +filesystem location. Therefore you should always use the filesystem +containers when you can. There is, however, one exception to this +rule. Putting configuration restrictions in a <Location +/> section is perfectly safe because this section will apply +to all requests regardless of the specific URL.

+ + +
top
+
+

Virtual Hosts

+ +

The <VirtualHost> +container encloses directives that apply to specific hosts. +This is useful when serving multiple hosts from the same machine +with a different configuration for each. For more information, +see the Virtual Host Documentation.

+
top
+
+

Proxy

+ +

The <Proxy> +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> +

+
top
+
+

What Directives are Allowed?

+ +

To find out what directives are allowed in what types of +configuration sections, check the Context of the directive. +Everything that is allowed in +<Directory> +sections is also syntactically allowed in +<DirectoryMatch>, +<Files>, +<FilesMatch>, +<Location>, +<LocationMatch>, +<Proxy>, +and <ProxyMatch> +sections. There are some exceptions, however:

+ + +
top
+
+

How the sections are merged

+ +

The configuration sections are applied in a very particular order. +Since this can have important effects on how configuration directives +are interpreted, it is important to understand how this works.

+ +

The order of merging is:

+ +
    +
  1. <Directory> (except regular expressions) + and .htaccess done simultaneously (with + .htaccess, if allowed, overriding + <Directory>)
  2. + +
  3. <DirectoryMatch> + (and <Directory ~>)
  4. + +
  5. <Files> and <FilesMatch> done + simultaneously
  6. + +
  7. <Location> + and <LocationMatch> done simultaneously
  8. +
+ +

Apart from <Directory>, each group is processed in + the order that they appear in the configuration files. <Directory> (group 1 above) + is processed in the order shortest directory component to longest. + So for example, <Directory /var/web/dir> will + be processed before <Directory + /var/web/dir/subdir>. If multiple <Directory> sections apply + to the same directory they are processed in the configuration file + order. Configurations included via the Include directive will be treated as if + they were inside the including file at the location of the + Include directive.

+ +

Sections inside <VirtualHost> sections + are applied after the corresponding sections outside + the virtual host definition. This allows virtual hosts to + override the main server configuration.

+ +

Later sections override earlier ones.

+ +

Technical Note

+ There is actually a + <Location>/<LocationMatch> + sequence performed just before the name translation phase + (where Aliases and DocumentRoots + are used to map URLs to filenames). The results of this + sequence are completely thrown away after the translation has + completed. +
+ +

Some Examples

+ +

Below is an artificial example to show the order of +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>
+
+

+ +

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> +

+ + + +
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sections.html.es b/rubbos/app/apache2/manual/sections.html.es new file mode 100644 index 00000000..0b7fecb6 --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html.es @@ -0,0 +1,492 @@ + + + +Secciones de configuracin - Servidor HTTP Apache + + + + + +
<-
+

Secciones de configuracin

+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+

Las directivas presentes en los ficheros de configuracin pueden ser +de aplicacin para todo el servidor, o puede que su +aplicacin se limite solamente a determinados directorios, +ficheros, hosts, o URLs. Este documento explica cmo usar las +secciones de configuracin y los ficheros .htaccess +para modificar el mbito de aplicacin de las directivas de +configuracin.

+ +
top
+
+

Tipos de secciones de +configuracin

+ + + +

Exiten dos tipos bsicos de secciones de +configuracin. Por un lado, la mayora de las secciones de +configuracin se evalan para cada peticin que se +recibe y se aplican las directivas que se incluyen en las distintas +secciones solamente a las peticiones que se adecan a +determinadas caractersticas. Por otro lado, las secciones de tipo +<IfDefine> e +<IfModule>, se +evalan solamente al inicio o reinicio del servidor. Si al +iniciar el servidor las condiciones son las adecuadas, las directivas +que incluyen estas secciones se aplicarn a todas las peticiones +que se reciban. Es caso contrario, esas directivas que incluyen se +ignoran completamente.

+ +

Las secciones <IfDefine> incluyen directivas que se +aplicarn solamente si se pasa un determinado parmetro por +lnea de comandos al ejecutar httpd. Por +ejemplo, con la siguiente configuracin, todas las peticiones +sern redireccionadas a otro sitio web solamente si el servidor +se inici usando httpd -DClosedForNow:

+ +

+<IfDefine ClosedForNow>
+Redirect / http://otherserver.example.com/
+</IfDefine> +

+ +

La seccin <IfModule> es muy parecida. La diferencia +respecto a <IfDefine> est en que incluye directivas +que se aplicarn solamente si un determinado mdulo en +particular est disponible en el servidor. El mdulo debe +estar compilado estticamente en el servidor, o si est +compilado de forma dinmica ha de ponerse antes una lnea +LoadModule en el fichero de +configuracin. Esta directiva debe usarla solamente si necesita +que su fichero de configuracin funcione estn o no +instalados determinados mdulos. No debe usarla para incluir +directivas que quiera que se apliquen siempre, porque puede suprimir +mensajes de error que pueden ser de mucha utilidad para detectar la +falta de algn mdulo.

+ +

En el siguiente ejemplo, la directiva MimeMagicFiles se aplicar +solamente si el mdulo mod_mime_magic est +disponible.

+ +

+<IfModule mod_mime_magic.c>
+MimeMagicFile conf/magic
+</IfModule> +

+ +

Tanto <IfDefine> +como <IfModule> +pueder usarse con condiones negativas anteponiendo al test el +carcter "!". Estas secciones tambin pueden anidarse para +establecer restricciones ms complejas.

+ +
top
+
+

Sistemas de ficheros y espacio +web

+ +

Las secciones de configuracin usadas con ms frecuencia +son las que cambian la configuracin de reas del sistema de +ficheros o del espacio web. En primer lugar, es importante comprender +la diferencia que existe entre estos dos conceptos. El sistema de +ficheros es la visin de sus discos desde el punto de vista del +sistema operativo. Por ejemplo, en una instalacin estndar, +Apache estar en /usr/local/apache2 en un sistema +Unix o en "c:/Program Files/Apache Group/Apache2" en un +sistema Windows. (Tenga en cuenta que con Apache debe usar siempre +barras /, incluso en Windows.) Por el contrario, el espacio web lo +que presenta el servidor web y que visualiza el cliente. De manera que +la ruta /dir/ en el espacio web se corresponde con la +ruta /usr/local/apache2/htdocs/dir/ en el sistema de +ficheros de una instalacin estndar en Unix. El espacio +web no tiene que tener correspondencia directa con el sistema de +ficheros, porque las pginas web pueden generarse de forma +dinmica a partir de bases de datos o partiendo de otras +ubicaciones.

+ +

Secciones relacionadas con el sistema +de ficheros

+ +

Las secciones <Directory> y <Files>, junto con sus contrapartes que usan +expresiones regulares, aplican sus directivas a reas del sistema de +ficheros. Las directivas incluidas en una seccin <Directory> se aplican al +directorio del sistema de ficheros especificado y a sus +subdirectorios. El mismo resultado puede obtenerse usando ficheros .htaccess. Por ejemplo, en la +siguiente configuracin, se activarn los ndices de +directorio para el directorio /var/web/dir1 y sus +subdirectorios.

+ +

+<Directory /var/web/dir1>
+Options +Indexes
+</Directory> +

+ +

Las directivas incluidas en una seccin <Files> se aplicarn a +cualquier fichero cuyo nombre se especifique, sin tener en cuenta en +que directorio se encuentra. Por ejemplo, las siguientes directivas de +configuracin, cuando se colocan en la seccin principal del +fichero de configuracin, deniegan el acceso a cualquier fichero +llamado private.html sin tener en cuenta de donde se +encuentre.

+ +

+<Files private.html>
+Order allow,deny
+Deny from all
+</Files> +

+ +

Para referirse a archivos que se encuentren en un determinado lugar +del sistema de ficheros, se pueden combinar las secciones <Files> y <Directory>. Por ejemplo, la +siguiente configuracin denegar el acceso a +/var/web/dir1/private.html, +/var/web/dir1/subdir2/private.html, +/var/web/dir1/subdir3/private.html, y cualquier otra +aparicin de private.html que se encuentre en +/var/web/dir1/ o cualquiera de sus subdirectorios.

+ +

+<Directory /var/web/dir1>
+<Files private.html>
+Order allow,deny
+Deny from all
+</Files>
+</Directory> +

+ + +

Secciones relacionadas con el espacio +web

+ +

La seccin <Location> y su contraparte que usa + expresiones regulares, cambian + la configuracin para el contenido del espacio web. Por ejemplo, + la siguiente configuracin evita que se acceda a cualquier URL + que empiece por /private. En concreto, se aplicar a + peticiones que vayan dirigidas a + http://yoursite.example.com/private, + http://yoursite.example.com/private123, y a + http://yoursite.example.com/private/dir/file.html + as como + tambin a cualquier otra peticin que comience por + /private.

+ +

+<Location /private>
+Order Allow,Deny
+Deny from all
+</Location> +

+ +

La seccin <Location> puede no tener nada que ver con el +sistema de ficheros. Por ejemplo, el siguiente ejemplo muestra como +asociar una determinada URL a un handler interno de Apache del +mdulo mod_status. No tiene por qu +existir ningn fichero server-status en el sistema +de ficheros.

+ +

+<Location /server-status>
+SetHandler server-status
+</Location> +

+ + +

Caracteres comodn y expresiones +regulares

+ +

Las secciones <Directory>, <Files>, y <Location> pueden usar caracteres comodn +del tipo fnmatch de la librera estndar de C. +El carcter "*" equivale a cualquier secuencia de caracteres, "?" +equivale a cualquier carcter individual, y "[seq]" +equivale a cualquier carcter en seq. Ningn +carcter comodn equivale a"/", que debe siempre +especificarse explcitamente.

+ +

Si necesita un sistema de equivalencias ms flexible, cada +seccin tiene una contraparte que acepta expresiones regulares compatibles con +Perl: <DirectoryMatch>, <FilesMatch>, y <LocationMatch>. Consulte la seccin +sobre la fusin de secciones de configuracin para ver la +forma en que las secciones expresiones regulares cambian el modo en +que se aplican las directivas.

+ +

Abajo se muestra un ejemplo en el que una seccin de +configuracin que usa caracteres comodn en lugar de una +expresin regular modifica la configuracin de todos los +directorios de usuario:

+ +

+<Directory /home/*/public_html>
+Options Indexes
+</Directory> +

+ +

Usando expresiones regulares, podemos denegar el acceso a muchos +tipos ficheros de imgenes de una sola vez:

+ +

+<FilesMatch \.(?i:gif|jpe?g|png)$>
+Order allow,deny
+Deny from all
+</FilesMatch> +

+ + + +

Qu usar en cada momento

+ +

Decidir cuando hay que usar secciones que se apliquen sobre el +sistema de ficheros y cuando usar secciones que se apliquen sobre el +espacio web es bastante fcil. Cuando se trata de directivas que +se aplican a objetos que residen en el sistema de ficheros, siempre se +deben usar <Directory> o <Files>. Cuando se trata de directivas que se +aplican a objetos que no residen en el sistema de ficheros (por +ejemplo una pgina web generada a partir de una base de datos), +se usa <Location>.

+ +

Es importante no usar nunca <Location> cuando se trata de restringir el +acceso a objetos en el sistema de ficheros. Esto se debe a que varias +URLs diferentes pueden corresponderse con una misma ubicacin en +el sistema de ficheros, haciendo que la restriccin pueda ser +evitada. Por ejemplo, considere la siguiente configuracin:

+ +

+<Location /dir/>
+Order allow,deny
+Deny from all
+</Location> +

+ +

La restriccin funciona si se produce una peticin a +http://yoursite.example.com/dir/. Pero, qu +ocurrira si se trata de un sistema de ficheros que no distingue +maysculas de minsculas? Entonces, la restriccin que +ha establecido podra evitarse fcilmente haciendo una +peticion a http://yoursite.example.com/DIR/. Una +seccin <Directory> por el contrario, se aplicar +a cualquier contenido servido desde esa ubicacin, +independientemente de cmo se llame. (Una excepcin son los +enlaces del sistema de ficheros. El mismo directorio puede ser +colocado en ms de una ubicacin del sistema de ficheros +usando enlaces simblicos. La seccin <Directory> seguir los +enlaces simblicos sin resetear la ruta de fichero (resetting the +pathname). Por tanto, para conseguir el mayor nivel de seguridad, los +enlaces simblicos deben desactivarse con la directiva Options correspondiente.)

+ +

En el caso de que piense que nada de esto le afecta porque usa un +sistema de ficheros que distingue maysculas de minsculas, +recuerde que hay muchas otras maneras de hacer corresponder +mltiples direcciones del espacio web con una misma +ubicacin del sistema de ficheros. Por tanto, use las secciones +de configuracin que se aplican al sistema de ficheros siempre +que sea posible. Hay, sin embargo, una excepcin a esta +regla. Poner restricciones de configuracin en una seccin +<Location /> es completamente seguro porque estas +secciones se aplicarn a todas las peticiones independientemente +de la URL especfica que se solicite.

+ +
top
+
+

Hosts virtuales

+ +

El contenedor <VirtualHost> agrupa directivas que se +aplicarn a hosts especficos. Esto es til cuando se +sirven varios hosts con una misma mquina y con una +configuracin diferente cada uno. Para ms informacin, +consulte la documentacin sobre hosts +virtuales.

top
+
+

Proxy

+ +

Las secciones <Proxy> y <ProxyMatch> aplican las directivas de +configuracin que engloban solo a los sitios accedidos a +travs del servidor proxy del mdulo +mod_proxy que tengan equivalencia con la URL +especificada. Por ejemplo, la siguiente configuracin +evitar que se use el servidor proxy para acceder al sitio web +cnn.com.

+ +

+<Proxy http://cnn.com/*>
+Order allow,deny
+Deny from all
+</Proxy> +

+
top
+
+

Qu directivas se pueden +usar?

+ +

Para ver que directivas son las que se pueden usar en cada +seccin de configuracin, consulte el Context de la directiva. +Todas las directivas que est permitido usar en las secciones +<Directory> se +pueden usar tambin en las secciones <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch>, <Proxy>, y <ProxyMatch>. Sin embargo, hay algunas +excepciones:

+ + +
top
+
+

Cmo se fusionan las distintas +secciones?

+ +

Las secciones de configuracin se aplican en un determinado +orden. Como este orden puede tener efectos significativos en como se +interpretan las directivas de configuracin, es importante +entender cmo funciona este proceso.

+ +

El orden de fusin es el siguiente:

+ +
    +
  1. <Directory> (excepto expresiones + regulares) y .htaccess simultneamente (si el + uso de .htaccess est permitido, prevaleciendo + sobre <Directory>)
  2. + +
  3. <DirectoryMatch> + (y <Directory ~>)
  4. + +
  5. <Files> y + <FilesMatch> + simultneamente
  6. + +
  7. <Location> + y <LocationMatch> + simultneamente
  8. +
+ +

Aparte de <Directory>, cada grupo se procesa en el + orden en que aparezca en los ficheros de configuracin. + <Directory> + (grupo 1 arriba) se procesa empezando por los componentes de la + ruta al directorio ms cortos. Por ejemplo, + <Directory + /var/web/dir> se procesar antes de + <Directory /var/web/dir/subdir>. Si hay que + aplicar varias secciones <Directory> a un mismo directorio, se + aplican en el orden en que aparezcan en el fichero de + configuracin. Las configuraciones incluidas mediante la + directiva Include se + tratarn como si estuvieran dentro del fichero de + configuracin principal en lugar de la seccin + Include.

+ +

Las secciones incluidas dentro de secciones <VirtualHost> se aplican + despus de las correspondientes secciones fuera + de la definicin del host virtual. Esto permite que la + configuracin especificada para los hosts virtuales pueda + prevalecer sobre la configuracin del servidor principal.

+ +

Las secciones que aparecen despus prevalecen sobre las + que aparecen antes.

+ +

Nota tcnica.

Previamente a la fase de + traduccin de nombres (en la que se analizan los + Aliases y DocumentRoots para calcular + las correspondencias entre URLs y nombres de ficheros) se + ejecuta una secuencia + <Location>/<LocationMatch>. Los + resultados de esta secuencia se desechan despus de + ejecutar la traduccin.
+ +

Algunos ejemplos

+ +

Abajo se muestra un ejemplo para que se vea claramente cul es +el orden de fusin. Asumiendo que todas las secciones se aplican +a la peticin, las de este ejemplo se aplicaran en el orden +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>
+
+

+ +

A continuacin se muestra un ejemplo ms concreto. +Independientemente de las restricciones de acceso que se hayan +establecido en las secciones <Directory>, la seccin <Location> ser evaluada +al final y se permitir acceso sin restricciones al servidor. En +otras palabras, el orden de fusin es importante, de modo que +ponga atencin.

+ +

+<Location />
Order deny,allow
Allow from all
+</Location>

+# Esta seccin <Directory> no tendr efecto
+<Directory />
+Order allow,deny
+Allow from all
+Deny from badguy.example.com
+</Directory> +

+ + + +
+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sections.html.ja.utf8 b/rubbos/app/apache2/manual/sections.html.ja.utf8 new file mode 100644 index 00000000..d5a9bc3d --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html.ja.utf8 @@ -0,0 +1,467 @@ + + + +セクションの設定 - Apache HTTP サーバ + + + + + +
<-
+

セクションの設定

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+

設定ファイル中のディレクティブは +サーバ全体に適用されたり、特定のディレクトリやファイル、ホスト、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> +

+ + + +

いつ何を使うか

+ +

ファイルシステムコンテナとウェブ空間コンテナを使い分けるのは、 +実際には非常に簡単です。ファイルシステムに依存する +オブジェクトにディレクティブを適応する場合は、必ず +<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> +セクションでのみ使用可能です。
  • + +
  • FollowSymLinksSymLinksIfOwnerMatch の +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> セクション中のセクションは + バーチャルホストの定義の外側の対応するセクションの + に適用されます。これによりバーチャルホストが + メインのサーバ設定を上書きできるようなります。

+ +

後のセクションのディレクティブが前のセクションのものを上書きします。

+ + +

技術メモ

+ 実際には、名前を変換する段階 (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  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sections.html.ko.euc-kr b/rubbos/app/apache2/manual/sections.html.ko.euc-kr new file mode 100644 index 00000000..cf8c9ae8 --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html.ko.euc-kr @@ -0,0 +1,423 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+

ִ +þ ü ǰų, Ư 丮, , ȣƮ, +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
+
+

Ͻý۰

+ +

Ǵ Ͻý۰ (webspace) +Ư ҿ ϴ ͵̴. ̸ +ϴ ߿ϴ. Ͻý ü 忡 ũ + ̴. , ⺻ ġ ġ ϸ н +Ͻý /usr/local/apache2, +Ͻý "c:/Program Files/Apache +Group/Apache2" ġȴ. (ġ  +׻, ƴ, ϶.) ݴ + ϰ Ŭ̾Ʈ Ե Ʈ ̴. +׷ н ⺻ ġ ġ +/dir/ Ͻý +/usr/local/apache2/htdocs/dir/ شѴ. +Ÿ̽  ֱ⶧ ݵ +Ͻýۿ ʿ .

+ +

Ͻý

+ +

<Directory> +<Files> þ +ǥ ϴ þ Ͻý Ư κп þ +Ѵ. <Directory> þ Ե þ + Ͻý 丮 丮 ȴ. .htaccess ص +. , 丮 (index) +/var/web/dir1 丮 丮 (index) +ϴ.

+ +

+<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 ϴ ġ ڵ鷯 +Ű ش. Ͻýۿ server-status + ʿ.

+ +

+<Location /server-status>
+SetHandler server-status
+</Location> +

+ + +

ϵī ǥ

+ +

<Directory>, +<Files>, +<Location> +þ C ǥ ̺귯 fnmatch + ϴ ϵī ڸ ִ. +"*" ڴ  ڿ̶ Ÿ, "?" ڴ  Ѱ +Ÿ, "[seq]" seq ߿ ڸ Ÿ. + ϵī嵵 "/" ڸ Ÿ Ѵ. ׷ ڴ + ؾ Ѵ.

+ +

ʿϸ perlȣȯ ǥ ϴ <DirectoryMatch>, <FilesMatch>, <LocationMatch> + ִ. ׷ Ʒ տ ǥ +ϸ þ Ǵ  ϴ .

+ +

丮 ϴ ǥ ϵī + :

+ +

+<Directory /home/*/public_html>
+Options Indexes
+</Directory> +

+ +

ǥ Ͽ ѹ ׸Ͽ + ź ִ:

+

+<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/ +ûѴٸ ۵Ѵ. ׷ ҹڸ ʴ Ͻý +Ѵٸ Եdz? +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
+
+

ȿ  þ +ֳ?

+ +

 Ǿȿ ִ þ ˷ þ + Ȯ϶. +<Directory> +밡 þ <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch>, <Proxy>, <ProxyMatch> ǿ 밡ϴ. +׷, ܰ ִ.

+ + +
top
+
+

ǵ ϴ

+ +

ſ Ư ȴ. +þ ؼϴ ߿ ֱ⶧ +ϴ ߿ϴ.

+ +

ϴ :

+ +
    +
  1. (ǥ ʴ) <Directory> .htaccess + ÿ Ͼ (쿡 .htaccess + <Directory> + ϵ ִ)
  2. + +
  3. <DirectoryMatch> (׸ + <Directory ~>)
  4. + +
  5. <Files> <FilesMatch> ÿ Ͼ
  6. + +
  7. <Location> <LocationMatch> ÿ Ͼ
  8. +
+ +

<Directory> ϰ ǵ + Ͽ óȴ. ( 1) <Directory> 丮 + ª Ϳ óȴ. ׷ , + <Directory /var/web/dir> + <Directory /var/web/dir/subdir> + óѴ. 丮 Īϴ <Directory> + ִٸ ̵ óѴ. Include þ + Include þ ġ + ִ ó óѴ.

+ +

<VirtualHost> ȿ Ե + ȣƮ ۿ ִ ش Ŀ ȴ. + ׷ ȣƮ ȿ ּ ִ.

+ +

Ѵ.

+ +

+ + <Location>/<LocationMatch> + (Aliases DocumentRoot Ͽ + URL ϸ ȯϴ) ̸ ܰ óȴ. + Ŀ Ѵ. +
+ +

+ +

ϴ ϴ . ̵ û +ȴٰ ϸ þ 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> ߿ óϹǷ +<Directory> +ǿ ִ Ѱ ϴ. +, ϴ ߿ϹǷ ϶!

+ +

+<Location />
+Order deny,allow
+Allow from all
+</Location>
+
+# ! <Directory> ƹ ȿ
+<Directory />
+Order allow,deny
+Allow from all
+Deny from badguy.example.com
+</Directory> +

+ + + +
+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sections.html.tr.utf8 b/rubbos/app/apache2/manual/sections.html.tr.utf8 new file mode 100644 index 00000000..c8dbec32 --- /dev/null +++ b/rubbos/app/apache2/manual/sections.html.tr.utf8 @@ -0,0 +1,472 @@ + + + +Yapılandırma Bölümleri - Apache HTTP Sunucusu + + + + + +
<-
+

Yapılandırma Bölümleri

+
+

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

+
+

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> ve <IfModule> 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, MimeMagicFiles yönergesi sadece mod_mime_magic +modülü mevcutsa uygulanacaktır.

+ +

+<IfModule mod_mime_magic.c>
+ + MimeMagicFile conf/magic
+
+</IfModule> +

+ +

<IfDefine> ve +<IfModule> yönergelerinin her +ikisi de ö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 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.

+ +

+<Location /gizli>
+ +Order Allow,Deny
+Deny from all
+
+</Location> +

+ +

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.

+ +

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  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/server-wide.html b/rubbos/app/apache2/manual/server-wide.html new file mode 100644 index 00000000..e1728d78 --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html @@ -0,0 +1,21 @@ +# 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.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: server-wide.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/server-wide.html.en b/rubbos/app/apache2/manual/server-wide.html.en new file mode 100644 index 00000000..8013f744 --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html.en @@ -0,0 +1,103 @@ + + + +Server-Wide Configuration - Apache HTTP Server + + + + + +
<-
+

Server-Wide Configuration

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

This document explains some of the directives provided by +the core server which are used to configure +the basic operations of the server.

+
+ +
top
+
+

Server Identification

+ + + + +

The ServerAdmin and + ServerTokens directives + control what information about the server will be presented + in server-generated documents such as error messages. The + ServerTokens directive + sets the value of the Server HTTP response header field.

+ +

The ServerName and + UseCanonicalName + 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 + directory name, Apache must redirect the client to the full + name including the trailing slash so that the client will + correctly resolve relative references in the document.

+
top
+
+

File Locations

+ + + + +

These directives control the locations of the various files + that Apache needs for proper operation. When the pathname used + does not begin with a slash (/), the files are located relative + to the ServerRoot. Be careful + about locating files in paths which are writable by non-root users. + See the security tips + documentation for more details.

+
top
+
+

Limiting Resource Usage

+ + + + +

The LimitRequest* + directives are used to place limits on the amount of resources + Apache will use in reading requests from clients. By limiting + these values, some kinds of denial of service attacks can be + mitigated.

+ +

The RLimit* directives + are used to limit the amount of resources which can be used by + processes forked off from the Apache children. In particular, + this will control resources used by CGI scripts and SSI exec + commands.

+ +

The ThreadStackSize directive + is used only on Netware to control the stack size.

+
+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/server-wide.html.es b/rubbos/app/apache2/manual/server-wide.html.es new file mode 100644 index 00000000..1e737ba5 --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html.es @@ -0,0 +1,107 @@ + + + +Configuracin global del servidor - Servidor HTTP Apache + + + + + +
<-
+

Configuracin global del servidor

+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

Este documento explica algunas directivas del core +(ncleo) de Apache que se usan para configurar las operaciones +bsicas del servidor.

+
+ +
top
+
+

Identificacin del Servidor

+ + + + +

Las directivas ServerAdmin + y ServerTokens controlan + qu informacin relativa al servidor que se est + ejecutando ser incluida en los documentos generados por el + servidor, por ejemplo en los mensajes de error. La directiva + ServerTokens especifica el + valor del campo cabecera de las respuestas HTTP del servidor.

+ +

Las directivas ServerName + y UseCanonicalName las usa el + servidor para determinar cmo construir URLs + autorreferenciadas. Por ejemplo, cuando un cliente hace una + peticin a un directorio, pero no incluye una barra final + despus del nombre del directorio, Apache debe redirigir al + cliente a la ubicacin que corresponda con el nombre completo + del directorio incluyendo la barra que debera haber puesto + al final. De esta manera el cliente puede resolver correctamente + las referencias relativas en el documento.

+
top
+
+

Ubicacin de ficheros

+ + + + +

Estas directivas controlan las ubicaciones de varios ficheros + que Apache necesita para funcionar correctamente. Cuando se + especifica una ruta que no empieza por una barra (/), se asume que + la ruta usada es relativa al directorio especificado en ServerRoot. Tenga cuidado con poner + ficheros en rutas en las que tengan permisos de escritura usuarios + que no sean root. Consulte la documentacin sobre consejos de + seguridad para obtener ms informacin.

+
top
+
+

Lmite en el uso de recursos

+ + + + +

Las directivas LimitRequest* se usan + para poner lmites en la cantidad de recursos que Apache + utilizar leyendo peticiones de clientes. Limitando esos + valores, se pueden evitar algunos tipos de ataque de + denegacin de servicio.

+ +

Las directivas RLimit* se usan para + limitar la cantidad de recursos que pueden utilizarse por procesos + nacidos de la clonacin de procesos hijo de Apache. En + particular, esto controlar los recursos usados por los + script CGI y por los comandos de ejecucin SSI.

+ +

La directiva ThreadStackSize se usa solamente + en Netware para controlar el tamao de la pila de + ejecucin.

+
+
+

Idiomas disponibles:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/server-wide.html.ja.utf8 b/rubbos/app/apache2/manual/server-wide.html.ja.utf8 new file mode 100644 index 00000000..b9de1209 --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html.ja.utf8 @@ -0,0 +1,103 @@ + + + +サーバ全体の設定 - Apache HTTP サーバ + + + + + +
<-
+

サーバ全体の設定

+
+

Available Languages:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

このドキュメントでは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  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/server-wide.html.ko.euc-kr b/rubbos/app/apache2/manual/server-wide.html.ko.euc-kr new file mode 100644 index 00000000..8086fea9 --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html.ko.euc-kr @@ -0,0 +1,97 @@ + + + + - Apache HTTP Server + + + + + +
<-
+

+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ +

core ⺻ ൿ +ϱ ϴ þ Ϻθ Ѵ.

+
+
+
top
+
+

ĺ

+ + + + +

ServerAdmin + ServerTokens þ + ϴ + Ѵ. ServerTokens + þ HTTP Ѵ.

+ +

ServerName + UseCanonicalName + þ Ͽ ڱ URL . , + Ŭ̾Ʈ 丮 û 丮 ڿ + ġ ڿ ü ̸ + Ŭ̾Ʈ ̷ƮϿ, Ŭ̾Ʈ + ùٷ ã Ѵ.

+
top
+
+

ġ

+ + + + +

þ ġ ϱ ʿ + ϵ ġ Ѵ. θ (/) + , ServerRoot + ã´. root ƴ ڿ + ִ ο ʵ ض. ڼ + + ϶.

+
top
+
+

ڿ

+ + + + +

LimitRequest* þ ġ + Ŭ̾Ʈ û ڿ Ѵ. ̷ + Ͽ 񽺰ź(denial of service) + ִ.

+ +

RLimit* þ ġ ڽ + ϴ μ ڿ Ѵ. Ư CGI + ũƮ SSI exec ɾ ڿ Ѵ.

+ +

ThreadStackSize + þ ũ⸦ ϱ Netware Ѵ.

+
+
+

:  en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/server-wide.html.tr.utf8 b/rubbos/app/apache2/manual/server-wide.html.tr.utf8 new file mode 100644 index 00000000..aae279ff --- /dev/null +++ b/rubbos/app/apache2/manual/server-wide.html.tr.utf8 @@ -0,0 +1,100 @@ + + + +Sunucu Genelinde Yapılandırma - Apache HTTP Sunucusu + + + + + +
<-
+

Sunucu Genelinde Yapılandırma

+
+

Mevcut Diller:  en  | + es  | + 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 ve + UseCanonicalName + 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  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html b/rubbos/app/apache2/manual/sitemap.html new file mode 100644 index 00000000..33ee329a --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: sitemap.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: sitemap.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: sitemap.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: sitemap.html.ja.utf8 +Content-Language: ja +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 diff --git a/rubbos/app/apache2/manual/sitemap.html.de b/rubbos/app/apache2/manual/sitemap.html.de new file mode 100644 index 00000000..0d7afb7d --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.de @@ -0,0 +1,256 @@ + + + +Seitenindex - Apache HTTP Server + + + + + + +
<-
+ +

Seitenindex

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

Diese Seite verzeichnet die zur Zeit verfgbaren Dokumente der +Dokumentation zum Apache HTTP Server Version +2.0.

+
+ +
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

Apache-Module

+ +
top
+
top
+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html.en b/rubbos/app/apache2/manual/sitemap.html.en new file mode 100644 index 00000000..b5344073 --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.en @@ -0,0 +1,254 @@ + + + +Sitemap - Apache HTTP Server + + + + + + +
<-
+ +

Sitemap

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

This page lists the currently available documents of the +Apache HTTP Server Version 2.0 +Documentation.

+
+ +
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

Apache modules

+ +
top
+
top
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html.es b/rubbos/app/apache2/manual/sitemap.html.es new file mode 100644 index 00000000..adef69c9 --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.es @@ -0,0 +1,262 @@ + + + +Mapa de este sitio web - Servidor HTTP Apache + + + + + + +
<-
+ +

Mapa de este sitio web

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin para comprobar si se han producido cambios + recientemente.
+ +

Esta pgina contiene la lista con los documentos actualmente +disponibles de la Versin 2.0 de la +Documentacin del Servidor HTTP Apache.

+
+ +
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

Mdulos de Apache

+ +
top
+
top
+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html.ja.utf8 b/rubbos/app/apache2/manual/sitemap.html.ja.utf8 new file mode 100644 index 00000000..5513d2f8 --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.ja.utf8 @@ -0,0 +1,256 @@ + + + +Site Map - Apache HTTP サーバ + + + + + + +
<-
+ +

Site Map

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

このページは現時点で利用可能な +Apache HTTP サーババージョン 2.0 のドキュメンテーション +の一覧です。

+
+ +
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

Apache モジュール

+ +
top
+
top
+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html.ko.euc-kr b/rubbos/app/apache2/manual/sitemap.html.ko.euc-kr new file mode 100644 index 00000000..68d9d44a --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.ko.euc-kr @@ -0,0 +1,261 @@ + + + +Ʈ - Apache HTTP Server + + + + + + +
<-
+ +

Ʈ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

+Apache HTTP Server Version 2.0 +ش.

+
+ +
top
+
top
+
top
+
top
+

ġ 

+
  • +
  • +
  • +
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

+ +
+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/sitemap.html.tr.utf8 b/rubbos/app/apache2/manual/sitemap.html.tr.utf8 new file mode 100644 index 00000000..0dee65b7 --- /dev/null +++ b/rubbos/app/apache2/manual/sitemap.html.tr.utf8 @@ -0,0 +1,251 @@ + + + +Site Haritası - Apache HTTP Sunucusu + + + + + + +
<-
+ +

Site Haritası

+
+

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

+
+ +

Bu sayfada Apache HTTP Sunucusu Sürüm 2.0 +Belgelerinin tamamı listelenmiştir.

+
+ +
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+
top
+

Apache Modülleri

+ +
top
+
top
+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/index.html b/rubbos/app/apache2/manual/ssl/index.html new file mode 100644 index 00000000..d6ccf929 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/index.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: index.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/ssl/index.html.en b/rubbos/app/apache2/manual/ssl/index.html.en new file mode 100644 index 00000000..1577c57d --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/index.html.en @@ -0,0 +1,59 @@ + + + +Apache SSL/TLS Encryption - Apache HTTP Server + + + + + +
<-
+

Apache SSL/TLS Encryption

+
+

Available Languages:  en  | + ja  | + tr 

+
+ +

The Apache HTTP Server module mod_ssl +provides an interface to the OpenSSL library, which provides +Strong Encryption using the Secure Sockets Layer and Transport Layer +Security protocols. The module and this documentation are based on +Ralf S. Engelschall's mod_ssl project.

+
+ +
top
+
top
+
+

mod_ssl

+

Extensive documentation on the directives and environment variables +provided by this module is provided in the mod_ssl reference documentation. +

+
+
+

Available Languages:  en  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/index.html.ja.utf8 b/rubbos/app/apache2/manual/ssl/index.html.ja.utf8 new file mode 100644 index 00000000..f8d893b8 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/index.html.ja.utf8 @@ -0,0 +1,61 @@ + + + +Apache の SSL/TLS 暗号化 - Apache HTTP サーバ + + + + + +
<-
+

Apache の SSL/TLS 暗号化

+
+

Available Languages:  en  | + ja  | + tr 

+
+ +

Apache HTTP サーバモジュール mod_ssl が +OpenSSL +ライブラリへのインターフェースを提供していますが、これは +Secure Sockts Layer と Transport Layer Security +プロトコルを用いた強力な暗号化を提供します。 +このモジュールやこの文書は Ralf S. Engelschall の mod_ssl +プロジェクトに基づいています。

+
+ +
top
+
top
+
+

mod_ssl

+

このモジュールで提供されるディレクティブや環境変数に関する +詳しい文書は、mod_ssl +リファレンスをご覧下さい。

+
+
+

Available Languages:  en  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/index.html.tr.utf8 b/rubbos/app/apache2/manual/ssl/index.html.tr.utf8 new file mode 100644 index 00000000..1f673957 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/index.html.tr.utf8 @@ -0,0 +1,59 @@ + + + +Apache SSL/TLS Şifrelemesi - Apache HTTP Sunucusu + + + + + +
<-
+

Apache SSL/TLS Şifrelemesi

+
+

Mevcut Diller:  en  | + ja  | + tr 

+
+ +

Apache HTTP Sunucusunun mod_ssl modülü, Güvenli Soketler + Katmanı (SSL) ve Aktarım Katmanı Güvenliği (TLS) protokollerinin + kullanıldığı Sağlam Şifreleme desteğini sağlayan OpenSSL kütüphanesine bir arayüz + içerir. Bu modül ve belgeler Ralf S. Engelschall’ın mod_ssl projesine + dayanmaktadır.

+
+ +
top
+
top
+
+

mod_ssl Modülü

+

Bu modülce sağlanan yönergeler ve ortam değişkenleri + mod_ssl başvuru kılavuzunda ayrıntılı olarak + açıklanmıştır.

+
+
+

Mevcut Diller:  en  | + ja  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/ssl_compat.html b/rubbos/app/apache2/manual/ssl/ssl_compat.html new file mode 100644 index 00000000..eb43a0be --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_compat.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_compat.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/ssl/ssl_compat.html.en b/rubbos/app/apache2/manual/ssl/ssl_compat.html.en new file mode 100644 index 00000000..9a0dbfcf --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_compat.html.en @@ -0,0 +1,233 @@ + + + +SSL/TLS Strong Encryption: Compatibility - Apache HTTP Server + + + + + +
<-
+

SSL/TLS Strong Encryption: Compatibility

+
+

Available Languages:  en 

+
+ +
+

All PCs are compatible. But some of +them are more compatible than others.

+

-- Unknown

+
+ +

+Here we talk about backward compatibility to other SSL solutions. As you +perhaps know, mod_ssl is not the only existing SSL solution for Apache. +Actually there are four additional major products available on the market: Ben +Laurie's freely available Apache-SSL +(from where mod_ssl were originally derived in 1998), Red Hat's commercial Secure Web +Server (which is based on mod_ssl), Covalent's commercial Raven SSL Module (also based on mod_ssl) +and finally C2Net's commercial product Stronghold (based on a +different evolution branch named Sioux up to Stronghold 2.x and based on +mod_ssl since Stronghold 3.x).

+ +

+The idea in mod_ssl is mainly the following: because mod_ssl provides mostly a +superset of the functionality of all other solutions we can easily provide +backward compatibility for most of the cases. Actually there are three +compatibility areas we currently address: configuration directives, +environment variables and custom log functions.

+
+ +
top
+
+

Configuration Directives

+

For backward compatibility to the configuration directives of other SSL +solutions we do an on-the-fly mapping: directives which have a direct +counterpart in mod_ssl are mapped silently while other directives lead to a +warning message in the logfiles. The currently implemented directive mapping +is listed in Table 1. Currently full backward +compatibility is provided only for Apache-SSL 1.x and mod_ssl 2.0.x. +Compatibility to Sioux 1.x and Stronghold 2.x is only partial because of +special functionality in these interfaces which mod_ssl (still) doesn't +provide.

+ + +

Table 1: Configuration Directive Mapping

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Old Directivemod_ssl DirectiveComment
Apache-SSL 1.x & mod_ssl 2.0.x compatibility:
SSLEnableSSLEngine oncompactified
SSLDisableSSLEngine offcompactified
SSLLogFile fileSSLLog filecompactified
SSLRequiredCiphers specSSLCipherSuite specrenamed
SSLRequireCipher c1 ...SSLRequire %{SSL_CIPHER} in {"c1", +...}generalized
SSLBanCipher c1 ...SSLRequire not (%{SSL_CIPHER} in {"c1", +...})generalized
SSLFakeBasicAuthSSLOptions +FakeBasicAuthmerged
SSLCacheServerPath dir-functionality removed
SSLCacheServerPort integer-functionality removed
Apache-SSL 1.x compatibility:
SSLExportClientCertificatesSSLOptions +ExportCertDatamerged
SSLCacheServerRunDir dir-functionality not supported
Sioux 1.x compatibility:
SSL_CertFile fileSSLCertificateFile filerenamed
SSL_KeyFile fileSSLCertificateKeyFile filerenamed
SSL_CipherSuite argSSLCipherSuite argrenamed
SSL_X509VerifyDir argSSLCACertificatePath argrenamed
SSL_Log fileSSLLogFile filerenamed
SSL_Connect flagSSLEngine flagrenamed
SSL_ClientAuth argSSLVerifyClient argrenamed
SSL_X509VerifyDepth argSSLVerifyDepth argrenamed
SSL_FetchKeyPhraseFrom arg-not directly mappable; use SSLPassPhraseDialog
SSL_SessionDir dir-not directly mappable; use SSLSessionCache
SSL_Require expr-not directly mappable; use SSLRequire
SSL_CertFileType arg-functionality not supported
SSL_KeyFileType arg-functionality not supported
SSL_X509VerifyPolicy arg-functionality not supported
SSL_LogX509Attributes arg-functionality not supported
Stronghold 2.x compatibility:
StrongholdAccelerator dir-functionality not supported
StrongholdKey dir-functionality not supported
StrongholdLicenseFile dir-functionality not supported
SSLFlag flagSSLEngine flagrenamed
SSLSessionLockFile fileSSLMutex filerenamed
SSLCipherList specSSLCipherSuite specrenamed
RequireSSLSSLRequireSSLrenamed
SSLErrorFile file-functionality not supported
SSLRoot dir-functionality not supported
SSL_CertificateLogDir dir-functionality not supported
AuthCertDir dir-functionality not supported
SSL_Group name-functionality not supported
SSLProxyMachineCertPath dir-functionality not supported
SSLProxyMachineCertFile file-functionality not supported
SSLProxyCACertificatePath dir-functionality not supported
SSLProxyCACertificateFile file-functionality not supported
SSLProxyVerifyDepth number-functionality not supported
SSLProxyCipherList spec-functionality not supported
+ +
top
+
+

Environment Variables

+

When you use ``SSLOptions +CompatEnvVars'' additional environment +variables are generated. They all correspond to existing official mod_ssl +variables. The currently implemented variable derivation is listed in Table 2.

+ +

Table 2: Environment Variable Derivation

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Old Variablemod_ssl VariableComment
SSL_PROTOCOL_VERSIONSSL_PROTOCOLrenamed
SSLEAY_VERSIONSSL_VERSION_LIBRARYrenamed
HTTPS_SECRETKEYSIZESSL_CIPHER_USEKEYSIZErenamed
HTTPS_KEYSIZESSL_CIPHER_ALGKEYSIZErenamed
HTTPS_CIPHERSSL_CIPHERrenamed
HTTPS_EXPORTSSL_CIPHER_EXPORTrenamed
SSL_SERVER_KEY_SIZESSL_CIPHER_ALGKEYSIZErenamed
SSL_SERVER_CERTIFICATESSL_SERVER_CERTrenamed
SSL_SERVER_CERT_STARTSSL_SERVER_V_STARTrenamed
SSL_SERVER_CERT_ENDSSL_SERVER_V_ENDrenamed
SSL_SERVER_CERT_SERIALSSL_SERVER_M_SERIALrenamed
SSL_SERVER_SIGNATURE_ALGORITHMSSL_SERVER_A_SIGrenamed
SSL_SERVER_DNSSL_SERVER_S_DNrenamed
SSL_SERVER_CNSSL_SERVER_S_DN_CNrenamed
SSL_SERVER_EMAILSSL_SERVER_S_DN_Emailrenamed
SSL_SERVER_OSSL_SERVER_S_DN_Orenamed
SSL_SERVER_OUSSL_SERVER_S_DN_OUrenamed
SSL_SERVER_CSSL_SERVER_S_DN_Crenamed
SSL_SERVER_SPSSL_SERVER_S_DN_SPrenamed
SSL_SERVER_LSSL_SERVER_S_DN_Lrenamed
SSL_SERVER_IDNSSL_SERVER_I_DNrenamed
SSL_SERVER_ICNSSL_SERVER_I_DN_CNrenamed
SSL_SERVER_IEMAILSSL_SERVER_I_DN_Emailrenamed
SSL_SERVER_IOSSL_SERVER_I_DN_Orenamed
SSL_SERVER_IOUSSL_SERVER_I_DN_OUrenamed
SSL_SERVER_ICSSL_SERVER_I_DN_Crenamed
SSL_SERVER_ISPSSL_SERVER_I_DN_SPrenamed
SSL_SERVER_ILSSL_SERVER_I_DN_Lrenamed
SSL_CLIENT_CERTIFICATESSL_CLIENT_CERTrenamed
SSL_CLIENT_CERT_STARTSSL_CLIENT_V_STARTrenamed
SSL_CLIENT_CERT_ENDSSL_CLIENT_V_ENDrenamed
SSL_CLIENT_CERT_SERIALSSL_CLIENT_M_SERIALrenamed
SSL_CLIENT_SIGNATURE_ALGORITHMSSL_CLIENT_A_SIGrenamed
SSL_CLIENT_DNSSL_CLIENT_S_DNrenamed
SSL_CLIENT_CNSSL_CLIENT_S_DN_CNrenamed
SSL_CLIENT_EMAILSSL_CLIENT_S_DN_Emailrenamed
SSL_CLIENT_OSSL_CLIENT_S_DN_Orenamed
SSL_CLIENT_OUSSL_CLIENT_S_DN_OUrenamed
SSL_CLIENT_CSSL_CLIENT_S_DN_Crenamed
SSL_CLIENT_SPSSL_CLIENT_S_DN_SPrenamed
SSL_CLIENT_LSSL_CLIENT_S_DN_Lrenamed
SSL_CLIENT_IDNSSL_CLIENT_I_DNrenamed
SSL_CLIENT_ICNSSL_CLIENT_I_DN_CNrenamed
SSL_CLIENT_IEMAILSSL_CLIENT_I_DN_Emailrenamed
SSL_CLIENT_IOSSL_CLIENT_I_DN_Orenamed
SSL_CLIENT_IOUSSL_CLIENT_I_DN_OUrenamed
SSL_CLIENT_ICSSL_CLIENT_I_DN_Crenamed
SSL_CLIENT_ISPSSL_CLIENT_I_DN_SPrenamed
SSL_CLIENT_ILSSL_CLIENT_I_DN_Lrenamed
SSL_EXPORTSSL_CIPHER_EXPORTrenamed
SSL_KEYSIZESSL_CIPHER_ALGKEYSIZErenamed
SSL_SECKEYSIZESSL_CIPHER_USEKEYSIZErenamed
SSL_SSLEAY_VERSIONSSL_VERSION_LIBRARYrenamed
SSL_STRONG_CRYPTO-Not supported by mod_ssl
SSL_SERVER_KEY_EXP-Not supported by mod_ssl
SSL_SERVER_KEY_ALGORITHM-Not supported by mod_ssl
SSL_SERVER_KEY_SIZE-Not supported by mod_ssl
SSL_SERVER_SESSIONDIR-Not supported by mod_ssl
SSL_SERVER_CERTIFICATELOGDIR-Not supported by mod_ssl
SSL_SERVER_CERTFILE-Not supported by mod_ssl
SSL_SERVER_KEYFILE-Not supported by mod_ssl
SSL_SERVER_KEYFILETYPE-Not supported by mod_ssl
SSL_CLIENT_KEY_EXP-Not supported by mod_ssl
SSL_CLIENT_KEY_ALGORITHM-Not supported by mod_ssl
SSL_CLIENT_KEY_SIZE-Not supported by mod_ssl
+ +
top
+
+

Custom Log Functions

+

+When mod_ssl is built into Apache or at least loaded (under DSO situation) +additional functions exist for the Custom Log Format of +mod_log_config as documented in the Reference +Chapter. Beside the ``%{varname}x'' +eXtension format function which can be used to expand any variables provided +by any module, an additional Cryptography +``%{name}c'' cryptography format function +exists for backward compatibility. The currently implemented function calls +are listed in Table 3.

+ +

Table 3: Custom Log Cryptography Function

+ + + + + + + + + + + + +
Function CallDescription
%...{version}c SSL protocol version
%...{cipher}c SSL cipher
%...{subjectdn}c Client Certificate Subject Distinguished Name
%...{issuerdn}c Client Certificate Issuer Distinguished Name
%...{errcode}c Certificate Verification Error (numerical)
%...{errstr}c Certificate Verification Error (string)
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/ssl_faq.html b/rubbos/app/apache2/manual/ssl/ssl_faq.html new file mode 100644 index 00000000..ce1cf81d --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_faq.html @@ -0,0 +1,5 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ssl_faq.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 diff --git a/rubbos/app/apache2/manual/ssl/ssl_faq.html.en b/rubbos/app/apache2/manual/ssl/ssl_faq.html.en new file mode 100644 index 00000000..16801dd6 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_faq.html.en @@ -0,0 +1,1043 @@ + + + +SSL/TLS Strong Encryption: FAQ - Apache HTTP Server + + + + + +
<-
+

SSL/TLS Strong Encryption: FAQ

+
+

Available Languages:  en 

+
+ +
+

The wise man doesn't give the right answers, +he poses the right questions.

+

-- Claude Levi-Strauss

+ +
+

This chapter is a collection of frequently asked questions (FAQ) and +corresponding answers following the popular USENET tradition. Most of these +questions occurred on the Newsgroup comp.infosystems.www.servers.unix or the mod_ssl Support +Mailing List modssl-users@modssl.org. They are collected at this place +to avoid answering the same questions over and over.

+ +

Please read this chapter at least once when installing mod_ssl or at least +search for your problem here before submitting a problem report to the +author.

+
+ +
top
+
+

About The Module

+ + +

What is the history of mod_ssl?

+

The mod_ssl v1 package was initially created in April 1998 by Ralf S. Engelschall via porting Ben Laurie's Apache-SSL 1.17 source patches for + Apache 1.2.6 to Apache 1.3b6. Because of conflicts with Ben + Laurie's development cycle it then was re-assembled from scratch for + Apache 1.3.0 by merging the old mod_ssl 1.x with the newer Apache-SSL + 1.18. From this point on mod_ssl lived its own life as mod_ssl v2. The + first publicly released version was mod_ssl 2.0.0 from August 10th, + 1998.

+ +

After US export restrictions on cryptographic software were + loosened, mod_ssl became part of the Apache HTTP + Server with the release of Apache httpd 2.

+ + +

Is mod_ssl affected by the Wassenaar Arrangement?

+

First, let us explain what Wassenaar and its Arrangement on + Export Controls for Conventional Arms and Dual-Use Goods and + Technologies is: This is a international regime, established in 1995, to + control trade in conventional arms and dual-use goods and technology. It + replaced the previous CoCom regime. Further details on + both the Arrangement and its signatories are available at http://www.wassenaar.org/.

+ +

In short, the aim of the Wassenaar Arrangement is to prevent the build up + of military capabilities that threaten regional and international security + and stability. The Wassenaar Arrangement controls the export of + cryptography as a dual-use good, that is, something that has both military and + civilian applications. However, the Wassenaar Arrangement also provides an + exemption from export controls for mass-market software and free software.

+ +

In the current Wassenaar List of Dual Use Goods and Technologies And + Munitions, under GENERAL SOFTWARE NOTE (GSN) it says + The Lists do not control "software" which is either: 1. [...] 2. "in + the public domain". And under DEFINITIONS OF TERMS USED IN + THESE LISTS we find In the public + domain defined as "technology" or "software" which has been made + available without restrictions upon its further dissemination. Note: + Copyright restrictions do not remove "technology" or "software" from being + "in the public domain".

+ +

So, both mod_ssl and OpenSSL are in the public domain for the purposes + of the Wassenaar Arrangement and its List of Dual Use Goods and + Technologies And Munitions List, and thus not affected by its provisions.

+ + +
top
+
+

Installation

+ + +

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)'' 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 for, at minimum, the UID under which Apache's children are running (see + the User directive).

+ + +

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 + seed the OpenSSL Pseudo Random Number Generator (PRNG) manually with + 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.

+

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.

+ +
top
+
+

Configuration

+ + +

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.

+ + +

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. 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 do I speak HTTPS manually for testing purposes?

+

While you usually just use

+ +

$ telnet localhost 80
+ GET / HTTP/1.0

+ +

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 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?

+ +

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.

+ + +

Why are the SSL_XXX 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 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] +

+ +

This rewrite ruleset lets you use hyperlinks of the form + <a href="document.html:SSL">, to switch to HTTPS + in a relative link. (Replace SSL with NOSSL to switch to HTTP.)

+ +
top
+
+

Certificates

+ + +

What are RSA Private Keys, CSRs and Certificates?

+

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 + your public key and your name. You send the CSR to a Certifying Authority + (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 + 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 + description of the SSL protocol.

+ + +

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.

+ +

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!

+ + +

How do I create a self-signed SSL +Certificate for testing purposes?

+
    +
  1. Make sure OpenSSL is installed and in your PATH.
    +
    +
  2. +
  3. 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
    +	
    +
  4. +
  5. 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. +
  6. +
+ + +

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. +
  3. 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 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
    +
    + 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
    +
    + +
  4. +
  5. Create a Certificate Signing Request (CSR) with the server RSA private + key (output will be PEM formatted):
    +
    + $ openssl req -new -key server.key -out server.csr
    +
    + Make sure you enter the FQDN ("Fully Qualified Domain Name") of the + 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 by using
    + +
    + $ openssl req -noout -text -in server.csr
    +
    +
  6. +
  7. You now have to send this Certificate Signing Request (CSR) to + 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
      + http://www.thawte.com/ +
    4. +
    5. CertiSign Certificadora Digital Ltda.
      + + http://www.certisign.com.br + +
    6. +
    7. IKS GmbH
      + + http://www.iks-jena.de/leistungen/ca/ + +
    8. +
    9. Uptime Commerce Ltd.
      + + http://www.uptimecommerce.com + +
    10. +
    11. BelSign NV/SA
      + + http://www.belsign.be + +
    12. +
    + + 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
    + +
  8. +
  9. 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
    +       
    + The server.csr file is no longer needed. +
  10. + +
+ + +

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. 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 server + (will be Triple-DES encrypted and PEM formatted):
    +
    + $ openssl genrsa -des3 -out server.key 1024
    +
    + Please backup this host.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
    +
    + 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
    +
    +
  2. +
  3. Create a self-signed Certificate (X509 structure) + with the RSA key you just created (output will be PEM formatted):
    +
    + $ openssl req -new -x509 -nodes -sha1 -days 365 + -key server.key -out server.crt
    +
    + 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 server.crt
    +
    +
  4. +
+ + +

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, + 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

+ +

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 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 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 + 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 only readable by root:
    +
    + $ chmod 400 server.key
    +
    +
  4. +
+ +

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 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 + user, and have the key readable only by root).

+ +

As an alternative approach you can use the ``SSLPassPhraseDialog + 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?

+

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. 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

+ +

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

+ + +

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, 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 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 + use RSA's BSAFE cryptography toolkit.

+ + +

Why is client authentication broken after upgrading from +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. 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 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 using the following command: + $ openssl x509 -in cert.pem -out cert.der -outform DER

+ + +

Why can't I find the +getca or getverisign 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) 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.

+ + +

Why do browsers complain that they cannot +verify my Verisign Global ID server certificate?

+

Verisign uses an intermediate CA certificate between the root CA + certificate (which is installed in the browsers) and the server + certificate (which you installed on 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. This ensures that the intermediate CA certificate is + sent to the browser, filling the gap in the certificate chain.

+ +
top
+
+

The SSL Protocol

+ + +

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 the most likely source of the problem, so using the SHM session cache (or + no cache at all) may help.

+ + +

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.

+ + +

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, 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. +
  5. RC2 with MD5
  6. +
  7. RC2 with MD5 (export version restricted to 40-bit key)
  8. +
  9. IDEA with MD5
  10. +
  11. DES with MD5
  12. +
  13. Triple-DES with MD5
  14. +
+ +

To determine the actual list of ciphers available, you should run + the following:

+

$ openssl ciphers -v

+ + +

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.

+ + +

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 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 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, 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 + server (for instance it has to look for the cipher suite, the server + 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 needed in order to + complete the SSL handshake phase. Bingo!

+ + +

Why is it not possible to use Name-Based +Virtual Hosting to identify different SSL virtual hosts?

+

Name-Based Virtual Hosting is a very popular method of identifying + different virtual hosts. It allows you to use the same IP address and + the same port number for many different sites. When people move on to + 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.

+ +

The reason is that the SSL protocol is a separate layer which + 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 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, which matches the + port and IP address specified.

+ +

You can, of course, use Name-Based Virtual Hosting to identify many + 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.

+ +

+ NameVirtualHost 192.168.1.1:80 +

+ +

Other workaround solutions include:

+ +

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 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 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 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.

+ + +

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 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 +

+

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

+

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 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/ (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 + MSIE 5.x has an error in the way it handles the SGC negotiation.

+ +

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). 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 the SSLSessionCache directive).

+ + +

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?

+

+ 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 usually caused by the configured certificates.

+ +
top
+
+

mod_ssl Support

+ + +

What information resources are available in case of mod_ssl problems?

+

The following information resources are available. + In case of problems you should search here first.

+ +
+
Answers in the User Manual's F.A.Q. List (this)
+
+ http://httpd.apache.org/docs/2.0/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/
+
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?

+

The following lists all support possibilities for mod_ssl, in order of + preference. Please go through these possibilities + in this order - don't just pick the one you like the look of.

+
    +
  1. Send a Problem Report to the modssl-users Support Mailing List
    + + modssl-users@modssl.org
    + 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. +
  2. + +
  3. 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. +
  4. + +
  5. 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. +
  6. +
+ + +

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, 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. 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
+
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, 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 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 + information it is mostly impossible to find the problem and help you in + fixing it.

+ + +

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, 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. +
  2. + +
  3. 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. 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). If necessary, you can run /path/to/httpd -X + manually to force Apache to not fork. +
  4. + +
  5. 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. +
  6. +
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/ssl_howto.html b/rubbos/app/apache2/manual/ssl/ssl_howto.html new file mode 100644 index 00000000..9f06e018 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_howto.html @@ -0,0 +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/rubbos/app/apache2/manual/ssl/ssl_howto.html.en b/rubbos/app/apache2/manual/ssl/ssl_howto.html.en new file mode 100644 index 00000000..f09492d6 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_howto.html.en @@ -0,0 +1,284 @@ + + + +SSL/TLS Strong Encryption: How-To - Apache HTTP Server + + + + + +
<-
+

SSL/TLS Strong Encryption: How-To

+
+

Available Languages:  en 

+
+ +
+

The solution of 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, +HTTP and Apache's way of processing requests. This chapter gives +instructions on how to solve such 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.

+
+ +
top
+
+

Cipher Suites and Enforced Strong Security

+ + + +

How can I create a real SSLv2-only server?

+ +

The following creates an SSL server which speaks only the SSLv2 protocol and + its ciphers.

+ +

httpd.conf

+ SSLProtocol -all +SSLv2
+ SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP
+

+ + +

How can I create an SSL server which accepts strong encryption +only?

+ +

The following enables only the seven strongest ciphers:

+

httpd.conf

+ SSLProtocol all
+ SSLCipherSuite HIGH:MEDIUM
+

+ + +

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:

+

httpd.conf

+ # allow all ciphers for the initial handshake,
+ # so export browsers can upgrade via SGC facility
+ SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+
+ <Directory /usr/local/apache2/htdocs>
+ # but finally deny all browsers which haven't upgraded
+ SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
+ </Directory> +

+ + +

How can I create an SSL server which accepts all types of ciphers +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 + a renegotiation of the SSL parameters to meet the new configuration. + So, the solution is:

+

+ # be liberal in general
+ SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
+
+ <Location /strong/area>
+ # but https://hostname/strong/area/ and below
+ # requires strong ciphers
+ SSLCipherSuite HIGH:MEDIUM
+ </Location> +

+ +
top
+
+

Client Authentication and Access Control

+ + + +

How can I authenticate clients based on certificates when I know +all my clients?

+ +

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 + certificate.

+

httpd.conf

+ # require a client certificate which has to be directly
+ # signed by our CA certificate in ca.crt
+ SSLVerifyClient require
+ SSLVerifyDepth 1
+ SSLCACertificateFile conf/ssl.crt/ca.crt +

+ + +

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?

+ +

For this we again use the per-directory reconfiguration feature + of mod_ssl:

+ +

httpd.conf

+ SSLVerifyClient none
+ SSLCACertificateFile conf/ssl.crt/ca.crt
+
+ <Location /secure/area>
+ SSLVerifyClient require
+ SSLVerifyDepth 1
+ </Location>
+

+ + +

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?

+ +

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 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

+SSLVerifyClient      none
+<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
+AuthUserFile         /usr/local/apache2/conf/httpd.passwd
+require              valid-user
+</Directory>
+ +

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:

+ +

httpd.conf

+SSLVerifyClient      none
+<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." \
+               and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}
+</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?

+ +

Let us assume the Intranet can be distinguished through the IP + network 192.168.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):

+ +

httpd.conf

+SSLCACertificateFile conf/ssl.crt/company-ca.crt
+
+<Directory /usr/local/apache2/htdocs>
+#   Outside the subarea only Intranet access is granted
+Order                deny,allow
+Deny                 from all
+Allow                from 192.168.1.0/24
+</Directory>
+
+<Directory /usr/local/apache2/htdocs/subarea>
+#   Inside the subarea any Intranet access is allowed
+#   but from the Internet only HTTPS + Strong-Cipher + Password
+#   or the alternative HTTPS + Strong-Cipher + Client-Certificate
+
+#   If HTTPS is used, make sure a strong cipher is used.
+#   Additionally allow client certs as alternative to basic auth.
+SSLVerifyClient      optional
+SSLVerifyDepth       1
+SSLOptions           +FakeBasicAuth +StrictRequire
+SSLRequire           %{SSL_CIPHER_USEKEYSIZE} >= 128
+
+#   Force clients from the Internet to use HTTPS
+RewriteEngine        on
+RewriteCond          %{REMOTE_ADDR} !^192\.168\.1\.[0-9]+$
+RewriteCond          %{HTTPS} !=on
+RewriteRule          .* - [F]
+
+#   Allow Network Access and/or Basic Auth
+Satisfy              any
+
+#   Network Access Control
+Order                deny,allow
+Deny                 from all
+Allow                192.168.1.0/24
+
+#   HTTP Basic Authentication
+AuthType             basic
+AuthName             "Protected Intranet Area"
+AuthUserFile         conf/protected.passwd
+Require              valid-user
+</Directory>
+ +
+
+

Available Languages:  en 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/ssl/ssl_intro.html b/rubbos/app/apache2/manual/ssl/ssl_intro.html new file mode 100644 index 00000000..0163b215 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_intro.html @@ -0,0 +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.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/ssl/ssl_intro.html.en b/rubbos/app/apache2/manual/ssl/ssl_intro.html.en new file mode 100644 index 00000000..c3079d4e --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_intro.html.en @@ -0,0 +1,641 @@ + + + +SSL/TLS Strong Encryption: An Introduction - Apache HTTP Server + + + + + +
<-
+

SSL/TLS Strong Encryption: An Introduction

+
+

Available Languages:  en  | + ja 

+
+ +
+

The nice thing about standards is that there are so many to choose +from. And if you really don't like all the standards you just have to +wait another year until the one arises you are looking for.

+ +

-- A. Tanenbaum, "Introduction to +Computer Networks"

+
+ +

As an introduction this chapter is aimed at readers who are familiar +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.

+ +

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 +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 +article author) and all negative feedback to Ralf S. Engelschall (the +mod_ssl author).

+
+ +
top
+
+

Cryptographic Techniques

+ +

Understanding SSL requires an understanding of cryptographic +algorithms, message digest functions (aka. one-way or hash functions), and +digital signatures. These techniques are the subject of entire books (see +for instance [AC96]) and provide the basis for privacy, +integrity, and authentication.

+ +

Cryptographic Algorithms

+ +

Suppose Alice wants to send a message to her bank to transfer some + 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 + for intruders to decode the original text that it isn't worth their + effort.

+ +

There are two categories of cryptographic algorithms: conventional + and public key.

+ +
+
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.
+ +
Public key cryptography
+
also known as asymmetric cryptography, solves the key exchange + problem by defining an algorithm which uses two keys, each of which + may be used to encrypt a message. If one key is used to encrypt a + message then the other must be used to decrypt it. This makes it + possible to receive secure messages by simply publishing one key + (the public key) and keeping the other secret (the private key).
+
+ +

Anyone may 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.

+ + +

Message Digests

+ +

Although Alice may encrypt her message to make it private, there + 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.

+ +

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.

+ + +

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 +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.

+

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 +-- only she could have signed it (non-repudiation).

+ +
top
+
+

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 +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.

+ +

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 +certificates are used for authentication.

+ +

Certificate Contents

+ +

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 + public key. It also includes the identification and signature of the + 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.

+ +

Table 1: Certificate Information

+ + + + + + + + + + + + + +
SubjectDistinguished Name, Public Key
IssuerDistinguished Name, Signature
Period of ValidityNot Before Date, Not After Date
Administrative InformationVersion, Serial Number
Extended InformationBasic Constraints, Netscape Flags, etc.
+ + +

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 + abbreviations used to refer to the fields (see Table + 2).

+ +

Table 2: Distinguished Name Information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DN FieldAbbrev.DescriptionExample
Common NameCNName being certifiedCN=Joe Average
Organization or CompanyOName is associated with this
organization
O=Snake Oil, Ltd.
Organizational UnitOUName is associated with this
organization unit, such + as a department
OU=Research Institute
City/LocalityLName is located in this CityL=Snake City
State/ProvinceSTName is located in this State/ProvinceST=Desert
CountryCName is located in this Country (ISO code)C=XZ
+ + +

A Certificate Authority may define a policy specifying which + 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 + 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 + 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.

+ +

Example of a PEM-encoded certificate (snakeoil.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-----
+ + +

Certificate Authorities

+ +

By first 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.

+ +

Certificate Chains

+ +

A Certificate Authority may also issue a certificate for + another Certificate Authority. When examining a certificate, + Alice may need to examine the certificate of the issuer, for each + parent Certificate Authority, until reaching one which she has + confidence in. She may decide to trust only certificates with a + limited chain of issuers, to reduce her risk of a "bad" certificate + in the chain.

+ + +

Creating a Root-Level CA

+ +

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 + 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 + 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.

+ +

A number of companies, such as Thawte and VeriSign + have established themselves as Certificate Authorities. These + companies provide the following services:

+ +
    +
  • Verifying certificate requests
  • +
  • Processing certificate requests
  • +
  • Issuing and managing certificates
  • +
+ +

It is also possible to create your own Certificate Authority. + Although risky in the Internet environment, it may be useful + within an Intranet where the organization can easily verify the + identities of individuals and servers.

+ + +

Certificate Management

+ +

Establishing a Certificate Authority is a responsibility which + 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.

+ +

Note

+

If you use a Certificate Authority that is not configured into + browsers 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 + accept all certificates signed by that Certificate Authority.

+
+ + + +
top
+
+

Secure Sockets Layer (SSL)

+ +

The Secure Sockets Layer protocol is a protocol layer which may be +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 +for privacy.

+ +

The protocol is designed to support a range of choices for specific +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.

+ +

Table 4: Versions of the SSL protocol

+ + + + + + + + + + + + + + + + + + + +
VersionSourceDescriptionBrowser Support
SSL v2.0Vendor Standard (from Netscape Corp.) [SSL2]First SSL protocol for which implementations exists- NS Navigator 1.x/2.x
+ - MS IE 3.x
+ - Lynx/2.8+OpenSSL
SSL v3.0Expired Internet Draft (from Netscape Corp.) [SSL3]Revisions to prevent specific security attacks, add non-RSA + ciphers, and support for certificate chains- NS Navigator 2.x/3.x/4.x
+ - MS IE 3.x/4.x
+ - Lynx/2.8+OpenSSL
TLS v1.0Proposed Internet Standard (from IETF) [TLS1]Revision of SSL 3.0 to update the MAC layer to HMAC, add block + padding for block ciphers, message order standardization and more + alert messages.- Lynx/2.8+OpenSSL
+ + +

There are a number of versions of the SSL protocol, as shown in +Table 4. As noted there, one of the benefits in +SSL 3.0 is that it adds support of certificate chain loading. This feature +allows a server to pass a server certificate along with issuer certificates +to the browser. Chain loading also permits the browser to validate the +server certificate, even if Certificate Authority certificates are not +installed for the intermediate issuers, since they are included in the +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

+ +

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 + are required for management of cipher information, this article + 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 + 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).

+
+ +

+
+ Figure 1: Simplified SSL + Handshake Sequence

+ +

The elements of the handshake sequence, as used by the client and + server, are listed below:

+ +
    +
  1. Negotiate the Cipher Suite to be used during data transfer
  2. +
  3. Establish and share a session key between client and server
  4. +
  5. Optionally authenticate the server to the client
  6. +
  7. Optionally authenticate the client to the server
  8. +
+ +

The first step, Cipher Suite Negotiation, allows the client and + server to choose a Cipher Suite supportable by both of them. The SSL3.0 + protocol specification defines 31 Cipher Suites. A Cipher Suite is + defined by the following components:

+ +
    +
  • Key Exchange Method
  • +
  • Cipher for Data Transfer
  • +
  • Message Digest for creating the Message Authentication Code (MAC)
  • +
+ +

These three elements are described in the sections that follow.

+ + +

Key Exchange Method

+ +

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.

+ +

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 + against a man-in-the-middle-attack during the information exchange + used in 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:

+ +
    +
  • No encryption
  • +
  • Stream Ciphers +
      +
    • RC4 with 40-bit keys
    • +
    • RC4 with 128-bit keys
    • +
  • +
  • CBC Block Ciphers +
    • RC2 with 40 bit key
    • +
    • DES with 40 bit key
    • +
    • DES with 56 bit key
    • +
    • Triple-DES with 168 bit key
    • +
    • Idea (128 bit key)
    • +
    • Fortezza (96 bit key)
    • +
  • +
+ +

Here "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].

+ + +

Digest Function

+ +

The choice of digest function determines how a digest is created + from a record unit. SSL supports the following:

+ +
    +
  • No digest (Null choice)
  • +
  • MD5, a 128-bit hash
  • +
  • Secure Hash Algorithm (SHA-1), a 160-bit hash
  • +
+ +

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.

+ + +

Handshake Sequence Protocol

+ +

The handshake sequence uses three protocols:

+ +
    +
  • The SSL Handshake Protocol + for performing the client and server SSL session establishment.
  • +
  • The SSL Change Cipher Spec Protocol for actually + establishing agreement on the Cipher Suite for the session.
  • +
  • The SSL Alert Protocol for conveying SSL error + messages between client and server.
  • +
+ +

These protocols, as well as application protocol data, are + encapsulated in the SSL Record Protocol, as shown in + Figure 2. An encapsulated protocol is + transferred as data by the lower layer protocol, which does not + examine the data. The encapsulated protocol has no knowledge of the + underlying protocol.

+ +

+
+ Figure 2: SSL Protocol Stack +

+ +

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 + established.

+ + +

Data Transfer

+ +

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, + 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 + for compression).

+ +

+
+ Figure 3: SSL Record Protocol +

+ + +

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...

+ +
top
+
+

References

+ +
+
[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/rubbos/app/apache2/manual/ssl/ssl_intro.html.ja.utf8 b/rubbos/app/apache2/manual/ssl/ssl_intro.html.ja.utf8 new file mode 100644 index 00000000..eb497b47 --- /dev/null +++ b/rubbos/app/apache2/manual/ssl/ssl_intro.html.ja.utf8 @@ -0,0 +1,695 @@ + + + +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/rubbos/app/apache2/manual/stopping.html b/rubbos/app/apache2/manual/stopping.html new file mode 100644 index 00000000..df0155fb --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: stopping.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: stopping.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: stopping.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: stopping.html.ja.utf8 +Content-Language: ja +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.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R + +URI: stopping.html.tr.utf8 +Content-Language: tr +Content-type: text/html; charset=UTF-8 diff --git a/rubbos/app/apache2/manual/stopping.html.de b/rubbos/app/apache2/manual/stopping.html.de new file mode 100644 index 00000000..9d8ee010 --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.de @@ -0,0 +1,262 @@ + + + +Beenden und Neustarten - Apache HTTP Server + + + + + +
<-
+

Beenden und Neustarten

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
Diese bersetzung ist mglicherweise + nicht mehr aktuell. Bitte prfen 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 + und XP sollten Betreiben + des Apache als Dienst lesen, whrend 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.

+
+ +
top
+
+

Einleitung

+ +

Um den Apache zu stoppen oder neu zu starten, mssen Sie + ein Signal an den laufenden httpd-Prozess senden. Es gibt + zwei Mglichkeiten, diese Signale zu senden. Zum einen knnen + 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 heit, Sie + sollten es niemals ntig haben, einem anderen Prozess, als dem + Elternprozess, ein Signal zu senden. Es gibt drei Signale, die Sie an den + Elternprozess senden knnen: TERM, + HUP und + USR1, die nachfolgend beschrieben + werden.

+ +

Um dem Elternprozess ein Signal zu senden, verwenden Sie einen + Befehl wie z.B.:

+ +

kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

+ +

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.

+ +

Nachdem Sie httpd signalisiert haben, knnen Sie + dessen Fortschritt beobachten, indem Sie eingeben:

+ +

tail -f /usr/local/apache2/logs/error_log

+ +

Passen Sie diese Beispiele entsprechend Ihren ServerRoot- und PidFile-Einstellungen an.

+
top
+
+

Beenden

+ +
Signal: TERM
+
apachectl -k stop
+
+ +

Das Senden des TERM- oder stop-Signals an + den Elternprozess veranlasst diesen, sofort zu versuchen, alle seine + Kindprozesse zu beenden. Es kann einige Sekunden dauern, bis alle + Kindprozesse komplett beendet sind. Danach beendet sich der Elternprozess + selbst. Alle gerade bearbeiteten Anfragen werden abgebrochen. + Es werden keine weiteren Anfragen mehr bedient.

+
top
+
+

Unterbrechungsfreier Neustart

+ +
Signal: USR1
+
apachectl -k graceful
+
+ +

Das USR1- oder graceful-Signal + veranlasst den Elternprozess, die Kinder anzuweisen, sich + 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, + 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 + fr einen unterbrechungsfreien Neustart erlauben, kann ein + alternatives Signal verwendet werden (wie z.B. + WINCH). Der Befehl apachectl graceful + sendet das jeweils richtige Signal fr Ihre Platform.
+ +

Der Code ist dafr ausgelegt, stets die MPM-Direktiven + zur Prozesssteuerung zu beachten, so dass die Anzahl der Prozesse + und Threads, die zur Bedienung der Clients bereitstehen, whrend + des Neustarts auf die entsprechenden Werte gesetzt werden. + Weiterhin wird StartServers + auf folgende Art und Weise interpretiert: Wenn nach einer Sekunde + nicht mindestens StartServers + 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 Wnsche hinsichtlich des Parameters + StartServers zu + bercksichtigen.

+ +

Benutzer von mod_status werden feststellen, + dass die Serverstatistiken nicht auf Null + zurckgesetzt 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 bercksichtigt werden. + Um dies zu erreichen, muss die Statustabelle (Scoreboard), + die dazu verwendet wird, alle Kinder ber mehrere Generationen + zu verfolgen, erhalten bleiben.

+ +

Das Statusmodul benutzt auerdem ein G, um + diejenigen Kinder zu kennzeichen, die noch immer Anfragen bedienen, + welche gestartet wurden, bevor ein unterbrechungsfreier Neustart + veranlat wurde.

+ +

Derzeit gibt es keine Mglichkeit fr ein + Log-Rotationsskript, das USR1 verwendet, sicher + festzustellen, dass alle Kinder, die in ein vor dem Neustart + geffnetes 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 fr eine vollstndige Antwort + bentigen, dann knnten Sie 15 Minuten warten, bevor Sie auf + das alte Log zugreifen.

+ +
Wenn Ihre Konfigurationsdatei Fehler enthlt, whrend + Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten, + sondern sich mit einem Fehler beenden. Im Falle eines unterbrechungsfreien + Neustarts lt 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 + durchfhren, knnen Sie die Syntax der Konfigurationsdateien + mit dem Befehlszeilenargument -t berprfen + (siehe auch httpd). Das garantiert + allerdings nicht, dass der Server korrekt starten wird. Um sowohl die + Syntax als auch die Semantik der Konfigurationsdateien zu prfen, + knnen 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 gegenwrtig laufende httpd + bereits diese Ports gebunden hat). Wenn er aus einem anderen Grund + fehlschlgt, dann liegt wahrscheinlich ein Konfigurationsfehler vor. + Der Fehler sollte behoben werden, bevor der unterbrechungsfreie Neustart + angewiesen wird.
+
top
+
+

Neustarten

+ +
Signal: HUP
+
apachectl -k restart
+
+ +

Das Senden des Signals HUP oder restart + veranlat 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 + erneut. Dann erzeugt er einen neuen Satz Kindprozesse und setzt die + Bedienung von Zugriffen fort.

+ +

Benutzer von mod_status werden feststellen, dass + die Serverstatistiken auf Null gesetzt werden, wenn ein HUP + gesendet wurde.

+ +
Wenn Ihre Konfigurationsdatei einen Fehler enthlt, + whrend Sie einen Neustart anweisen, dann wird Ihr Elternprozess + nicht neu starten, sondern sich mit einem Fehler beenden. Lesen Sie oben, + wie Sie das vermeiden knnen.
+
top
+
+

Anhang: Signale und Wettkampfsituationen

+ +

Vor der Version 1.2b9 des Apache existierten verschiedene + Wettkampfsituationen (race conditions), die den Neustart und + die Signale beeinflut haben. (Einfach erklrt ist eine + Wettkampfsituation ein zeitabhngiges Problem - wenn + etwas zum falschen Zeitpunkt erfolgt oder Dinge in der falschen + Reihenfolge passieren, ist unerwartetes Verhalten die Folge. Wenn die + gleichen Dinge zur richtigen Zeit geschehen, funktioniert alles korrekt.) + 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.

+ +

Bei Architekturen, die ein ScoreBoardFile auf Platte verwenden, + besteht die Gefahr, dass die Statustabelle beschdigt wird. + 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) fhren. Ersteres ist ein schwerer Fehler, + wrend 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 + glcklicherweise bentigen die meisten Architekturen keine + Statustabelle in Form einer Datei. Bitte lesen Sie fr Architekturen, + die sie bentigen, die Dokumentation zu ScoreBoardFile.

+ +

Alle Architekturen haben in jedem Kindprozess eine kleine + Wettkampfsituation, welche die zweite und nachfolgende Anfragen + einer persistenten HTTP-Verbindung (KeepAlive) umfat. Der Prozess + kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header + enden. Es existiert eine Korrektur, die fr 1.2 zu spt 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 beeinflut zu werden + -- in einem Testfall wurde der Server zwanzig mal + pro Sekunde neu gestartet, whrend Clients das Angebot abgegrast + haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.

+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.en b/rubbos/app/apache2/manual/stopping.html.en new file mode 100644 index 00000000..3fb04a00 --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.en @@ -0,0 +1,235 @@ + + + +Stopping and Restarting - Apache HTTP Server + + + + + +
<-
+

Stopping and Restarting

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

This document covers stopping and restarting Apache on + Unix-like systems. Windows NT, 2000 and XP users should see + Running Apache as a + Service and Windows 9x and ME users should see Running Apache as a + Console Application for information on how to control + Apache on those platforms.

+
+ +
top
+
+

Introduction

+ +

In order to stop or restart Apache, you must send a signal to + the running httpd processes. There are two ways to + send the signals. First, you can use the unix kill + command to directly send signals to the processes. You will + notice many httpd executables running on your system, + 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: + TERM, + HUP, and + USR1, which + will be described in a moment.

+ +

To send a signal to the parent you should issue a command + such as:

+ +

kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

+ +

The second method of signaling the httpd processes + is to use the -k command line options: stop, + restart, and graceful, + 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.

+ +

After you have signaled httpd, you can read about + its progress by issuing:

+ +

tail -f /usr/local/apache2/logs/error_log

+ +

Modify those examples to match your ServerRoot and PidFile settings.

+
top
+
+

Stop Now

+ +
Signal: TERM
+
apachectl -k stop
+
+ +

Sending the TERM or stop signal to + the parent causes it to immediately attempt to kill off all of its + children. It may take it several seconds to complete killing off + its children. Then the parent itself exits. Any requests in + progress are terminated, and no further requests are served.

+
top
+
+

Graceful Restart

+ +
Signal: USR1
+
apachectl -k graceful
+
+ +

The USR1 or graceful 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 re-reads its configuration files and + re-opens its log files. As each child dies off the parent replaces + 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 + values throughout the restart process. Furthermore, it respects + StartServers in the + following manner: if after one second at least StartServers new children have not + 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.

+ +

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 + to serve new requests (they will be queued up by the operating + system, so they're not lost in any event) and to respect your + tuning parameters. In order to do this it has to keep the + scoreboard used to keep track of all children across + generations.

+ +

The status module will also use a G to indicate + those children which are still serving requests started before + the graceful restart was given.

+ +

At present there is no way for a log rotation script using + USR1 to know for certain that all children writing + the pre-restart log have finished. We suggest that you use a + suitable delay after sending the USR1 signal + before you do anything with the old log. For example if most of + your hits take less than 10 minutes to complete for users on + low bandwidth links then you could wait 15 minutes before doing + anything with the old log.

+ +
If your configuration file has errors + in it when you issue a restart then your parent will not + restart, it will exit with an error. In the case of graceful + restarts it will also leave children running when it exits. + (These are the children which are "gracefully exiting" by + handling their last request.) This will cause problems if you + attempt to restart the server -- it will not be able to bind to + its listening ports. Before doing a restart, you can check the + syntax of the configuration files with the -t + command line argument (see httpd). This still will not + guarantee that the server will restart correctly. To check the + semantics of the configuration files as well as the syntax, you + can try starting httpd as a non-root user. If there + are no errors it will attempt to open its sockets and logs and fail + because it's not root (or because the currently running + httpd already has those ports bound). If it fails + for any other reason then it's probably a config file error and the error + should be fixed before issuing the graceful restart.
+
top
+
+

Restart Now

+ +
Signal: HUP
+
apachectl -k restart
+
+ +

Sending the HUP or restart signal to + the parent causes it to kill off its children like in + TERM, but the parent doesn't exit. It re-reads its + configuration files, and re-opens any log files. Then it spawns a + new set of children and continues serving hits.

+ +

Users of mod_status + will notice that the server statistics are set to zero when a + HUP is sent.

+ +
If your configuration file has errors in it when you issue a +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 simply put, + a race condition is a time-sensitive problem - if something happens + at just the wrong time or things happen in the wrong order, + undesired behaviour will result. If the same thing happens at the right + time, all will be well). For those architectures that have the "right" + feature set we have eliminated as many as we can. But it should + be noted that race conditions do still exist on certain + architectures.

+ +

Architectures that use an on-disk ScoreBoardFile can potentially have + their scoreboards corrupted. 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 may 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 + architecture which 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.

+
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.es b/rubbos/app/apache2/manual/stopping.html.es new file mode 100644 index 00000000..9971b830 --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.es @@ -0,0 +1,272 @@ + + + +Iniciar y Parar el servidor Apache - Servidor HTTP Apache + + + + + +
<-
+

Iniciar y Parar el servidor Apache

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
Esta traduccin podra estar + obsoleta. Consulte la versin en ingls de la + documentacin 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 seccin Ejecutar Apache como un + servicio y los usuario de Windows 9x y ME deben consultar Ejecutar Apache como una + Aplicacin de Consola para obtener informacin + sobre como controlar Apache en esas plataformas.

+
+ +
top
+
+

Introduccin

+ +

Para parar y reiniciar Apache, hay que enviar la seal + apropiada al proceso padre httpd que se est + ejecutando. Hay dos maneras de enviar estas seales. En + primer lugar, puede usar el comando de Unix kill que + enva seales directamente a los procesos. Puede que + tenga varios procesos httpd ejecutandose en su + sistema, pero las seales deben enviarse solamente al proceso + padre, cuyo pid est especificado en la directiva PidFile. Esto quiere decir que no + debe necesitar enviar seales a ningn proceso excepto + al proceso padre. Hay tres seales que puede enviar al + proceso padre: TERM, HUP, y USR1, que van a ser descritas a + continuacin.

+ +

Para enviar una seal 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 seales a los procesos + httpd es usando las opciones de lnea de + comandos -k: stop, restart, + y graceful, como se muestra ms 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.

+ +

Despus de haber enviado las seales que desee a + httpd, puede ver cmo progresa el proceso + escribiendo:

+ +

tail -f /usr/local/apache2/logs/error_log

+ +

Modifique estos ejemplos para que coincidan con la + configuracin que tenga especificada en las directivas + ServerRoot y PidFile en su fichero principal de + configuracin.

+
top
+
+

Parar Apache

+ +
Seal: TERM
+
apachectl -k stop
+
+ +

Enviar las seales 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 peticin en proceso terminar + inmediatanmente, y ninguna peticin posterior ser + atendida.

+
top
+
+

Reinicio Graceful

+ +
Seal: USR1
+
apachectl -k graceful
+
+ +

Las seales USR1 o graceful + hacen que el proceso padre indique a sus hijos que + terminen despus de servir la peticin que estn + atendiendo en ese momento (o de inmediato si no estn + sirviendo ninguna peticin). El proceso padre lee de nuevo + sus ficheros de configuracin y vuelve a abrir sus ficheros + log. Conforme cada hijo va terminando, el proceso padre lo va + sustituyendo con un hijo de una nueva generacin con + la nueva configuracin, que empeciezan a servir peticiones + inmediatamente.

+ +
En algunas plataformas que no permiten usar + USR1 para reinicios graceful, puede usarse una + seal alternativa (como WINCH). Tambien puede + usar apachectl graceful y el script de control + enviar la seal adecuada para su plataforma.
+ +

Apache est diseado para respetar en todo momento la + directiva de control de procesos de los MPM, as como para + que el nmero de procesos y hebras disponibles para servir a + los clientes se mantenga en los valores adecuados durante el + proceso de reinicio. An ms, est diseado + para respetar la directiva StartServers de la siguiente + manera: si despus 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 nmero de hijos adecuado para el trabajo que el + servidor tenga en ese momento, como respetar la configuracin + determinada por los parmetros de la directiva + StartServers.

+ +

Los usuarios del mdulo mod_status + notarn que las estadsticas del servidor + no se ponen a cero cuando se usa la seal + USR1. Apache fue escrito tanto para minimizar el + tiempo en el que el servidor no puede servir nuevas peticiones + (que se pondrn en cola por el sistema operativo, de modo que + se no se pierda ningn evento), como para respetar sus + parmetros de ajuste. Para hacer esto, tiene que guardar el + scoreboard usado para llevar el registro de los procesos + hijo a travs de las distintas generaciones.

+ +

El mod_status tambin usa una G para indicar + que esos hijos estn todava sirviendo peticiones + previas al reinicio graceful.

+ +

Actualmente no existe ninguna manera de que un script con un + log de rotacin 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 despus de enviar la seal 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 configuracin tiene errores cuando + haga el reinicio, entonces el proceso padre no se reinciciar + y terminar con un error. En caso de un reinicio graceful, + tambin dejar a los procesos hijo ejecutandose mientras + existan. (Estos son los hijos de los que se est saliendo de + forma graceful y que estn 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 opcin de + lnea 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 configuracin, 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 + razn, entonces casi seguro que hay algn error en + alguno de los ficheros de configuracin y debe corregir ese o + esos errores antes de hacer un reinicio graceful.
+
top
+
+

Reiniciar Apache

+ +
Seal: HUP
+
apachectl -k restart
+
+ +

El envo de las seales HUP o + restart al proceso padre hace que los procesos hijo + terminen como si le envi ramos la seal + TERM, para eliminar el proceso padre. La diferencia + est en que estas seales vuelven a leer los archivos de + configuracin y vuelven a abrir los ficheros log. Se genera + un nuevo conjunto de hijos y se contina sirviendo + peticiones.

+ +

Los usuarios del mdulo mod_status + notarn que las estadsticas del servidor se ponen a + cero cuando se enva la seal HUP.

+ +
Si su fichero de configuracin contiene errores, cuando +intente reiniciar, el proceso padre del servidor no se +reiniciar, sino que terminar con un error. Consulte +ms arriba cmo puede solucionar este problema.
+
top
+
+

Apndice: seales y race conditions

+ +

Con anterioridad a la versin de Apache 1.2b9 haba + varias race conditions implicadas en las seales + para parar y reiniciar procesos (una descripcin 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 + caractersticas "adecuadas", se han eliminado tantas race + conditions como ha sido posible. Pero hay que tener en cuenta que + todava 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" + (despus de usarHUP) o el error "long lost child + came home!" (despus 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, sera 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 documentacin de la directiva + ScoreBoardFile para ver + las arquitecturas que la usan.

+ +

Todas las arquitecturas tienen una pequea race condition + en cada proceso hijo implicada en la segunda y subsiguientes + peticiones en una conexin HTTP persistente + (KeepAlive). Puede ser que el servidor termine despus de + leer la lnea de peticin pero antes de leer cualquiera + de las cebeceras de peticin. Hay una solucin que fue + descubierta demasiado tarde para la incluirla en versin + 1.2. En teoria esto no debe suponer ningn 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 ms + -- en una sesin 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.

+
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.ja.utf8 b/rubbos/app/apache2/manual/stopping.html.ja.utf8 new file mode 100644 index 00000000..5229e1b8 --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.ja.utf8 @@ -0,0 +1,261 @@ + + + +停止と再起動 - Apache HTTP サーバ + + + + + +
<-
+

停止と再起動

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

この文書では 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 を指定できます。 + これらは httpd の引数ですが、 + 制御用のスクリプト apachectl を + 使うことをお薦めします。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  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.ko.euc-kr b/rubbos/app/apache2/manual/stopping.html.ko.euc-kr new file mode 100644 index 00000000..6c9ef12d --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.ko.euc-kr @@ -0,0 +1,209 @@ + + + +ߴܰ - Apache HTTP Server + + + + + +
<-
+

ߴܰ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

н ýۿ ġ ߴϰ ϴ + ִ. NT, 2000, XP ڴ 񽺷 ġ + ϱ, 9x ME ڴ ݼ α׷ + ġ ϱ ÷ ġ ۹ ִ.

+
+ +
top
+
+

Ұ

+ +

ġ ߴϰ Ϸ ϰ ִ + httpd μ ñ׳ Ѵ. ñ׳ + ΰ. ϳ н kill + ɾ Ͽ μ ñ׳ ̴. + ýۿ httpd , PidFile pid ϵ θܿ + ٸ μ ñ׳(signal) ȵȴ. , θ̿ܿ + ٸ μ ñ׳ ʿ䰡 ٴ ̴. θ𿡰 + ִ ñ׳ , TERM, HUP, USR1̴.

+ +

θ𿡰 ñ׳ :

+ +

kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

+ +

httpd μ ñ׳ ٸ + ɼ -k ϴ ̴. Ʒ + stop, restart, graceful + httpd ƱԸƮ̴. + ׷ ƱԸƮ httpd ϴ, apachectl ũƮ + ϱ Ѵ.

+ +

httpd ñ׳ , ɾ + Ȳ ִ:

+ +

tail -f /usr/local/apache2/logs/error_log

+ +

ServerRoot PidFile ˸° ϶.

+
top
+
+

ߴ

+ +
ñ׳: TERM
+
apachectl -k stop
+
+ +

TERM̳ stop ñ׳ θ𿡰 + ڽ δ. ڽ ̴µ + ʰ ɸ ִ. ׷ θ Ѵ. ó û + ߴܵǰ, ̻ û ʴ´.

+
top
+
+

+ +
ñ׳: USR1
+
apachectl -k graceful
+
+ +

USR1̳ graceful ñ׳ + θ𿡰 θ μ ڽĵ鿡 û + ó ϶ (Ȥ ƹ͵ ó ʴٸ + ϶) Ѵ. θ + ٽа αϵ ٽ . ڽ θ + ڽĴ ο ڽ + Ͽ û óϰ Ѵ.

+ +
(graceful restart) USR1 + ÷ (WINCH ) + ٸ ñ׳ ִ. apachectl graceful + ÷ ˸ ñ׳ .
+ +

׻ MPM μ þ + Ͽ, ۵ Ŭ̾Ʈ ϴ μ 尡 + ϵ Ǿ. Դٰ StartServers, + ּ StartServersŭ ο ڽ ȸ ڽ + StartServers ǵ . , α׷ + Ͽ ˸ ڽ ϸ, + StartServers Ķͷ + 븦 Ѵ.

+ +

mod_status ڴ USR1 + 谡 0 + ̴. ο û (ü ̵ ť Ƽ +  쿡 Ҿ ʴ´) ó ϴ ð + ּȭϰ Ʃ Ķ͸ ϵ . + ̸ 밣 ڽ ϴ scoreboard + Ѵ.

+ +

status Ͽ + û óϰ ִ ڽ G ˷ش.

+ +

δ USR1 ϴ α׼ȯ ũƮ + ڽ αۼ ƴ ִ + . 츮 USR1 ñ׳ + ð α׸ ٷ絵 Ѵ. + 뿪 κ ġµ 10 + Ȱɸٸ, α׸ ٷ 15 ٸ.

+ +
Ͽ ִٸ ۽ θ + ʰ Ѵ. , Ҷ + ڽ ǵ д. (ڽĵ ڽ û + óϰ "ݰ Ѵ".) ̴ Ҷ + ȴ. ڽ ٸ Ʈ Ѵ. + -t ɼ(httpd ) + ˻ ִ. ׷ ̷ ˻絵 ùٷ + Ѵ. ƴ ǹ̸ + ˻Ϸ root ƴ ڷ httpd غ ִ. + root ƴϱ⶧ (ƴϸ Ʈ ϴ + httpd DZ⶧) ٸ ϰ + α õϴ ̴. ٸ + Ѵٸ Ƹ Ͽ ̴. + ϱ ľѴ.
+
top
+
+

+ +
ñ׳: HUP
+
apachectl -k restart
+
+ +

HUP̳ restart ñ׳ + θ𿡰 TERM ڽ + θ ʴ´. θ ٽа + α ٽ . ׸ ο ڽĵ 񽺸 + Ѵ.

+ +

mod_status ڴ HUP + 谡 0 ִ.

+ +
Ͽ ִٸ ص θ +ʰ ̴. ̸ ϴ ϶.
+
top
+
+

η: ñ׳ΰ ̽

+ +

Apache 1.2b9 ۰ ñ׳ο + ̽ (race condition) ־. (̽ + ڸ,  ߸ȶ Ͼ + Ѵ ʴ ð ΰ .) "ùٸ" + ִ ŰĿ 츮 ̷ ִ ذߴ. + ׷  ŰĿ ̽ + ϶.

+ +

ScoreBoardFile + ũ ϴ ŰĴ scoreboard Ʈ ɼ + ִ. ׷ (HUP) "bind: Address already in use" + Ȥ (USR1 ) "long lost child came home!" + ߻ ִ. ڴ ɰ ̰, ڴ + scoreboard slot Ұ . ׷ ̰ + ϱ õѴ. ذϱ ſ + . ׷ κ ŰĴ scoreboard + ʴ´. ϴ ŰĶ ScoreBoardFile ϶.

+ +

ŰĿ ӵǴ HTTP (KeepAlive) + ι° û óϴ ڽĿ ణ ̽ + ִ. ڽ û û б + ִ. ʹ ʰ ߰Ͽ 1.2 Ŀ + Ǿ. ׷ Ʈ ̳ ðѶ KeepAlive + Ŭ̾Ʈ ̷ 츦 ؾϱ ̷л + ȵȴ. ˻ϱ ʿ 20 ϴ + Ŭ̾Ʈ ׸̳ Ʈ + о̱ ʴ´ٸ ȵȴ.

+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.ru.koi8-r b/rubbos/app/apache2/manual/stopping.html.ru.koi8-r new file mode 100644 index 00000000..8d40cfc0 --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.ru.koi8-r @@ -0,0 +1,251 @@ + + + + - HTTP Apache + + + + + +
<-
+

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
. + + .
+ +

Apache + Unix- . Windows NT, 2000 XP + " Apache ", + Windows 9x ME - " + Apache ", + .

+
+ +
top
+
+

+ +

, Apache, + httpd. + . -, + , unix kill. , + httpd , + , - + pid ( ) , + PidFile. + , : + TERM, + HUP, + USR1 - .

+ +

, :

+ +

kill -TERM `cat /usr/local/apache2/logs/httpd.pid`

+ +

httpd - + -k : stop, + restart graceful, . + httpd, + , apachectl, + httpd.

+ +

, httpd, + , :

+ +

tail -f /usr/local/apache2/logs/error_log

+ +

ޣ + ServerRoot + PidFile + Apache.

+
top
+
+

+ +
: TERM
+
apachectl -k stop
+
+ +

TERM stop, + . + . , + , .

+ +
top
+
+

+ +
: USR1
+
apachectl -k graceful
+
+ +

USR1 graceful, + + ( , + ). + , log- + (, ). , - + , + , .. , + .

+ +
, USR1 + , + ( WINCH). + apachectl graceful + .
+ +

, , + ̣ - (- ), + . + , , ̣ + StartServers, + : + , + StartServers, + , + . + , + , StartServers.

+ +

, mod_status, + , + USR1 . , + , + ( , + .. ), , + . , + , .

+ +

mod_status G, + , ӣ ݣ + .

+ +

, + log- (.. + log-, ). + , + USR1, - + log-. , + , ޣ , + 10 , 15 , + - log-.

+ +
, + + . + , + . , + + . , + + -t (. httpd). + ӣ ݣ , . + , , + httpd, . + , httpd + log-, , + ( httpd + , ). + - , , + , + .
+
top
+
+

+ +
: HUP
+
apachectl -k restart
+
+ +

HUP + restart + , + TERM, . + log- + (, ). + .

+ +

, mod_status, + , + HUP .

+ +
, + + . . +
+
top
+
+

: (race conditions)

+ +

Apache 1.2b9 , + + ( , - , + , + - . + , ). + , "", "" + , , . + , + ӣ ݣ .

+ +

, + , ScoreBoardFile, + . + "bind: Address already in use" + ( HUP) + "long lost child came home!" + ( USR1). - , + . + , + . , + , , + . ScoreBoardFile, , + .

+ +

+ , + HTTP (KeepAlive). + , . + 1.2, . + , KeepAlive- + - . + , + - 20 + , , + ģ .

+
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/stopping.html.tr.utf8 b/rubbos/app/apache2/manual/stopping.html.tr.utf8 new file mode 100644 index 00000000..3f26aedb --- /dev/null +++ b/rubbos/app/apache2/manual/stopping.html.tr.utf8 @@ -0,0 +1,243 @@ + + + +Durdurma ve Yeniden Başlatma - Apache HTTP Sunucusu + + + + + +
<-
+

Durdurma ve Yeniden Başlatma

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + 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 + üç çeşit sinyal vardır: + TERM, + HUP ve + USR1. 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 ve + graceful. 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.

+ +
Belli platformlarda, nazikçe yeniden başlatma için + USR1 sinyalinin kullanılmasına izin verilmez. Bu gibi + durumlarda, WINCH gibi başka bir sinyal kullanılabilir. + apachectl graceful komutu platformunuz için doğru sinyali + gönderecektir.
+ +

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
+
+

Ek: Sinyaller ve yarış koşulları

+ +

Apache 1.2b9 sürümü öncesinde, yeniden başlatma ve ölüm sinyalleri ile + ilgili olarak ortaya çıkan çeşitli yarış koşulları vardı. (Basitçe, bir + yarış koşulu zamanlama ile ilgili bir sorundur; yanlış zamanda veya + yanlış sırada oluşan bir şey istenmeyen sonuçlara yol açarken, aynı şey + doğru zaman ve doğru sırada oluştuğunda herşey yolunda gider.) Bu tür + mimarilerde elimizden geldiği kadar bu sorunları giderecek doğru + özellikleri kullanmaya gayret etsek de belli mimarilerde hala yarış + koşullarının ortaya çıkma olasılığı bulunduğunu belirtmek gerekir.

+ +

Disk üzerinde ScoreBoardFile dosyası tutan mimarilerde + çetele bozulması olasılığı gündeme gelebilir. Bu durum, "bind: + Address already in use" (HUP sonrası) veya "long lost + child came home!" (USR1 sonrası) iletileriyle + sonuçlanabilir. İkincisi sadece çetele kaybına sebep olurken birincisi + ölümcül bir hatadır. Bu bakımdan, normalde nazikçe yeniden başlatma + kullanıp ara sıra normal yeniden başlatma yapılması önerilebilir. Bu + sorunları kitabına uydurmak çok zordur fakat şans eseri çoğu mimari bir + çetele dosyası gerektirmemektedir. Çetele dosyası kullanan mimariler + için ScoreBoardFile belgesine + bakınız.

+ +

Kalıcı HTTP bağlantısı (KeepAlive) üzerinden ikinci ve sonraki + isteklerle ilgili olarak her çocuk süreçte bir yarış koşulu oluşma + olasılığı küçük de olsa bütün mimarilerde vardır. İstek satırı + okunduktan sonra hiçbir istek başlığı okunmadan çıkabilir. Bu durum 1.2 + sürümünde geç de olsa farkedilmiş ve düzeltme yoluna gidilmiştir. Teorik + olarak, ağ gecikmeleri ve sunucu zaman aşımları nedeniyle KeepAlive + istemcisi açısından bu olaylar beklenmediğinden, bu önemli bir konu + değildir. Uygulamada ise, ne sunucuyu ne de istemciyi etkilediği + görülmez; bir deneme ortamında sunucu saniyede 20 kere yeniden + başlatılmış ve istemciler boş belge veya bozuk resim almadan siteyi + başarıyla gezmişlerdir.

+
+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/style/build.properties b/rubbos/app/apache2/manual/style/build.properties new file mode 100644 index 00000000..6a050061 --- /dev/null +++ b/rubbos/app/apache2/manual/style/build.properties @@ -0,0 +1,4 @@ +# This file contains version specific properties + +# No xml files yet +noxml.fr = new_features_2_0.html.fr upgrading.html.fr diff --git a/rubbos/app/apache2/manual/style/common.dtd b/rubbos/app/apache2/manual/style/common.dtd new file mode 100644 index 00000000..8bc6de73 --- /dev/null +++ b/rubbos/app/apache2/manual/style/common.dtd @@ -0,0 +1,191 @@ + + + + + + + +%HTMLlat1; + + +%HTMLsymbol; + + +%HTMLspecial; + + + + +%HTTPD-VERSION; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rubbos/app/apache2/manual/style/css/manual-chm.css b/rubbos/app/apache2/manual/style/css/manual-chm.css new file mode 100644 index 00000000..8471411b --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual-chm.css @@ -0,0 +1,27 @@ +@import url(manual-loose-100pc.css); + +/* 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. + */ + +html { + font-size: 95%; +} + +h1 { + margin: 0 0 0.5em 0; +} + +/* the end */ diff --git a/rubbos/app/apache2/manual/style/css/manual-loose-100pc.css b/rubbos/app/apache2/manual/style/css/manual-loose-100pc.css new file mode 100644 index 00000000..ffea7de6 --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual-loose-100pc.css @@ -0,0 +1,155 @@ +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * manual.css - no sidebar, 100% normal font height + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* 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. + */ + +/* import the main CSS, so we + * have to adjust only a few things + */ +@import url(manual.css); + +html { + font-size: 100%; +} + +/* "sidebar" background is white here */ +div#quickview a:hover, +div#quickview a:active { + background-color: #f0f0f0; + color: #0073c7; +} + +div#quickview code.module a:hover, +div#quickview code.module a:active { + background-color: #f0f0f0; + color: #8b4513; +} + +div#quickview code.directive a:hover, +div#quickview code.directive a:active { + background-color: #f0f0f0; + color: #287f00; +} + +h1 { + font-size: 1.5em; +} + +h2 { + font-size: 1.2em; +} + +.category h2 { + font-size: 1em; +} + +h3 { + font-size: 1.1em; +} + +h4 { + font-size: 1em; +} + +div.example h3, +div.note h3, +div.warning h3 { + font-size: 1em; +} + +div#quickview h3, +div#quickview h3.directives { + margin: 1em 0 0.3em 0; + font-size: 1.1em; +} + +div#quickview h3.directives { + margin-top: 0; +} + +div#quickview li { + font-size: 1em; +} + +div#quickview ul { + margin-bottom: 1em; +} + +div#quickview ul#toc { + margin-left: 0; +} + +div#quickview li img { + display: inline; + margin-right: 19px; +} + +#module-index div#quickview ul#toc, +#manual-page div#quickview ul#toc, +div#quickview #topics { + padding-left: 0; +} + +div#quickview .seealso { + padding-left: 34px; +} + +#module-index div#quickview ul#toc li, +#manual-page div#quickview ul#toc li, +div#quickview #topics li, +div#quickview .seealso li { + margin: 0; + list-style-type: none; +} + +div#page-header p.menu, +div#path, +div#footer { + font-size: smaller; +} + +div#quickview { + position: static; + margin: 0 0 1em 30px; + padding: 0; + width: auto; + background-color: #fff; +} + +div#page-content { + margin-right: 0; + padding-right: 0; +} + +div.example pre, +div.example p > code { + font-size: 0.9em; +} + +div.note pre, +div.warning pre { + font-size: 0.9em; +} + +table.qref td.descr { + font-size: 0.9em; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * -> The End <- + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ diff --git a/rubbos/app/apache2/manual/style/css/manual-print.css b/rubbos/app/apache2/manual/style/css/manual-print.css new file mode 100644 index 00000000..0d0695d2 --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual-print.css @@ -0,0 +1,717 @@ +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * manual.css for printers + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* 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. + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * mainframe ;-) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +html { + font-size: 11pt; +} + +body { + background-color: #fff; + color: #000; + padding: 0 0 0 0; + margin: 0; + font-family: "Times New Roman", serif; + font-weight: normal; +} + +pre, code { + font-family: "Courier New", Courier, monospace; +} + +strong { + font-weight: bold; +} + +q, em, var { + font-style: italic; +} + +span.transnote, span.phonetic { + font-weight: normal; + background-color: inherit; + color: #888; +} + +/* fixup IE & Opera + * otherwise they forget to inherit + * the computed font-size value + */ +table, code { + font-size: 1em; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Links + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* normal links */ +/* ====================== */ +a:link, +a:visited, +a:hover, +a:active { + color: #000; + background-color: inherit; + text-decoration: none; +} + +/* sidebar */ +div#quickview a:hover, +div#quickview a:active { + background-color: #fff; + color: #000; +} + +/* EXPERIMENTAL! I'm waiting for complaints... */ +#page-content p > a[href]:after { + content: " (\002197\0000A0" attr(href) ") "; + color: #036; +} + +/* code.module [links] */ +/* ====================== */ +code.module, +code.module a:link, +code.module a:visited, +code.module a:hover, +code.module a:active { + color: #8b4513; + background-color: inherit; + text-decoration: none; +} + +/* code.directive [links] */ +/* ====================== */ +code.directive, +code.directive a:link, +code.directive a:visited, +code.directive a:hover, +code.directive a:active { + color: #287f00; + background-color: inherit; + text-decoration: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Headings + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* h1 */ +/* ====================== */ +h1 { + padding: 0 0 0.2em 0; + margin: 1em 0 0.5em 0; + border-style: none none solid none; + border-bottom-width: 1px; + border-bottom-color: #405871; + background-color: inherit; + color: #000; + text-decoration: none; + font-size: 17pt; + font-weight: bold; + text-align: center; +} + +/* h2 */ +/* ====================== */ +h2 { + padding: 0.2em 0 0.2em 0.2em; + margin: 0 0 0.5em 0; + width: 80%; + text-decoration: none; + font-size: 15pt; + font-weight: bold; + border-bottom: 1px solid #000; + text-align: left; +} + +.section h2, +.directive-section h2, +.category h2 { + background-color: #fff; + color: #000; +} + +/* take care of s inside */ +h2 a, +h2 a:hover, +h2 a:active { + color: inherit; + background-color: inherit; + text-decoration: none; +} + +/* h3, h4 */ +/* ====================== */ +h3 { + background-color: inherit; + color: #000; + text-decoration: none; + font-weight: bold; + font-size: 13pt; + margin: 1.3em 0 0.4em 0; + padding: 0 0 0 0.2em; +} + +h4 { + background-color: inherit; + color: #000; + text-decoration: none; + font-weight: bold; + font-size: 11pt; + margin: 1.3em 0 0.2em 0; + padding: 0 0 0 0.2em; +} + +/* margin adjustment */ +h3 + *, h4 + * { + margin-top: 0; +} + +/* IE confuses the + * :-( + * so reset some things + */ +ul, .section table, .directive-section table { + margin-bottom: 1em; +} + +/* titles for + * examples, notes and warnings + */ +div.example h3, +div.note h3, +div.warning h3 { + margin: 0 0 0.5em 0; + text-align: left; + font-size: 11pt; +} + +/* sidebar */ +div#quickview h3 { + margin: 1em 0 0.3em 0; + font-size: 13pt; +} + +div#quickview h3.directives { + margin-top: 0; +} + +/* take care of s inside */ +h3 a, +h3 a:hover, +h3 a:active, +h4 a, +h4 a:hover, +h4 a:active { + color: inherit; + background-color: inherit; + text-decoration: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Up & Top helper images + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +div.up, +div.top { + display: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Tables + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* general */ +/* ====================== */ +table { + border: 1px solid #000; + border-collapse: collapse; + padding: 2px; + margin-top: 0.5em; + margin-bottom: 0; + margin-left: 1px; /* border-width == 1px */ +} + +td, th { + empty-cells: show; /* show border around empty cells */ + padding: 0.1em 0.2em; + vertical-align: top; + text-align: left; + line-height: 1.1em; +} + +th { + font-weight: bold; +} + +td.centered { + text-align: center; +} + +tr.header, tr.header th { + border-top: 1px solid #000; + border-bottom: 1px solid #000; +} + +/* bordered table cells */ +/* ====================== */ + +/* turn off borders in tables nested in + * bordered tables per default + */ +table.bordered table td, +table.bordered table th { + border-style: none; +} + +table.bordered td, +table.bordered th, +table table.bordered td, +table table.bordered th { + border: 1px solid #000; +} + +/* mod/dir. overview table and quick reference */ +/* ============================================ */ +table.module th, +table.directive th { + white-space: nowrap; +} + +table.qref { + border-collapse: collapse; + width: auto; +} + +table.qref td { + border-style: none solid; + border-color: #000; + border-width: 1px; +} + +table.qref td.descr { + padding-left: 1em; + font-size: 11pt; +} + +table#legend { + width: 100%; + border-style: none; + border-width: 0; + vertical-align: bottom; + padding: 0; + margin: 0; +} + +table#legend td { + vertical-align: bottom; + margin: 0; + padding: 0; +} + +table#legend table { + vertical-align: bottom; + margin: 0 0 0 0.4em; + padding: 0; + height: 7.5em; +} + +table#legend td.letters span { + display: none; +} + +table#legend table td, +table#legend table th { + vertical-align: middle; + padding: 0.1ex 0.2em; + line-height: 1em; +} + +/* related modules & dir. */ +/* ====================== */ + +/* assuming, all links are enclosed by + * or + * + */ + +table.related { + border-collapse: collapse; +} + +table.related th, +table.related td { + background-color: #fff; + color: #000; + padding: 0.2ex 0.4em; + border: 1px solid #000; +} + +table.related th { + vertical-align: middle; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Lists + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* list default values */ +/* ====================== */ +ul { + list-style-type: disc; +} + +ul ul { + list-style-type: square; +} + +ul ul ul { + list-style-type: circle; +} + +li, dt, dd { + line-height: 1.1em; +} + +dt { + margin-top: 0.5em; + font-weight: bold; +} + +ol li { + margin-top: 0.5em; +} + +ol.up-A { + list-style-type: upper-alpha; +} + +/* table of contents */ +/* ====================== */ +#toc, +#topics { + margin: 0; + padding: 0; +} + +#toc li, +#topics li { + list-style-type: square; + margin: 0 0 1em 0; + padding: 0; +} + +#toc li img, +#topics li img { + margin-right: 19px; +} + +/* see also */ +/* ====================== */ +.seealso { + margin: 0; + padding: 0; +} + +.seealso li { + list-style-type: square; + margin: 0 0 1em 0; + padding: 0 0 0 34px; +} + +/* related modules & dir. */ +/* ====================== */ +table.related td ul, +table.related td li { + list-style-type: none; + margin: 0; + padding: 0; +} + +/* list of all directives */ +/* ====================== */ +div#directive-list ul { + margin: 0; + padding: 0; +} + +/* quickview */ +/* ====================== */ +div#quickview li { + font-size: 11pt; +} + +div#quickview ul { + margin: 0; + padding: 0; +} + +div#quickview ul#toc { + margin: 0; + padding: 0; +} + +div#quickview ul#toc li { + margin: 0 0 0 1em; + padding: 0; + list-style-type: square; + list-style-position: outside; +} + +div#quickview li img { + display: none; +} + +#module-index div#quickview ul#toc, +#manual-page div#quickview ul#toc, +div#quickview #topics, +div#quickview .seealso { + padding-left: 0; +} + +#module-index div#quickview ul#toc li, +#manual-page div#quickview ul#toc li, +div#quickview #topics li, +div#quickview .seealso li { + margin: 0 0 2px 1em; + padding: 0; + list-style-type: square; + list-style-position: outside; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * main page sections + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* page header */ +/* ====================== */ +div#page-header { + margin-left: 0; +} + +div#page-header img { + display: none; +} + +div#page-header p.apache { + background-color: #fff; + color: #000; + padding: 0; + margin: 0; + text-align: center; + vertical-align: middle; + font-size: 20pt; + font-weight: bold; + line-height: 20pt; +} + +div#page-header p.menu { + display: none; +} + +/* breadcrumb navigation */ +div#path { + display: none; +} + +/* content sections */ +/* ====================== */ +div#preamble { + padding-bottom: 1em; + margin-left: 0; +} + +div.section, +div.directive-section { + margin: 0; + padding: 0; +} + +.section p, +.directive-section p { + margin: 0 0 1em 0; + padding: 0; +} + +/* look for this on directive + * list pages + */ +div#directive-list { + margin-left: 0; + padding: 0 0 1em 1em; +} + +div#directive-ref { + margin: -1em 0 0 1px; + padding: 0 0 1em 0; + width: auto; +} + +/* no sidebar */ +div#quickview { + position: static; + margin: 0 0 1em 0; + padding: 0; + width: auto; + background-color: #fff; + color: inherit; +} + +/* -> keep content wide */ +div#page-content { + padding-top: 0; + margin-right: 0; + padding-right: 0; +} + +/* in general */ +p { + line-height: 1.1em; +} + +/* page footer */ +/* ====================== */ +div#footer { + margin-left: 0; + font-size: 11pt; + border-top: 1px solid #000; + padding-top: 0.2em; +} + +div#footer p.apache { + float: none; + text-align: center; + padding: 0 0 1em 0; + margin-top: 0; + font-weight: bold; +} + +div.toplang, +div.bottomlang, +div#footer p.menu { + display: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * subsections (examples, notes, warnings) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* examples */ +/* ====================== */ +div.example, +div.note div.example { + background-color: #fff; + color: #000; + padding: 0.5em; + margin: 1em; + border: 1px dotted #000; +} + +/* the following [block] elements + * may appear inside example... + */ +div.example p, +div.example pre, +div.example table { + padding: 0; + margin: 0; +} + +div.example p { + line-height: 1em; +} + +div.example pre, +div.example p > code { + font-size: 10pt; +} + +/* notes & warnings */ +/* ====================== */ +div.note, +div.warning { + background-color: #fff; + color: #000; + border: 1px solid #000; + padding: 0.5em; + margin: 1em; +} + +div.note p, +div.warning p { + margin: 0; + padding: 0; +} + +div.note pre, +div.warning pre { + font-size: 10pt; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * quotations, indented paragraphs and figures + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +p.letters { + display: none; +} + +blockquote p { + font-style: italic; + margin: 0; +} + +blockquote p.cite { + font-style: normal; + margin-top: 0; + margin-left: 2em; +} + +blockquote p.cite cite { + font-style: normal; +} + +p.indent { + margin-left: 2em; + margin-top: 1em; +} + +#index-page form { + display: none; +} + +p.figure { + margin-left: 2em; + font-style: italic; +} + +p.figure img { + border: 1px solid #000; +} + +p.figure dfn { + font-weight: bold; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * -> The End <- + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ diff --git a/rubbos/app/apache2/manual/style/css/manual-zip-100pc.css b/rubbos/app/apache2/manual/style/css/manual-zip-100pc.css new file mode 100644 index 00000000..488d4600 --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual-zip-100pc.css @@ -0,0 +1,23 @@ +@import url(manual-loose-100pc.css); + +/* 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. + */ + +h1 { + margin: 0 0 0.5em 0; +} + +/* the end */ diff --git a/rubbos/app/apache2/manual/style/css/manual-zip.css b/rubbos/app/apache2/manual/style/css/manual-zip.css new file mode 100644 index 00000000..3dd237cc --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual-zip.css @@ -0,0 +1,23 @@ +@import url(manual.css); + +/* 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. + */ + +h1 { + margin: 0 0 0.5em 0; +} + +/* the end */ diff --git a/rubbos/app/apache2/manual/style/css/manual.css b/rubbos/app/apache2/manual/style/css/manual.css new file mode 100644 index 00000000..68505c1e --- /dev/null +++ b/rubbos/app/apache2/manual/style/css/manual.css @@ -0,0 +1,1017 @@ +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * manual.css + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* 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. + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * mainframe ;-) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +html { + font-size: 14px; +} + +body { + background-color: #fff; + color: #036; + padding: 0 1em 0 0; + margin: 0; + font-family: Arial, Helvetica, sans-serif; + font-weight: normal; +} + +pre, code { + font-family: "Courier New", Courier, monospace; +} + +strong { + font-weight: bold; +} + +q, em, var { + font-style: italic; +} + +span.transnote, span.phonetic { + font-weight: normal; + background-color: inherit; + color: #888; +} + +/* fixup IE & Opera + * otherwise they forget to inherit + * the computed font-size value + */ +table, code { + font-size: 1em; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Links + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* normal links */ +/* ====================== */ +a:link { + color: #0073c7; + background-color: inherit; +} + +a:visited { + color: #5A88B5; + background-color: inherit; +} + +a:link:hover, +a:link:active, +a:visited:hover, +a:visited:active { + color: #0073c7; + background-color: #f0f0f0; +} + +/* hover on non-white backgrounds */ +tr.odd a:hover, +tr.odd a:active, +tr.header a:hover, +tr.header a:active, +div.note a:hover, +div.note a:active, +div.example a:hover, +div.example a:active, +div.warning a:hover, +div.warning a:active, +div#quickview a:hover, +div#quickview a:active { + background-color: #fff; + color: #0073c7; +} + +/* code.module [links] */ +/* ====================== */ +code.module, +code.module a:link { + color: #8b4513; + background-color: inherit; +} + +code.module a:visited { + color: #bc8f8f; + background-color: inherit; +} + +code.module a:hover, +code.module a:active { + color: #8b4513; + background-color: #f0f0f0; +} + +/* hover on non-white backgrounds */ +tr.odd code.module a:hover, +tr.odd code.module a:active, +tr.header code.module a:hover, +tr.header code.module a:active, +div.note code.module a:hover, +div.note code.module a:active, +div.example code.module a:hover, +div.example code.module a:active, +div.warning code.module a:hover, +div.warning code.module a:active, +div#quickview code.module a:hover, +div#quickview code.module a:active { + background-color: #fff; + color: #8b4513; +} + +/* code.directive [links] */ +/* ====================== */ +code.directive, +code.directive a:link { + color: #287f00; + background-color: inherit; +} + +code.directive a:visited { + color: #35a500; + background-color: inherit; +} + +code.directive a:hover, +code.directive a:active { + color: #287f00; + background-color: #f0f0f0; +} + +/* hover on non-white backgrounds */ +tr.odd code.directive a:hover, +tr.odd code.directive a:active, +tr.header code.directive a:hover, +tr.header code.directive a:active, +div.note code.directive a:hover, +div.note code.directive a:active, +div.example code.directive a:hover, +div.example code.directive a:active, +div.warning code.directive a:hover, +div.warning code.directive a:active, +div#quickview code.directive a:hover, +div#quickview code.directive a:active { + background-color: #fff; + color: #287f00; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Headings + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* h1 */ +/* ====================== */ +h1 { + padding: 0.2em; + margin: 0; + border: 1px solid #405871; + background-color: inherit; + color: #036; + text-decoration: none; + font-size: 22px; + font-weight: bold; +} + +/* h2 */ +/* ====================== */ +h2 { + padding: 0.2em 0 0.2em 0.7em; + margin: 0 0 0.5em 0; + text-decoration: none; + font-size: 18px; + font-weight: bold; +} + +.section h2 { + background-color: #405871; + color: #fff; +} + +.directive-section h2 { + background-color: #557697; + color: #fff; +} + +.category h2 { + background-color: #e5ecf3; + color: #405871; + font-size: 14px; +} + +/* take care of s inside */ +h2 a, +h2 a:hover, +h2 a:active { + color: inherit; + background-color: inherit; + text-decoration: none; +} + +/* h3, h4 */ +/* ====================== */ +h3 { + background-color: inherit; + color: #036; + text-decoration: none; + font-weight: bold; + font-size: 16px; + margin: 1.3em 0 0.4em 0; + padding: 0; +} + +h4 { + background-color: inherit; + color: #036; + text-decoration: none; + font-weight: bold; + font-size: 14px; + margin: 1.3em 0 0.2em 0; + padding: 0; +} + +/* margin adjustment */ +h3 + *, h4 + * { + margin-top: 0; +} + +/* IE confuses the + * :-( + * so reset some things + */ +ul, .section table, .directive-section table { + margin-bottom: 1em; +} + +/* titles for + * examples, notes and warnings + */ +div.example h3, +div.note h3, +div.warning h3 { + margin: 0 0 0.5em 0; + text-align: left; + font-size: 14px; +} + +/* sidebar */ +div#quickview h3 { + margin: 1em 0 0.3em 0.5em; + font-size: 15px; +} + +div#quickview h3.directives { + margin-top: 0.3em; +} + +/* take care of s inside */ +h3 a, +h3 a:hover, +h3 a:active, +h4 a, +h4 a:hover, +h4 a:active { + color: inherit; + background-color: inherit; + text-decoration: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Up & Top helper images + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* arrow left */ +/* ====================== */ +div.up { + width: 30px; + height: 20px; + padding: 0; + margin: -20px 0 1px 0; + text-align: center; + vertical-align: top; +} + +div.up img { + vertical-align: top; + width: 11px; + height: 11px; + border-style: none; +} + +/* arrow up (to page top) */ +/* ====================== */ +div.top { + width: 30px; + padding: 0 0 0 30px; + margin: 0; +} + +div.top img { + margin-top: 0.5em; + vertical-align: bottom; + width: 11px; + height: 11px; + border-style: none; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Tables + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* general */ +/* ====================== */ +table { + border: 1px solid #aaa; + border-collapse: collapse; + padding: 2px; + margin-top: 0.5em; + margin-bottom: 0; +} + +td, th { + empty-cells: show; /* show border around empty cells */ + padding: 0.1em 0.2em; + vertical-align: top; + text-align: left; + line-height: 1.3em; +} + +th { + font-weight: bold; +} + +td.centered { + text-align: center; +} + +td.data { + font-family: monospace; + text-align: right; + padding-left: 1em; +} + +th.data { + text-align: right; +} + +tr.odd { /* for large tables alternating colors */ + background-color: #f2f2f2; +} + +tr.header, tr.header th { + background-color: #e2e2e2; + border-top: 1px solid #aaa; + border-bottom: 1px solid #aaa; +} + +/* bordered table cells */ +/* ====================== */ + +/* turn off borders in tables nested in + * bordered tables per default + */ +table.bordered table td, +table.bordered table th { + border-style: none; +} + +table.bordered td, +table.bordered th, +table table.bordered td, +table table.bordered th { + border: 1px solid #aaa; +} + +/* index page layout table */ +/* ======================= */ +body#index-page div#page-content { + width: 100%; /* IE fun */ +} + +body[id]#index-page div#page-content { + width: auto; /* reasonable browsers. */ +} + +table#indextable { + width: 100%; + border-collapse: collapse; + border: 0 none; +} + +table#indextable td { + width: 33.3%; + border-left: 1px solid #aaa; + padding-top: 0; + padding-bottom: 0; +} + +table#indextable td.col1 { + border-left: 0 none; + padding-left: 0; +} + +table#indextable td.col3 { + padding-right: 0; +} + +/* mod/dir. overview table and quick reference */ +/* ============================================ */ +table.module th, +table.directive th { + white-space: nowrap; +} + +table.qref { + border-collapse: collapse; + width: 100%; +} + +table.qref td { + border-style: none solid; + border-color: #aaa; + border-width: 1px; +} + +table.qref td.descr { + padding-left: 1em; + font-size: 13px; +} + +table#legend { + width: 100%; + border-style: none; + border-width: 0; + vertical-align: bottom; + padding: 0; + margin: 0; +} + +table#legend td { + vertical-align: bottom; + margin: 0; + padding: 0; +} + +table#legend td.letters { + width: 100%; + padding-bottom: 0.5em; +} + +table#legend table { + vertical-align: bottom; + margin: 0 0 0 0.4em; + padding: 0; + height: 7.5em; +} + +table#legend table td, +table#legend table th { + vertical-align: middle; + padding: 0.1ex 0.2em; + line-height: 1em; + white-space: nowrap; +} + +/* related modules & dir. */ +/* ====================== */ + +/* assuming, all links are enclosed by + * or + * + */ + +table.related { + border-collapse: separate; +} + +table.related th { + padding: 0.2ex 0.3em; + background-color: #e5ecf3; + color: #405871; + vertical-align: middle; +} + +table.related td { + padding: 0.2ex 0.3em; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * Lists + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* list default values */ +/* ====================== */ +ul { + list-style-type: disc; +} + +ul ul { + list-style-type: square; +} + +ul ul ul { + list-style-type: circle; +} + +li, dt, dd { + line-height: 1.3em; +} + +dt { + margin-top: 0.5em; + font-weight: bold; +} + +ol li { + margin-top: 0.5em; +} + +ol.up-A { + list-style-type: upper-alpha; +} + +ol.lo-A { + list-style-type: lower-alpha; +} + +dd.separate { + margin-bottom: 2em; +} + +li.separate { + margin-bottom: 1em; +} + +/* table of contents */ +/* ====================== */ +#toc, +#topics { + margin: 0 0 1em 0; + padding: 0; +} + +#toc li, +#topics li { + list-style-type: none; + margin: 0; + padding: 0; +} + +/* see also */ +/* ====================== */ +.seealso { + margin: 0 0 1em 0; + padding: 0; +} + +.seealso li { + list-style-type: none; + margin: 0; + padding: 0 0 0 34px; +} + +/* related modules & dir. */ +/* ====================== */ +table.related td ul, +table.related td li { + list-style-type: none; + margin: 0; + padding: 0; +} + +/* list of all directives */ +/* ====================== */ +div#directive-list ul { + margin: 0; + padding: 0; +} + +/* indextable */ +/* ========== */ +table#indextable td ul { + list-style-type: none; + margin: 0 0 1em 0.5em; + padding: 0 0 0 0; +} + +table#indextable td ul li { + margin-top: 0.3em; +} + +/* sidebar */ +/* ====================== */ +div#quickview li { + font-size: 13px; +} + +div#quickview ul { + margin: 0 0 15px 0; + padding: 0; +} + +div#quickview ul#toc { + margin: 0 0 0 0.5em; + padding: 0; +} + +#module-index div#quickview ul#toc, +#manual-page div#quickview ul#toc { + margin-left: 0; +} + +div#quickview ul#toc li { + margin: 0; + padding: 0; + list-style-type: none; +} + +div#quickview li img { + display: none; +} + +#module-index div#quickview ul#toc, +#manual-page div#quickview ul#toc, +div#quickview #topics, +div#quickview .seealso { + padding-left: 15px; +} + +#module-index div#quickview ul#toc li, +#manual-page div#quickview ul#toc li, +div#quickview #topics li, +div#quickview .seealso li { + margin: 0.4em 0 2px 0; + padding: 0; + list-style-type: square; + list-style-position: outside; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * main page sections + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* page header */ +/* ====================== */ +div#page-header { + margin-left: 30px; +} + +div#page-header img { + padding: 0; + display: block; + margin: -70px 0 1px 2em; + width: 248px; + height: 70px; +} + +div#page-header p.apache { + background-color: #405871; + color: #fff; + padding: 0 0 0 248px; + margin: 0; + text-align: center; + vertical-align: middle; + font-size: 16px; + font-weight: bold; + line-height: 29px; +} + +div#page-header p.menu { + text-align: right; + font-size: 13px; + margin: 30px 0 0.5em 0; + padding: 0; +} + +/* breadcrumb navigation */ +div#path { + margin: 0.2em 0 1.2em 30px; + padding: 0; + font-size: 13px; +} + +/* content sections */ +/* ====================== */ +div#preamble { + padding-bottom: 1em; + margin-left: 30px; +} + +div.section, +div.directive-section { + margin: -1.2em 0 0 60px; + padding: 0; +} + +.section p, +.directive-section p { + margin: 0 0 1em 0; + padding: 0; +} + +/* look for this on directive + * list pages + */ +div#directive-list { + margin-left: 30px; + padding: 0 0 1em 1em; +} + +div#directive-ref { + margin: -1em 0 0 0; + padding: 0 0 1em 30px; + width: 100%; /* IE is BAD (broken as designed) */ +} + +div[id]#directive-ref { /* a big sorry to ICab, Amaya (and old Konquerors?) */ + width: auto; /* other browsers are fine ;-) */ +} + +/* sidebar position: right */ +div#quickview { + position: absolute; + top: 5.5em; + right: 1em; + margin-left: 0; + margin-top: 40px; + padding: 4px; + width: 13.5em; + background-color: #f0f0f0; + color: inherit; +} + +/* -> move content left */ +div#page-content { + padding-top: 0; + margin-right: 13em; + padding-right: 30px; +} + +/* unsqueeze on some pages... */ +body.no-sidebar div#page-content, +body#index-page div#page-content { + margin-right: 0; + padding-right: 0; +} + +body#index-page div#page-content { + margin-left: 30px; + padding-bottom: 1em; +} + +/* in general */ +p { + line-height: 1.3em; +} + +/* translations */ +/* ====================== */ +.toplang { + padding: 0; + margin: 0.2em 0.2em 1em 0; +} + +.bottomlang { + padding: 0; + margin: 0 0.2em 0.2em 0; +} + +.toplang p, +.bottomlang p { + font-size: 13px; + text-align: right; + background-color: inherit; + color: #ccc; + margin: 0; + padding: 0; +} + +.toplang p span, +.bottomlang p span { + background-color: inherit; + color: #036; +} + +.toplang p a:link, +.toplang p a:visited, +.bottomlang p a:link, +.bottomlang p a:visited { + text-decoration: none; + font-weight: bold; +} + +.toplang p a:hover, +.toplang p a:active, +.bottomlang p a:hover, +.bottomlang p a:active { + font-weight: bold; +} + +/* page footer */ +/* ====================== */ +div#footer { + margin-left: 30px; + font-size: 13px; + border-top: 1px solid #405871; + padding-top: 0.2em; +} + +div#footer p.apache { + float: left; + text-align: left; + padding: 0 0 1em 0; + margin-top: 0; +} + +div#footer p.menu { + float: right; + text-align: right; + margin-top: 0; + padding: 0 0 1em 0; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * subsections (examples, notes, warnings) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* examples */ +/* ====================== */ +div.example { + background-color: #e5ecf3; + color: #000; + padding: 0.5em; + margin: 1em 2em 1em 1em; +} + +/* example inside a note: + * blue in gray doesn't look good + * so simply draw a border around + * and keep it gray + */ +div.note div.example, +div.warning div.example { + border: 1px solid #aaa; + background-color: transparent; + color: inherit; + margin-right: 1em; +} + +/* example inside table */ +table div.example { + margin-right: 1em; +} + +/* the following [block] elements + * may appear inside example... + */ +div.example p, +div.example pre, +div.example table { + padding: 0; + margin: 0; +} + +div.example p { + line-height: 1em; +} + +div.example pre, +div.example p > code { + font-size: 13px; +} + +/* notes & warnings */ +/* ====================== */ +div.note, +div.warning { + background-color: #eee; + color: #036; + padding: 0.5em; + margin: 1em 2em 1em 1em; +} + +div.warning { + border: 1px solid #f00; +} + +div.note p, +div.warning p { + margin: 0.5em 0 0 0; + padding: 0; +} + +div.note pre, +div.warning pre { + font-size: 13px; +} + +/* inside table */ +table div.note, +table div.warning { + margin-right: 1em; +} + +div.outofdate { + background-color: #ffffe0; + color: #036; + padding: 0.5em; + margin: 1em 2em 1em 1em; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * quotations, indented paragraphs, forms and figures + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +p.letters { + margin: 1em 0 0 0; +} + +p.centered { + text-align: center; +} + +.letters { + text-align: center; + background-color: inherit; + color: #ccc; +} + +.letters a:link, +.letters a:visited { + text-decoration: none; + font-weight: bold; +} + +.letters a:hover, +.letters a:active { + font-weight: bold; +} + +blockquote p { + font-style: italic; + margin: 0; +} + +blockquote p.cite { + font-style: normal; + margin-top: 0; + margin-left: 2em; +} + +blockquote p.cite cite { + font-style: normal; +} + +p.indent { + margin-left: 2em; + margin-top: 1em; +} + +span.indent { + padding-left: 1.5em; + display: block; +} + +#index-page form { + text-align: center; +} + +#index-page form p { + line-height: 1.1em; +} + +#index-page form input { + font-size: 1em; +} + +p.figure { + margin-left: 2em; + font-style: italic; +} + +p.figure img { + border: 1px solid #aaa; +} + +p.figure dfn { + font-weight: bold; +} + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * -> The End <- + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ diff --git a/rubbos/app/apache2/manual/style/faq.dtd b/rubbos/app/apache2/manual/style/faq.dtd new file mode 100644 index 00000000..9af4f113 --- /dev/null +++ b/rubbos/app/apache2/manual/style/faq.dtd @@ -0,0 +1,35 @@ + + + + + +%common; + + + + + + + + + + + diff --git a/rubbos/app/apache2/manual/style/lang.dtd b/rubbos/app/apache2/manual/style/lang.dtd new file mode 100644 index 00000000..422313c9 --- /dev/null +++ b/rubbos/app/apache2/manual/style/lang.dtd @@ -0,0 +1,24 @@ + + + + + +%HTTPD-VERSION; + + + diff --git a/rubbos/app/apache2/manual/style/latex/atbeginend.sty b/rubbos/app/apache2/manual/style/latex/atbeginend.sty new file mode 100644 index 00000000..8729fa6c --- /dev/null +++ b/rubbos/app/apache2/manual/style/latex/atbeginend.sty @@ -0,0 +1,65 @@ +% atbeginend.sty +% +% defines +% \BeforeBegin{environment}{code-to-execute} +% \BeforeEnd {environment}{code-to-execute} +% \AfterBegin {environment}{code-to-execute} +% \AfterEnd {environment}{code-to-execute} +% +% Save \begin and \end to \BeginEnvironment and \EndEnvironment +\let\BeginEnvironment=\begin +\let\EndEnvironment=\end + +\def\IfUnDef#1{\expandafter\ifx\csname#1\endcsname\relax} + +% Null command needed to for \nothing{something}=.nothing. +\def\NullCom#1{} + +\def\begin#1{% +% +% if defined \BeforeBeg for this environment, execute it +\IfUnDef{BeforeBeg#1}\else\csname BeforeBeg#1\endcsname\fi% +% +% +% +\IfUnDef{AfterBeg#1}% This is done to skip the command for environments + % which can take arguments, like multicols; YOU MUST NOT + % USE \AfterBegin{...}{...} for such environments! + \let\SaveBegEng=\BeginEnvironment% +\else% + % Start this environment + \BeginEnvironment{#1}% + % and execute code after \begin{environment} + \csname AfterBeg#1\endcsname% + % + \let\SaveBegEng=\NullCom% +\fi% +\SaveBegEng{#1}% +} + + +\def\end#1{% +% +% execute code before \end{environment} +\IfUnDef{BeforeEnd#1}\else\csname BeforeEnd#1\endcsname\fi% +% +% close this environment +\EndEnvironment{#1}% +% +% and execute code after \begin{environment} +\IfUnDef{AfterEnd#1}\else\csname AfterEnd#1\endcsname\fi% +} + + +%% Now, define commands +% \BeforeBegin{environment}{code-to-execute} +% \BeforeEnd {environment}{code-to-execute} +% \AfterBegin {environment}{code-to-execute} +% \AfterEnd {environment}{code-to-execute} + +\def\BeforeBegin#1#2{\expandafter\gdef\csname BeforeBeg#1\endcsname +{#2}} +\def\BeforeEnd #1#2{\expandafter\gdef\csname BeforeEnd#1\endcsname +{#2}} +\def\AfterBegin #1#2{\expandafter\gdef\csname AfterBeg#1\endcsname {#2}} +\def\AfterEnd #1#2{\expandafter\gdef\csname AfterEnd#1\endcsname{#2}} diff --git a/rubbos/app/apache2/manual/style/manualpage.dtd b/rubbos/app/apache2/manual/style/manualpage.dtd new file mode 100644 index 00000000..17742548 --- /dev/null +++ b/rubbos/app/apache2/manual/style/manualpage.dtd @@ -0,0 +1,27 @@ + + + + + +%common; + + + + + diff --git a/rubbos/app/apache2/manual/style/modulesynopsis.dtd b/rubbos/app/apache2/manual/style/modulesynopsis.dtd new file mode 100644 index 00000000..14f947a5 --- /dev/null +++ b/rubbos/app/apache2/manual/style/modulesynopsis.dtd @@ -0,0 +1,76 @@ + + + + + +%sitemap; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rubbos/app/apache2/manual/style/sitemap.dtd b/rubbos/app/apache2/manual/style/sitemap.dtd new file mode 100644 index 00000000..e47e8a9d --- /dev/null +++ b/rubbos/app/apache2/manual/style/sitemap.dtd @@ -0,0 +1,38 @@ + + + + + +%common; + + + + + + + + + + + + + + + + diff --git a/rubbos/app/apache2/manual/style/version.ent b/rubbos/app/apache2/manual/style/version.ent new file mode 100644 index 00000000..ae00eba1 --- /dev/null +++ b/rubbos/app/apache2/manual/style/version.ent @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/rubbos/app/apache2/manual/suexec.html b/rubbos/app/apache2/manual/suexec.html new file mode 100644 index 00000000..9c833c98 --- /dev/null +++ b/rubbos/app/apache2/manual/suexec.html @@ -0,0 +1,17 @@ +# 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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/suexec.html.en b/rubbos/app/apache2/manual/suexec.html.en new file mode 100644 index 00000000..cb50bd9a --- /dev/null +++ b/rubbos/app/apache2/manual/suexec.html.en @@ -0,0 +1,617 @@ + + + +suEXEC Support - Apache HTTP Server + + + + + +
<-
+

suEXEC Support

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ +

The suEXEC feature provides + Apache users the ability + to run CGI and SSI programs + under user IDs different from the user ID of the calling + web server. Normally, when a CGI or SSI program executes, it + runs as the same user who is running the web server.

+ +

Used properly, this feature can reduce + considerably the security risks involved with allowing users to + develop and run private CGI or SSI programs. However, if suEXEC + is improperly configured, it can cause any number of problems + and possibly create new holes in your computer's security. If + you aren't familiar with managing setuid root programs + and the security issues they present, we highly recommend that + you not consider using suEXEC.

+
+ +
top
+
+

Before we begin

+ +

Before jumping head-first into this document, + you should be aware of the assumptions made on the part of the + Apache Group and this document.

+ +

First, it is assumed that you are using a UNIX + derivative operating system that is capable of + setuid and setgid operations. + All command examples are given in this regard. Other platforms, + if they are capable of supporting suEXEC, may differ in their + configuration.

+ +

Second, it is assumed you are familiar with + some basic concepts of your computer's security and its + administration. This involves an understanding of + setuid/setgid operations and the various + effects they may have on your system and its level of + security.

+ +

Third, it is assumed that you are using an + unmodified version of suEXEC code. All code + for suEXEC has been carefully scrutinized and tested by the + developers as well as numerous beta testers. Every precaution + has been taken to ensure a simple yet solidly safe base of + code. Altering this code can cause unexpected problems and new + security risks. It is highly recommended you + not alter the suEXEC code unless you are well versed in the + particulars of security programming and are willing to share + your work with the Apache Group for consideration.

+ +

Fourth, and last, it has been the decision of + the Apache Group to NOT make suEXEC part of + the default installation of Apache. To this end, suEXEC + configuration requires of the administrator careful attention + to details. After due consideration has been given to the + various settings for suEXEC, the administrator may install + suEXEC through normal installation methods. The values for + these settings need to be carefully determined and specified by + the administrator to properly maintain system security during + the use of suEXEC functionality. It is through this detailed + process that the Apache Group hopes to limit suEXEC + installation only to those who are careful and determined + enough to use it.

+ +

Still with us? Yes? Good. Let's move on!

+
top
+
+

suEXEC Security Model

+ +

Before we begin configuring and installing + suEXEC, we will first discuss the security model you are about + to implement. By doing so, you may better understand what + exactly is going on inside suEXEC and what precautions are + taken to ensure your system's security.

+ +

suEXEC is based on a setuid + "wrapper" program that is called by the main Apache web server. + This wrapper is called when an HTTP request is made for a CGI + or SSI program that the administrator has designated to run as + a userid other than that of the main server. When such a + request is made, Apache provides the suEXEC wrapper with the + program's name and the user and group IDs under which the + program is to execute.

+ +

The wrapper then employs the following process + to determine success or failure -- if any one of these + conditions fail, the program logs the failure and exits with an + error, otherwise it will continue:

+ +
    +
  1. + Is the user executing this wrapper a valid user of + this system? + +

    + This is to ensure that the user executing the wrapper is + truly a user of the system. +

    +
  2. + +
  3. + Was the wrapper called with the proper number of + arguments? + +

    + The wrapper will only execute if it is given the proper + number of arguments. The proper argument format is known + to the Apache web server. If the wrapper is not receiving + the proper number of arguments, it is either being + hacked, or there is something wrong with the suEXEC + portion of your Apache binary. +

    +
  4. + +
  5. + Is this valid user allowed to run the + wrapper? + +

    + Is this user the user allowed to run this wrapper? Only + one user (the Apache user) is allowed to execute this + program. +

    +
  6. + +
  7. + Does the target CGI or SSI program have an unsafe + hierarchical reference? + +

    + Does the target CGI or SSI program's path contain a leading + '/' or have a '..' backreference? These are not allowed; the + target CGI/SSI program must reside within suEXEC's document + root (see --with-suexec-docroot=DIR + below). +

    +
  8. + +
  9. + Is the target user name valid? + +

    + Does the target user exist? +

    +
  10. + +
  11. + Is the target group name valid? + +

    + Does the target group exist? +

    +
  12. + +
  13. + Is the target user NOT superuser? + + +

    + Presently, suEXEC does not allow root + to execute CGI/SSI programs. +

    +
  14. + +
  15. + Is the target userid ABOVE the minimum ID + number? + +

    + The minimum user ID number is specified during + configuration. This allows you to set the lowest possible + userid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" accounts. +

    +
  16. + +
  17. + Is the target group NOT the superuser + group? + +

    + Presently, suEXEC does not allow the root + group to execute CGI/SSI programs. +

    +
  18. + +
  19. + Is the target groupid ABOVE the minimum ID + number? + +

    + The minimum group ID number is specified during + configuration. This allows you to set the lowest possible + groupid that will be allowed to execute CGI/SSI programs. + This is useful to block out "system" groups. +

    +
  20. + +
  21. + Can the wrapper successfully become the target user + and group? + +

    + Here is where the program becomes the target user and + group via setuid and setgid calls. The group access list + is also initialized with all of the groups of which the + user is a member. +

    +
  22. + +
  23. + Can we change directory to the one in which the target + CGI/SSI program resides? + +

    + If it doesn't exist, it can't very well contain files. If we + can't change directory to it, it might aswell not exist. +

    +
  24. + +
  25. + Is the directory within the Apache + 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 + within the directory configured as suEXEC's userdir (see + suEXEC's configuration options)? +

    +
  26. + +
  27. + Is the directory NOT writable by anyone + else? + +

    + We don't want to open up the directory to others; only + the owner user may be able to alter this directories + contents. +

    +
  28. + +
  29. + Does the target CGI/SSI program exist? + +

    + If it doesn't exists, it can't very well be executed. +

    +
  30. + +
  31. + Is the target CGI/SSI program NOT writable + by anyone else? + +

    + We don't want to give anyone other than the owner the + ability to change the CGI/SSI program. +

    +
  32. + +
  33. + Is the target CGI/SSI program NOT setuid or + setgid? + +

    + We do not want to execute programs that will then change + our UID/GID again. +

    +
  34. + +
  35. + Is the target user/group the same as the program's + user/group? + +

    + Is the user the owner of the file? +

    +
  36. + +
  37. + Can we successfully clean the process environment + to ensure safe operations? + +

    + suEXEC cleans the process' environment by establishing a + safe execution PATH (defined during configuration), as + well as only passing through those variables whose names + are listed in the safe environment list (also created + during configuration). +

    +
  38. + +
  39. + Can we successfully become the target CGI/SSI program + and execute? + +

    + Here is where suEXEC ends and the target CGI/SSI program begins. +

    +
  40. +
+ +

This is the standard operation of the + suEXEC wrapper's security model. It is somewhat stringent and + can impose new limitations and guidelines for CGI/SSI design, + but it was developed carefully step-by-step with security in + mind.

+ +

For more information as to how this security + model can limit your possibilities in regards to server + configuration, as well as what security risks can be avoided + with a proper suEXEC setup, see the "Beware the Jabberwock" section of this + document.

+
top
+
+

Configuring & Installing + suEXEC

+ +

Here's where we begin the fun.

+ +

suEXEC configuration + options
+

+ +
+
--enable-suexec
+ +
This option enables the suEXEC feature which is never + installed or activated by default. At least one + --with-suexec-xxxxx option has to be provided + together with the --enable-suexec option to let + APACI accept your request for using the suEXEC feature.
+ +
--with-suexec-bin=PATH
+ +
The path to the suexec binary must be hard-coded + in the server for security reasons. Use this option to override + the default path. e.g. + --with-suexec-bin=/usr/bin/suexec
+ +
--with-suexec-caller=UID
+ +
The username under which + Apache normally runs. This is the only user allowed to + execute this program.
+ +
--with-suexec-userdir=DIR
+ +
Define to be the subdirectory under users' home + 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 + 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, + 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 + not work!
+ +
--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.
+ +
--with-suexec-uidmin=UID
+ +
Define this as the lowest UID allowed to be a target user + for suEXEC. For most systems, 500 or 100 is common. Default + value is 100.
+ +
--with-suexec-gidmin=GID
+ +
Define this as the lowest GID allowed to be a target + group for suEXEC. For most systems, 100 is common and + therefore used as default value.
+ +
--with-suexec-logfile=FILE
+ +
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).
+ +
--with-suexec-safepath=PATH
+ +
Define a safe PATH environment to pass to CGI + executables. Default value is + "/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/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 + suEXEC

+ +

Upon startup of Apache, it looks for the file + suexec in the directory defined by the + --sbindir option (default is + "/usr/local/apache/bin/suexec"). If Apache finds a properly + configured suEXEC wrapper, it will print the following message + to the error log:

+ +

+ [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) +

+ +

If you don't see this message at server startup, the server is + most likely not finding the wrapper program where it expects + it, or the executable is not installed setuid root.

+ +

If you want to enable the suEXEC mechanism for the first time + and an Apache server is already running you must kill and + restart Apache. Restarting it with a simple HUP or USR1 signal + will not be enough.

+

If you want to disable suEXEC you should kill and restart + Apache after you have removed the suexec file.

+
top
+
+

Using suEXEC

+ +

Requests for CGI programs will call the suEXEC wrapper only if + they are for a virtual host containing a SuexecUserGroup directive or if + they are processed by mod_userdir.

+ +

Virtual Hosts:
One way to use the suEXEC + wrapper is through the SuexecUserGroup directive in + VirtualHost definitions. By + setting this directive to values different from the main server + user ID, all requests for CGI resources will be executed as the + User and Group defined for that <VirtualHost>. If this + directive is not specified for a <VirtualHost> then the main server userid + is assumed.

+ +

User directories:
Requests that are + processed by mod_userdir will call the suEXEC + wrapper to execute CGI programs under the userid of the requested + user directory. The only requirement needed for this feature to + work is for CGI execution to be enabled for the user and that the + script must meet the scrutiny of the security + checks above. See also the + --with-suexec-userdir compile + time option.

top
+
+

Debugging suEXEC

+ +

The suEXEC wrapper will write log information + to the file defined with the --with-suexec-logfile + option as indicated above. If you feel you have configured and + installed the wrapper properly, have a look at this log and the + error_log for the server to see where you may have gone astray.

+ +
top
+
+

Beware the Jabberwock: + Warnings & Examples

+ +

NOTE! This section may not be + complete. For the latest revision of this section of the + documentation, see the Apache Group's Online + Documentation version.

+ +

There are a few points of interest regarding + the wrapper that can cause limitations on server setup. Please + review these before submitting any "bugs" regarding suEXEC.

+ +
    +
  • suEXEC Points Of Interest
  • + +
  • + Hierarchy limitations + +

    + For security and efficiency reasons, all suEXEC requests + must remain within either a top-level document root for + virtual host requests, or one top-level personal document + root for userdir requests. For example, if you have four + VirtualHosts configured, you would need to structure all + of your VHosts' document roots off of one main Apache + document hierarchy to take advantage of suEXEC for + VirtualHosts. (Example forthcoming.) +

    +
  • + +
  • + suEXEC's PATH environment variable + +

    + This can be a dangerous thing to change. Make certain + every path you include in this define is a + trusted directory. You don't want to + open people up to having someone from across the world + running a trojan horse on them. +

    +
  • + +
  • + Altering the suEXEC code + +

    + Again, this can cause Big Trouble if you + try this without knowing what you are doing. Stay away + from it if at all possible. +

    +
  • +
+ +
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/suexec.html.ja.utf8 b/rubbos/app/apache2/manual/suexec.html.ja.utf8 new file mode 100644 index 00000000..3d533b35 --- /dev/null +++ b/rubbos/app/apache2/manual/suexec.html.ja.utf8 @@ -0,0 +1,613 @@ + + + +suEXEC サポート - Apache HTTP サーバ + + + + + +
<-
+

suEXEC サポート

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ +

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 コードの改造 + + +

    + 繰り返しますが、何をやろうとしているか把握せずにこれをやると + 大きな問題を引き起こしかねません。 + 可能な限り避けてください。 +

    +
  • +
+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/suexec.html.ko.euc-kr b/rubbos/app/apache2/manual/suexec.html.ko.euc-kr new file mode 100644 index 00000000..89b9119c --- /dev/null +++ b/rubbos/app/apache2/manual/suexec.html.ko.euc-kr @@ -0,0 +1,536 @@ + + + +suEXEC - Apache HTTP Server + + + + + +
<-
+

suEXEC

+
+

:  en  | + ja  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ +

suEXEC ġ CGI + SSI α׷ ID + ƴ ٸ ID ϵ Ѵ. CGI SSI α׷ + ϸ ڿ ڷ Ѵ.

+ +

ϸ ڰ CGI SSI α׷ + ϰ Ҷ ߻ ִ + ִ. ׷ suEXEC ϰ Ǹ + ǻͿ ο ִ. setuid root + α׷ ̷ α׷ ϴٸ suEXEC + ʱ ٶ.

+
+ +
top
+
+

ϱ

+ +

ϱ 켱 ġ׷ .

+ +

setuid setgid + н ü Ѵٰ Ѵ. + ɾ 鵵 Ѵ. suEXEC ϴ ٸ ÷ + ϴٸ ٸ ִ.

+ +

ι°, ǻ ⺻ ͼϴٰ + Ѵ. ⿡ setuid/setgid ɰ + ̵ ý۰ ȿ ġ ⿡ ذ Եȴ.

+ +

°, suEXEC ڵ + Ѵٰ Ѵ. ڿ Ÿ׽͵ + suEXEC õ ڵ带 ɽ ϰ ˻ߴ. + ڵ带 ϰ ϰ Ȯ ϱ Ǹ + ￴. ڵ带 ϸ ġ ο + ߻ ִ. α׷ֿ ſ ˰ + ڵ带 캸 ġ׷ ۾ ǻ簡 ٸ + suEXEC ڵ带 ʱ Ѵ.

+ +

׹° , ġ׷ suEXEC ġ + ⺻ġ ʱ ߴ. ᱹ + ڰ Ǹ ← suEXEC ؾ Ѵ. suEXEC + ڴ Ϲ ġ suEXEC + ġ ִ. suEXEC ϴ ý å + ڴ ְ 캸 ؾ Ѵ. + ̷ suEXEC Ҹŭ ְ ȣ + suEXEC ϵ ġ׷ ϱ ̴.

+ +

ϱ ϴ°? ׷? . !

+
top
+
+

suEXEC ȸ

+ +

suEXEC ϰ ġϱ 츮 ȸ + Ѵ. ̸ Ȯ suEXEC ȿ Ͼ + ý ؾ + ִ.

+ +

suEXEC ġ θ setuid + "wrapper" α׷ Ѵ. wrapper ڰ + ּ ٸ userid ϵ CGI SSI α׷ + HTTP û Ҹ. ̷ û ġ suEXEC + wrapper α׷ α׷ ڿ ׷ + ID Ѵ.

+ +

׷ wrapper и Ѵ. + ϳ ϸ α׷ з ϵǰ + Ѵ. Ѵ:

+ +
    +
  1. + wrapper ϴ ڰ ý + ΰ? + +

    + wrapper ϴ ڰ ý + ȮѴ. +

    +
  2. + +
  3. + ƱԸƮ wrapper ϴ°? + +

    + wrapper ƱԸƮ ־߸ ȴ. + ġ ȴ. wrapper + ƱԸƮ ϸ ŷǾų ġ suEXEC + ִ ̴. +

    +
  4. + +
  5. + ڰ wrapper ϵ Ǿ? + +

    + ڰ wrapper ϵ Ǿ? + (ġ ) α׷ + ִ. +

    +
  6. + +
  7. + CGI SSI α׷ + °? + +

    + CGI SSI α׷ '/' ϰų + '..' °? ̵ . CGI/SSI + α׷ suEXEC root (Ʒ + --with-suexec-docroot=DIR ) + ־ Ѵ. +

    +
  8. + +
  9. + ڸ ȿѰ? + +

    + ڰ ϴ°? +

    +
  10. + +
  11. + ׷ ȿѰ? + +

    + ׷ ϴ°? +

    +
  12. + +
  13. + ڰ superuser ƴѰ? + + +

    + suEXEC root CGI/SSI + α׷ Ѵ. +

    +
  14. + +
  15. + userid ּ ID ں ū? + +

    + ּ ID ڸ Ѵ. ׷ CGI/SSI + α׷ ִ userid ּġ + ִ. "ýۿ" Ҷ ϴ. +

    +
  16. + +
  17. + ׷ superuser ׷ ƴѰ? + +

    + suEXEC root ׷ CGI/SSI + α׷ Ѵ. +

    +
  18. + +
  19. + groupid ּ ID ں ū? + +

    + ּ ׷ ID ڸ Ѵ. ׷ CGI/SSI + α׷ ִ groupid ּġ + ִ. "ýۿ" ׷ Ҷ ϴ. +

    +
  20. + +
  21. + wrapper ڿ ׷ + ִ°? + +

    + ܰ迡 α׷ setuid setgid ȣ Ͽ + ڿ ׷ ȴ. , ׷ ٸ + ڰ ش ׷ ʱȭȴ. +

    +
  22. + +
  23. + CGI/SSI α׷ ִ 丮 丮 + ִ°? + +

    + 丮 ʴٸ . ̰ + 丮 ٸ 丮 + ̴. +

    +
  24. + +
  25. + 丮 ġ ȿ ִ°? + +

    + Ϲ κ û ûϴ 丮 + suEXEC root Ʒ ִ°? UserDir û + ûϴ 丮 suEXEC userdir (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 α׷ + ִ°? + +

    + ⼭ suEXEC CGI/SSI α׷ Ѵ. +

    +
  40. +
+ +

̰ suEXEC wrapper ȸ ǥ ̴. ټ + ϰ CGI/SSI 迡 ο , ο + ΰ Ѵܰ辿 ɽ .

+ +

 ִ + suEXEC  ִ + "ٽ ѹ ϶" + ϶.

+
top
+
+

suEXEC ġ

+ +

ִ Ѵ.

+ +

suEXEC ɼ
+

+ +
+
--enable-suexec
+ +
ɼ ⺻ ġǰų Ȱȭʴ suEXEC + ȰȭѴ. APACI suEXEC ޾Ƶ̷ + --enable-suexec ɼǿܿ + --with-suexec-xxxxx ɼ ּ Ѱ + ʿϴ.
+ +
--with-suexec-bin=PATH
+ +
suexec ̳ʸ δ Ȼ + ϵǾ Ѵ. ⺻ Ϸ ɼ + Ѵ. + --with-suexec-bin=/usr/sbin/suexec
+ +
--with-suexec-caller=UID
+ +
ġ ϴ ڸ. α׷ + ִ ڴ.
+ +
--with-suexec-userdir=DIR
+ +
suEXEC Ǵ Ȩ丮 丮 + Ѵ. 丮 ִ + suEXEC Ƿ, α׷ "ؾ" Ѵ. ( + , "*" ) "" UserDir þ Ѵٸ + ؾ Ѵ. UserDir þ passwd Ͽ + Ȩ丮 ٸ suEXEC + ۵ ʴ´. ⺻ "public_html"̴.
+ ȣƮ ٸ UserDir Ѵٸ + θ 丮 ȿ ֵ ؾ ϰ, θ 丮 + ´. ̷ , "~userdir" + cgi û ۵ ʴ´!
+ +
--with-suexec-docroot=DIR
+ +
ġ DocumentRoot Ѵ. ̴ suEXEC + ִ (UserDirs ) ̴. ⺻ 丮 + --datadir "/htdocs" ̴. + "--datadir=/home/apache" + ߴٸ suEXEC wrapper document root + "/home/apache/htdocs" 丮 Ѵ.
+ +
--with-suexec-uidmin=UID
+ +
suEXEC ּ UID Ѵ. + κ ýۿ 500̳ 100 ϴ. ⺻ + 100̴.
+ +
--with-suexec-gidmin=GID
+ +
suEXEC ׷ ּ GID Ѵ. + κ ýۿ 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 + (ġ Բ) ڵ .
+ make install ɾ + Ͽ ġ ִ. ̳ʸ suexec + --sbindir ɼ 丮 ġȴ. + ⺻ ġ "/usr/local/apache2/sbin/suexec"̴.
+ ġ root ʿ + ϶. wrapper ID ϱؼ ڰ + root̰ ϸ setuserid Ʈ + Ǿ Ѵ.

+ +

Ѽ
+ suEXEC wrapper ڽ ڰ ɼ + --with-suexec-caller ùٸ + Ȯ , ˻ suEXEC ϴ ýȣ + Ȥ ̺귯 Լ ۵Ǿ ִ. ̸ ϸ + Ϲ ̹Ƿ ġ ϴ ׷츸 + 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
+

+ +

׷ ġ ϴ ׷츸 suEXEC wrapper + ִ.

+
top
+
+

suEXEC Ű

+ +

ġ Ҷ --sbindir ɼ + 丮 suexec (⺻ + "/usr/local/apache2/sbin/suexec") ã´. ġ + suEXEC wrapper ߰ϸ α(error + log) Ѵ:

+ +

+ [notice] suEXEC mechanism enabled (wrapper: /path/to/suexec) +

+ +

߿ ̷ ٸ ҿ + wrapper α׷ ã ߰ų, setuid + root ġʾұ ̴.

+ +

ó suEXEC ϰ Ͱ ̹ ġ + ̶, ġ ̰ ٽ ؾ Ѵ. + HUP̳ USR1 ñ׳η ϴ δ ʴ.

+

suEXEC ȻϷ suexec + ġ ̰ ؾ Ѵ.

+
top
+
+

suEXEC ϱ

+ +

CGI α׷ û SuexecUserGroup þ + ȣƮ û Ͽų mod_userdir + û óϴ 쿡 suEXEC wrapper ȣѴ.

+ +

ȣƮ:
suEXEC wrapper + ϴ Ѱ VirtualHost ǿ SuexecUserGroup þ + ϴ ̴. þ ּ ID ٸ + ϸ CGI ڿ û <VirtualHost> + User Group ȴ. + þ <VirtualHost> ּ + userid Ѵ.

+ +

丮:
+ mod_userdir û óѴٸ suEXEC + wrapper ȣϿ, û 丮 شϴ + ID CGI α׷ Ѵ. Ϸ + ID CGI ְ ũƮ + ˻ ׸ ؾ Ѵ. + ɼ --with-suexec-userdir ϶.

top
+
+

suEXEC ϱ

+ +

suEXEC wrapper α ٷ + --with-suexec-logfile ɼ Ͽ + . wrapper ùٷ ϰ ġߴٸ ߸Ǿ + αϿ error_log .

+ +
top
+
+

ٽ ѹ ϶:

+ +

! ִ. + ġ׷ ¶ + ֽ ϶.

+ +

wrapper ϴ  ̷ο ִ. + suEXEC õ "" ϱ ̵ 캸 ٶ.

+ +
    +
  • suEXEC
  • + +
  • + 丮 + +

    + Ȱ ȿ suEXEC û ȣƮ + ֻ document root Ȥ userdir û + ֻ document root ȿ ߻ؾ Ѵ. + , ȣƮ װ ߴٸ ȣƮ + suEXEC ̿ϱ ȣƮ document root + ġ ۿ ʿ䰡 ִ. + ( .) +

    +
  • + +
  • + suEXEC PATH ȯ溯 + +

    + ϸ ִ. ⿡ ϴ ΰ + ִ 丮 Ȯ϶. + װ ִ Ʈ̸񸶸 ϱ + ̴. +

    +
  • + +
  • + suEXEC ڵ ϱ + +

    + ݺؼ , ϴ 𸣰 õѴٸ + ū ߻ ִ.  쿡 + . +

    +
  • +
+ +
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/suexec.html.tr.utf8 b/rubbos/app/apache2/manual/suexec.html.tr.utf8 new file mode 100644 index 00000000..4664aea2 --- /dev/null +++ b/rubbos/app/apache2/manual/suexec.html.tr.utf8 @@ -0,0 +1,556 @@ + + + +SuEXEC Desteği - Apache HTTP Sunucusu + + + + + +
<-
+

SuEXEC Desteği

+
+

Mevcut Diller:  en  | + 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? + +

    Mevcut durumda, root grubunun CGI/SSI + programlarını çalıştırmasına izin verilmemektedir.

    +
  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/bin/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/bin/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  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html b/rubbos/app/apache2/manual/upgrading.html new file mode 100644 index 00000000..cdfa384d --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: upgrading.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: upgrading.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: upgrading.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: upgrading.html.fr +Content-Language: fr +Content-type: text/html; charset=ISO-8859-1 + +URI: upgrading.html.ja.utf8 +Content-Language: ja +Content-type: text/html; charset=UTF-8 + +URI: upgrading.html.ko.euc-kr +Content-Language: ko +Content-type: text/html; charset=EUC-KR + +URI: upgrading.html.ru.koi8-r +Content-Language: ru +Content-type: text/html; charset=KOI8-R diff --git a/rubbos/app/apache2/manual/upgrading.html.de b/rubbos/app/apache2/manual/upgrading.html.de new file mode 100644 index 00000000..dab326bd --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.de @@ -0,0 +1,228 @@ + + + +Upgrade von 1.3 auf 2.0 - Apache HTTP Server + + + + + +
<-
+

Upgrade von 1.3 auf 2.0

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

Dieses Dokument dient der Untersttzung beim Upgrade. Es + enthlt die entscheidenden Informationen fr bisherige + Apache-Nutzer. Diese sind als kurze Anmerkungen + gedacht. Weitere Informationen finden Sie entweder unter + Neue Funktionen oder in + den src/CHANGES-Dateien.

+
+ +
top
+
+

nderungen der Konfiguration bei der Kompilierung

+ + +
    +
  • Der Apache benutzt jetzt ein autoconf- und + libtool-System zur Konfiguration des + Erstellungsverfahrens. Die Verwendung dieses Systems ist + hnlich, aber nicht identisch mit dem APACI-System des + Apache 1.3.
  • + +
  • Zustzlich zu der blichen Auswahl von Modulen, die + kompiliert werden sollen, wurde der Hauptteil der + Request-Verarbeitung im Apache 2.0 in die + Multi-Processing-Module (MPMs) verschoben.
  • +
+
top
+
+

nderungen der Laufzeit-Konfiguration

+ + +
    +
  • Viele Anweisungen aus dem Serverkern des Apache 1.3 sind + jetzt in den MPMs enthalten. Wenn Sie ein Serververhalten + wnschen, das demjenigen des Apache 1.3 mglichst + hnlich ist, sollten Sie das prefork-MPM + auswhlen. Andere MPMs verwenden abweichende Anweisungen + fr die Prozess-Erstellung und Request-Verarbeitung.
  • + +
  • Das Proxy-Modul wurde + umgearbeitet, um es auf den Stand von HTTP/1.1 zu bringen. Eine + der bedeutendsten nderungen ist die Platzierung der + Proxy-Zugriffskontrolle innerhalb eines <Proxy>-Blocks, statt innerhalb eines + <Directory proxy:>-Blocks.
  • + +
  • Die Behandlung von PATH_INFO (hinter dem + tatschlichen Dateinamen angefgte Pfadangaben) wurde + fr einige Module gendert. Module, die bisher als Handler + implementiert waren, jetzt aber als Filter implementiert sind, + akzeptieren mglicherweise keine Requests mit + PATH_INFO mehr. Filter wie INCLUDES oder PHP sind gleich oben im + Core-Handler implementiert und weisen deshalb Requests mit + PATH_INFO ab. Sie knnen die AcceptPathInfo-Direktive + verwenden, um den Core-Handler zu zwingen, Requests mit + PATH_INFO zu akzeptieren, und dadurch die Fhigkeit + wiederherstellen, PATH_INFO in Server Side Includes zu + benutzen.
  • + +
  • Die CacheNegotiatedDocs-Direktive + hat jetzt das Argument an (on) oder aus + (off). Die vorhandenen Anweisungen CacheNegotiatedDocs sollten durch + CacheNegotiatedDocs on ersetzt werden.
  • + +
  • + Die ErrorDocument-Direktive + verwendet kein Anfhrungszeichen mehr am Anfang des + Arguments, um eine + Textnachricht anzuzeigen. Stattdessen sollten Sie die + Nachricht in doppelte Anfhrungszeichen einschlieen. + Zum Beispiel sollten existierende Angaben wie + +

    + ErrorDocument 403 "Eine Nachricht +

    + durch + +

    + ErrorDocument 403 "Eine Nachricht" +

    + + ersetzt werden. + Solange das zweite Argument kein gltiger URL oder + Pfadname ist, wird es als Textnachricht behandelt. +
  • + +
  • Die Direktiven AccessConfig und + ResourceConfig sind entfallen. + Diese Direktiven knnen durch die Include-Direktive + ersetzt werden, die eine quivalente Funktionalitt besitzt. + Wenn Sie die Defaultwerte dieser Direktiven verwendet haben, + ohne sie in die Konfigurationsdateien einzufgen, mssen Sie + mglicherweise Include conf/access.conf und + Include conf/srm.conf zu Ihrer httpd.conf + hinzufgen. Um sicherzustellen, da der Apache die + Konfigurationsdateien in der gleichen Reihenfolge liest, wie sie von + den lteren Direktiven impliziert wurde, sollten die Include-Direktiven ans Ende der + httpd.conf gestellt werden, wobei die Direktive fr + srm.conf derjenigen fr access.conf + vorangeht.
  • + +
  • Die Direktiven BindAddress und Port + sind entfallen. Eine quivalente Funktionalitt wird von der + flexibleren Direktive Listen bereitgestellt.
  • + +
  • Im Apache 1.3 wurde die Port-Direktive auerdem + dazu verwendet, die Portnummer fr + selbstreferenzierende URLs festzulegen. + Die neue ServerName-Syntax + stellt das Apache-2.0-quivalent dar: + sie wurde dahingehend verndert, sowohl den Hostnamen + als auch die Portnummer fr selbstreferenzierende URLs + in einer Direktive angeben zu knnen.
  • + +
  • Die ServerType-Direktive entfllt. + Die Methode zum Bedienen der Requests wird nun durch die Auswahl + des MPM ermittelt. Derzeit ist kein MPM dafr bestimmt, von inetd + gestartet zu werden.
  • + +
  • Die Module mod_log_agent und + mod_log_referer, welche die Direktiven AgentLog, + RefererLog und RefererIgnore bereitgestellt + hatten, wurden entfernt. Durch Verwendung der Direktive CustomLog aus mod_log_config + sind die Agent- und Refererlogs auch weiterhin verfgbar.
  • + +
  • Die Direktiven AddModule und + ClearModuleList sind entfallen. + Diese Direktiven wurden benutzt, um sicherzustellen, da die + Module in der richtigen Reihenfolge aktiviert werden knnen. + Die neue Apache 2.0 API erlaubt es Modulen, ihre Reihenfolge + explizit anzugeben, und macht diese Direktiven damit + berflssig.
  • + +
  • Die Direktive FancyIndexing wurde entfernt. + Die gleiche Funktionalitt ist nun mit der Option + FancyIndexing der Direktive IndexOptions verfgbar.
  • + +
  • Die von mod_negotiation bereitgestellte + Content-Negotiation-Technik MultiViews fhrt nun eine strengere + Dateierkennung durch. Es wird ausschlielich unter den + aushandelbaren Dateien gewhlt. Das bisherige Verhalten + kann jedoch mit der Direktive MultiviewsMatch wiederhergestellt + werden.
  • + +
  • (Ab Version 2.0.51) +

    ErrorHeader war eine Fehlbenennung, weshalb die + Funktionalitt dieser Direktive mit der + Header-Anweisung + zusammengelegt wurde. Verwenden Sie stattdessen

    + +

    + Header always set foo bar +

    + +

    um den gleichen Effekt zu erzielen.

  • +
+
top
+
+

Sonstige nderungen

+ + +
    +
  • Das Modul mod_auth_digest, das im Apache 1.3 + experimentellen Status hatte, ist nun ein Standardmodul.
  • + +
  • Das Modul mod_mmap_static, das im Apache 1.3 + experimentellen Status hatte, wurde durch das Modul mod_file_cache ersetzt.
  • + +
  • Die Distribution wurde komplett reorganisiert und enthlt kein + unabhngiges src-Verzeichnis mehr. Stattdessen wurden + die Quellcodes logisch unterhalb des Hauptverzeichnisses der + Distribution angeordnet. Installationen des kompilierten Servers + sollten in ein separates Verzeichnis erfolgen.
  • +
+
top
+
+

Module von Drittanbietern

+ + +

An der API des Apache 2.0 wurden umfassende nderungen + vorgenommen. Bestehende Module, die fr die Apache 1.3 API + entwickelt wurden, werden nicht ohne Modifikationen mit + der Version 2.0 des Apache zusammenarbeiten. Details sind in der Dokumentation fr Entwickler beschrieben.

+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html.en b/rubbos/app/apache2/manual/upgrading.html.en new file mode 100644 index 00000000..79b99edd --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.en @@ -0,0 +1,221 @@ + + + +Upgrading to 2.0 from 1.3 - Apache HTTP Server + + + + + +
<-
+

Upgrading to 2.0 from 1.3

+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

In order to assist folks upgrading, we maintain a document + describing information critical to existing Apache users. These + are intended to be brief notes, and you should be able to find + more information in either the New Features document, or in + the src/CHANGES file.

+
+ +
top
+
+

Compile-Time Configuration Changes

+ + +
    +
  • Apache now uses an autoconf and + libtool system for configuring the build processes. + Using this system is similar to, but not the same as, using + the APACI system in Apache 1.3.
  • + +
  • In addition to the usual selection of modules which you + can choose to compile, Apache 2.0 has moved the main part of + request processing into Multi-Processing + Modules (MPMs).
  • +
+
top
+
+

Run-Time Configuration Changes

+ + +
    +
  • Many directives that were in the core server in Apache + 1.3 are now in the MPMs. If you wish the behavior of the + server to be as similar as possible to the behavior of Apache + 1.3, you should select the prefork MPM. Other MPMs + will have different directives to control process creation and request + processing.
  • + +
  • The proxy module has been + revamped to bring it up to HTTP/1.1. Among the important changes, + proxy access control is now placed inside a <Proxy> block rather than a + <Directory proxy:> block.
  • + +
  • The handling of PATH_INFO (trailing path information + after the true filename) has changed for some modules. Modules + that were previously implemented as a handler but are now + implemented as a filter may no longer accept requests with + PATH_INFO. Filters such as INCLUDES or PHP are implemented on top + of the core handler, and therefore reject requests with + PATH_INFO. You can use the AcceptPathInfo directive to + force the core handler to accept requests with PATH_INFO + and thereby restore the ability to use PATH_INFO in + server-side includes.
  • + +
  • The CacheNegotiatedDocs + directive now takes the argument on or + off. Existing instances of CacheNegotiatedDocs should be + replaced with CacheNegotiatedDocs on.
  • + +
  • + The ErrorDocument + directive no longer uses a quote at the beginning of the + argument to indicate a text message. Instead, you should + enclose the message in double quotes. For example, existing + instances of + +

    + ErrorDocument 403 "Some Message +

    + should be replaced with + +

    + ErrorDocument 403 "Some Message" +

    + + As long as the second argument is not a valid URL or + pathname, it will be treated as a text message. +
  • + +
  • The AccessConfig and + ResourceConfig directives no longer exist. + Existing instances of these directives can be replaced with + the Include + directive which has equivalent functionality. If you were + making use of the default values of these directives without + including them in the configuration files, you may need to + add Include conf/access.conf and Include + conf/srm.conf to your httpd.conf. In order to + assure that Apache reads the configuration files in the same order + as was implied by the older directives, the Include directives should be placed at the end + of httpd.conf, with the one for srm.conf + preceding the one for access.conf.
  • + +
  • The BindAddress and Port + directives no longer exist. Equivalent functionality is + provided with the more flexible + Listen + directive.
  • + +
  • Another use of the Port + directive in Apache-1.3 was setting the port number to be used + in self-referential URL's. The Apache-2.0 equivalent is + the new ServerName + syntax: it has been changed to allow specifying both the + hostname and the port number for self-referential URL's + in one directive.
  • + +
  • The ServerType directive no longer exists. + The method used to serve requests is now determined by the + selection of MPM. There is currently no MPM designed to be + launched by inetd.
  • + +
  • The mod_log_agent and mod_log_referer + modules which provided the AgentLog, + RefererLog and RefererIgnore directives have + been removed. Agent and referer logs are still available using the + CustomLog + directive of mod_log_config.
  • + +
  • The AddModule and + ClearModuleList directives no longer exist. + These directives were used to ensure that modules could be + enabled in the correct order. The new Apache 2.0 API allows + modules to explicitly specify their ordering, eliminating the + need for these directives.
  • + +
  • The FancyIndexing directive has been removed. + The same functionality is available through the + FancyIndexing option to the IndexOptions + directive.
  • + +
  • The MultiViews content-negotiation technique provided by + mod_negotiation has become more strict in its + default file matching. It will select only from negotiable + files. The old behavior can be restored using the MultiviewsMatch directive.
  • + +
  • (since version 2.0.51) +

    The functionality of the ErrorHeader directive was + put together with the Header + directive, since it was a misnomer. Use

    + +

    + Header always set foo bar +

    + +

    instead to get the desired behaviour.

  • +
+
top
+
+

Misc Changes

+ + +
    +
  • The module mod_auth_digest, which was + experimental in Apache 1.3, is now a standard module.
  • + +
  • The mod_mmap_static module, which was experimental in + Apache 1.3, has been replaced with mod_file_cache.
  • + +
  • The distribution has been completely reorganized so that + it no longer contains an independent src + directory. Instead, the sources are logically organized under + the main distribution directory, and installations of the + compiled server should be directed to a separate + directory.
  • +
+
top
+
+

Third Party Modules

+ + +

Extensive changes were made to the server API in Apache 2.0. + Existing modules designed for the Apache 1.3 API will + not work in Apache 2.0 without modification. + Details are provided in the developer + documentation.

+
+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html.es b/rubbos/app/apache2/manual/upgrading.html.es new file mode 100644 index 00000000..9cea410f --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.es @@ -0,0 +1,246 @@ + + + +Pasar a usar Apache 2.0 si ahora usa Apache 1.3 - Servidor HTTP Apache + + + + + +
<-
+

Pasar a usar Apache 2.0 si ahora usa Apache 1.3

+
+

Idiomas disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

Este documento recoge infomacin crtica sobre el + proceso de actulizacin de la versin de Apache que + usa. Se trata de pequeos comentarios. Puede encontrar ms + informacin tanto en Nuevas + funcionalidades, como en el archivo + src/CHANGES.

+
+ +
top
+
+

Cambios en el proceso de configuracin y + compilacin

+ + +
    +
  • Apache usa ahora autoconf y + libtool en el proceso de + compilacin. Este sistema es parecido aunque no igual + al sistema APACI de Apache 1.3.
  • + +
  • Adems de la seleccin de mdulos habitual + que puede hacer al compilar, en Apache 2.0 la mayor parte del + procesamiento de las peticin es llevada a cabo por mdulos de multiprocesamiento + (MPMs).
  • +
+
top
+
+

Cambios en el proceso de configuracin inicial del + servidor

+ + +
    +
  • Muchas directivas que pertenecan al core (ncleo) + del servidor en Apache 1.3 se encuentran ahora en distintos + mdulos de multiprocesamiento. Si desea que el nuevo + servidor de comporte de la forma ms parecida posible a + como lo haca Apache 1.3, debe usar el mdulo de + multiprocesamiento prefork. Otros mdulos + de multiprocesamiento tienen diferentes directivas para + controlar la creacin de procesos y el procesamiento de + peticiones.
  • + +
  • El mdulo proxy ha + sido remodelado para ponerlo al da con la + especificacin HTTP/1.1. Entre los cambios ms + importantes est el que ahora el control de acceso al proxy + est dentro de un bloque <Proxy> en lugar de en un bloque + <Directory proxy:>.
  • + +
  • El procesamiento de PATH_INFO (la + informacin que aparece detrs de un nombre de fichero + vlido) ha cambiado en algunos mdulos. Los + mdulos que fueron previamente implementados como un handler + pero que ahora son implementados como un filtro puede que no + acepten peticiones que incluyan PATH_INFO. Filtros + como INCLUDES o PHP estn implementados + sobre el handler principal (core handler), y por tanto + rechazarn peticiones con PATH_INFO. Puede + usar la directiva AcceptPathInfo para forzar al handler + principal a aceptar peticiones con PATH_INFO y por + tanto restaurar la posibilidad de usar PATH_INFO en + server-side includes.
  • + +
  • La directiva CacheNegotiatedDocs toma + ahora como argumento on u off. Las + instancias existentes de CacheNegotiatedDocs deben reemplazarse por + CacheNegotiatedDocs on.
  • + +
  • + La directiva ErrorDocument no usa ya dobles + comillas al principio del argumento para indicar el mensaje de + texto a mostrar. En lugar de esto, ponga entre comillas todo + el mensaje. Por ejemplo, + +

    + ErrorDocument 403 "Mensaje +

    + debe sustituirse por + +

    + ErrorDocument 403 "Mensaje" +

    + + Si el segundo argumento no es una URL o una ruta vlida a + un archivo, ser tratado como un mensaje de texto. +
  • + +
  • Las directivas AccessConfig y + ResourceConfig han desaparecido. Las instancias + existentes de estas directivas pueden ser sustituidas por + directivas Include que + tienen una funcionalidad equivalente. Si haca uso de los + valores por defecto de esas directivas sin incluirlas en los + ficheros de configuracin, puede que necesite aadir + Include conf/access.conf e Include + conf/srm.conf a su fichero httpd.conf. Para + asegurar que Apache lee el fichero de configuracin en el + mismo orden que asuman las antiguas directivas, las + directivas Include deben + ser reemplazadas al final del fichero httpd.conf, + con la de srm.conf precediendo a la de + access.conf.
  • + +
  • Las directivas BindAddress y Port + no existen ya. Las funcionalidades que ofrecan esas + directivas estn ahora cubiertas por la directiva + Listen, que es mucho + ms flexible.
  • + +
  • Otro uso de la directiva Port en Apache 1.3 era + fijar el nmero de puerto que se usaba para URLs + autoreferenciadas. La directiva equivalente en Apache 2.0 es la + nueva directiva ServerName: + este cambio se ha introducido para permitir la + especificacin del nombre de host y del + nmero de puerto para URLs autorreferenciadas en una sola + directiva.
  • + +
  • La directiva ServerType ha dejado de existir. + El mtodo usado para servir peticiones est ahora + determinado por la seleccin del mdulo de + multiprocesamiento. Actualmente no hay diseado un + mdulo de multiprocesamiento que pueda ser ejecutado por + inetd.
  • + +
  • Los mdulos mod_log_agent y + mod_log_referer que contenan las directivas + AgentLog, RefererLog y + RefererIgnore han desaparecido. Los registros de + "agente" y de "referer" estn disponibles todava + usando la directiva CustomLog del mdulo + mod_log_config.
  • + +
  • Las directivas AddModule y + ClearModuleList no estn presentes en la nueva + versin de Apache. Estas directivas se usaban para + asegurar que los mdulos pudieran activarse en el orden + correcto. La nueva API de Apache 2.0 permite a los mdulos + especificar explcitamente su orden de activacin, + eliminando la necesidad de las antiguas directivas.
  • + +
  • La directiva FancyIndexing se ha eliminado. La + funcionalidad que cubra est ahora disponible a + travs de la opcin FancyIndexing de la + directiva IndexOptions.
  • + +
  • La tcnica de negociacin de contenido MultiViews + ofrecida por mod_negotiation es ahora ms + estricta en su algoritmo de seleccin de ficheros y solo + seleccionar ficheros negociables. El antiguo + comportamiento puede restaurarse usando la directiva MultiviewsMatch.
  • + +
  • (a partir de la versin 2.0.51)

    La + funcionalidad de la directiva ErrorHeader se ha + unido con la de la directiva Header, porque se estaba usando + un trmino equivocado. Use

    + +

    + Header always set foo bar +

    + +

    en lugar de conseguir el comportamiento deseado.

  • + +
+
top
+
+

Cambios de menor importancia

+ + +
    +
  • El mdulo mod_auth_digest, que era + experimental en Apache 1.3, es ahora un mdulo + estndar.
  • + +
  • El mdulo mod_mmap_static, que era + experimental en Apache 1.3, ha sido sustituido por el + mdulo mod_file_cache.
  • + +
  • La distribucin de Apache ha sido reorganizada por + completo para que no contenga a partir de ahora el directorio + independiente src. En su lugar, el cdigo + fuente se ha organizado a partir del directorio principal de la + distribucin, y las intalaciones del servidor compilado + deben hacerse en un directorio diferente.
  • +
+
top
+
+

Mdulos de terceras partes

+ + +

La API de Apache 2.0 ha sufrido grandes cambios respecto a la + versin 1.3. Los mdulos que se disearon para la + API de Apache 1.3 no funcionarn si no se + hacen las modificaciones necasarias para adaptarlos a Apache 2.0. + En la documentacin para + desarrolladores puede encontrar informacin detallada + sobre este asunto.

+
+
+

Idiomas disponibles:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html.fr b/rubbos/app/apache2/manual/upgrading.html.fr new file mode 100644 index 00000000..6c9ad7ea --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.fr @@ -0,0 +1,164 @@ + + + + + + + + Mise à jour de la version 1.3 à la version + 2.0 + + + + +
+ [APACHE DOCUMENTATION] + +

Apache HTTP Server Version 2.0

+
+ + + + +

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

+ +
    +
  • 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).
  • +
+ +

Changement de la configuration à + l'exécution

+ +
    +
  • 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.
  • +
+ +

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.
  • +
+ +

Modules tiers

+ +

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.

+
+ +

Apache HTTP Server Version 2.0

+ Index + + + + + + diff --git a/rubbos/app/apache2/manual/upgrading.html.ja.utf8 b/rubbos/app/apache2/manual/upgrading.html.ja.utf8 new file mode 100644 index 00000000..70831acb --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.ja.utf8 @@ -0,0 +1,222 @@ + + + +1.3 から 2.0 へのアップグレード - Apache HTTP サーバ + + + + + +
<-
+

1.3 から 2.0 へのアップグレード

+
+

Available Languages:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

アップグレードを簡単にするために、既存の Apache ユーザに + 非常に重要な情報をこの文書にまとめています。これは短い + 注意書きとして書かれています。より詳しい情報は + 新機能の文書や + src/CHANGES ファイルで見つけられると思います。

+
+ +
top
+
+

コンパイル時の設定の変更

+ + +
    +
  • Apache は ビルド処理の設定 + に autoconflibtool を使うようになりました。 + このシステムは 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.confInclude conf/access.conf と + Include conf/srm.conf を追加する必要があるでしょう。 + 以前のディレクティブによる順番のように Apache が設定ファイルを + 読み込むようにするためには、httpd.conf の最後に + srm.confaccess.conf の順にそれぞれ + Include + ディレクティブを書いてください。
  • + +
  • BindAddress ディレクティブと Port + ディレクティブは削除されました。同等の機能はより柔軟な + Listen + ディレクティブにより提供されています。
  • + +
  • Port ディレクティブは Apache-1.3 には自己参照 URL で + 使われるポート番号を設定する、という使用法もありました。 + これは Apache-2.0 では新しい + ServerName + 構文によって行ないます。一つのディレクティブでホスト名 + 自己参照 URL の両方を設定できるように構文が変更されました。
  • + +
  • ServerName ディレクティブは削除されました。 + リクエストを扱う方法は MPM の選択により決定されるようになりました。 + 現時点では inetd から起動されるように設計された MPM はありません。
  • + +
  • AgentLog ディレクティブ、 + RefererLog ディレクティブ、 + RefererIgnore ディレクティブを提供していた + mod_log_agentmod_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  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html.ko.euc-kr b/rubbos/app/apache2/manual/upgrading.html.ko.euc-kr new file mode 100644 index 00000000..4a1535f9 --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.ko.euc-kr @@ -0,0 +1,204 @@ + + + +1.3 2.0 ׷̵ - Apache HTTP Server + + + + + +
<-
+

1.3 2.0 ׷̵

+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

츮 ġ ڰ ׷̵ϴ + ߿ ˷ִ Ѵ. + ̹Ƿ, ο + src/CHANGES Ͽ ãƺ + Ѵ.

+
+ +
top
+
+

Ͻ ȭ

+ + + +
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  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/upgrading.html.ru.koi8-r b/rubbos/app/apache2/manual/upgrading.html.ru.koi8-r new file mode 100644 index 00000000..7dac1cd9 --- /dev/null +++ b/rubbos/app/apache2/manual/upgrading.html.ru.koi8-r @@ -0,0 +1,218 @@ + + + + 1.3 2.0 - HTTP Apache + + + + + +
<-
+

1.3 2.0

+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ +

, + 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 PHP + , , + 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
  • + +
  • (content-negotiation), + mod_negotiation, + , . + + (negotiable) . + MultiviewsMatch.
  • + +
  • ( 2.0.51) +

    ErrorHeader + Header, + . +

    + +

    + Header always set foo bar +

    + +

    .

  • +
+
top
+
+

+ + + +
top
+
+

+ + +

API Apache 2.0. + , Apache 1.3 API, + Apache 2.0, + . + .

+
+
+

:  de  | + en  | + es  | + fr  | + ja  | + ko  | + ru 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/urlmapping.html b/rubbos/app/apache2/manual/urlmapping.html new file mode 100644 index 00000000..d5b6507f --- /dev/null +++ b/rubbos/app/apache2/manual/urlmapping.html @@ -0,0 +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.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/urlmapping.html.en b/rubbos/app/apache2/manual/urlmapping.html.en new file mode 100644 index 00000000..c989e4b3 --- /dev/null +++ b/rubbos/app/apache2/manual/urlmapping.html.en @@ -0,0 +1,279 @@ + + + +Mapping URLs to Filesystem Locations - Apache HTTP Server + + + + + +
<-
+

Mapping URLs to Filesystem Locations

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ +

This document explains how Apache uses the URL of a request + to determine the filesystem location from which to serve a + file.

+
+ +
top
+
top
+
+

DocumentRoot

+ +

In deciding what file to serve for a given request, Apache's + default behavior is to take the URL-Path for the request (the part + of the URL following the hostname and port) and add it to the end + of the DocumentRoot specified + in your configuration files. Therefore, the files and directories + underneath the DocumentRoot + make up the basic document tree which will be visible from the + web.

+ +

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 + virtual host, or alternatively, the directives provided by the + module mod_vhost_alias can + be used to dynamically determine the appropriate place from which + to serve content based on the requested IP address or + hostname.

+
top
+
+

Files Outside the DocumentRoot

+ +

There are frequently circumstances where it is necessary to + allow web access to parts of the filesystem that are not strictly + underneath the DocumentRoot. Apache offers several + different ways to accomplish this. On Unix systems, symbolic links + can bring other parts of the filesystem under the DocumentRoot. For security reasons, + Apache will follow symbolic links only if the Options setting for the relevant + directory includes FollowSymLinks or + SymLinksIfOwnerMatch.

+ +

Alternatively, the Alias directive will map any part + of the filesystem into the web space. For example, with

+ +

Alias /docs /var/web

+ +

the URL http://www.example.com/docs/dir/file.html + 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.

+ +

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,

+ +

ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+) + /home/$1/cgi-bin/$2

+ +

will map a request to + http://example.com/~user/cgi-bin/script.cgi to the + path /home/user/cgi-bin/script.cgi and will treat + the resulting file as a CGI script.

+
top
+
+

User Directories

+ +

Traditionally on Unix systems, the home directory of a + particular user can be referred to as + ~user/. The module mod_userdir + extends this idea to the web by allowing files under each user's + home directory to be accessed using URLs such as the + following.

+ +

http://www.example.com/~user/file.html

+ +

For security reasons, it is inappropriate to give direct + access to a user's home directory from the web. Therefore, the + UserDir directive + specifies a directory underneath the user's home directory + where web files are located. Using the default setting of + Userdir public_html, the above URL maps to a file + at a directory like + /home/user/public_html/file.html where + /home/user/ is the user's home directory as + specified in /etc/passwd.

+ +

There are also several other forms of the + Userdir directive which you can use on systems + where /etc/passwd does not contain the location of + the home directory.

+ +

Some people find the "~" symbol (which is often encoded on the + web as %7e) to be awkward and prefer to use an + alternate string to represent user directories. This functionality + is not supported by mod_userdir. However, if users' home + directories are structured in a regular way, then it is possible + to use the AliasMatch + directive to achieve the desired effect. For example, to make + http://www.example.com/upages/user/file.html map to + /home/user/public_html/file.html, use the following + AliasMatch directive:

+ +

AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) + /home/$1/public_html/$2

+
top
+
+

URL Redirection

+ +

The configuration directives discussed in the above sections + tell Apache to get content from a specific place in the filesystem + and return it to the client. Sometimes, it is desirable instead to + inform the client that the requested content is located at a + different URL, and instruct the client to make a new request with + the new URL. This is called redirection and is + implemented by the Redirect directive. For example, if + the contents of the directory /foo/ under the + DocumentRoot are moved + to the new directory /bar/, you can instruct clients + to request the content at the new location as follows:

+ +

Redirect permanent /foo/ + http://www.example.com/bar/

+ +

This will redirect any URL-Path starting in + /foo/ to the same URL path on the + www.example.com server with /bar/ + substituted for /foo/. You can redirect clients to + any server, not only the origin server.

+ +

Apache also provides a RedirectMatch directive for more + complicated rewriting problems. For example, to redirect requests + for the site home page to a different site, but leave all other + requests alone, use the following configuration:

+ +

RedirectMatch permanent ^/$ + http://www.example.com/startpage.html

+ +

Alternatively, to temporarily redirect all pages on one site + to a particular page on another site, use the following:

+ +

RedirectMatch temp .* + http://othersite.example.com/startpage.html

+
top
+
+

Reverse Proxy

+ +

Apache also allows you to bring remote documents into the URL space +of the local server. This technique is called reverse +proxying because the web server acts like a proxy server by +fetching the documents from a remote server and returning them to the +client. It is different from normal proxying because, to the client, +it appears the documents originate at the reverse proxy server.

+ +

In the following example, when clients request documents under the +/foo/ directory, the server fetches those documents from +the /bar/ directory on internal.example.com +and returns them to the client as if they were from the local +server.

+ +

+ProxyPass /foo/ http://internal.example.com/bar/
+ProxyPassReverse /foo/ http://internal.example.com/bar/ +

+ +

The ProxyPass configures +the server to fetch the appropriate documents, while the +ProxyPassReverse +directive rewrites redirects originating at +internal.example.com so that they target the appropriate +directory on the local server. It is important to note, however, that +links inside the documents will not be rewritten. So any absolute +links on internal.example.com will result in the client +breaking out of the proxy server and requesting directly from +internal.example.com.

+
top
+
+

Rewriting Engine

+ +

When even more powerful substitution is required, the rewriting + engine provided by mod_rewrite + can be useful. The directives provided by this module use + characteristics of the request such as browser type or source IP + address in deciding from where to serve content. In addition, + mod_rewrite can use external database files or programs to + determine how to handle a request. The rewriting engine is capable + 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.

+
top
+
+

File Not Found

+ +

Inevitably, URLs will be requested for which no matching + file can be found in the filesystem. This can happen for + several reasons. In some cases, it can be a result of moving + documents from one location to another. In this case, it is + best to use URL redirection to inform + clients of the new location of the resource. In this way, you + can assure that old bookmarks and links will continue to work, + even though the resource is at a new location.

+ +

Another common cause of "File Not Found" errors is + accidental mistyping of URLs, either directly in the browser, + or in HTML links. Apache provides the module + mod_speling (sic) to help with + this problem. When this module is activated, it will intercept + "File Not Found" errors and look for a resource with a similar + filename. If one such file is found, mod_speling will send an + HTTP redirect to the client informing it of the correct + location. If several "close" files are found, a list of + available alternatives will be presented to the client.

+ +

An especially useful feature of mod_speling, is that it will + compare filenames without respect to case. This can help + systems where users are unaware of the case-sensitive nature of + URLs and the unix filesystem. But using mod_speling for + anything more than the occasional URL correction can place + additional load on the server, since each "incorrect" request + is followed by a URL redirection and a new request from the + client.

+ +

If all attempts to locate the content fail, Apache returns + an error page with HTTP status code 404 (file not found). The + appearance of this page is controlled with the + ErrorDocument directive + and can be customized in a flexible manner as discussed in the + Custom error responses and International Server Error + Responses documents.

+
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/urlmapping.html.ja.utf8 b/rubbos/app/apache2/manual/urlmapping.html.ja.utf8 new file mode 100644 index 00000000..f241e254 --- /dev/null +++ b/rubbos/app/apache2/manual/urlmapping.html.ja.utf8 @@ -0,0 +1,279 @@ + + + +URL からファイルシステム上の位置へのマップ - Apache HTTP サーバ + + + + + +
<-
+

URL からファイルシステム上の位置へのマップ

+
+

Available Languages:  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 の設定に + FollowSymLinksSymLinksIfOwnerMatch が + ある場合にのみシンボリックリンクをたどります。

+ +

代わりの方法として、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/ +

+ +

ProxyPass ディレクティブは +サーバが適切なドキュメントを取得するように設定し、 +ProxyPassReverse ディレクティブは +internal.example.com からのリダイレクトがローカルサーバの +適切なディレクトリを指すように書き換えます。ただし、ドキュメントの中の +リンクは書き換えられない、ということは知っておいてください。 +ですから、internal.example.com への絶対パスによるリンクでは、 +クライアントがプロキシサーバを抜け出して internal.example.com に +直接リクエストを送る、ということになります。

+
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  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/urlmapping.html.ko.euc-kr b/rubbos/app/apache2/manual/urlmapping.html.ko.euc-kr new file mode 100644 index 00000000..28c524ee --- /dev/null +++ b/rubbos/app/apache2/manual/urlmapping.html.ko.euc-kr @@ -0,0 +1,244 @@ + + + +URL Ͻý ġ ϱ - Apache HTTP Server + + + + + +
<-
+

URL Ͻý ġ ϱ

+
+

:  en  | + ja  | + ko  | + tr 

+
+ +

û URL ġ  + Ͻýۻ ġ ã Ѵ.

+
+ +
top
+
top
+
+

DocumentRoot

+ +

û ġ  ϱ + ⺻ û URL-(URL ȣƮ Ʈ ڿ + κ) Ͽ DocumentRoot ڿ δ. ׷ + DocumentRoot Ʒִ + ϰ 丮 Ե ⺻ ̴.

+
top
+
+

DocumentRoot ۿ ִ ϵ

+ +

Ͻýۿ DocumentRoot Ʒ κ + ʿ䰡 ִ. ġ + ִ. н ýۿ ɺũ Ͽ + Ͻý ٸ κ DocumentRoot Ʒ ִ. + ġ ش 丮 Options + FollowSymLinks + SymLinksIfOwnerMatch ִ 쿡 ɺũ + 󰣴.

+ +

, Alias + þ Ͻý Ư κ Ѵ. + ٸ

+ +

Alias /docs /var/web

+ +

URL http://www.example.com/docs/dir/file.html + /var/web/dir/file.html Ѵ. + ο ִ CGI ũƮ ϴ + ϰ ScriptAlias + þ Ѵ.

+ +

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
+
+

+ +

н ý Ư user + Ȩ丮 ~user/ ĪѴ. + mod_userdir + ȮϿ, URL Ȩ丮 + ȿ ִ Ѵ.

+ +

http://www.example.com/~user/file.html

+ +

Ȼ Ȩ丮 + ȵȴ. ׷ UserDir + þ Ȩ丮 ϵ 丮 + Ѵ. ⺻ Userdir public_html ϰ + /home/user/ /etc/passwd + Ȩ丮, URL + /home/user/public_html/file.html Ѵ.

+ +

, Userdir þ /etc/passwd + Ȩ丮 ġ ʴ ý ٸ + ¸ ִ.

+ +

 ( %7e ڵǴ) + "~" ȣ ̻Ͽ ٸ 丮 Ÿ + ;Ѵ. mod_userdir ʴ´. ׷ + Ȩ丮 Ģ ִٸ, AliasMatch þ Ͽ + ϴ ȿ ִ. , + AliasMatch þ ϸ + http://www.example.com/upages/user/file.html + /home/user/public_html/file.html Ѵ:

+ +

AliasMatch ^/upages/([a-zA-Z0-9]+)/?(.*) + /home/$1/public_html/$2

+
top
+
+

URL ̷(Redirection)

+ +

տ þ ġ Ͻý Ư + ҿ ִ Ŭ̾Ʈ . ׷ + û ٸ URL ִٰ Ŭ̾Ʈ ˷־, + Ŭ̾Ʈ URL ûϵ + ִ. ̸ ̷(redirection)̶ ϸ, + Redirect þ + Ѵ. , DocumentRoot Ʒ /foo/ + 丮 /bar/ 丮 Űٸ + Ŭ̾Ʈ ο ġ ûϵ Ѵ:

+ +

Redirect permanent /foo/ + http://www.example.com/bar/

+ +

׷ www.example.com /foo/ + ϴ URL-δ /foo/ /bar/ + ٲ URL ̷ǵȴ. Ŭ̾Ʈ ܿ  + ٸ ε ̷ ִ.

+ +

, ġ ۼ + RedirectMatch + þ Ѵ. , ٸ û ״ ΰ Ʈ + Ȩ û ٸ Ʈ ̷Ϸ:

+ +

RedirectMatch permanent ^/$ + http://www.example.com/startpage.html

+ +

ӽ÷ Ʈ ٸ Ʈ Ư + ̷Ϸ:

+ +

RedirectMatch temp .* + http://othersite.example.com/startpage.html

+
top
+
+

Ͻ(Reverse Proxy)

+ +

ġ ٸ ִ URL + ִ. ͼ +Ŭ̾Ʈ ϴ Ͻ ϱ⶧ ̷ + Ͻ(reverse proxying) Ѵ. Ŭ̾Ʈ +忡 Ͻ ִ ó ̹Ƿ Ϲ +Ͻÿʹ ٸ.

+ +

Ʒ Ŭ̾Ʈ /foo/ ִ +ûϸ, internal.example.com +/bar/ 丮 ͼ ġ + ־ ó Ŭ̾Ʈ .

+ +

+ProxyPass /foo/ http://internal.example.com/bar/
+ProxyPassReverse /foo/ http://internal.example.com/bar/ +

+ +

ProxyPass + ϸ, ProxyPassReverse þ +internal.example.com ̷ ۼϿ +̷ 丮 Ű Ѵ. +׷ ȿ ִ ũ ۼ ϶. +internal.example.com 븵ũ Ŭ̾Ʈ +Ͻü ƴ϶ internal.example.com +ûϰ Ѵ.

+
top
+
+

ۼ (Rewriting Engine)

+ +

ġȯ ʿҶ mod_rewrite + ۼ ȴ. þ + Ŭ̾Ʈ IP ּ û Ư¡ ִ + ִ. , mod_rewrite û +  ó ϱ ܺ ͺ̽ ̳ + α׷ ִ. ۼ ٷ + , , ̷ (alias), ܺ ̷, + Ͻ, θ Ѵ. mod_rewrite ϴ + URL ۼ ħ + Ѵ.

+
top
+
+

File Not Found

+ +

ᱹ û URL ϴ Ͻýۿ ã + ̴. ִ.  + ٸ Ű ִ. Ŭ̾Ʈ + URL ̷ ڿ ο + ġ ˷ִ . ׷ ڿ Űܵ + ϸũ ũ ȿϴ.

+ +

"File Not Found" ٸ Ϲ + Ȥ HTML ũ URL ߸ Էµ ̴. ġ + mod_speling ( Ʋ ʾ) + ̿ ´. ϸ "File Not Found" + ߻ϴ ϸ ڿ ã´. + ߰ϸ mod_speling Ŭ̾Ʈ ùٸ ġ + HTTP ̷Ѵ. "" ִٸ + Ŭ̾Ʈ .

+ +

mod_speling Ư ҹڸ ʰ + ϸ ϴ ̴. ׷ н Ͻý۰ URL + ҹ ϴ ڰ ִ ýۿ + ȴ. ׷ mod_speling URL ľѴٸ, "߸" + û URL ̷ǰ Ŭ̾Ʈ ο û + ϾǷ δ ȴ.

+ +

ã õ ϸ ġ HTTP status code 404 + (file not found) . + ErrorDocument þ + ϸ, + ٱ + Ͽ ִ.

+
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/urlmapping.html.tr.utf8 b/rubbos/app/apache2/manual/urlmapping.html.tr.utf8 new file mode 100644 index 00000000..15b08299 --- /dev/null +++ b/rubbos/app/apache2/manual/urlmapping.html.tr.utf8 @@ -0,0 +1,270 @@ + + + +URL’lerin Dosya Sistemi ile Eşleştirilmesi - Apache HTTP Sunucusu + + + + + +
<-
+

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.

+
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/
+

+ +

ProxyPass sunucuyu uygun + belgeleri alması için yapılandırırken ProxyPassReverse yönergesi dahili.mesela.dom + sunucusundan kaynaklanan yönlendirmeleri 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.

+
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 URL Yeniden Yazma + Rehberinde 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 ve Uluslararası Hata Yanıtları + belgelerinde anlatıldığı gibi oldukça esnek bir şekilde + kişiselleştirilebilir.

+
+
+

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

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/details.html b/rubbos/app/apache2/manual/vhosts/details.html new file mode 100644 index 00000000..1ccf806c --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/details.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: details.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/vhosts/details.html.en b/rubbos/app/apache2/manual/vhosts/details.html.en new file mode 100644 index 00000000..14ad0dac --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/details.html.en @@ -0,0 +1,440 @@ + + + +An In-Depth Discussion of Virtual Host Matching - Apache HTTP Server + + + + + +
<-
+

An In-Depth Discussion of Virtual Host Matching

+
+

Available Languages:  en  | + ko  | + tr 

+
+ + +

The virtual host code was completely rewritten in + Apache 1.3. This document attempts to explain + exactly what Apache does when deciding what virtual host to + serve a hit from. With the help of the new + NameVirtualHost + directive virtual host configuration should be a lot easier and + safer than with versions prior to 1.3.

+ +

If you just want to make it work without + understanding how, here are some + examples.

+ +
+ +
top
+
+

Config File Parsing

+ +

There is a main_server which consists of all the + definitions appearing outside of + <VirtualHost> sections. There are virtual + servers, called vhosts, which are defined by + <VirtualHost> + sections.

+ +

The directives + Listen, + ServerName, + ServerPath, + and ServerAlias + 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 + 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.

+ +

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 * + 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 + 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.

+ +

Multiple NameVirtualHost directives can be used + each with a set of VirtualHost directives but only + one NameVirtualHost directive should be used for + each specific IP:port pair.

+ +

The ordering of NameVirtualHost and + VirtualHost directives is not important which + makes the following two examples identical (only the order of + the VirtualHost directives for one + address set is important, see below):

+ + + + +

+ NameVirtualHost 111.22.33.44
+ <VirtualHost 111.22.33.44>
+ # server A
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.44>
+ # server B
+ ...
+ </VirtualHost>
+
+ NameVirtualHost 111.22.33.55
+ <VirtualHost 111.22.33.55>
+ # server C
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # server D
+ ...
+ </VirtualHost> +

+ <VirtualHost 111.22.33.44>
+ # server A
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # server C
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.44>
+ # server B
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # server D
+ ...
+ </VirtualHost>
+
+ NameVirtualHost 111.22.33.44
+ NameVirtualHost 111.22.33.55
+
+

+ + +

(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 + contains all name-based vhosts for the given IP address. If + there are no vhosts defined for that address the + NameVirtualHost directive is ignored and an error + is logged. For an IP-based vhost the list in the hash table is + empty.

+ +

Due to a fast hashing function the overhead of hashing an IP + address during a request is minimal and almost not existent. + Additionally the table is optimized for IP addresses which vary + in the last octet.

+ +

For every vhost various default values are set. In + particular:

+ +
    +
  1. If a vhost has no ServerAdmin, + Timeout, + KeepAliveTimeout, + KeepAlive, + MaxKeepAliveRequests, + 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. + +
  3. The "lookup defaults" that define the default directory + permissions for a vhost are merged with those of the + main_server. This includes any per-directory configuration + information for any module.
  4. + +
  5. The per-server configs for each module from the + main_server are merged into the vhost server.
  6. +
+ +

Essentially, the main_server is treated as "defaults" or a + "base" on which to build each vhost. But the positioning of + these main_server definitions in the config file is largely + irrelevant -- the entire config of the main_server has been + parsed when this final merging occurs. So even if a main_server + definition appears after a vhost definition it might affect the + vhost definition.

+ +

If the main_server has no ServerName at this + point, then the hostname of the machine that httpd + is running on is used instead. We will call the main_server address + set those IP addresses returned by a DNS lookup on the + ServerName of the main_server.

+ +

For any undefined ServerName fields, a + name-based vhost defaults to the address given first in the + VirtualHost statement defining the vhost.

+ +

Any vhost that includes the magic _default_ + wildcard is given the same ServerName as the + main_server.

+ +
top
+
+

Virtual Host Matching

+ +

The server determines which vhost to use for a request as + follows:

+ +

Hash table lookup

+ +

When the connection is first made by a client, the IP + address to which the client connected is looked up in the + internal IP hash table.

+ +

If the lookup fails (the IP address wasn't found) the + request is served from the _default_ vhost if + there is such a vhost for the port to which the client sent the + request. If there is no matching _default_ vhost + the request is served from the main_server.

+ +

If the IP address is not found in the hash table then the + match against the port number may also result in an entry + corresponding to a NameVirtualHost *, which is + subsequently handled like other name-based vhosts.

+ +

If the lookup succeeded (a corresponding list for the IP + address was found) the next step is to decide if we have to + deal with an IP-based or a name-base vhost.

+ + + +

IP-based vhost

+ +

If the entry we found has an empty name list then we have + found an IP-based vhost, no further actions are performed and + the request is served from that vhost.

+ + + +

Name-based vhost

+ +

If the entry corresponds to a name-based vhost the name list + contains one or more vhost structures. This list contains the + vhosts in the same order as the VirtualHost + directives appear in the config file.

+ +

The first vhost on this list (the first vhost in the config + file with the specified IP address) has the highest priority + and catches any request to an unknown server name or a request + without a Host: header field.

+ +

If the client provided a Host: header field the + list is searched for a matching vhost and the first hit on a + ServerName or ServerAlias is taken + and the request is served from that vhost. A Host: + header field can contain a port number, but Apache always + matches against the real port to which the client sent the + request.

+ +

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 + ServerPath is matched against the URI from the + request. The first matching path on the list is used and the + request is served from that vhost.

+ +

If no matching vhost could be found the request is served + from the first vhost with a matching port number that is on the + list for the IP to which the client connected (as already + mentioned before).

+ + + +

Persistent connections

+ +

The IP lookup described above is only done once for a + particular TCP/IP session while the name lookup is done on + every request during a KeepAlive/persistent + connection. In other words a client may request pages from + different name-based vhosts during a single persistent + connection.

+ + + +

Absolute URI

+ +

If the URI from the request is an absolute URI, and its + hostname and port match the main server or one of the + configured virtual hosts and match the address and + port to which the client sent the request, then the + scheme/hostname/port prefix is stripped off and the remaining + relative URI is served by the corresponding main server or + virtual host. If it does not match, then the URI remains + untouched and the request is taken to be a proxy request.

+ + +

Observations

+ +
    +
  • A name-based vhost can never interfere with an IP-base + vhost and vice versa. IP-based vhosts can only be reached + through an IP address of its own address set and never + through any other address. The same applies to name-based + vhosts, they can only be reached through an IP address of the + corresponding address set which must be defined with a + NameVirtualHost directive.
  • + +
  • ServerAlias and ServerPath + checks are never performed for an IP-based vhost.
  • + +
  • The order of name-/IP-based, the _default_ + vhost and the NameVirtualHost directive within + the config file is not important. Only the ordering of + name-based vhosts for a specific address set is significant. + The one name-based vhosts that comes first in the + configuration file has the highest priority for its + corresponding address set.
  • + +
  • For security reasons the port number given in a + Host: header field is never used during the + matching process. Apache always uses the real port to which + the client sent the request.
  • + +
  • If a ServerPath directive exists which is a + prefix of another ServerPath directive that + appears later in the configuration file, then the former will + always be matched and the latter will never be matched. (That + is assuming that no Host: header field was + available to disambiguate the two.)
  • + +
  • If two IP-based vhosts have an address in common, the + vhost appearing first in the config file is always matched. + Such a thing might happen inadvertently. The server will give + a warning in the error logfile when it detects this.
  • + +
  • A _default_ vhost catches a request only if + there is no other vhost with a matching IP address + and a matching port number for the request. The + request is only caught if the port number to which the client + sent the request matches the port number of your + _default_ vhost which is your standard + 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.
  • + +
  • The main_server is only used to serve a request if the IP + address and port number to which the client connected is + unspecified and does not match any other vhost (including a + _default_ vhost). In other words the main_server + only catches a request for an unspecified address/port + combination (unless there is a _default_ vhost + which matches that port).
  • + +
  • A _default_ vhost or the main_server is + never matched for a request with an unknown or + missing Host: header field if the client + connected to an address (and port) which is used for + name-based vhosts, e.g., in a + NameVirtualHost directive.
  • + +
  • You should never specify DNS names in + VirtualHost directives because it will force + your server to rely on DNS to boot. Furthermore it poses a + security threat if you do not control the DNS for all the + domains listed. There's more + information available on this and the next two + topics.
  • + +
  • ServerName should always be set for each + vhost. Otherwise A DNS lookup is required for each + vhost.
  • +
+ + +
top
+
+

Tips

+ +

In addition to the tips on the DNS Issues page, here are + some further tips:

+ +
    +
  • Place all main_server definitions before any + VirtualHost definitions. (This is to aid the + readability of the configuration -- the post-config merging + process makes it non-obvious that definitions mixed in around + virtual hosts might affect all virtual hosts.)
  • + +
  • Group corresponding NameVirtualHost and + VirtualHost definitions in your configuration to + ensure better readability.
  • + +
  • Avoid ServerPaths which are prefixes of + other ServerPaths. If you cannot avoid this then + you have to ensure that the longer (more specific) prefix + vhost appears earlier in the configuration file than the + shorter (less specific) prefix (i.e., "ServerPath + /abc" should appear after "ServerPath /abc/def").
  • +
+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/details.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/details.html.ko.euc-kr new file mode 100644 index 00000000..1ba167ee --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/details.html.ko.euc-kr @@ -0,0 +1,384 @@ + + + +ȣƮ ã⿡ ڼ - Apache HTTP Server + + + + + +
<-
+

ȣƮ ã⿡ ڼ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ȣƮ ڵ ġ 1.3 ٽ + ۼǾ. ġ û  ȣƮ + ϴ Ѵ. ο NameVirtualHost þ Ͽ + ȣƮ 1.3 .

+ +

 ϴ ʰ ϰԸ + ϰ ʹٸ, ϶.

+ +
+
+
top
+
+

б

+ +

<VirtualHost> + ּ . <VirtualHost> + κ ȣƮ θ.

+ +

Listen, + ServerName, + ServerPath, + ServerAlias þ + ִ. ׷ þ + ( ) þ ȿϴ.

+ +

ּ Listen ⺻ 80̴. ּ + ServerPath ServerAlias + ⺻ . ServerName ⺻ + IP ̴ּ.

+ +

ּ Listen þ ΰ Ѵ. ù° + ġ ⺻ Ʈ Ʈ ϴ ̴. ° + ̷ URI Ʈ ȣ ϴ ̴.

+ +

ּ ޸ ȣƮ Ʈ ġ ٸ + Ʈ ʴ´.

+ +

VirtualHost þ Ʈ ִ. + Ʈ ּ ֱ Listen + Ѵ. Ư Ʈ *  Ʈ + Īϴ ϵī̴. (DNS ˻ A + ڵ带 Ͽ) ȣƮ ּҸ ĪϿ ȣƮ + ּ(address set)̶ θ.

+ +

Ư IP ּҿ NameVirtualHost þ ٸ + ּҸ ϴ ù° ȣƮ IP ȣƮ Ѵ. + IP ּҿ ϵī * ִ.

+ +

̸ ȣƮ Ѵٸ ̸ ȣƮ + IP ּҸ NameVirtualHost þ + ؾ Ѵ. , NameVirtualHost + þ ̸ ȣƮ ȣƮ(CNAME) شϴ + IP ּҸ ؾ Ѵ.

+ +

Ư IP:Ʈ ֿ NameVirtualHost + þ Ѵٸ, NameVirtualHost þ + VirtualHost þ  ִ.

+ +

NameVirtualHost VirtualHost + þ ߿ ʱ⶧ ( + ּտ VirtualHost + ߿ϴ. Ʒ ):

+ + + + +

+ NameVirtualHost 111.22.33.44
+ <VirtualHost 111.22.33.44>
+ # A
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.44>
+ # B
+ ...
+ </VirtualHost>
+
+ NameVirtualHost 111.22.33.55
+ <VirtualHost 111.22.33.55>
+ # C
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # D
+ ...
+ </VirtualHost> +

+ <VirtualHost 111.22.33.44>
+ # A
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # C
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.44>
+ # B
+ ...
+ </VirtualHost>
+ <VirtualHost 111.22.33.55>
+ # D
+ ...
+ </VirtualHost>
+
+ NameVirtualHost 111.22.33.44
+ NameVirtualHost 111.22.33.55
+
+

+ + +

( б ϴ.)

+ +

VirtualHost þ , ȣƮ + VirtualHost þ Ʈ ⺻ + Listen Ѵ.

+ +

VirtualHost þ ̸ + ּտ Ѵٸ ServerAlias Ѵ + (׷ ٸ ServerAlias ʴ´). + ȣƮ ߰ Listen ּ + Ʈ ϶.

+ +

Ҷ IP ּ ؽ̺ ߰Ѵ. + NameVirtualHost þ IP ּҸ ϸ + IP ּҿ ̸ ȣƮ Ѵ. + ּҿ ȣƮ ٸ NameVirtualHost + þ ϰ α׿ Ѵ. IP ȣƮ + ؽ̺ ߰ ʴ´.

+ +

ؽԼ ϱ⶧ û IP ּҸ ؽϴ + δ . ؽ̺ IP ּ κ + ̿ ȭִ.

+ +

ȣƮ ⺻ ȴ. Ư:

+ +
    +
  1. ȣƮ ServerAdmin, + ResourceConfig, + AccessConfig, + Timeout, + KeepAliveTimeout, + KeepAlive, + MaxKeepAliveRequests, + SendBufferSize + þ ٸ ּ ش ´. (, + ּ Ѵ.)
  2. + +
  3. ȣƮ 丮 ⺻ ϴ " + ⺻(lookup defaults)" ּ . + 丮 (per-directory configuration) + ⿡ شȴ.
  4. + +
  5. (per-server config) ּ + ȣƮ ģ.
  6. +
+ +

⺻ ּ ȣƮ "⺻" Ȥ "" + ȴ. ׷ Ͽ ּ ϴ ġ . + ġ ּ оδ. + ׷ ּ ǰ ȣƮ ڿ ͵ ȣƮ + ǿ ش.

+ +

ּ ServerName ٸ ϴ + ǻ ȣƮ Ѵ. ּ + ServerName DNS ̻Ͽ IP ּҵ + ּ ̶ּ θ.

+ +

̸ ȣƮ ServerName + ȣƮ ϴ VirtualHost + ó ּҸ ⺻ Ѵ.

+ +

Ư _default_ Ʈī带 ϴ + ȣƮ ּ ServerName .

+ +
top
+
+

ȣƮ ã

+ +

Ʒ  ȣƮ û + ó Ѵ:

+ +

ؽ̺ ã

+ +

Ŭ̾Ʈ ó ϸ IP ּҸ IP + ؽ̺ ã´.

+ +

IP ּҸ ã Ŭ̾Ʈ û Ʈ + شϴ ȣƮ ִٸ, _default_ ȣƮ + û Ѵ. _default_ ȣƮ + ٸ ּ û Ѵ.

+ +

ؽ̺ IP ּҰ Ʈ ȣ + NameVirtualHost * ش ִ. + ̸ ȣƮó óѴ.

+ +

ãҴٸ (Ͽ IP ּҿ شϴ ׸ ã), + IP ȣƮ ̸ ȣƮ Ѵ.

+ + + +

IP ȣƮ

+ +

ã ׸ ̸ ٸ IP ȣƮ̴. + ̻ ۾ ʿ, ȣƮ û óѴ.

+ + + +

̸ ȣƮ

+ +

̸ Ͽ Ѱ ̻ ȣƮ ԵǸ + ̸ ȣƮ̴. Ͽ ȣƮ + VirtualHost ġѴ.

+ +

Ͽ ù° ȣƮ(Ͽ ش IP ּҸ + ϴ ù° ȣƮ) 켱 , + ų Host: û + óѴ.

+ +

Ŭ̾Ʈ Host: ָ, Ͽ + ù° ServerName̳ + ServerAlias ϴ ȣƮ û + Ѵ. Host: Ʈ ȣ + , ġ ׻ Ŭ̾Ʈ û Ʈ + ã´.

+ +

Ŭ̾Ʈ Host: HTTP/1.0 û + ϸ Ŭ̾Ʈ  Ϸ ⶧ + û URI شϴ ServerPath ִ ã´. + Ͽ ã θ ϰ, ȣƮ + û Ѵ.

+ +

ϴ ȣƮ ã ٸ, (̹ տ ߵ) + Ŭ̾Ʈ IP Ͽ ġϴ Ʈ ȣ + ϴ ù° ȣƮ û Ѵ.

+ + + +

+ +

IP ѵ Ư TCP/IP Ǵ ѹ + ã, ̸ KeepAlive/ ᵿ û + ã´. , Ŭ̾Ʈ ᵿ ̸ + ȣƮ û ִ.

+ + + +

URI

+ +

û URI URḬ Ŭ̾Ʈ û + ȣƮ Ʈ ּ Ư ȣƮ شϸ, + ּ Ȥ ȣƮ URI Ŵ/ȣƮ/Ʈ + κ URI Ѵ. شϴ + ּ ȣƮ ٸ URI ״ ΰ û + Ͻ û óѴ.

+ + +

+ +
    +
  • ̸ ȣƮ IP ȣƮ ο + ʴ´. IP ȣƮ ڽ ̸ + IP ּҿܿ  ּҷε . ̸ + ȣƮ . ̸ ȣƮ + NameVirtualHost þ ּ + IP ּҸ ؼ ִ.
  • + +
  • IP ȣƮ ServerAlias + ServerPath ˻ ʴ´.
  • + +
  • Ͽ ̸ ȣƮ, IP ȣƮ, + _default_ ȣƮ, NameVirtualHost + þ ߿ ʴ. Ư ּտ + ̸ ȣƮ ߿ϴ. Ͽ + տ ̸ ȣƮ ڽ ּտ + 켱 .
  • + +
  • Host: Ե Ʈ + ȣ ʴ´. ġ ׻ Ŭ̾Ʈ + û Ʈ Ѵ.
  • + +
  • ( ̸ Host: ٰ + ϸ,) ServerPath þ Ͽ + ڿ ٸ ServerPath þ պκ + Īϴ ׻ տ þ Ѵ.
  • + +
  • IP ȣƮ ּҸ , ׻ + Ͽ տ ȣƮ Ѵ. ̷ + ƹ 𸣰 Ͼ ִ. ̷ Ȳ ߰ϸ + αϿ Ѵ.
  • + +
  • _default_ ȣƮ û IP ּ + Ʈ ȣ شϴ ȣƮ û óѴ. + Ŭ̾Ʈ û Ʈ ȣ _default_ + ȣƮ Ʈ ȣ(⺻ Listen) + û óѴ.  Ʈ û̶ + ( , _default_:*) ϵī + Ʈ ִ. NameVirtualHost * + ȣƮ .
  • + +
  • ּ Ŭ̾Ʈ IP ּҿ Ʈ ȣ + شϴ (_default_ ȣƮ Ͽ) + ȣƮ û Ѵ. , ּ + ( Ʈ شϴ _default_ ȣƮ + ٸ) ּ/Ʈ ֿ û óѴ.
  • + +
  • Ŭ̾Ʈ ( , NameVirtualHost + þ) ̸ ȣƮ ּ( Ʈ) + Host: ų + û û _default_ + ȣƮ ּ ó ʴ´.
  • + +
  • Ҷ DNS + VirtualHost þ DNS ̸ . + Դٰ DNS ʴ´ٸ + Ȼ 赵 ִ. ̿ ִ.
  • + +
  • ȣƮ ServerName ׻ + ؾ Ѵ. ȱ׷ ȣƮ DNS ã ȴ.
  • +
+ + +
top
+
+

+ +

DNS + ߰ Ʒ ִ:

+ +
    +
  • ּ Ǹ VirtualHost տ + ξ. (׷ б ϴ. ȱ׷ ߿ + ȣƮ ̿ ǰ ȣƮ + ֱ⶧ ȥ.)
  • + +
  • б ϵ شϴ NameVirtualHost + VirtualHost ǵ .
  • + +
  • ServerPath ٸ ServerPath + պκ Īϴ 츦 ϶. ٸ Ͽ + պκ ( ڼ) ȣƮ ª ( ڼ) + ȣƮ տ ξ. ( , + "ServerPath /abc" "ServerPath /abc/def" ξ + Ѵ.
  • +
+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/details.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/details.html.tr.utf8 new file mode 100644 index 00000000..0049164b --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/details.html.tr.utf8 @@ -0,0 +1,401 @@ + + + +Sanal Konak Eşlemenin Derinliğine İncelenmesi - Apache HTTP Sunucusu + + + + + +
<-
+

Sanal Konak Eşlemenin Derinliğine İncelenmesi

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ + +

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.

+ +

Listen, + ServerName, + ServerPath ve + ServerAlias 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.

+ +

Listen yönergesinin ana_sunucu için öntanımlı değeri + 80’dir. 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.

+ +

Ana_sunucu Listen yönergesinin iki işlevi vardır. Biri + Apache’nin dinleyeceği öntanımlı ağ portunu belirlemek, diğeri ise + yönlendirmeler sırasında mutlak URI’lerde kullanılan port numarasını + belirlemektir.

+ +

Ana_sunucunun aksine sankonların portları Apache‘nin dinleyeceği + portlar üzerinde etkili değildir.

+ +

VirtualHost yönergesinde görünen her adresin seçimlik bir + portu olabilir. Eğer bir port belirtilmemişse öntanımlı olarak + ana_sunucunun son Listen yönergesinin değeri kullanı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 ilk + sankonun IP adresi için kullanılmadığı takdirde bu IP adresine sahip ilk + sankon IP’ye dayalı sankon olarak ele alınır. IP adresi olarak + * belirtmek de mümkündür.

+ +

Eğer isme dayalı sankonlar kullanılacaksa NameVirtualHost + yönergesinin bu isme dayalı sankonların IP adresi kümesini içermesi + gerekir. Başka bir deyişle, yapılandırma dosyanızın + NameVirtualHost yönergesine sankonların sunucu isimlerinin + karşı düştüğü IP adresini yazmalısınız.

+ +

Ç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.) +

+ +

VirtualHost yönergesi çözümlendikten sonra sankon + sunucusuna yönergedeki ilk isme atanmış portun öntanımlı olduğu bir + Listen verilir.

+ +

Eğer tüm VirtualHost isimlerinin listesi aynı adres + kümesine çözümleniyorsa bu isimler birer ServerAlias gibi + ele alınırlar (bir ServerAlias yönergesi ile geçersiz + kılınmadıkça). Bir sankon tanımından sonra gelen Listen + satırlarının o sankonun adres kümesine atanmış portlara bir etkisinin + olmayacağına dikkat ediniz.

+ +

İ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.

+ +

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.
  • + +
  • Güvenlik saikiyle, eşleştirme işlemi sırasında Host: + başlık alanında belirtilen port asla kullanılmaz. Apache daima + 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.
  • + +
  • 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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/examples.html b/rubbos/app/apache2/manual/vhosts/examples.html new file mode 100644 index 00000000..ae55ad07 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/examples.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: examples.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/vhosts/examples.html.en b/rubbos/app/apache2/manual/vhosts/examples.html.en new file mode 100644 index 00000000..317294dc --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/examples.html.en @@ -0,0 +1,654 @@ + + + +VirtualHost Examples - Apache HTTP Server + + + + + +
<-
+

VirtualHost Examples

+
+

Available Languages:  en  | + ko  | + tr 

+
+ + +

This document attempts to answer the commonly-asked questions about + 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. +

+ +
+ +
top
+
+

Running several name-based web + sites on a single IP address.

+ +

Your server has a single IP address, and multiple aliases (CNAMES) + point to this machine in DNS. You want to run a web server for + www.example1.com and www.example2.org on this + machine.

+ +

Note

Creating virtual + host configurations on your Apache server does not magically + cause DNS entries to be created for those host names. You + must have the names in DNS, resolving to your IP + address, or nobody else will be able to see your web site. You + can put entries in your hosts file for local + testing, but that will work only from the machine with those + hosts entries.

+
+ +

Server configuration

+ + + # 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.example1.com
+
+ # Other directives here
+
+
+ </VirtualHost>
+
+ <VirtualHost *:80>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ # Other directives here
+
+
+ </VirtualHost> +

+ +

The asterisks match all addresses, so the main server serves no + requests. Due to the fact that www.example1.com is first + in the configuration file, it has the highest priority and can be seen + as the default or primary server. That means + that if a request is received that does not match one of the specified + ServerName directives, it will be served by this first + VirtualHost.

+ +
+

Note

+ +

You can, if you wish, replace * with the actual + IP address of the system. In that case, the argument to + VirtualHost must match the argument to + NameVirtualHost:

+ +

+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40>
+ # etc ... +

+ +

However, it is additionally useful to use * + on systems where the IP address is not predictable - for + example if you have a dynamic IP address with your ISP, and + you are using some variety of dynamic DNS solution. Since + * matches any IP address, this configuration + would work without changes whenever your IP address + changes.

+
+ +

The above configuration is what you will want to use in almost + all name-based virtual hosting situations. The only thing that this + configuration will not work for, in fact, is when you are serving + different content based on differing IP addresses or ports.

+ +
top
+
+

Name-based hosts on more than one + IP address.

+ +
+

Note

Any of the + techniques discussed here can be extended to any number of IP + addresses.

+
+ +

The server has two IP addresses. On one (172.20.30.40), we + will serve the "main" server, server.domain.com and on the + other (172.20.30.50), we will serve two or more virtual hosts.

+ +

Server configuration

+ + + 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.example1.com
+
+ # Other directives here ...
+
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ # Other directives here ...
+
+
+ </VirtualHost> +

+ +

Any request to an address other than 172.20.30.50 will be + served from the main server. A request to 172.20.30.50 with an + unknown hostname, or no Host: header, will be served from + www.example1.com.

+ +
top
+
+

Serving the same content on + different IP addresses (such as an internal and external + address).

+ +

The server machine has two IP addresses (192.168.1.1 + and 172.20.30.40). The machine is sitting between an + internal (intranet) network and an external (internet) network. Outside + of the network, the name server.example.com resolves to + the external address (172.20.30.40), but inside the + network, that same name resolves to the internal address + (192.168.1.1).

+ +

The server can be made to respond to internal and external requests + with the same content, with just one VirtualHost + section.

+ +

Server configuration

+ + + 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> +

+ +

Now requests from both networks will be served from the same + VirtualHost.

+ +
+

Note:

On the internal + network, one can just use the name server rather + than the fully qualified host name + server.example.com.

+ +

Note also that, in the above example, you can replace the list + of IP addresses with *, which will cause the server to + respond the same on all addresses.

+
+ +
top
+
+

Running different sites on different + ports.

+ +

You have multiple domains going to the same IP and also want to + serve multiple ports. By defining the ports in the "NameVirtualHost" + tag, you can allow this to work. If you try using <VirtualHost + name:port> without the NameVirtualHost name:port or you try to use + the Listen directive, your configuration will not work.

+ +

Server configuration

+ + + Listen 80
+ Listen 8080
+
+ NameVirtualHost 172.20.30.40:80
+ NameVirtualHost 172.20.30.40:8080
+
+ <VirtualHost 172.20.30.40:80>
+ + ServerName www.example1.com
+ DocumentRoot /www/domain-80
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + ServerName www.example1.com
+ DocumentRoot /www/domain-8080
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:80>
+ + ServerName www.example2.org
+ DocumentRoot /www/otherdomain-80
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + ServerName www.example2.org
+ DocumentRoot /www/otherdomain-8080
+
+ </VirtualHost> +

+ +
top
+
+

IP-based virtual hosting

+ +

The server has two IP addresses (172.20.30.40 and + 172.20.30.50) which resolve to the names + www.example1.com and www.example2.org + respectively.

+ +

Server configuration

+ + + Listen 80
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ </VirtualHost> +

+ +

Requests for any address not specified in one of the + <VirtualHost> directives (such as + localhost, for example) will go to the main server, if + there is one.

+ +
top
+
+

Mixed port-based and ip-based virtual + hosts

+ +

The server machine has two IP addresses (172.20.30.40 and + 172.20.30.50) which resolve to the names + www.example1.com and www.example2.org + respectively. In each case, we want to run hosts on ports 80 and + 8080.

+ +

Server configuration

+ + + 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.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + DocumentRoot /www/example1-8080
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50:80>
+ + DocumentRoot /www/example2-80
+ ServerName www.example1.org
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50:8080>
+ + DocumentRoot /www/example2-8080
+ ServerName www.example2.org
+
+ </VirtualHost> +

+ +
top
+
+

Mixed name-based and IP-based + vhosts

+ +

On some of my addresses, I want to do name-based virtual hosts, and + on others, IP-based hosts.

+ +

Server configuration

+ + + Listen 80
+
+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example2
+ ServerName www.example2.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
+
+

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.

+ +

+ <VirtualHost *:*>
+ ProxyPreserveHost On
+ ProxyPass / http://192.168.111.2/
+ ProxyPassReverse / http://192.168.111.2/
+ ServerName hostname.example.com
+ </VirtualHost> +

+ +
top
+
+

Using _default_ + vhosts

+ +

_default_ vhosts + for all ports

+ +

Catching every request to any unspecified IP address and + port, i.e., an address/port combination that is not used for + any other virtual host.

+ +

Server configuration

+ + + <VirtualHost _default_:*>
+ + DocumentRoot /www/default
+
+ </VirtualHost> +

+ +

Using such a default vhost with a wildcard port effectively prevents + any request going to the main server.

+ +

A default vhost never serves a request that was sent to an + address/port that is used for name-based vhosts. If the request + contained an unknown or no Host: header it is always + served from the primary name-based vhost (the vhost for that + address/port appearing first in the configuration file).

+ +

You can use AliasMatch or + RewriteRule to rewrite any + request to a single information page (or script).

+ + +

_default_ vhosts + for different ports

+ +

Same as setup 1, but the server listens on several ports and we want + to use a second _default_ vhost for port 80.

+ +

Server configuration

+ + + <VirtualHost _default_:80>
+ + DocumentRoot /www/default80
+ # ...
+
+ </VirtualHost>
+
+ <VirtualHost _default_:*>
+ + DocumentRoot /www/default
+ # ...
+
+ </VirtualHost> +

+ +

The default vhost for port 80 (which must appear before any + default vhost with a wildcard port) catches all requests that were sent + to an unspecified IP address. The main server is never used to serve a + request.

+ + +

_default_ vhosts + for one port

+ +

We want to have a default vhost for port 80, but no other default + vhosts.

+ +

Server configuration

+ + + <VirtualHost _default_:80>
+ DocumentRoot /www/default
+ ...
+ </VirtualHost> +

+ +

A request to an unspecified address on port 80 is served from the + default vhost any other request to an unspecified address and port is + served from the main server.

+ + +
top
+
+

Migrating a name-based vhost to an + IP-based vhost

+ +

The name-based vhost with the hostname + www.example2.org (from our name-based example, setup 2) should get its own IP + address. To avoid problems with name servers or proxies who cached the + old IP address for the name-based vhost we want to provide both + variants during a migration phase.
+ The solution is easy, because we can simply add the new IP address + (172.20.30.50) to the VirtualHost + directive.

+ +

Server configuration

+ + + Listen 80
+ ServerName www.example1.com
+ DocumentRoot /www/example1
+
+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+ # ...
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example3
+ ServerName www.example3.net
+ ServerAlias *.example3.net
+ # ...
+
+ </VirtualHost> +

+ +

The vhost can now be accessed through the new address (as an + IP-based vhost) and through the old address (as a name-based + vhost).

+ +
top
+
+

Using the ServerPath + directive

+ +

We have a server with two name-based vhosts. In order to match the + correct virtual host a client must send the correct Host: + header. Old HTTP/1.0 clients do not send such a header and Apache has + no clue what vhost the client tried to reach (and serves the request + from the primary vhost). To provide as much backward compatibility as + possible we create a primary vhost which returns a single page + containing links with an URL prefix to the name-based virtual + hosts.

+ +

Server configuration

+ + + 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> +

+ +

Due to the ServerPath + directive a request to the URL + http://www.sub1.domain.tld/sub1/ is always served + from the sub1-vhost.
A request to the URL + http://www.sub1.domain.tld/ is only + served from the sub1-vhost if the client sent a correct + Host: header. If no Host: header is sent the + client gets the information page from the primary host.
+ Please note that there is one oddity: A request to + http://www.sub2.domain.tld/sub1/ is also served from the + sub1-vhost if the client sent no Host: header.
+ The RewriteRule directives + are used to make sure that a client which sent a correct + Host: header can use both URL variants, i.e., + with or without URL prefix.

+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/examples.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/examples.html.ko.euc-kr new file mode 100644 index 00000000..553a9d4a --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/examples.html.ko.euc-kr @@ -0,0 +1,622 @@ + + + +ȣƮ - Apache HTTP Server + + + + + +
<-
+

ȣƮ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ǵǴ ȣƮ + Ϸ . Ȳ ̸̳ IP ȣƮ + Ʈ Ϸ ̴. Ͻ ڿ + Ͽ Ʈ ϴ 츦 ٷ + ̴.

+ +
+ +
top
+
+

IP ּ Ѱ ̸ + Ʈ ϱ.

+ +

IP ּҰ Ѱ ְ, DNS ּ(CNAMES) + ǻ͸ Ų. ǻͿ www.example1.com + www.example2.org ϰ ʹ.

+ +

Note

ġ ȣƮ + Ѵٰ ȣƮ DNS ׸ ڵ̷ + ʴ´. ݵ DNS IP ּҸ Ű + ̸ ־ Ѵ. ȱ׷ ƹ Ʈ + . ˻غ hosts Ͽ ׸ + ߰ , ̴ hosts ׸ ǻͿ + ݿȴ.

+
+ +

+ + + # ġ Ʈ 80 ٸ
+ Listen 80
+
+ # IP ּҿ ȣƮ û ٸ
+ NameVirtualHost *:80
+
+ <VirtualHost *:80>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ # ٸ þ鵵 ִ
+
+
+ </VirtualHost>
+
+ <VirtualHost *:80>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ # ٸ þ鵵 ִ
+
+
+ </VirtualHost> +

+ +

ǥ ּҸ ŰǷ, ּ  û + ʴ´. www.example1.com + Ͽ ó Ƿ 켱 , + Ȥ ʱ ȴ. +  ServerName þ شʴ û + ù° VirtualHost Ѵ.

+ +
+

+ +

Ѵٸ * ý IP + ּҸ ִ. + VirtualHost ƱԸƮ + NameVirtualHost ƱԸƮ ġؾ + Ѵ:

+ +

+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40>
+ # ... +

+ +

׷ ISP IP ּҸ + IP ּҸ 𸣴 쿡 * ϴ + ϴ. * IP ּҿ + شϹǷ, IP ּҰ Ǿ + ʿ䰡 .

+
+ +

κ ̸ ȣƮ . + ܴ ٸ IP ּҳ Ʈ ٸ Ϸ + ̴.

+ +
top
+
+

IP ּҿ ̸ + ȣƮ.

+ +
+

⼭ IP ּҰ +  밡ϴ.

+
+ +

IP ּҰ ΰִ. ϳ + (172.20.30.40) "" + server.domain.com ϰ, ٸ ϳ + (172.20.30.50) ȣƮ + ̴.

+ +

+ + + Listen 80
+
+ # 172.20.30.40 ϴ ""̴
+ ServerName server.domain.com
+ DocumentRoot /www/mainserver
+
+ # ٸ ּҴ
+ NameVirtualHost 172.20.30.50
+
+ <VirtualHost 172.20.30.50>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ # ٸ þ鵵 ִ ...
+
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ # ٸ þ鵵 ִ ...
+
+
+ </VirtualHost> +

+ +

172.20.30.50 ƴ ּҿ û + ּ Ѵ. ȣƮ , Host: + 172.20.30.50 ûϸ + www.example1.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 <VirtualHost + name:port> Ȥ Listen þ ϸ ȵȴ.

+ +

+ + + Listen 80
+ Listen 8080
+
+ NameVirtualHost 172.20.30.40:80
+ NameVirtualHost 172.20.30.40:8080
+
+ <VirtualHost 172.20.30.40:80>
+ + ServerName www.example1.com
+ DocumentRoot /www/domain-80
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + ServerName www.example1.com
+ DocumentRoot /www/domain-8080
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:80>
+ + ServerName www.example2.org
+ DocumentRoot /www/otherdomain-80
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + ServerName www.example2.org
+ DocumentRoot /www/otherdomain-8080
+
+ </VirtualHost> +

+ +
top
+
+

IP ȣƮ

+ +

www.example1.com + www.example2.org شϴ IP ּҸ + (172.20.30.40 172.20.30.50) + .

+ +

+ + + Listen 80
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ </VirtualHost> +

+ +

<VirtualHost> þ ּҿ + شʴ ּҷ ( , localhost) + û ּ ִ ּ Ѵ.

+ +
top
+
+

Ʈݰ ip ȥյ + ȣƮ

+ +

www.example1.com + www.example2.org شϴ IP ּҸ + (172.20.30.40 172.20.30.50) + . IP 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.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40:8080>
+ + DocumentRoot /www/example1-8080
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50:80>
+ + DocumentRoot /www/example2-80
+ ServerName www.example1.org
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.50:8080>
+ + DocumentRoot /www/example2-8080
+ ServerName www.example2.org
+
+ </VirtualHost> +

+ +
top
+
+

̸ݰ IP ȥյ + ȣƮ

+ +

ּ ̸ ȣƮ, ٸ IP + ȣƮ ϰ ʹ.

+ +

+ + + Listen 80
+
+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example1
+ ServerName www.example1.com
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example3
+ ServerName www.example3.net
+
+ </VirtualHost>
+
+ # IP-
+ <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
+
+

_default_ ȣƮ + ϱ

+ +

Ʈ + _default_ ȣƮ

+ +

 ȣƮ ش IP ּҿ Ʈ + û óϱ.

+ +

+ + + <VirtualHost _default_:*>
+ + DocumentRoot /www/default
+
+ </VirtualHost> +

+ +

default(⺻) ȣƮ Ʈ ϵī带 Ͽ  û + ּ .

+ +

default ȣƮ ̸ ȣƮ ϴ + ּ/Ʈ û ʴ´. ų + Host: û ׻ ̸ + ȣƮ(Ͽ + ּ/Ʈ ó ȣƮ) Ѵ.

+ +

AliasMatch + RewriteRule + Ͽ  û Ư (Ȥ ũƮ) + ۼ(rewrite) ִ.

+ + +

Ʈ + _default_ ȣƮ

+ +

, Ʈ ٸ 80 + Ʈ ؼ ߰ _default_ ȣƮ + ϰ ʹ.

+ +

+ + + <VirtualHost _default_:80>
+ + DocumentRoot /www/default80
+ # ...
+
+ </VirtualHost>
+
+ <VirtualHost _default_:*>
+ + DocumentRoot /www/default
+ # ...
+
+ </VirtualHost> +

+ +

80 Ʈ default ȣƮ (ݵ + ϵī Ʈ ⺻ ȣƮ ; Ѵ) + IP ּҷ û Ѵ. + ּ û Ѵ.

+ + +

Ʈ + _default_ ȣƮ

+ +

80 Ʈ ؼ default ȣƮ ʹ.

+ +

+ + + <VirtualHost _default_:80>
+ DocumentRoot /www/default
+ ...
+ </VirtualHost> +

+ +

Ʈ 80 ּҿ û ⺻ + ȣƮ ϰ, ٸ ּҿ Ʈ + û Ѵ.

+ + +
top
+
+

̸ ȣƮ IP + ȣƮ ű

+ +

(̸ ù° ) ȣƮ + www.example2.org ̸ ȣƮ + ڽ IP ּҸ Ѵ. ̸ ȣƮ + IP ּҸ ijϴ Ӽ Ͻÿ ϱ + ű θ ϰ ʹ.
+ VirtualHost þ IP ּҸ + (172.20.30.50) ߰ϸǹǷ .

+ +

+ + + Listen 80
+ ServerName www.example1.com
+ DocumentRoot /www/example1
+
+ NameVirtualHost 172.20.30.40
+
+ <VirtualHost 172.20.30.40 172.20.30.50>
+ + DocumentRoot /www/example2
+ ServerName www.example2.org
+ # ...
+
+ </VirtualHost>
+
+ <VirtualHost 172.20.30.40>
+ + DocumentRoot /www/example3
+ ServerName www.example3.net
+ ServerAlias *.example3.net
+ # ...
+
+ </VirtualHost> +

+ +

(IP ȣƮ ) ο ּҿ (̸ + ȣƮ ) ּ ȣƮ + ִ.

+ +
top
+
+

ServerPath + þ ϱ

+ +

̸ ȣƮ ִ. ùٸ + ȣƮ ϱ Ŭ̾Ʈ ùٸ + Host: Ѵ. HTTP/1.0 + Ŭ̾Ʈ ϸ ġ Ŭ̾Ʈ +  ȣƮ ϴ (׷ + ȣƮ û Ѵ). ȣȯ + ϱ ȣƮ , ⿡ ̸ + ȣƮ 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/ + û ׻ subl-ȣƮ Ѵ.
+ Ŭ̾Ʈ ùٸ Host: ٸ, + URL http://www.sub1.domain.tld/ û + subl-ȣƮ Ѵ. Host: + Ŭ̾Ʈ ȣƮ ִ + Եȴ.
⿡ ϶: Ŭ̾Ʈ + Host: + http://www.sub2.domain.tld/sub1/ û + subl-ȣƮ Ѵ.
+ RewriteRule + þ Ͽ ùٸ Host: + Ŭ̾Ʈ ( , URL ġ簡 ְų ) + URL ִ.

+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/examples.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/examples.html.tr.utf8 new file mode 100644 index 00000000..044bf8e6 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/examples.html.tr.utf8 @@ -0,0 +1,641 @@ + + + +Sanal Konak Örnekleri - Apache HTTP Sunucusu + + + + + +
<-
+

Sanal Konak Örnekleri

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+ + +

Bu belgede sanal konaklarla ile ilgili olarak 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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/fd-limits.html b/rubbos/app/apache2/manual/vhosts/fd-limits.html new file mode 100644 index 00000000..9dc971e1 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/fd-limits.html @@ -0,0 +1,17 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: fd-limits.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: fd-limits.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/vhosts/fd-limits.html.en b/rubbos/app/apache2/manual/vhosts/fd-limits.html.en new file mode 100644 index 00000000..4649f65f --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/fd-limits.html.en @@ -0,0 +1,133 @@ + + + +File Descriptor Limits - Apache HTTP Server + + + + + +
<-
+

File Descriptor Limits

+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ + +

When using a large number of Virtual Hosts, Apache may run + out of available file descriptors (sometimes called file + handles) if each Virtual Host specifies different log + files. The total number of file descriptors used by Apache is + one for each distinct error log file, one for every other log + file directive, plus 10-20 for internal use. Unix operating + systems limit the number of file descriptors that may be used + by a process; the limit is typically 64, and may usually be + increased up to a large hard-limit.

+ +

Although Apache attempts to increase the limit as required, + this may not work if:

+ +
    +
  1. Your system does not provide the setrlimit() + system call.
  2. + +
  3. The setrlimit(RLIMIT_NOFILE) call does not + function on your system (such as Solaris 2.3)
  4. + +
  5. The number of file descriptors required exceeds the hard + limit.
  6. + +
  7. Your system imposes other limits on file descriptors, + such as a limit on stdio streams only using file descriptors + below 256. (Solaris 2)
  8. +
+ +

In the event of problems you can:

+ +
    +
  • Reduce the number of log files; don't specify log files + in the <VirtualHost> + sections, but only log to the main log files. (See Splitting up your log files, below, for more + information on doing this.)
  • + +
  • + If you system falls into 1 or 2 (above), then increase the + file descriptor limit before starting Apache, using a + script like + +

    + #!/bin/sh
    + ulimit -S -n 100
    + exec httpd
    +

    +
  • +
+ +

Please see the Descriptors and Apache + document containing further details about file descriptor + problems and how they can be solved on your operating + system.

+ +
+
top
+
+

Splitting up your log files

+ +

If you want to log multiple virtual hosts to the same log file, you +may want to split up the log files afterwards in order to run +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 +LogFormat +directive, and the %v variable. Add this to the beginning +of your log format string:

+ +

+LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
+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 +more about customizing your log files.)

+ +

When you wish to split your log file into its component parts (one +file per virtual host) you can use the program split-logfile to accomplish +this. You'll find this program in the support directory +of the Apache distribution.

+ +

Run this program with the command:

+ +

+split-logfile < /logs/multiple_vhost_log +

+ +

This program, when run with the name of your vhost log file, will +generate one file for each virtual host that appears in your log file. +Each file will be called hostname.log.

+ +
+
+

Available Languages:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/fd-limits.html.ja.utf8 b/rubbos/app/apache2/manual/vhosts/fd-limits.html.ja.utf8 new file mode 100644 index 00000000..91682507 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/fd-limits.html.ja.utf8 @@ -0,0 +1,131 @@ + + + +ファイル記述子の限界 - Apache HTTP サーバ + + + + + +
<-
+

ファイル記述子の限界

+
+

Available Languages:  en  | + 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
    +

    +
  • +
+ +

ファイル記述子の問題についての詳細や、 + オペレーティングシステムごとの解決方法については「ファイル記述子と + Apache」の文書を参照してください。 +

+ +
+
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  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/fd-limits.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/fd-limits.html.ko.euc-kr new file mode 100644 index 00000000..fc23ee20 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/fd-limits.html.ko.euc-kr @@ -0,0 +1,126 @@ + + + +ϱ(file descriptor) Ѱ - Apache HTTP Server + + + + + +
<-
+

ϱ(file descriptor) Ѱ

+
+

:  en  | + ja  | + ko  | + tr 

+
+ + +

ȣƮ ϰ ȣƮ ٸ + α ϸ, ġ 밡 ϱ(file + descriptor, ڵ(file handle)̶ + θ) ִ. ġ ϴ ϱ + αϴ Ѱ, ٸ α þ + Ѱ, ߰ ο뵵 10-20 . н ü + μ ִ ϱ Ѵ. Ѱ + 64, ̺ ū hard-limit ø ִ.

+ +

ġ Ѱ踦 ʿѸŭ ø , ϴ + 찡 ִ:

+ +
    +
  1. ý setrlimit() ýȣ + ʴ´.
  2. + +
  3. (Solaris 2.3 ) ýۿ + setrlimit(RLIMIT_NOFILE) Լ + ʴ´.
  4. + +
  5. ʿ ϱ hard limit .
  6. + +
  7. (Solaris 2) ý stdio Ʈ 256 + ϱڸ ϵ ϴ ϱڿ + Ѵ.
  8. +
+ +

ذå:

+ +
    +
  • α δ. <VirtualHost> ǿ α + ʰ α Ѵ. ( ڼ + Ʒ α ϶.)
  • + +
  • + ϴ ý () 1° 2° 쿡 شѴٸ, + ũƮ ġ ϱ ϱ + Ѱ踦 ø. + +

    + #!/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 α տ (ServerName þ ) +ȣƮ Ͽ α Ѵ. (α +ǿ α +϶.)

+ +

α (ȣƮ Ͼ) ʹٸ split-logfile α׷ +Ѵ. α׷ ġ support +丮 ִ.

+ +

α׷ Ѵ:

+ +

+split-logfile < /logs/multiple_vhost_log +

+ +

ȣƮ α α׷ ϸ αϿ + ȣƮ ϳ . ϸ +hostname.log̴.

+ +
+
+

:  en  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/fd-limits.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/fd-limits.html.tr.utf8 new file mode 100644 index 00000000..d6024726 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/fd-limits.html.tr.utf8 @@ -0,0 +1,128 @@ + + + +Dosya Tanıtıcı Sınırları - Apache HTTP Sunucusu + + + + + +
<-
+

Dosya Tanıtıcı Sınırları

+
+

Mevcut Diller:  en  | + 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
    +

    +
  • +
+ +

Dosya tanıtıcılarla ilgili sorunlar ve bunların işletim sisteminizde + nasıl çözülebileceğiyle ilgili bilgi edinmek için Dosya Tanıtıcılar ve Apache + belgesine bakınız.

+ +
+
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 Günlük + Girdilerinin Kişiselleştirilmesi konusuna 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  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html b/rubbos/app/apache2/manual/vhosts/index.html new file mode 100644 index 00000000..b2002505 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html @@ -0,0 +1,29 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: index.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: index.html.es +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 diff --git a/rubbos/app/apache2/manual/vhosts/index.html.de b/rubbos/app/apache2/manual/vhosts/index.html.de new file mode 100644 index 00000000..fcceffa5 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.de @@ -0,0 +1,112 @@ + + + +Apache-Dokumentation zu virtuellen Hosts - Apache HTTP Server + + + + + +
<-
+

Apache-Dokumentation zu virtuellen Hosts

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ +

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 knnen + "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 fr den Endbenutzer + nicht offensichtlich.

+ +

Der Apache war einer der ersten Server, der IP-basierte + virtuelle Hosts von Haus aus direkt untersttzt hat. Seit Version 1.1 + untersttzt 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 Untersttzung von virtuellen Hosts ab Apache Version 1.3 + beschreiben.

+ +
+ +
top
+
top
+
+

Konfigurationsdirektiven

+ + + +

Bei der Suche von Fehlern in Ihrer Virtual-Host-Konfiguration ist + die Apache-Befehlszeilenoption -S mglicherweise + hilfreich. Geben Sie dazu den folgenden Befehl ein:

+ +

+ /usr/local/apache2/bin/httpd -S +

+ +

Diese Anweisung gibt eine Beschreibung aus, wie der Apache die + Konfigurationsdatei analysiert hat. Eine sorgfltige + berprfung der IP-Adressen und Servernamen kann helfen, + Konfigurationsfehler aufzudecken. (Lesen Sie die Dokumentation zum + httpd-Programm fr weitere + Befehlszeilenoptionen.)

+
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.en b/rubbos/app/apache2/manual/vhosts/index.html.en new file mode 100644 index 00000000..31b11b4c --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.en @@ -0,0 +1,112 @@ + + + +Apache Virtual Host documentation - Apache HTTP Server + + + + + +
<-
+

Apache Virtual Host documentation

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

The term Virtual Host refers to the practice of + running more than one web site (such as + www.company1.com and www.company2.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 + are running on the same physical server is not apparent to the + end user.

+ +

Apache was one of the first servers to support IP-based + virtual hosts right out of the box. Versions 1.1 and later of + Apache support both IP-based and name-based virtual hosts + (vhosts). The latter variant of virtual hosts is sometimes also + 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.

+ +
+ +
top
+
top
+
+

Configuration directives

+ + + +

If you are trying to debug your virtual host configuration, you + may find the Apache -S command line switch + useful. That is, type the following command:

+ +

+ /usr/local/apache2/bin/httpd -S +

+ +

This command will dump out a description of how Apache parsed + the configuration file. Careful examination of the IP addresses and + server names may help uncover configuration mistakes. (See + the docs for the httpd program for + other command line options)

+ +
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.es b/rubbos/app/apache2/manual/vhosts/index.html.es new file mode 100644 index 00000000..449b8005 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.es @@ -0,0 +1,119 @@ + + + +Documentacin sobre Hosting Virtual en Apache - Servidor HTTP Apache + + + + + +
<-
+

Documentacin sobre Hosting Virtual en Apache

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

El trmino Hosting Virtual se refiere a hacer + funcionar ms de un sitio web (tales como + www.company1.com y www.company2.com) en + una sola mquina. Los sitios web virtuales pueden estar "basados en direcciones IP", lo que + significa que cada sitio web tiene una direccin IP diferente, o + "basados en nombres diferentes", lo + que significa que con una sola direccin IP estn funcionando + sitios web con diferentes nombres (de dominio). El hecho de que estn + funcionando en la misma mquina fsica pasa completamente + desapercibido para el usuario que visita esos sitios web.

+ +

Apache fue uno de los primeros servidores web en soportar + hosting virtual basado en direcciones IP. Las versiones 1.1 y + posteriores de Apache soportan hosting virtual (vhost) basado tanto + en direcciones IP como basado en nombres. sta ltima variante de + hosting virtual se llama algunas veces basada en host o + hosting virtual no basado en IP.

+ +

Ms abajo se muestra un listado de documentos que explican en + detalle cmo funciona el hosting virtual en las versiones de + Apache 1.3 y posteriores.

+ +
+ +
top
+
top
+
+

Directivas de configuracin

+ + + +

Si est tratando de solucionar problemas de + configuracin de su hosting virtual, puede que le sea de + utilidad usar la opcin de lnea de comandos de Apache + -S. Es decir, el siguiente comando:

+ +

+ /usr/local/apache2/bin/httpd -S +

+ +

Este comando le devolver una descripcin de + cmo Apache analiza e interpreta el fichero de + configuracin. Para saber si contiene errores de + configuracin, es conveniente que examine con atencin + las direcciones IP y los nombres de servidor que est + usando. (Consulte la documentacin sobre el programa + httpd para obtener informacin sobre otras + opciones de lnea de comandos)

+ +
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.ja.utf8 b/rubbos/app/apache2/manual/vhosts/index.html.ja.utf8 new file mode 100644 index 00000000..dd975d2e --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.ja.utf8 @@ -0,0 +1,108 @@ + + + +Apache バーチャルホスト説明書 - Apache HTTP サーバ + + + + + +
<-
+

Apache バーチャルホスト説明書

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
This translation may be out of date. Check the + English version for recent changes.
+ + +

バーチャルホストという用語は、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  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/index.html.ko.euc-kr new file mode 100644 index 00000000..fe4fb775 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.ko.euc-kr @@ -0,0 +1,110 @@ + + + +ġ ȣƮ - Apache HTTP Server + + + + + +
<-
+

ġ ȣƮ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ȣƮ (Virtual Host) ǻͿ + Ʈ ( , www.company1.com + www.company2.com) Ѵ. + ȣƮ Ʈ ٸ IP ּҸ ϴ + "IP (IP-based)" İ + IP ּҴ ̸ "̸ (name-based)" + ִ. Ʈ ִٴ ڴ + ġä Ѵ.

+ +

ġ ⺻ IP ȣƮ â + ϳ. ġ 1.1 ̻ IPݰ ̸ + ȣƮ Ѵ. ̸ ȣƮ + ȣƮ (host-based) Ǵ IP ȣƮ + (non-IP virtual hosts) θ.

+ +

ġ 1.3 ̻ ȣƮ ڼ + ̴.

+ +
+ +
top
+
+

ȣƮ

+ + + +
top
+
+

þ

+ + + +

ȣƮ ׽ƮҶ ġ -S + ɼ ϴ. , Ѵ:

+ +

+ /usr/local/apache2/bin/httpd -S +

+ +

ɾ ġ Ͽ + Ѵ. IP ּҿ ڼ 캸 + Ǽ ߰ϴµ ̴. (ٸ ɼǵ + httpd α׷ + ϶.)

+ +
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.ru.koi8-r b/rubbos/app/apache2/manual/vhosts/index.html.ru.koi8-r new file mode 100644 index 00000000..da6f38a5 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.ru.koi8-r @@ -0,0 +1,107 @@ + + + + Apache - HTTP Apache + + + + + +
<-
+

Apache

+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

+ - (, + www.company1.com www.company2.com) + . « IP-», + IP , « », + ͣ IP-. , + , + .

+ +

Apache , IP- + . Apache 1.1 + IP-, , . + + - -IP .

+ +

, + Apache 1.3 .

+ +
+ +
top
+
+

+ +
    +
  • , + ( - IP ).
  • +
  • IP- ( + IP -).
  • +
  • .
  • +
  • (, + Too many log files)
  • +
  • +
  • +
+ +
top
+
+

+ + + +

, + Apache -S . + , :

+ +

+ /usr/local/apache2/bin/httpd -S +

+ +

, Apache + . IP ͣ + . ( + httpd + .)

+ +
+
+

:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/index.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/index.html.tr.utf8 new file mode 100644 index 00000000..c9c54a51 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/index.html.tr.utf8 @@ -0,0 +1,107 @@ + + + +Apache Sanal Konak Belgeleri - Apache HTTP Sunucusu + + + + + +
<-
+

Apache Sanal Konak Belgeleri

+
+

Mevcut Diller:  de  | + en  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ + +

Sanal Konak (Virtual Host) terimi tek bir makine üzerinde + birden fazla sitenin (www.sirket1.dom, www.sirket2.dom 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’nin 1.3 sürümü ve sonrası 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  | + es  | + ja  | + ko  | + ru  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/ip-based.html b/rubbos/app/apache2/manual/vhosts/ip-based.html new file mode 100644 index 00000000..f2417b60 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/ip-based.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: ip-based.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/vhosts/ip-based.html.en b/rubbos/app/apache2/manual/vhosts/ip-based.html.en new file mode 100644 index 00000000..51fa0b07 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/ip-based.html.en @@ -0,0 +1,160 @@ + + + +Apache IP-based Virtual Host Support - Apache HTTP Server + + + + + +
<-
+

Apache IP-based Virtual Host Support

+
+

Available Languages:  en  | + ko  | + tr 

+
+
+ +
top
+
+

System requirements

+ +

As the term IP-based indicates, the server + must have a different IP address 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).

+ +
top
+
+

How to set up Apache

+ +

There are two ways of configuring apache to support multiple + hosts. Either by running a separate httpd daemon for + each hostname, or by running a single daemon which supports all the + virtual hosts.

+ +

Use multiple daemons when:

+ +
    +
  • There are security partitioning issues, such as company1 + does not want anyone at company2 to be able to read their + data except via the web. In this case you would need two + daemons, each running with different User, Group, Listen, and ServerRoot settings.
  • + +
  • You can afford the memory and file descriptor + requirements of listening to every IP alias on the + machine. It's only possible to Listen to the "wildcard" + address, or to specific addresses. So if you have a need to + listen to a specific address for whatever reason, then you + will need to listen to all specific addresses. (Although one + httpd could listen to N-1 of the addresses, and another could + listen to the remaining address.)
  • +
+ +

Use a single daemon when:

+ +
    +
  • Sharing of the httpd configuration between virtual hosts + is acceptable.
  • + +
  • The machine services a large number of requests, and so + the performance loss in running separate daemons may be + significant.
  • +
+ +
top
+
+

Setting up multiple daemons

+ +

Create a separate httpd installation for each + virtual host. For each installation, use the Listen directive in the + configuration file to select which IP address (or virtual host) + that daemon services. e.g.

+ +

+ Listen www.smallco.com:80 +

+ +

It is recommended that you use an IP address instead of a + hostname (see DNS caveats).

+ +
top
+
+

Setting up a single daemon + with virtual hosts

+ +

For this case, a single httpd will service requests for the + main server and all the virtual hosts. The VirtualHost directive + in the configuration file is used to set the values of ServerAdmin, ServerName, DocumentRoot, ErrorLog and TransferLog + or CustomLog + configuration directives to different values for each virtual + host. e.g.

+ +

+ <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> +

+ +

It is recommended that you use an IP address instead of a + hostname (see DNS caveats).

+ +

Almost any configuration directive can be + put in the VirtualHost directive, with the exception of + directives that control process creation and a few other + directives. To find out if a directive can be used in the + VirtualHost directive, check the Context using the + directive index.

+ +

SuexecUserGroup + may be used inside a + VirtualHost directive if the suEXEC + wrapper is used.

+ +

SECURITY: When specifying where to write log files, + be aware of some security risks which are present if anyone + other than the user that starts Apache has write access to the + directory where they are written. See the security tips document + for details.

+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/ip-based.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/ip-based.html.ko.euc-kr new file mode 100644 index 00000000..96fd784b --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/ip-based.html.ko.euc-kr @@ -0,0 +1,150 @@ + + + +ġ IP ȣƮ - Apache HTTP Server + + + + + +
<-
+

ġ IP ȣƮ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+
+ +
top
+
+

ý 䱸

+ +

IP̶ ǹϵ + IP ȣƮ ٸ IP ּҸ + Ѵ. ̴ ǻ͸ Ʈ + ϰų, ֱ ü ϴ ̽ + (ڼ ý ϶. "ip aliases" + ϸ, "ifconfig" ɾ ) Ͽ ϴ.

+ +
top
+
+

ġ

+ +

ȣƮ ϵ ġ ϴ ΰ. + ϳ ȣƮ ϴ + ̰, ٸ ϳ ȣƮ ϴ Ѱ + ϴ ̴.

+ +

ϳ:

+ + + +

Ѱ ϳ:

+ +
    +
  • ȣƮ ִ .
  • + +
  • ǻͰ ſ û Ѵٸ + ϱ⿡ ӵ ս Ŭ ִ.
  • +
+ +
top
+
+

ϱ

+ +

ȣƮ ġѴ. + Listen þ + IP ּ(Ȥ ȣƮ) ش. + ,

+ +

+ Listen www.smallco.com:80 +

+ +

ȣƮ ٴ IP ּҸ ϱ ٶ. + (DNS )

+ +
top
+
+

ϳ ȣƮ ϱ

+ +

Ѱ ּ ȣƮ + û Ѵ. 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 α׷ + Ѵٸ VirtualHost þ ȿ User Group ִ.

+ +

: ϴ ڿܿ ٸ + α ִ 丮 ִٸ + ϶. ڼ ϶.

+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/ip-based.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/ip-based.html.tr.utf8 new file mode 100644 index 00000000..78bf8a49 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/ip-based.html.tr.utf8 @@ -0,0 +1,165 @@ + + + +Apache’de IP’ye Dayalı Sanal Konak Desteği - Apache HTTP Sunucusu + + + + + +
<-
+

Apache’de IP’ye Dayalı Sanal Konak Desteği

+
+

Mevcut Diller:  en  | + ko  | + tr 

+
+
+ +
top
+
+

Sistem gereksinimleri

+ +

IP’ye dayalı deyince, sunucunun her IP’ye dayalı + sanal konak için ayrı bir IP adresine 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 kullanılıyordur. (Sanal arabirimlerle ilgili ayrıntılar için + sistem belgelerinize bakınız; bu konu genellikle IP rumuzları (ip aliases) + olarak geçer ve ayarlamak için genellikle "ifconfig" komutu + kullanılır.)

+ +
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 www.birkobi.dom: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 konaklar 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 www.birkobi.dom> + + ServerAdmin bilgi@posta.birkobi.dom
+ DocumentRoot /gruplar/birkobi/belgeler
+ ServerName www.birkobi.dom
+ ErrorLog /gruplar/birkobi/günlükler/hatalar.log
+ TransferLog /gruplar/birkobi/günlükler/erisim.log +
+ </VirtualHost>
+
+ <VirtualHost www.digerkobi.dom> + + ServerAdmin bilgi@posta.digerkobi.dom
+ DocumentRoot /gruplar/digerkobi/belgeler
+ ServerName www.digerkobi.dom
+ ErrorLog /gruplar/digerkobi/günlükler/hatalar.log
+ TransferLog /gruplar/digerkobi/günlükler/erisim.log +
+ </VirtualHost> +

+ +

Burada konak isimlerinin yerlerine IP adreslerini kullanmanız önerilir + (ayrıntılar için DNS ile ilgili konular + belgesine bakınız).

+ +

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  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/mass.html b/rubbos/app/apache2/manual/vhosts/mass.html new file mode 100644 index 00000000..408420d1 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/mass.html @@ -0,0 +1,13 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: mass.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +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/rubbos/app/apache2/manual/vhosts/mass.html.en b/rubbos/app/apache2/manual/vhosts/mass.html.en new file mode 100644 index 00000000..ee0f0f1d --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/mass.html.en @@ -0,0 +1,419 @@ + + + +Dynamically Configured Mass Virtual Hosting - Apache HTTP Server + + + + + +
<-
+

Dynamically Configured Mass Virtual Hosting

+
+

Available Languages:  en  | + ko  | + tr 

+
+ + +

This document describes how to efficiently serve an + arbitrary number of virtual hosts with the Apache httpd webserver. +

+ +
+ +
top
+
+

Motivation

+ +

The techniques described here are of interest if your + httpd.conf contains many + <VirtualHost> sections that are + substantially the same, for example:

+ +

+NameVirtualHost 111.22.33.44
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-1.com
+ DocumentRoot /www/hosts/www.customer-1.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin
+
+</VirtualHost>
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-2.com
+ DocumentRoot /www/hosts/www.customer-2.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin
+
+</VirtualHost>
+# blah blah blah
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-N.com
+ DocumentRoot /www/hosts/www.customer-N.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin
+
+</VirtualHost> +

+ +

The basic idea is to replace all of the static + <VirtualHost> configurations with a mechanism + that works them out dynamically. This has a number of + advantages:

+ +
    +
  1. Your configuration file is smaller, so Apache starts + more quickly and uses less memory.
  2. + +
  3. Adding virtual hosts is simply a matter of creating the + appropriate directories in the filesystem and entries in the + DNS - you don't need to reconfigure or restart Apache.
  4. +
+ +

The main disadvantage is that you cannot have a different log file for + each virtual host; however, if you have many virtual hosts, doing + this can be a bad idea anyway, because of the number of file + descriptors needed. It is better to log to a pipe or a fifo, and arrange for + the process at the other end to distribute the logs to the customers. + (This can also be used to accumulate statistics, etc.).

+ +
top
+
+

Overview

+ +

A virtual host is defined by two pieces of information: its + IP address, and the contents of the Host: header + in the HTTP request. The dynamic mass virtual hosting technique + used here is based on automatically inserting this information into the + pathname of the file that is used to satisfy the request. This + can be most easily done by using mod_vhost_alias + with Apache 2.0. Alternatively, mod_rewrite can be used. + Both of these modules are disabled by default; you must enable + one of them when configuring and building Apache if you want to + use this technique.

+ +

A couple of things need to be `faked' to make the dynamic + virtual host look like a normal one. The most important is the + server name, which is used by Apache to generate + self-referential URLs etc. It is configured with the + ServerName directive, and it is available to CGIs + via the SERVER_NAME environment variable. The + actual value used at run time is controlled by the UseCanonicalName + setting. With UseCanonicalName Off, the server name + is taken from the contents of the Host: header in the + request. With UseCanonicalName DNS, it is taken from a + reverse DNS lookup of the virtual host's IP address. The former + setting is used for name-based dynamic virtual hosting, and the + latter is used for IP-based hosting. If Apache cannot work out + the server name because there is no Host: header, + or the DNS lookup fails, then the value configured with + ServerName is used instead.

+ +

The other thing to `fake' is the document root (configured + with DocumentRoot and available to CGIs via the + DOCUMENT_ROOT environment variable). In a normal + configuration, this is used by the core module when + mapping URIs to filenames, but when the server is configured to + do dynamic virtual hosting, that job must be taken over by another + module (either mod_vhost_alias or + mod_rewrite), which has a different way of doing + the mapping. Neither of these modules is responsible for + setting the DOCUMENT_ROOT environment variable so + if any CGIs or SSI documents make use of it, they will get a + misleading value.

+ +
top
+
+

Simple Dynamic Virtual Hosts

+ +

This extract from httpd.conf implements the + virtual host arrangement outlined in the Motivation section above, but in a + generic fashion using mod_vhost_alias.

+ +

+# get the server name from the Host: header
+UseCanonicalName Off
+
+# this log format can be split per-virtual-host based on the first field
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# include the server name in the filenames used to satisfy requests
+VirtualDocumentRoot /www/hosts/%0/docs
+VirtualScriptAlias /www/hosts/%0/cgi-bin +

+ +

This configuration can be changed into an IP-based virtual + hosting solution by just turning UseCanonicalName + Off into UseCanonicalName DNS. The server + name that is inserted into the filename is then derived from + the IP address of the virtual host.

+ +
top
+
+

A Virtually Hosted Homepages System

+ +

This is an adjustment of the above system, tailored for an + ISP's homepages server. Using a slightly more complicated + configuration, we can select substrings of the server name to + use in the filename so that, for example, the documents for + www.user.isp.com are found in + /home/user/. It uses a single cgi-bin + directory instead of one per virtual host.

+ +

+# all the preliminary stuff is the same as above, then
+
+# include part of the server name in the filenames
+VirtualDocumentRoot /www/hosts/%2/docs
+
+# single cgi-bin directory
+ScriptAlias /cgi-bin/ /www/std-cgi/
+

+ +

There are examples of more complicated + VirtualDocumentRoot settings in the + mod_vhost_alias documentation.

+ +
top
+
+

Using Multiple Virtual + Hosting Systems on the Same Server

+ +

With more complicated setups, you can use Apache's normal + <VirtualHost> directives to control the + scope of the various virtual hosting configurations. For + example, you could have one IP address for general customers' homepages, + and another for commercial customers, with the following setup. + This can, of course, be combined with conventional + <VirtualHost> configuration sections.

+ +

+UseCanonicalName Off
+
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+
+<Directory /www/commercial>
+ + Options FollowSymLinks
+ AllowOverride All
+
+</Directory>
+
+<Directory /www/homepages>
+ + Options FollowSymLinks
+ AllowOverride None
+
+</Directory>
+
+<VirtualHost 111.22.33.44>
+ + ServerName www.commercial.isp.com
+
+ CustomLog logs/access_log.commercial vcommon
+
+ VirtualDocumentRoot /www/commercial/%0/docs
+ VirtualScriptAlias /www/commercial/%0/cgi-bin
+
+</VirtualHost>
+
+<VirtualHost 111.22.33.45>
+ + ServerName www.homepages.isp.com
+
+ CustomLog logs/access_log.homepages vcommon
+
+ VirtualDocumentRoot /www/homepages/%0/docs
+ ScriptAlias /cgi-bin/ /www/std-cgi/
+
+</VirtualHost> +

+ +
top
+
+

More Efficient IP-Based Virtual Hosting

+ +

The configuration changes suggested to turn the first + example into an IP-based virtual hosting setup result in + a rather inefficient setup. A new DNS lookup is required for every + request. To avoid this overhead, the filesystem can be arranged to + correspond to the IP addresses, instead of to the host names, thereby + negating the need for a DNS lookup. Logging will also have to be adjusted + to fit this system.

+ +

+# get the server name from the reverse DNS of the IP address
+UseCanonicalName DNS
+
+# include the IP address in the logs so they may be split
+LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# include the IP address in the filenames
+VirtualDocumentRootIP /www/hosts/%0/docs
+VirtualScriptAliasIP /www/hosts/%0/cgi-bin
+

+ +
top
+
+

Simple 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.

+ +

There are a couple of especially tricky bits: by default, + mod_rewrite runs before other URI translation + modules (mod_alias etc.) - so if you wish to use these modules, mod_rewrite must be configured to accommodate + them. Also, some magic is required to do a + per-dynamic-virtual-host equivalent of + ScriptAlias.

+ +

+# 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>
+
+# now for the hard bit
+
+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 MIME type
+RewriteCond %{REQUEST_URI} ^/cgi-bin/
+RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
+
+# that's it! +

+ +
top
+
+

A + Homepages System Using mod_rewrite

+ +

This does the same thing as the second + example.

+ +

+RewriteEngine on
+
+RewriteMap lowercase int:tolower
+
+# allow CGIs to work
+RewriteCond %{REQUEST_URI} !^/cgi-bin/
+
+# check the hostname is right so that the RewriteRule works
+RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$
+
+# concatenate the virtual host name onto the start of the URI
+# the [C] means do the next rewrite on the result of this one
+RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
+
+# now create the real file name
+RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2
+
+# define the global CGI directory
+ScriptAlias /cgi-bin/ /www/std-cgi/ +

+ +
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:

+ +

+www.customer-1.com /www/customers/1
+www.customer-2.com /www/customers/2
+# ...
+www.customer-N.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 [T=application/x-httpd-cgi] +

+ +
+
+

Available Languages:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/mass.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/mass.html.ko.euc-kr new file mode 100644 index 00000000..060c69b1 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/mass.html.ko.euc-kr @@ -0,0 +1,425 @@ + + + +뷮 ȣƮ ϱ - Apache HTTP Server + + + + + +
<-
+

뷮 ȣƮ ϱ

+
+

:  en  | + ko  | + tr 

+
+
ֽ ƴմϴ. + ֱٿ ϼ.
+ + +

ġ 1.3 뷮 ȣƮ ȿ + ϴ Ѵ. +

+ +
+ +
top
+
+

+ +

httpd.conf + <VirtualHost> ǵ ִٸ ⼭ + ϴ ̴:

+ +

+NameVirtualHost 111.22.33.44
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-1.com
+ DocumentRoot /www/hosts/www.customer-1.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-1.com/cgi-bin
+
+</VirtualHost>
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-2.com
+ DocumentRoot /www/hosts/www.customer-2.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-2.com/cgi-bin
+
+</VirtualHost>
+# ٺ ٺ ٺ
+<VirtualHost 111.22.33.44>
+ + ServerName www.customer-N.com
+ DocumentRoot /www/hosts/www.customer-N.com/docs
+ ScriptAlias /cgi-bin/ /www/hosts/www.customer-N.com/cgi-bin
+
+</VirtualHost> +

+ +

<VirtualHost> + θ óϵ üϴ ̴. + ׷ ִ:

+ +
    +
  1. ۾ ġ ϰ ޸𸮸 + Ѵ.
  2. + +
  3. ȣƮ ߰ϱ Ͻýۿ + 丮 DNS ׸ ߰ϱ⸸ ϸȴ. , + ġ 缳ϰ ʿ䰡 .
  4. +
+ +

ȣƮ ٸ α ٴ + ̴. ׷ ſ ȣƮ Ѵٸ ϱڸ + ⶧ ٸ α . + fifo α׸ , ޴ α׸ óϿ + ( ִ) .

+ +
top
+
+

+ +

ȣƮ IP ּҿ HTTP û Host: + Ѵ. ⺻ 뷮 + ȣƮ ڵ ȣƮ û + ϰο Ѵ. ̴ κ mod_vhost_alias + Ͽ ذ , ġ 1.3.6 ϸ Ѵٸ + mod_rewrite ؾ Ѵ. + ⺻ Ե ʴ´. Ϸ + ġ ϰ Ҷ ؾ Ѵ.

+ +

ȣƮ Ϲ ȣƮó ̰Ϸ + `ӿ' Ѵ. ߿ ġ ڱ + URL 鶧 ̴. + ServerName þ ϸ, CGI + SERVER_NAME ȯ溯 ־. + UseCanonicalName ޷ȴ. + UseCanonicalName Off̸ û Host: + ȴ. UseCanonicalName DNS̸ + ȣƮ IP ּҸ DNS ˻Ͽ ˾Ƴ. + ڴ ̸ ȣƮ ϰ, ڴ IP + ȣƮ Ѵ. Host: ų + DNS ˻ Ͽ ġ ˾Ƴ ϸ + ServerName Ѵ.

+ +

ٸ `' (DocumentRoot ϸ, + CGI DOCUMENT_ROOT ȯ溯 ־) + Ʈ̴. Ϲ core Ͽ + URI شϴ ϸ ã, ȣ Ҷ ٸ + (mod_vhost_alias mod_rewrite) + ٸ ̷ ۾ Ѵ. + DOCUMENT_ROOT ȯ溯 Ƿ + CGI SSI Ѵٸ ߸ + ִ.

+ +
top
+
+

ȣƮ

+ +

ȣƮ + mod_vhost_alias Ͽ Ϲ + ߴ.

+ +

+# Host: ˾Ƴ
+UseCanonicalName Off
+
+# ù° ʵ带 Ͽ α׸ ȣƮ ִ
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# û óϱ ϸ Ѵ
+VirtualDocumentRoot /www/hosts/%0/docs
+VirtualScriptAlias /www/hosts/%0/cgi-bin +

+ +

UseCanonicalName Off + UseCanonicalName DNS ϱ⸸ ϸ IP + ȣƮ ȴ. ȣƮ IP ּҸ + ϸ ߰ ִ.

+ +
top
+
+

ȣƮϴ Ȩ ý

+ +

ISP Ȩ ߴ. + ϸ www.user.isp.com + /home/user/ δ Ϻθ + ϸ ִ. + cgi-bin ȣƮ ʰ + ȣƮ Ѵ.

+ +

+# ⺻ . ׸
+
+# ϸ Ϻθ Ѵ
+VirtualDocumentRoot /www/hosts/%2/docs
+
+# ϳ cgi-bin 丮
+ScriptAlias /cgi-bin/ /www/std-cgi/
+

+ +

mod_vhost_alias + VirtualDocumentRoot ִ.

+ +
top
+
+

ȣƮ + ý ϱ

+ +

ġ Ϲ + <VirtualHost> þ Ͽ + ȣƮ ִ. , + Ȩ IP ּ Ѱ, + ٸ IP ּ Ѱ οѴ. ó + <VirtualHost> ǿ + ִ.

+ +

+UseCanonicalName Off
+
+LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
+
+<Directory /www/commercial>
+ + Options FollowSymLinks
+ AllowOverride All
+
+</Directory>
+
+<Directory /www/homepages>
+ + Options FollowSymLinks
+ AllowOverride None
+
+</Directory>
+
+<VirtualHost 111.22.33.44>
+ + ServerName www.commercial.isp.com
+
+ CustomLog logs/access_log.commercial vcommon
+
+ VirtualDocumentRoot /www/commercial/%0/docs
+ VirtualScriptAlias /www/commercial/%0/cgi-bin
+
+</VirtualHost>
+
+<VirtualHost 111.22.33.45>
+ + ServerName www.homepages.isp.com
+
+ CustomLog logs/access_log.homepages vcommon
+
+ VirtualDocumentRoot /www/homepages/%0/docs
+ ScriptAlias /cgi-bin/ /www/std-cgi/
+
+</VirtualHost> +

+ +
top
+
+

ȿ IP ȣƮ

+ +

ù° + IP ȣƮ ٲ ִٰ ߴ. + ׷ û DNS ãƾϹǷ ſ ȿ̴. + ̸ IP ּҷ Ͻý ϰ + α׸ ϸ ذ ִ. ġ + ٷ ʿ䰡 , DNS ˻ ʰ ȴ.

+ +

+# IP ּҸ DNS ˻Ͽ ˾Ƴ
+UseCanonicalName DNS
+
+# α׸ ֵ IP ּҸ Ѵ
+LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+# ϸ IP ּҸ Ѵ
+VirtualDocumentRootIP /www/hosts/%0/docs
+VirtualScriptAliasIP /www/hosts/%0/cgi-bin
+

+ +
top
+
+

ġ ϱ

+ +

ġ 1.3.6 Ŀ Ե + mod_vhost_alias Ѵ. + mod_vhost_alias ġ Ѵٸ + ̹ ߵ mod_rewrite Ͽ, + Host:- ȣƮ, ִ.

+ +

α׿ Ͽ ִ. ġ 1.3.6 + α þ %V ԵǾ, 1.3.0 + - 1.3.3 %v ɼ ߴ. ׷ + 1.3.4 ̷ .  ġ + .htaccess Ͽ UseCanonicalName + þ Ƿ α׿ ̻ ϵ ִ. + ׷Ƿ %{Host}i þ + Ͽ Host: α׿ ̴. + , %V ʴ :port + ڿ ߰ ִ.

+ +
top
+
+

mod_rewrite + ȣƮ

+ +

ù° ϴ + httpd.conf ̴. ó ù° + , ȣȯ mod_rewrite + Ǿ. ۾ + ϴ mod_rewrite Ѵ.

+ +

Ư ؾ ִ. ⺻ + mod_rewrite (mod_alias ) ٸ + URI ȴ. ׷ ٸ URI + Ͽ mod_rewrite ؾ Ѵ. + , ȣƮ ScriptAlias + ؼ Ư ۾ ʿϴ.

+ +

+# Host: ´
+UseCanonicalName Off
+
+# splittable logs
+LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
+CustomLog logs/access_log vcommon
+
+<Directory /www/hosts>
+ + # ScriptAlias CGI ⶧
+ # ⿡ ExecCGI Ѵ
+ Options FollowSymLinks ExecCGI
+
+</Directory>
+
+# κ̴
+
+RewriteEngine On
+
+# Host: ҹڰ ڼ ִ
+RewriteMap lowercase int:tolower
+
+## Ϲ óѴ:
+# Alias /icons/ ϵ - ٸ alias ؼ ݺ
+RewriteCond %{REQUEST_URI} !^/icons/
+# CGI ϵ
+RewriteCond %{REQUEST_URI} !^/cgi-bin/
+# Ư ۾
+RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
+
+## CGI óѴ - MIME type ؾ Ѵ
+RewriteCond %{REQUEST_URI} ^/cgi-bin/
+RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/cgi-bin/$1 [T=application/x-httpd-cgi]
+
+# ! +

+ +
top
+
+

mod_rewrite + Ȩ ý

+ +

ι° + Ѵ.

+ +

+RewriteEngine on
+
+RewriteMap lowercase int:tolower
+
+# CGI ϵ
+RewriteCond %{REQUEST_URI} !^/cgi-bin/
+
+# RewriteRule ϵ ȣƮ ùٸ ˻Ѵ
+RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$
+
+# ȣƮ URI տ δ
+# [C] ۼ Ѵ
+RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
+
+# ϸ
+RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2
+
+# ü CGI 丮 Ѵ
+ScriptAlias /cgi-bin/ /www/std-cgi/ +

+ +
top
+
+

ȣƮ + ϱ

+ +

mod_rewrite Ͽ + ȣƮ Ʈ ˾Ƴ. + ʿϴ.

+ +

vhost.map :

+ +

+www.customer-1.com /www/customers/1
+www.customer-2.com /www/customers/2
+# ...
+www.customer-N.com /www/customers/N
+

+ +

http.conf :

+ +

+RewriteEngine on
+
+RewriteMap lowercase int:tolower
+
+# Ѵ
+RewriteMap vhost txt:/www/conf/vhost.map
+
+# alias óѴ
+RewriteCond %{REQUEST_URI} !^/icons/
+RewriteCond %{REQUEST_URI} !^/cgi-bin/
+RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
+# ã´
+RewriteCond ${vhost:%1} ^(/.*)$
+RewriteRule ^/(.*)$ %1/docs/$1
+
+RewriteCond %{REQUEST_URI} ^/cgi-bin/
+RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
+RewriteCond ${vhost:%1} ^(/.*)$
+RewriteRule ^/(.*)$ %1/cgi-bin/$1 +

+ +
+
+

:  en  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/mass.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/mass.html.tr.utf8 new file mode 100644 index 00000000..ff3f9990 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/mass.html.tr.utf8 @@ -0,0 +1,406 @@ + + + +Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma - Apache HTTP Sunucusu + + + + + +
<-
+

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> +

+
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 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html b/rubbos/app/apache2/manual/vhosts/name-based.html new file mode 100644 index 00000000..10fcbf0e --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html @@ -0,0 +1,25 @@ +# GENERATED FROM XML -- DO NOT EDIT + +URI: name-based.html.de +Content-Language: de +Content-type: text/html; charset=ISO-8859-1 + +URI: name-based.html.en +Content-Language: en +Content-type: text/html; charset=ISO-8859-1 + +URI: name-based.html.es +Content-Language: es +Content-type: text/html; charset=ISO-8859-1 + +URI: name-based.html.ja.utf8 +Content-Language: ja +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/rubbos/app/apache2/manual/vhosts/name-based.html.de b/rubbos/app/apache2/manual/vhosts/name-based.html.de new file mode 100644 index 00000000..2799aa23 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.de @@ -0,0 +1,270 @@ + + + +Untersttzung namensbasierter virtueller Hosts - Apache HTTP Server + + + + + +
<-
+

Untersttzung namensbasierter virtueller Hosts

+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

Das Dokument beschreibt, wann und wie namensbasierte virtuelle Hosts zu + verwenden sind.

+
+ +
top
+
+

Namensbasierte gegenber 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 + bentigen Sie eine IP-Adresse fr jeden virtuellen Host. Bei der + Verwendung von namensbasierten virtuellen Hosts verlt sich der + Server darauf, dass der Client den Hostnamen als Bestandteil der HTTP-Header + angibt. Durch Anwendung dieser Technik knnen sich mehrere verschiedene + Hosts die gleiche IP-Adresse teilen.

+ +

Die Verwendung von namensbasierten virtuellen Hosts ist gewhnlich + einfacher. Sie mssen 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 entschrfen auch den Bedarf an + knappen IP-Adressen. Daher sollten Sie namensbasierte virtuelle Hosts + verwenden, sofern kein besonderer Grund dafr existiert, IP-basierte + virtuelle Hosts zu whlen. Mgliche Grnde fr die + Verwendung IP-basierter virtueller Hosts sind:

+ +
    +
  • Einige antike Clients sind nicht kompatibel zu namensbasierten + 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 Untersttzung fr veraltete Clients + bentigen und dennoch namensbasierte virtuelle Hosts verwenden, + dann finden Sie eine mgliche Lsung dafr am Ende des + Dokuments.
  • + +
  • Namensbasierte virtuelle Hosts knnen 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 + knnen, wenn diese nicht auf verschiedenen IP-Adressen liegen.
  • +
+ +
top
+
+

Die Verwendung von namensbasierten virtuellen Hosts

+ + + +

Um namensbasierte virtuelle Hosts zu verwenden, mssen Sie die + IP-Adresse (und mglicherweise den Port) des Servers benennen, an + der Anfragen fr die Hosts entgegengenommen werden. Dies wird mit + der Direktive NameVirtualHost + eingestellt. Im Normalfall, wenn alle IP-Adressen des Server verwendet + werden sollen, knnen Sie * als Argument fr + NameVirtualHost verwenden. Wenn Sie + vorhaben, mehrere Ports zu nutzen (etwa wenn SSL luft), sollten + Sie dem Argument einen Port hinzufgen, wie zum Beispiel + *:80. Beachten Sie, + dass die Angabe einer IP-Adresse in einer NameVirtualHost-Anweisung den Server nicht + automatisch an dieser Adresse lauschen lt. Lesen Sie bitte "Bestimmen der vom Apache verwendeten Adressen und + Ports" fr weitere Details. Zustzlich muss jede hier + angegebene IP-Adresse einer Netzwerkkarte des Servers zugeordnet sein.

+ +

Der nchste Schritt ist die Erstellung eines <VirtualHost>-Blocks fr 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 * fr alle Adressen). Innerhalb jedes <VirtualHost>-Blocks bentigen + 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 hinzufgen, + mssen Sie auch einen <VirtualHost>-Block fr 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. Fhren 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 mchten den virtuellen Host + www.otherdomain.tld hinzufgen, welcher auf + die gleiche IP-Adresse zeigt. Dann fgen Sie einfach Folgendes der + httpd.conf hinzu:

+ +

+ 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>
+

+ +

Sie knnen 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 + entweder IP-basierte oder ein anderes Set von namensbasierten virtuellen + Hosts auf einer anderen Adresse.

+ +

Viele Server wollen unter mehr als einem Namen erreichbar sein. Die + Direktive ServerAlias, die innerhalb + des <VirtualHost>-Abschnittes angegeben wird, + ermglicht dies. Zum Beispiel zeigt die ServerAlias-Anweisung in dem ersten <VirtualHost>-Block oben an, dass die + aufgefhrten Namen alternative Namen sind, die man verwenden kann, um + das gleiche Webangebot zu erreichen:

+ +

+ ServerAlias domain.tld *.domain.tld +

+ +

Anfragen fr alle Hosts der Domain domain.tld werden + von dem virtuellen Host www.domain.tld bedient. Die + Platzhalter * und ? knnen anstelle + entsprechender Namen verwendet werden. Natrlich knnen Sie nicht + einfach Namen erfinden und diese bei ServerName oder ServerAlias + angeben, Sie mssen zunchst Ihren DNS Server entsprechend + konfigurieren, dass er diese Namen auf die mit Ihrem Server verknpfte + IP-Adresse abbildet.

+ +

Und schluendlich knnen Sie die Konfiguration der virtuellen + Hosts mittels Angabe weiterer Direktiven innherhalb der <VirtualHost>-Container + feineinstellen. Die meisten Direktiven knnen in diesen Containern + angegeben werden und verndern dann ausschlielich die + Konfiguration des entsprechenden virtuellen Hosts. Prfen Sie den Kontext einer Direktive, um + herauszufinden, ob eine bestimmte Direktive zulssig ist. + Im Hauptserver-Kontext (auerhalb der <VirtualHost>-Container) definierte + Konfigurationsanweisungen werden nur dann angewendet, wenn sie nicht durch + Einstellungen des virtuellen Hosts auer Kraft gesetzt wurden.

+ +

Wenn nun eine Anfrage eintrifft, prft 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 gewnschten + 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 pat.

+ +

Die Folge davon ist, dass der erste aufgefhrte 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 fr Anfragen + angeben mchten, die keinem bestimmten virtuellen Host entsprechen, + packen Sie diese Konfiguration einfach in einen <VirtualHost>-Container und fhren diesen als + erstes in der Konfigurationsdatei auf.

+ +
top
+
+

Kompatibilitt mit lteren Browsern

+ +

Wie zuvor erwhnt 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, fr + diese IP-Adresse aufgefhrten virtuellen Hosts gesendet werden (des + primren 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 + heutzutage in Verwendung finden werden. Alle aktuellen Browser-Versionen + senden den Host-Header, so wie er fr namensbasierte + virtuelle Hosts bentigt wird.

+
+ +

Mit der Direktive ServerPath existiert + eine mgliche Behelfskonstruktion, obgleich sie etwas schwerfllig + ist:

+ +

Beispielkonfiguration:

+ +

+ NameVirtualHost 111.22.33.44
+
+ <VirtualHost 111.22.33.44>
+ + ServerName www.domain.tld
+ ServerPath /domain
+ DocumentRoot /web/domain
+
+ </VirtualHost>
+

+ +

Was bedeutet das? Es bedeutet, dass eine Anfrage fr eine mit + "/domain" beginnende URI von dem virtuellen Host + www.domain.tld bedient wird. Dies heit, dass die Seiten + fr 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 + knnen.

+ +

Legen Sie einen Link auf der Seite Ihres primren virtuellen Hosts zu + http://www.domain.tld/domain/, um die Behelfslsung + verfgbar zu machen. Bei den Seiten der virtuellen Hosts mssen + Sie dann sicherstellen, entweder auschlielich relative Links + (z.B. "file.html" oder + "../icons/image.gif") zu verwenden oder Links, die das + einleitende /domain/ enthalten (z.B., + "http://www.domain.tld/domain/misc/file.html" oder + "/domain/misc/file.html").

+ +

Dies erfordert etwas Disziplin, die Befolgung dieser Richtlinien stellt + jedoch grtenteils sicher, dass Ihre Seiten mit allen Browsern + funktionieren, alten wie neuen.

+ +
+
+

Verfgbare Sprachen:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html.en b/rubbos/app/apache2/manual/vhosts/name-based.html.en new file mode 100644 index 00000000..837739a0 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.en @@ -0,0 +1,248 @@ + + + +Name-based Virtual Host Support - Apache HTTP Server + + + + + +
<-
+

Name-based Virtual Host Support

+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

This document describes when and how to use name-based virtual hosts.

+
+ +
top
+
+

Name-based vs. IP-based Virtual Hosts

+ +

IP-based virtual hosts use the IP address of the connection to + determine the correct virtual host to serve. Therefore you need to + have a separate IP address for each host. With name-based virtual + hosting, the server relies on the client to report the hostname as + part of the HTTP headers. Using this technique, many different hosts + can share the same IP address.

+ +

Name-based virtual hosting is usually simpler, since you need + only configure your DNS server to map each hostname to the correct + 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.
  • +
+ +
top
+
+

Using Name-based Virtual Hosts

+ + + +

To use name-based virtual hosting, you must designate the IP + address (and possibly port) on the server that will be accepting + requests for the hosts. This is configured using the NameVirtualHost directive. + In the normal case where any and all IP addresses on the server should + be used, you can use * as the argument to NameVirtualHost. If you're planning to use + multiple ports (e.g. running SSL) you should add a Port to the argument, + such as *:80. Note that mentioning an IP address in a + NameVirtualHost directive does not + automatically make the server listen to that IP address. See + Setting which addresses and ports Apache uses + for more details. In addition, any IP address specified here must be + associated with a network interface on the server.

+ +

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 + ServerName directive to designate + which host is served and a DocumentRoot + directive to show where in the filesystem the content for that host + lives.

+ +

Main host goes away

+

If you are adding virtual hosts to an existing web server, you + must also create a <VirtualHost> block for the existing host. The ServerName and DocumentRoot included in this virtual host should be the + same as the global ServerName and + DocumentRoot. List this virtual + host first in the configuration file so that it will act as the default + host.

+
+ +

For example, suppose that you are serving the domain + www.domain.tld and you wish to add the virtual host + www.otherdomain.tld, which points at the same IP address. + Then you simply add the following to 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>
+

+ +

You can alternatively specify an explicit IP address in place of the + * in both the NameVirtualHost and <VirtualHost> directives. For example, you might want to do this + in order to run some name-based virtual hosts on one IP address, and either + IP-based, or another set of name-based virtual hosts on another address.

+ +

Many servers want to be accessible by more than one name. This is + possible with the ServerAlias + directive, placed inside the <VirtualHost> section. For example in the first <VirtualHost> block above, the + ServerAlias directive indicates that + the listed names are other names which people can use to see that same + web site:

+ +

+ ServerAlias domain.tld *.domain.tld +

+ +

then requests for all hosts in the domain.tld domain will + be served by the www.domain.tld virtual host. The wildcard + characters * and ? can be used to match names. + Of course, you can't just make up names and place them in ServerName or ServerAlias. You must + first have your DNS server properly configured to map those names to an IP + address associated with your server.

+ +

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 + the relevant virtual host. To find out if a particular directive is allowed, + check the Context of the + directive. Configuration directives set in the main server context + (outside any <VirtualHost> + container) will be used only if they are not overridden by the virtual host + settings.

+ +

Now when a request arrives, the server will first check if it is using + an IP address that matches the NameVirtualHost. If it is, then it will look at each <VirtualHost> section with a matching + IP address and try to find one where the ServerName or ServerAlias matches the requested + hostname. If it finds one, then it uses the configuration for that server. + If no matching virtual host is found, then the first listed virtual + host that matches the IP address will be used.

+ +

As a consequence, the first listed virtual host is the default + virtual host. The DocumentRoot from + the main server will never be used when an IP + address matches the NameVirtualHost + directive. If you would like to have a special configuration for requests + that do not match any particular virtual host, simply put that configuration + in a <VirtualHost> + container and list it first in the configuration file.

+ +
top
+
+

Compatibility with Older Browsers

+ +

As mentioned earlier, there are some clients + who do not send the required data for the name-based virtual + hosts to work properly. These clients will always be sent the + pages from the first virtual host listed for that IP address + (the primary name-based virtual host).

+ +

How much older?

+

Please note that when we say older, we really do mean older. You are + very unlikely to encounter one of these browsers in use today. All + current versions of any browser send the Host header as + required for name-based virtual hosts.

+
+ +

There is a possible workaround with the ServerPath + directive, albeit a slightly cumbersome one:

+ +

Example configuration:

+ +

+ NameVirtualHost 111.22.33.44
+
+ <VirtualHost 111.22.33.44>
+ + ServerName www.domain.tld
+ ServerPath /domain
+ DocumentRoot /web/domain
+
+ </VirtualHost>
+

+ +

What does this mean? It means that a request for any URI + beginning with "/domain" will be served from the + virtual host www.domain.tld. This means that the + pages can be accessed as http://www.domain.tld/domain/ + for all clients, although clients sending a Host: header + can also access it as http://www.domain.tld/.

+ +

In order to make this work, put a link on your primary + virtual host's page to + http://www.domain.tld/domain/. Then, in the virtual + host's pages, be sure to use either purely relative links + (e.g., "file.html" or + "../icons/image.gif") or links containing the + prefacing /domain/ (e.g., + "http://www.domain.tld/domain/misc/file.html" or + "/domain/misc/file.html").

+ +

This requires a bit of discipline, but adherence to these + guidelines will, for the most part, ensure that your pages will + work with all browsers, new and old.

+ +
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html.es b/rubbos/app/apache2/manual/vhosts/name-based.html.es new file mode 100644 index 00000000..a3b31d36 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.es @@ -0,0 +1,292 @@ + + + +Soporte de Hosting Virtual basado en nombres - Servidor HTTP Apache + + + + + +
<-
+

Soporte de Hosting Virtual basado en nombres

+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

Este documento describe cmo y cundo debe usarse hosting virtual + basado en nombres.

+
+ +
top
+
+

Diferencias entre el hosting vitual +basado en nombres y el basado en IPs

+ +

El hosting virtual basado en IPs usa la direccin IP de la + conexin para determinar qu host virtual es el que tiene que + servir. Por lo tanto, necesitar tener diferentes direcciones IP + para cada host. Si usa hosting virtual basado en nombres, el + servidor atiende al nombre de host que especifica el cliente en + las cabeceras de HTTP. Usando esta tcnica, una sola direccin IP + puede ser compartida por muchos sitios web diferentes.

+ +

El hosting virtual basado en nombres es normalmente ms + sencillo, porque solo necesita configurar su servidor de DNS para + que localice la direccin IP correcta y entonces configurar Apache + para que reconozca los diferentes nombres de host. Usando hosting + virtual basado en nombres tambin se reduce la demanda de + direcciones IP, que empieza a ser un bien escaso. Por lo tanto, + debe usar hosting virtual basado en nombres a no ser que haya + alguna razn especial por la cual tenga que elegir usar hosting + vitual basado en direcciones IP. Algunas de stas razones pueden + ser:

+ +
    +
  • Algunos clientes antiguos no son compatibles con el + hosting virtual basado en nombres. Para que el hosting + virtual basado en nombres funcione, el cliente debe enviar la + cabecera de Host HTTP. Esto es necesario para HTTP/1.1, y est + implementado como extensin en casi todos los navegadores + actuales. Si necesita dar soporte a clientes obsoletos y usar + hosting virtual basado en nombres, al final de este documento + se describe una tcnica para que pueda hacerlo.
  • + +
  • El hosting virtual basado en nombres no se puede usar + junto con SSL por la naturaleza del protocolo SSL.
  • + +
  • Algunos sistemas operativos y algunos elementos de red + tienen implementadas tcnicas de gestin de ancho de banda que + no pueden diferenciar entre hosts a no ser que no estn en + diferentes direcciones IP.
  • +
+ +
top
+
+

Cmo usar hosting vitual basado en +nombres

+ + + +

Para usar hosting virtual basado en nombres, debe especificar + en el servidor qu direccin IP (y posiblemente qu puerto) se va + a usar para atender las peticiones a los diferentes hosts. Esto + se hace con la directiva NameVirtualHost. Normalmente, cualquiera + o todas las direcciones IP del servidor pueden usarse, tambin + puede usar * como argumento para la directiva + NameVirtualHost. Si va a usar + ms de un puerto (por ejemplo si va usar SSL) debe aadir un + puerto a cada argumento, por ejemplo *:80. Tenga en + cuenta que especificando una direccin IP en la directiva + NameVirtualHost no hace que + el servidor escuche automticamente en esa direccin IP. Consulte + la seccin Especificar las direcciones y + puertos que usa Apache para obtener ms informacin. Adems, + cualquier direccin IP especificada debe asociarse con un + dispositivo de red del servidor.

+ +

El siguiente paso es crear un bloque <VirtualHost> para cada host diferente que + quiera alojar en el servidor. El argumento de la directiva + <VirtualHost> + debe ser el mismo que el argumento de la directiva NameVirtualHost (por ejemplo, una + direccin IP, o un * para usar todas las direcciones + que tenga el servidor). Dentro de cada bloque <VirtualHost>, necesitar + como mnimo una directiva ServerName para designar qu host se + sirve y una directiva DocumentRoot para indicar dnde estn + los contenidos a servir dentro del sistema de ficheros.

+ +

Aadir hosts vituales a un servidor web ya existente

+

Si est aadiendo hosts virtuales a un servidor web ya + existente, debe crear tambin un bloque <VirtualHost> para el + host que ya tenga funcionando. Los valores de las directivas + ServerName y DocumentRoot desde este nuevo host + virtual deben tener los mismos valores que los de las + directivas ServerName + DocumentRoot + globales. Ponga este host virtual como el primero en el + archivo de configuracin para que sea el que acte como host + por defecto.

+
+ +

Por ejemplo, suponga que est sirviendo el dominio + www.domain.tld y quiere aadir el host virtual + www.otherdomain.tld, que apunta a la misma direccin + IP. Entonces, lo nico que tiene que hacer es aadir lo siguiente + al fichero 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>
+

+ +

Tambin puede optar por especificar una direccin IP + explcitamente en lugar de usar un * en las + directivas NameVirtualHost y + <VirtualHost>. Por ejemplo, puede hacer esto + para hacer funcionar diferentes hosts virtuales basados en nombres + en una direccin IP, o basados en IPs, o un conjunto de hosts + virtuales basados en nombres en otra direccin.

+ +

Tambin puede que quiera que se acceda a un determinado sitio + web usando diferentes nombres. Esto es posible con la directiva + ServerAlias, puesta dentro de + la seccin <VirtualHost>. Por ejemplo, en el primer bloque + <VirtualHost> de + arriba, la directiva ServerAlias indica la lista de nombres + que pueden usarse para acceder a un mismo sitio web:

+ +

+ ServerAlias domain.tld *.domain.tld +

+ +

entonces las peticiones para todos los hosts en el dominio + domain.tld sern servidas por el host virtual + www.domain.tld. Los carcteres comodines + * y ? pueden usarse para encontrar + equivalencias con los nombres. Por supuesto, no puede inventarse + nombres y ponerlos en la directiva ServerName o + ServerAlias. Primero debe tener su servidor de DNS + debidamente configurado para que pueda hacer corresponder esos + nombres con una direccin IP de su servidor.

+ +

Para terminar, puede mejorar el rendimiento de la configuracin + de los hosts virtuales poniendo otras directivas dentro de las + secciones <VirtualHost>. La mayor parte de las + directivas pueden ponerse en esos containers y cambiarn solo la + configuracin del host virtual al que se refieran. Para ver si una + directiva en particualar puede usarse as, consulte el Contexto de la + directiva. Las directivas de configuracin especificadas en el + contexto del servidor principal (fuera de + cualquier seccin <VirtualHost>) se usan nica y + exclusivamente si sus valores no son sustituidos por alguno de los + parmetros de configuracin del host virtual.

+ +

Cuando llega una peticin, el servidor primero verifica si se + est usando una direccin IP que coincide con el valor de la + directiva NameVirtualHost. Si es el caso, mirar en cada + seccin <VirtualHost> cuya IP coincida e intentar + encontrar si el valor de la directiva ServerName o de la directiva ServerAlias + coincide con el nombre del sitio web de la peticin. Si encuentra + una coincidencia, usa la configuracin de ese servidor. Si no la + encuentra, usa el primer host virtual de la lista + cuya direccin IP coincida con el de la peticin.

+ +

Como consecuencia, el primer host virtual de la lista es el que + se usa por defecto. La directiva DocumentRoot del servidor + principal no se usar nunca cuando una + direccin IP coincida con el valor de la directiva NameVirtualHost. Si quiere usar una + configuracin especial para peticiones que no coinciden con ningn + host virtual en concreto, ponga esa configuracin en una seccin + <VirtualHost> y + pngala la primera en el fichero de configuracin.

+ +
top
+
+

Compatibilidad con navegadores +antiguos

+ +

Como se dijo antes, hay algunos clientes que no envan los + datos necesarios para que funcione correctamente el hosting + virtual basado en nombres. Estos clientes van a recibir siempre + como respuesta a sus peticiones, pginas del primer host virtual + que haya en la lista para esa direccin IP (el host virtual + primario basado en nombres).

+ +

Cmo de antiguo?

+

Tenga en cuenta que cuando decimos antiguo, queremos decir + realmente antiguo. Es muy poco probable que encuentre uno de esos + navegadores en uso todava. Todas las versiones actuales de + cualquier navegador envan la cabecera Host que se + necesita para que el hosting virtual basado en nombres + funcione.

+
+ +

Existe una manera de evitar este problema con la directiva + ServerPath, aunque es un poco + complicada:

+ +

Ejemplo de configuracin:

+ +

+ NameVirtualHost 111.22.33.44
+
+ <VirtualHost 111.22.33.44>
+ + ServerName www.domain.tld
+ ServerPath /domain
+ DocumentRoot /web/domain
+
+ </VirtualHost>
+

+ +

Qu significa esto? Esto significa que una peticin de + cualquier URI que empiece por "/domain" ser servida + por el host virtual www.domain.tld. Esto significa + que las pginas pueden accederse como + http://www.domain.tld/domain/ por todos los clientes, + aunque los clientes que enven una cabecera Host: + pueden tambin acceder con + http://www.domain.tld/.

+ +

Para hacer que esto funcione, ponga un enlace en la pgina de + su host virtual primario a + http://www.domain.tld/domain/. Entonces, en las + pginas del host virtual, asegrese de que usa o enlaces relativos + (por ejemplo, "file.html" o + "../icons/image.gif") o enlaces que contengan el + /domain/ anterior (por ejemplo, + "http://www.domain.tld/domain/misc/file.html" o + "/domain/misc/file.html").

+ +

Esto requiere un poco de disciplina, pero siguiendo estas + reglas, puede asegurarse, casi en todos los casos, de que las + pginas de su sitio web podrn ser accedidas desde cualquier + navegador, ya sea nuevo o antiguo.

+ +
+
+

Idiomas disponibles:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html.ja.utf8 b/rubbos/app/apache2/manual/vhosts/name-based.html.ja.utf8 new file mode 100644 index 00000000..c106bfc0 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.ja.utf8 @@ -0,0 +1,273 @@ + + + +名前ベースのバーチャルホスト - Apache HTTP サーバ + + + + + +
<-
+

名前ベースのバーチャルホスト

+
+

Available Languages:  de  | + en  | + es  | + 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") だけを設置します。

+ +

これには、幾分かの規律が必要となりますが、 + このようなガイドラインを忠実に守ることにより、たいていの場合、 + すべてのブラウザで ― 新しいブラウザでも古いものでも ― + 作成したページが見えるということを保証します。

+ +
+
+

Available Languages:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html.ko.euc-kr b/rubbos/app/apache2/manual/vhosts/name-based.html.ko.euc-kr new file mode 100644 index 00000000..47527a79 --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.ko.euc-kr @@ -0,0 +1,238 @@ + + + +̸ ȣƮ - Apache HTTP Server + + + + + +
<-
+

̸ ȣƮ

+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ +

̸ ȣƮ ϴ + Ѵ.

+
+ +
top
+
+

̸ IP ȣƮ

+ +

IP ȣƮ IP ּҸ + ȣƮ Ѵ. ׷ ȣƮ ٸ IP ּҸ + Ѵ. ̸ ȣƮ Ŭ̾Ʈ + HTTP ȣƮ ˷ֱ ٶ. ̷ + IP ּҷ ٸ ȣƮ ִ.

+ +

̸ ȣƮ DNS ȣƮ ùٸ + IP ּҷ ϵ ȣƮ ϰ, ٸ ȣƮ + ֵ ġ ϱ⸸ ϸǹǷ ϴ. ̸ + ȣƮ IP ּҰ ʿ. ׷Ƿ Ư + IP ȣƮ ٸ ̸ ȣƮ + ؾ Ѵ. IP ȣƮ ؾ δ:

+ +
    +
  • ̸ ȣƮ ʴ + Ŭ̾Ʈ ִ. ̸ ȣƮ Ϸ + Ŭ̾Ʈ HTTP Host Ѵ. ̴ + HTTP/1.1 ʼ̰, ֱ HTTP/1.0 鵵 + Ȯ Ѵ. ̸ ȣƮ ϸ鼭 + Ŭ̾Ʈ ؾ Ѵٸ ִ + .
  • + +
  • SSL ݻ SSL ȼ ̸ + ȣƮ .
  • + +
  •  ü Ʈ ġ ٸ IP ּҸ + ȣƮ ϴ Ʈ 뷮(bandwidth) + Ѵ.
  • +
+ +
top
+
+

̸ ȣƮ ϱ

+ + + +

̸ ȣƮ Ϸ + IP ּҸ (Ƹ Ʈ) ؾ Ѵ. ̴ NameVirtualHost þ ϴ. + Ϲ IP ּҸ Ѵٸ + NameVirtualHost + ƱԸƮ * Ѵ. Ʈ + ( , SSL ) ȹ̶ *:80 + ƱԸƮ Ʈ ߰ؾ Ѵ. NameVirtualHost þ IP ּҸ + ־ٰ ڵ IP ּҸ ٸ + ϶. ڼ ġ + ּҿ Ʈ ϱ ϶. , ⼭ + IP ּҴ Ʈ ̽̾ Ѵ.

+ +

ܰ Ϸ ȣƮ <VirtualHost> + ̴. <VirtualHost>> þ ƱԸƮ + NameVirtualHost þ + ƱԸƮ( , IP ּҳ ּҸ ϴ *) + ƾ Ѵ. <VirtualHost>> ȿ + ּ ȣƮ ϴ ServerName þ ȣƮ + Ͻý ִ ϴ DocumentRoot þ ʿϴ.

+ +

ȣƮ

+

ϴ ȣƮ ߰Ѵٸ + ϴ ȣƮ <VirtualHost> ϵ ߰ؾ + Ѵ. Ͽ ϴ ServerName DocumentRoot ü ServerName DocumentRoot ƾ Ѵ. + Ͽ ȣƮ ⺻ ȣƮ + ȴ.

+
+ +

www.domain.tld ϰ + ־µ IP ּҿ + www.otherdomain.tld ȣƮ ߰ϰ + ʹٰ . 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 Ȥ ̸ + ȣƮ ִ.

+ +

 ̸ ֱ ٶ. ̴ + <VirtualHost> + ȿ ServerAlias + þ Ͽ ϴ. ù° <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 + Ѵ. , Host: Ŭ̾Ʈ + http://www.domain.tld/ε , + http://www.domain.tld/domain/δ + Ŭ̾Ʈ ִ.

+ +

̸ ȣƮ ִ + http://www.domain.tld/domain/ ũ + ִ´. ׸ ȣƮ 븵ũ ( , + "file.html" ̳ "../icons/image.gif") + Ȥ ("http://www.domain.tld/domain/misc/file.html"̳ + "/domain/misc/file.html" ) տ + /domain/ ũ Ѵ.

+ +

Ģ ʿ Ģ κ + ̳ ̳ + ִ.

+ +
+
+

:  de  | + en  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/manual/vhosts/name-based.html.tr.utf8 b/rubbos/app/apache2/manual/vhosts/name-based.html.tr.utf8 new file mode 100644 index 00000000..7fef092a --- /dev/null +++ b/rubbos/app/apache2/manual/vhosts/name-based.html.tr.utf8 @@ -0,0 +1,256 @@ + + + +İsme Dayalı Sanal Konaklar - Apache HTTP Sunucusu + + + + + +
<-
+

İsme Dayalı Sanal Konaklar

+
+

Mevcut Diller:  de  | + en  | + es  | + 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, IP’ye dayalı sanal + konakları kullanmanızı gerektirecek çok özel bir sebep olmadıkça isme + dayalı sanal konaklar kullanmalısınız. IP’ye dayalı sanal konakların + kullanımını gerektirebilecek bazı durumlar:

+ +
    +
  • Bazı tarihi istemciler isme dayalı sanal konaklarla uyumlu değildir. + İsme dayalı sanal konakların çalışması için istemcinin HTTP Host + başlığı göndermesi gerekir. Bu da HTTP/1.1 desteği gerektirir. + Günümüzdeki HTTP/1.0 istemcileri bir eklenti olarak HTTP/1.1’i de + desteklemektedir. Tarihi eser haline gelmiş HTTP/1.1 desteği + bulurmayan eski istemcileri hala isme dayalı sanal konaklarla + desteklemek isterseniz bu belgenin sonunda bunu mümkün kılabilecek bir + tekniğe yer verilmiştir.
  • + +
  • İsme dayalı sanal konaklar SSL portokolünün doğası gereğince SSL’li + güvenli sunucular için kullanılamazlar.
  • + +
  • Bazı işletim sistemlerinin ve ağ donanımlarının gerçekleştirdiği + band genişliği yönetim teknikleri IP adresleri farklı olmadığı sürece + konaklar arasında ayrım yapamazlar.
  • +
+ +
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 + (bu değer normalde ya bir IP adresidir ya da *’dı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.

+ +

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  | + es  | + ja  | + ko  | + tr 

+
+ \ No newline at end of file diff --git a/rubbos/app/apache2/modules/httpd.exp b/rubbos/app/apache2/modules/httpd.exp new file mode 100644 index 00000000..09ac042a --- /dev/null +++ b/rubbos/app/apache2/modules/httpd.exp @@ -0,0 +1,421 @@ +#! . +* This file was AUTOGENERATED at build time. +* Please do not edit by hand. +ap_set_receive_buffer_size +ap_mpm_run +ap_graceful_stop_signalled +ap_os_create_privileged_process +ap_mpm_query +ap_register_provider +ap_lookup_provider +ap_get_module_config +ap_set_module_config +ap_set_string_slot +ap_set_int_slot +ap_method_is_limited +ap_set_string_slot_lower +ap_set_flag_slot +ap_set_file_slot +ap_set_deprecated +ap_server_root_relative +ap_add_module +ap_remove_module +ap_add_loaded_module +ap_remove_loaded_module +ap_add_named_module +ap_find_module_name +ap_find_linked_module +ap_pcfg_openfile +ap_pcfg_open_custom +ap_cfg_getline +ap_cfg_getc +ap_cfg_closefile +ap_soak_end_container +ap_build_cont_config +ap_build_config +ap_walk_config +ap_check_cmd_context +ap_single_module_configure +ap_setup_prelinked_modules +ap_show_directives +ap_show_modules +ap_show_mpm +ap_read_config +ap_run_rewrite_args +ap_register_hooks +ap_fixup_virtual_hosts +ap_create_request_config +ap_create_per_dir_config +ap_merge_per_dir_configs +ap_create_conn_config +ap_parse_htaccess +ap_init_virtual_host +ap_process_resource_config +ap_process_config_tree +ap_invoke_handler +ap_find_command +ap_find_command_in_modules +ap_set_config_vectors +ap_hook_header_parser +ap_hook_get_header_parser +ap_run_header_parser +ap_hook_pre_config +ap_hook_get_pre_config +ap_run_pre_config +ap_hook_post_config +ap_hook_get_post_config +ap_run_post_config +ap_hook_open_logs +ap_hook_get_open_logs +ap_run_open_logs +ap_hook_child_init +ap_hook_get_child_init +ap_run_child_init +ap_hook_handler +ap_hook_get_handler +ap_run_handler +ap_hook_quick_handler +ap_hook_get_quick_handler +ap_run_quick_handler +ap_hook_optional_fn_retrieve +ap_hook_get_optional_fn_retrieve +ap_run_optional_fn_retrieve +ap_process_connection +ap_flush_conn +ap_lingering_close +ap_hook_create_connection +ap_hook_get_create_connection +ap_run_create_connection +ap_hook_pre_connection +ap_hook_get_pre_connection +ap_run_pre_connection +ap_hook_process_connection +ap_hook_get_process_connection +ap_run_process_connection +ap_bucket_eoc_make +ap_bucket_eoc_create +ap_allow_options +ap_allow_overrides +ap_default_type +ap_document_root +ap_get_remote_host +ap_get_remote_logname +ap_construct_url +ap_get_server_name +ap_get_server_port +ap_get_limit_req_body +ap_get_limit_xml_body +ap_custom_response +ap_is_recursion_limit_exceeded +ap_exists_config_define +ap_core_translate +ap_auth_type +ap_auth_name +ap_satisfies +ap_requires +ap_register_request_note +ap_get_request_note +ap_add_per_dir_conf +ap_add_per_url_conf +ap_add_file_conf +ap_limit_section +ap_hook_get_mgmt_items +ap_hook_get_get_mgmt_items +ap_run_get_mgmt_items +ap_get_server_revision +ap_get_server_version +ap_add_version_component +ap_get_server_built +ap_field_noparam +ap_ht_time +ap_getword +ap_getword_nc +ap_getword_white +ap_getword_white_nc +ap_getword_nulls +ap_getword_nulls_nc +ap_getword_conf +ap_getword_conf_nc +ap_resolve_env +ap_size_list_item +ap_get_list_item +ap_find_list_item +ap_get_token +ap_find_token +ap_find_last_token +ap_is_url +ap_unescape_url +ap_unescape_url_keep2f +ap_no2slash +ap_getparents +ap_escape_path_segment +ap_os_escape_path +ap_escape_html +ap_escape_logitem +ap_escape_errorlog_item +ap_construct_server +ap_escape_shell_cmd +ap_count_dirs +ap_make_dirstr_prefix +ap_make_dirstr_parent +ap_make_full_path +ap_os_is_path_absolute +ap_is_matchexp +ap_strcmp_match +ap_strcasecmp_match +ap_strcasestr +ap_stripprefix +ap_pbase64decode +ap_pbase64encode +ap_pregcomp +ap_pregfree +ap_regexec +ap_regerror +ap_pregsub +ap_content_type_tolower +ap_str_tolower +ap_ind +ap_rind +ap_escape_quotes +ap_is_rdirectory +ap_is_directory +ap_log_assert +ap_psignature +ap_strchr +ap_strchr_c +ap_strrchr +ap_strrchr_c +ap_strstr +ap_strstr_c +ap_open_stderr_log +ap_replace_stderr_log +ap_log_error +ap_log_perror +ap_log_rerror +ap_log_cerror +ap_error_log2stderr +ap_log_pid +ap_read_pid +ap_open_piped_log +ap_close_piped_log +ap_hook_error_log +ap_hook_get_error_log +ap_run_error_log +ap_hook_insert_error_filter +ap_hook_get_insert_error_filter +ap_run_insert_error_filter +ap_get_mime_headers +ap_get_mime_headers_core +ap_finalize_request_protocol +ap_send_error_response +ap_set_content_length +ap_set_keepalive +ap_rationalize_mtime +ap_make_content_type +ap_setup_make_content_type +ap_make_etag +ap_set_etag +ap_set_last_modified +ap_meets_conditions +ap_send_fd +ap_send_mmap +ap_method_register +ap_method_registry_init +ap_make_method_list +ap_copy_method_list +ap_method_list_do +ap_method_list_vdo +ap_method_in_list +ap_method_list_add +ap_method_list_remove +ap_clear_method_list +ap_set_content_type +ap_rputc +ap_rputs +ap_rwrite +ap_rvputs +ap_vrprintf +ap_rprintf +ap_rflush +ap_index_of_response +ap_get_status_line +ap_setup_client_block +ap_should_client_block +ap_get_client_block +ap_discard_request_body +ap_note_auth_failure +ap_note_basic_auth_failure +ap_note_digest_auth_failure +ap_get_basic_auth_pw +ap_parse_uri +ap_getline +ap_rgetline_core +ap_method_number_of +ap_method_name_of +ap_hook_post_read_request +ap_hook_get_post_read_request +ap_run_post_read_request +ap_hook_log_transaction +ap_hook_get_log_transaction +ap_run_log_transaction +ap_hook_http_method +ap_hook_get_http_method +ap_run_http_method +ap_hook_default_port +ap_hook_get_default_port +ap_run_default_port +ap_bucket_error_make +ap_bucket_error_create +ap_byterange_filter +ap_http_header_filter +ap_content_length_filter +ap_old_write_filter +ap_set_sub_req_protocol +ap_finalize_sub_req_protocol +ap_process_request_internal +ap_sub_req_lookup_uri +ap_sub_req_lookup_file +ap_sub_req_lookup_dirent +ap_sub_req_method_uri +ap_sub_req_output_filter +ap_run_sub_req +ap_destroy_sub_req +ap_internal_redirect +ap_internal_redirect_handler +ap_internal_fast_redirect +ap_some_auth_required +ap_is_initial_req +ap_update_mtime +ap_allow_methods +ap_allow_standard_methods +ap_die +ap_hook_create_request +ap_hook_get_create_request +ap_run_create_request +ap_hook_translate_name +ap_hook_get_translate_name +ap_run_translate_name +ap_hook_map_to_storage +ap_hook_get_map_to_storage +ap_run_map_to_storage +ap_hook_check_user_id +ap_hook_get_check_user_id +ap_run_check_user_id +ap_hook_fixups +ap_hook_get_fixups +ap_run_fixups +ap_hook_type_checker +ap_hook_get_type_checker +ap_run_type_checker +ap_hook_access_checker +ap_hook_get_access_checker +ap_run_access_checker +ap_hook_auth_checker +ap_hook_get_auth_checker +ap_run_auth_checker +ap_hook_insert_filter +ap_hook_get_insert_filter +ap_run_insert_filter +ap_location_walk +ap_directory_walk +ap_file_walk +ap_init_vhost_config +ap_fini_vhost_config +ap_vhost_iterate_given_conn +ap_update_vhost_given_ip +ap_update_vhost_from_headers +ap_matches_request_vhost +ap_uname2id +ap_gname2id +ap_exists_scoreboard_image +ap_increment_counts +ap_calc_scoreboard_size +ap_create_sb_handle +find_child_by_pid +ap_update_child_status +ap_update_child_status_from_indexes +ap_get_scoreboard_worker +ap_get_scoreboard_process +ap_get_scoreboard_global +ap_hook_pre_mpm +ap_hook_get_pre_mpm +ap_run_pre_mpm +ap_get_brigade +ap_pass_brigade +ap_register_input_filter +ap_register_output_filter +ap_add_input_filter +ap_add_input_filter_handle +ap_get_input_filter_handle +ap_add_output_filter +ap_add_output_filter_handle +ap_get_output_filter_handle +ap_remove_input_filter +ap_remove_output_filter +ap_save_brigade +ap_filter_flush +ap_fflush +ap_fputstrs +ap_fprintf +ap_md5 +ap_md5_binary +ap_md5contextTo64 +ap_md5digest +ap_create_environment +ap_find_path_info +ap_add_cgi_vars +ap_add_common_vars +ap_scan_script_header_err +ap_scan_script_header_err_brigade +ap_scan_script_header_err_strs +ap_scan_script_header_err_core +ap_explode_recent_localtime +ap_explode_recent_gmt +ap_recent_ctime +ap_recent_rfc822_date +ap_xml_parse_input +ap_basic_http_header +ap_send_http_trace +ap_send_http_options +ap_hook_get_suexec_identity +ap_hook_get_get_suexec_identity +ap_run_get_suexec_identity +unixd_setup_child +unixd_pre_config +unixd_set_user +unixd_set_group +unixd_set_rlimit +unixd_set_proc_mutex_perms +unixd_set_global_mutex_perms +unixd_accept +apu_version +apu_version_string +ap_listeners +ap_top_module +ap_prelinked_modules +ap_preloaded_modules +ap_loaded_modules +ap_bucket_type_eoc +core_module +ap_subreq_core_filter_handle +ap_core_output_filter_handle +ap_content_length_filter_handle +ap_net_time_filter_handle +ap_core_input_filter_handle +ap_server_argv0 +ap_server_root +ap_server_pre_read_config +ap_server_post_read_config +ap_server_config_defines +ap_old_write_func +ap_bucket_type_error +ap_scoreboard_image +ap_scoreboard_fname +ap_extended_status +ap_my_generation +ap_conftree +ap_http_input_filter_handle +ap_http_header_filter_handle +ap_chunk_filter_handle +ap_byterange_filter_handle +unixd_config diff --git a/rubbos/app/apache2/modules/mod_jk.so b/rubbos/app/apache2/modules/mod_jk.so new file mode 100755 index 00000000..46c3ee0d Binary files /dev/null and b/rubbos/app/apache2/modules/mod_jk.so differ -- cgit 1.2.3-korg