jim 99/06/13 12:59:43
Modified: . STATUS
htdocs/manual/mod core.html directives.html
src CHANGES
src/include http_conf_globals.h
src/main http_core.c http_main.c
Log:
Submitted by: Mathijs Maassen <[EMAIL PROTECTED]>
Reviewed by: Jim, Lars
Add the new DocumentRootCheck directive. This determines if we
check for each DocumentRoot during startup.
Revision Changes Path
1.715 +1 -6 apache-1.3/STATUS
Index: STATUS
===================================================================
RCS file: /export/home/cvs/apache-1.3/STATUS,v
retrieving revision 1.714
retrieving revision 1.715
diff -u -r1.714 -r1.715
--- STATUS 1999/06/13 11:25:24 1.714
+++ STATUS 1999/06/13 19:59:34 1.715
@@ -1,5 +1,5 @@
1.3 STATUS:
- Last modified at [$Date: 1999/06/13 11:25:24 $]
+ Last modified at [$Date: 1999/06/13 19:59:34 $]
Release:
@@ -90,11 +90,6 @@
Available Patches:
-
- * Mathijs Maassen <[EMAIL PROTECTED]> path to disable the initial
- check/stat of DocumentRoot.
- Message-ID: <[EMAIL PROTECTED]>
- Status: Jim +1 (will add to docs), Lars +1
* Stipe Tolj's Cygwin32 port
PR#: 2936
1.147 +36 -0 apache-1.3/htdocs/manual/mod/core.html
Index: core.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/core.html,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -r1.146 -r1.147
--- core.html 1999/04/20 22:19:15 1.146
+++ core.html 1999/06/13 19:59:35 1.147
@@ -36,6 +36,7 @@
<LI><A HREF="#directory"><Directory></A>
<LI><A HREF="#directorymatch"><DirectoryMatch></A>
<LI><A HREF="#documentroot">DocumentRoot</A>
+<LI><A HREF="#documentrootCheck">DocumentRootCheck</A>
<LI><A HREF="#errordocument">ErrorDocument</A>
<LI><A HREF="#errorlog">ErrorLog</A>
<LI><A HREF="#files"><Files></A>
@@ -743,6 +744,41 @@
<P>There appears to be a bug in mod_dir which causes problems when the
DocumentRoot has a trailing slash (<EM>i.e.</EM>, "DocumentRoot /usr/web/")
so
please avoid that.
+
+<P><HR>
+
+<H2><A NAME="documentrootcheck">DocumentRootCheck directive</A></H2>
+<!--%plaintext <?INDEX {\tt DocumentRootCheck} directive> -->
+<A
+ HREF="directive-dict.html#Syntax"
+ REL="Help"
+><STRONG>Syntax:</STRONG></A> DocumentRootCheck <EM>On/Off</EM><BR>
+<A
+ HREF="directive-dict.html#Default"
+ REL="Help"
+><STRONG>Default:</STRONG></A> <CODE>DocumentRootCheck On</CODE><BR>
+<A
+ HREF="directive-dict.html#Context"
+ REL="Help"
+><STRONG>Context:</STRONG></A> server config<BR>
+<A
+ HREF="directive-dict.html#Status"
+ REL="Help"
+><STRONG>Status:</STRONG></A> core<BR>
+<A
+ HREF="directive-dict.html#Compatibility"
+ REL="Help"
+><STRONG>Compatibility:</STRONG></A> Available in Apache 1.3.7 and later
+<P>
+During startup, Apache does a <CODE>stat</CODE> of each
+<A HREF="#documentroot">DocumentRoot</A>
+to determine if the directory exists. If your server is
+configured with lots of DocumentRoot directives (for example,
+if you server numerous virtual hosts), this can <em>greatly</em> increase
+the startup time. If you are sure that all the DocumentRoot
+entries exist, you can tell Apache to bypass this check using
+<BLOCKQUOTE><CODE>DocumentRootCheck Off</CODE></BLOCKQUOTE>
+
<P><HR>
1.57 +1 -0 apache-1.3/htdocs/manual/mod/directives.html
Index: directives.html
===================================================================
RCS file: /export/home/cvs/apache-1.3/htdocs/manual/mod/directives.html,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- directives.html 1999/03/23 14:35:47 1.56
+++ directives.html 1999/06/13 19:59:37 1.57
@@ -95,6 +95,7 @@
<LI><A HREF="core.html#directorymatch"><DirectoryMatch></A>
<LI><A HREF="mod_dir.html#directoryindex">DirectoryIndex</A>
<LI><A HREF="core.html#documentroot">DocumentRoot</A>
+<LI><A HREF="core.html#documentrootcheck">DocumentRootCheck</A>
<LI><A HREF="core.html#errordocument">ErrorDocument</A>
<LI><A HREF="core.html#errorlog">ErrorLog</A>
<LI><A HREF="mod_example.html#example">Example</A>
1.1378 +7 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1377
retrieving revision 1.1378
diff -u -r1.1377 -r1.1378
--- CHANGES 1999/06/09 17:22:44 1.1377
+++ CHANGES 1999/06/13 19:59:38 1.1378
@@ -1,5 +1,9 @@
Changes with Apache 1.3.7
+ *) New directive, DocumentRootCheck, added to determine if
+ we bother doing the stat of each DocumentRoot during
+ startup. [Mathijs Maassen <[EMAIL PROTECTED]>. Jim Jagielski]
+
*) Win32: The query switch "apache -S" didn't exit after showing the
vhost settings. That was inconsistent with the other query functions.
[Bill Stoddard - Fixed by Martin on Unix in 1.3.4]
@@ -40,6 +44,9 @@
*) Remove "mxb" support from mod_negotiation -- it was a draft feature
never accepted into any standard, and it opens up certain DoS
attacks. [Koen Holtman <[EMAIL PROTECTED]>]
+
+ *) TestCompile updated. We can now run programs and output the
+ results during the Configure process. [ Jim Jagielski]
*) The source is now quad (long long) aware as needed. Specifically,
the Configure process determines the correct size of off_t and
1.36 +1 -0 apache-1.3/src/include/http_conf_globals.h
Index: http_conf_globals.h
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/include/http_conf_globals.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -r1.35 -r1.36
--- http_conf_globals.h 1999/01/01 19:04:39 1.35
+++ http_conf_globals.h 1999/06/13 19:59:40 1.36
@@ -67,6 +67,7 @@
*/
extern int ap_standalone;
+extern int ap_documentroot_check;
extern uid_t ap_user_id;
extern char *ap_user_name;
extern gid_t ap_group_id;
1.263 +15 -1 apache-1.3/src/main/http_core.c
Index: http_core.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
retrieving revision 1.262
retrieving revision 1.263
diff -u -r1.262 -r1.263
--- http_core.c 1999/06/09 11:27:54 1.262
+++ http_core.c 1999/06/13 19:59:41 1.263
@@ -1009,7 +1009,7 @@
}
arg = ap_os_canonical_filename(cmd->pool, arg);
- if (!ap_is_directory(arg)) {
+ if (ap_documentroot_check && !ap_is_directory(arg)) {
if (cmd->server->is_virtual) {
fprintf(stderr, "Warning: DocumentRoot [%s] does not exist\n",
arg);
@@ -1023,6 +1023,18 @@
return NULL;
}
+static const char *set_document_root_check(cmd_parms *cmd, void *dummy, int
arg)
+{
+ const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
+
+ if (err != NULL) {
+ return err;
+ }
+
+ ap_documentroot_check = arg != 0;
+ return NULL;
+}
+
API_EXPORT(void) ap_custom_response(request_rec *r, int status, char *string)
{
core_dir_config *conf =
@@ -2734,6 +2746,8 @@
"Name(s) of per-directory config files (default: .htaccess)" },
{ "DocumentRoot", set_document_root, NULL, RSRC_CONF, TAKE1,
"Root directory of the document tree" },
+{ "DocumentRootCheck", set_document_root_check, NULL, RSRC_CONF, FLAG,
+ "En-/Disable checking for existance of DocumentRoot during startup" },
{ "ErrorDocument", set_error_document, NULL, OR_FILEINFO, RAW_ARGS,
"Change responses for HTTP errors" },
{ "AllowOverride", set_override, NULL, ACCESS_CONF, RAW_ARGS,
1.445 +1 -0 apache-1.3/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v
retrieving revision 1.444
retrieving revision 1.445
diff -u -r1.444 -r1.445
--- http_main.c 1999/06/09 13:37:51 1.444
+++ http_main.c 1999/06/13 19:59:41 1.445
@@ -230,6 +230,7 @@
*/
int ap_standalone=0;
+int ap_documentroot_check=1;
uid_t ap_user_id=0;
char *ap_user_name=NULL;
gid_t ap_group_id=0;