From john82@example.net Thu May 1 03:39:53 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id DAA07857; Thu, 1 May 1997 03:39:53 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id DAA07851 for apache-cvs; Thu, 1 May 1997 03:39:51 -0700 (PDT) Date: Thu, 1 May 1997 03:39:51 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache-site bugdb.cgi Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/01 03:39:51 Modified: . bugdb.cgi Log: Enhancements to bug reporting WWW form: o add warning about public nature of PR db o add searchability by PR class and severity o add ability to change both of above when editing o add PR # to HTML <TITLE> and <H1> on full display o translate CRs into newlines in multi-line fields o force flush of HTTP headers o request "uname -a" on entry form o require non-blank values for Environment, email, Category, and Description o fix '@' escaping bug Reviewed by: Roy Fielding, Dean Gaudet Revision Changes Path 1.2 +89 -13 apache-site/bugdb.cgi Index: bugdb.cgi =================================================================== RCS file: /export/home/cvs/apache-site/bugdb.cgi,v retrieving revision 1.1 retrieving revision 1.2 diff -C3 -r1.1 -r1.2 *** bugdb.cgi 1997/03/25 04:43:15 1.1 --- bugdb.cgi 1997/05/01 10:39:49 1.2 *************** *** 87,107 **** --- 87,114 ---- # The first field is the restriction, the second field is the default option %quickrestr = ( "Category", "any", + "Severity", "any", "Responsible", "any", # "Originator", "any", + "Class", "any", "State", "open", ); # Defines order of quick output restrictions @quickrestr = ( "Category", + "Severity", "Responsible", # "Originator", + "Class", "State", ); #################### Main routine # Main Program + select (STDOUT); + $| = 1; print "Content-type: text/html\n\n"; + $| = 0; print "<HTML>\n"; #&read_originator; *************** *** 166,172 **** ### Main menu } elsif ($PATH_INFO eq "") { &main_menu(); ! print"<HR><SMALL>Version: 24 Aug 96<BR>Authors: <A HREF=\"http://alumni.caltech.edu/~dank\">Dan Kegel</A> dank\@alumni.caltech.edu & <A HREF=\"http://alumni.caltech.edu/~huyle/\">Huy Le</A> huyle\@alumni.caltech.edu, with revamp work by <A HREF=\"http://www.organic.com\">Brian Behlendorf</A> john82@example.net.</SMALL>\n"; } else { print "<head><title>SPR Front End</title></head> <H1>SPR Front End</H1> --- 173,179 ---- ### Main menu } elsif ($PATH_INFO eq "") { &main_menu(); ! print"<HR><SMALL>Version: 24 Aug 96<BR>Authors: <A HREF=\"http://alumni.caltech.edu/~dank\">Dan Kegel</A> dank\@alumni.caltech.edu & <A HREF=\"http://alumni.caltech.edu/~huyle/\">Huy Le</A> huyle\@alumni.caltech.edu, with revamp work by <A HREF=\"http://www.organic.com\">Brian Behlendorf</A> brian\@organic.com.</SMALL>\n"; } else { print "<head><title>SPR Front End</title></head> <H1>SPR Front End</H1> *************** *** 250,256 **** # Sends the new PR sub handle_send_pr { # Display title ! print "<head><title>New Problem Report submission</title></head><body>"; # Get arguments local($_)=scalar(<STDIN>); --- 257,263 ---- # Sends the new PR sub handle_send_pr { # Display title ! print "<head><title>Apache: New Problem Report Submission</title></head><body>"; # Get arguments local($_)=scalar(<STDIN>); *************** *** 263,282 **** $value = &cgi_trans($value); # By convention, multi-line fields have newlines at end of # each line. I think some browsers forget the last newline? ! if ($fieldnames_multi{$key} > 0 && $value !~ /\n$/) { ! $value .= "\n"; } $fieldvalues{$key}=$value; } # Verify arguments ! local($field); ! foreach $field ("Category") { ! if ($fieldvalues{$field} eq "") { ! print "<H3>Your problem report has not been sent.</H3>\n"; ! print "You must select a $field.\n"; ! return; } } # kludge --- 270,309 ---- $value = &cgi_trans($value); # By convention, multi-line fields have newlines at end of # each line. I think some browsers forget the last newline? ! if ($fieldnames_multi{$key} > 0) { ! # ! # Convert any CR-LFs or CRs to \n (different browsers use ! # different line terminators). ! # ! $value =~ s/\r\n/\n/g; ! $value =~ s/\r/\n/g; ! if ($value !~ /\n$/) { ! $value .= "\n"; ! } } $fieldvalues{$key}=$value; } # Verify arguments ! local($field, $ok, @emsgs) = (0, 1); ! foreach $field ("Synopsis", "emailaddr", "Environment", "Category", "Description") { ! local ($fieldval) = $fieldvalues{$field}; ! $fieldval =~ s/\s//g; ! if ($fieldval eq "") { ! push (@emsgs, $field); ! $ok = 0; ! } ! } ! if (! $ok) { ! print "<H3>Problem report not sent!</H3>\n"; ! print "Your problem report is missing required information:\n"; ! print "<UL>\n"; ! foreach $field (@emsgs) { ! print " <LI>$field\n </LI>\n"; } + print "</UL>"; + print "<P>Please go back to the form and correct this.</P>\n"; + return; } # kludge *************** *** 307,315 **** sub send_pr { # Display title ! print "<head><title>New Problem Report submission</title></head> <H2>New Problem Report form:</H2> <body> "; print "<FORM METHOD=\"POST\" ACTION=\"$SCRIPT_NAME/handle_send_pr\">\n"; --- 334,350 ---- sub send_pr { # Display title ! print "<head><title>Apache: New Problem Report submission</title></head> <H2>New Problem Report form:</H2> <body> + <BLOCKQUOTE> + <STRONG> + Please be aware that the Apache problem report database is PUBLICLY + ACCESSIBLE. The information you submit on this form will be available to + anyone on the Internet. Do not send information that you wish to remain + private. + </STRONG> + </BLOCKQUOTE> "; print "<FORM METHOD=\"POST\" ACTION=\"$SCRIPT_NAME/handle_send_pr\">\n"; *************** *** 363,369 **** print <<EOM <P> ! <B>Environment</B> - What operating system, at what patchlevel? What compiler? Etc.<BR> <TEXTAREA NAME="Environment" COLS=$width ROWS=$height></TEXTAREA><BR> <B>Synopsis</B> - a brief description of the john82@example.net.<BR> <INPUT NAME="Synopsis" SIZE=$width><BR> --- 398,405 ---- print <<EOM <P> ! <B>Environment</B> - What operating system, at what patchlevel? ! What compiler? Etc. (The output from <CODE>uname -a</CODE> is very useful.)<BR> <TEXTAREA NAME="Environment" COLS=$width ROWS=$height></TEXTAREA><BR> <B>Synopsis</B> - a brief description of the john82@example.net.<BR> <INPUT NAME="Synopsis" SIZE=$width><BR> *************** *** 488,493 **** --- 524,547 ---- $fieldvalues{'State'} = $input{'State'}; } + if ($input{"Class"} ne $fieldvalues{'Class'}) { + $change_msg .= "Class-Changed-From-To: $fieldvalues{'Class'}-$input{'Class'} + Class-Changed-By: $input{'Editor'} + Class-Changed-When: $date + "; + $to_old = $to_subm = 1; + $fieldvalues{'Class'} = $input{'Class'}; + } + + if ($input{"Severity"} ne $fieldvalues{'Severity'}) { + $change_msg .= "Severity-Changed-From-To: $fieldvalues{'Severity'}-$input{'Severity'} + Severity-Changed-By: $input{'Editor'} + Severity-Changed-When: $date + "; + $to_old = $to_subm = 1; + $fieldvalues{'Severity'} = $input{'Severity'}; + } + #print "if ($input{'Responsible'} ne $oldresp)\n"; if ($input{'Responsible'} ne $oldresp) { if ($input{'ResponsibleReason'} eq "") { *************** *** 633,638 **** --- 687,694 ---- local($oldsyn) = $fieldvalues{"Synopsis"}; local($oldstate) = $fieldvalues{"State"}; local($oldresp) = $fieldvalues{"Responsible"}; + local($oldclass) = $fieldvalues{"Class"}; + local($oldsev) = $fieldvalues{"Severity"}; $oldresp =~ s/\s*\(.*$//; # Get rid of comment in responsible party name local($timestamp)=&timestamp($fullpr); *************** *** 662,667 **** --- 718,743 ---- } print "</SELECT><BR>\n"; + print " + <dt>Class: + <dd><SELECT NAME=\"Class\">\n"; + for (sort (@nClass)) { + $sel = ""; + $sel = " SELECTED" if ($_ eq $oldclass); + print "<OPTION$sel> $_\n"; + } + print "</SELECT><BR>\n"; + + print " + <dt>Severity: + <dd><SELECT NAME=\"Severity\">\n"; + for (sort (@nSeverity)) { + $sel = ""; + $sel = " SELECTED" if ($_ eq $oldsev); + print "<OPTION$sel> $_\n"; + } + print "</SELECT><BR>\n"; + print "<dt>New <a href=\"$GNUINFOSCRIPT?(gnats.info)States\">state</a>:\n"; print "<dd>"; print "<SELECT NAME=\"State\">\n"; *************** *** 1062,1068 **** sub query_full { local($pr) = $_[0]; ! print "<head><title>Full Problem Report Text</title></head> <body> "; if ($pr eq "") { --- 1138,1144 ---- sub query_full { local($pr) = $_[0]; ! print "<head><title>Full Problem Report Text for PR#$pr</title></head> <body> "; if ($pr eq "") { From john82@example.net Thu May 1 03:55:24 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id DAA12362; Thu, 1 May 1997 03:55:24 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id DAA12349 for apache-cvs; Thu, 1 May 1997 03:55:21 -0700 (PDT) Date: Thu, 1 May 1997 03:55:21 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache-site bugdb.cgi Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/01 03:55:20 Modified: . bugdb.cgi Log: Forgot to update the change log.. Revision Changes Path 1.3 +12 -2 apache-site/bugdb.cgi Index: bugdb.cgi =================================================================== RCS file: /export/home/cvs/apache-site/bugdb.cgi,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** bugdb.cgi 1997/05/01 10:39:49 1.2 --- bugdb.cgi 1997/05/01 10:55:19 1.3 *************** *** 34,40 **** # Fewer hardcoded paths to external programs. Moved pr_addr code to # subroutine in libgnats.pl. # 3/2/95 Dan Kegel - Fixed small bug in timestamp; : was confusing browsers. ! # 8/24/96 Brian behlendorf - Extensive hacking for Apache ### End Modifcation log ### Environment variables --- 34,41 ---- # Fewer hardcoded paths to external programs. Moved pr_addr code to # subroutine in libgnats.pl. # 3/2/95 Dan Kegel - Fixed small bug in timestamp; : was confusing browsers. ! # 8/24/96 Brian behlendorf - Extensive hacking for Apache ! # 5/1/1997 (let's be Y2K-safe, now! ;-) Enhancements for Apache ### End Modifcation log ### Environment variables *************** *** 173,179 **** ### Main menu } elsif ($PATH_INFO eq "") { &main_menu(); ! print"<HR><SMALL>Version: 24 Aug 96<BR>Authors: <A HREF=\"http://alumni.caltech.edu/~dank\">Dan Kegel</A> dank\@alumni.caltech.edu & <A HREF=\"http://alumni.caltech.edu/~huyle/\">Huy Le</A> huyle\@alumni.caltech.edu, with revamp work by <A HREF=\"http://www.organic.com\">Brian Behlendorf</A> brian\@organic.com.</SMALL>\n"; } else { print "<head><title>SPR Front End</title></head> <H1>SPR Front End</H1> --- 174,189 ---- ### Main menu } elsif ($PATH_INFO eq "") { &main_menu(); ! print "<HR><SMALL>Version: 1 May 1997<BR>Authors: ", ! "<A HREF=\"http://alumni.caltech.edu/~dank\">Dan Kegel</A> ", ! "dank\@alumni.caltech.edu &amp; ", ! "<A HREF=\"http://alumni.caltech.edu/~huyle/\">Huy Le</A> ", ! "huyle\@alumni.caltech.edu,<BR>", ! "with revamp work by ", ! "<A HREF=\"http://www.organic.com\">Brian Behlendorf</A> ", ! "brian\@organic.com &amp; ", ! "<A HREF=\"http://www.golux.com/coar/\">Ken Coar</A> ", ! "Coar\@DECUS.Org</SMALL>\n"; } else { print "<head><title>SPR Front End</title></head> <H1>SPR Front End</H1> From john82@example.net Thu May 1 10:36:29 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id KAA10671; Thu, 1 May 1997 10:36:29 -0700 (PDT) Received: (from ben@localhost) by hyperreal.com (8.8.5/8.8.5) id KAA10662 for apache-cvs; Thu, 1 May 1997 10:36:27 -0700 (PDT) Date: Thu, 1 May 1997 10:36:27 -0700 (PDT) From: Ben Laurie <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/src CHANGES conf.h Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net ben 97/05/01 10:36:27 Modified: src CHANGES conf.h Log: Fix problem with signal() redefinition on QNX (and perhaps others). Reviewed by: Randy, (someone else) Revision Changes Path 1.263 +3 -0 apache/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.262 retrieving revision 1.263 diff -C3 -r1.262 -r1.263 *** CHANGES 1997/04/30 23:01:56 1.262 --- CHANGES 1997/05/01 17:36:23 1.263 *************** *** 5,10 **** --- 5,13 ---- body of the request, the server would block trying to read the message body again. [Rob Hartill] + *) signal() replacement conflicted with a define on QNX (and potentially + other platforms). Fixed. [Ben Laurie] PR#512 + Changes with Apache 1.2b10 *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH 1.97 +6 -0 apache/src/conf.h Index: conf.h =================================================================== RCS file: /export/home/cvs/apache/src/conf.h,v retrieving revision 1.96 retrieving revision 1.97 diff -C3 -r1.96 -r1.97 *** conf.h 1997/04/28 03:52:06 1.96 --- conf.h 1997/05/01 17:36:24 1.97 *************** *** 642,647 **** --- 642,653 ---- #define SIG_ERR ((Sigfunc *)-1) #endif + /* + * For some strange reason, QNX defines signal to signal. Eliminate it. + */ + #ifdef signal + #undef signal + #endif #define signal(s,f) ap_signal(s,f) Sigfunc *signal(int signo, Sigfunc *func); #endif From john82@example.net Sat May 3 20:46:39 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id UAA19558; Sat, 3 May 1997 20:46:39 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id UAA19550 for apache-cvs; Sat, 3 May 1997 20:46:36 -0700 (PDT) Date: Sat, 3 May 1997 20:46:36 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual suexec.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/03 20:46:36 Modified: htdocs/manual suexec.html Log: Changed <B>s to <STRONG>s, <I>s to <EM>s, brought most of the lines to less than 80 characters, and corrected the note about what characters aren't allowed in the path. Revision Changes Path 1.8 +92 -63 apache/htdocs/manual/suexec.html Index: suexec.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/suexec.html,v retrieving revision 1.7 retrieving revision 1.8 diff -C3 -r1.7 -r1.8 *** suexec.html 1997/05/01 05:26:35 1.7 --- suexec.html 1997/05/04 03:46:35 1.8 *************** *** 8,20 **** <hr> <h3>What is suEXEC?</h3> ! The <b>suEXEC</b> feature, introduced in Apache 1.2 provides the ability to ! run <b>CGI</b> programs under user ids different from the user id of the ! calling web-server. Used properly, this feature can reduce considerably the ! insecurity of allowing users to run CGI programs. At the same time, improperly ! configured, this facility can crash your computer, burn your house down and ! steal all the money from your retirement fund. <b>:-)</b> If you aren't ! familiar with managing setuid root programs and the security issues they present, we highly recommend that you not consider using this feature.<p> <hr> --- 8,21 ---- <hr> <h3>What is suEXEC?</h3> ! The <STRONG>suEXEC</STRONG> feature, introduced in Apache 1.2 provides ! the ability to run <STRONG>CGI</STRONG> programs under user IDs ! different from the user ID of the calling web-server. Used properly, ! this feature can reduce considerably the insecurity of allowing users to ! run CGI programs. At the same time, improperly configured, this facility ! can crash your computer, burn your house down and steal all the money ! from your retirement fund. <STRONG>:-)</STRONG> If you aren't familiar ! with managing setuid root programs and the security issues they present, we highly recommend that you not consider using this feature.<p> <hr> *************** *** 25,35 **** is not part of the normal install/compile process.<p> <h3>Configuring the suEXEC wrapper</h3> ! From the top-level of the Apache source tree, type:&nbsp;&nbsp;<b><code>cd support [ENTER]</code></b><p> ! Edit the <code>suexec.h</code> file and change the following macros to match your ! local Apache installation.<p> ! <i>From support/suexec.h</i> ! <code> <pre> /* * HTTPD_USER -- Define as the username under which Apache normally --- 26,36 ---- is not part of the normal install/compile process.<p> <h3>Configuring the suEXEC wrapper</h3> ! From the top-level of the Apache source tree, ! type:&nbsp;&nbsp;<STRONG><code>cd support [ENTER]</code></STRONG><p> ! Edit the <code>suexec.h</code> file and change the following macros to ! match your local Apache installation.<p> ! <EM>From support/suexec.h</EM> <pre> /* * HTTPD_USER -- Define as the username under which Apache normally *************** *** 58,152 **** */ #define SAFE_PATH "/usr/local/bin:/usr/bin:/bin" </pre> - </code> <h3>Compiling the suEXEC wrapper</h3> ! At the shell command prompt, type:&nbsp;&nbsp;<b><code>cc suexec.c -o suexec [ENTER]</code></b>.<p> ! This should create the <b><em>suexec</em></b> wrapper executable. <h3>Compiling Apache for suEXEC support</h3> By default, Apache is compiled to look for the suEXEC wrapper in the following location.<p> ! <i>From src/httpd.h</i> ! <code> <pre> /* The path to the suEXEC wrapper */ #ifndef SUEXEC_BIN #define SUEXEC_BIN "/usr/local/etc/httpd/sbin/suexec" #endif </pre> - </code> <p> If your installation requires location of the wrapper program in a different ! directory, edit src/httpd.h and recompile your Apache server. See <a href="install.html">Compiling and Installing Apache</a> for more info on this process.<p> <h3>Installing the suEXEC wrapper</h3> ! Copy the <b><em>suexec</em></b> executable created in the exercise above to the defined ! location for <b>SUEXEC_BIN</b>.<p> ! In order for the wrapper to set the user id for execution requests it must me installed ! as owner <b><em>root</em></b> and must have the setuserid execution bit set for file modes. ! If you are not running a <b><em>root</em></b> user shell, do so now and execute the following ! commands.<p> ! <b><code>chown root /usr/local/etc/httpd/sbin/suexec [ENTER]</code></b><p> ! <b><code>chmod 4711 /usr/local/etc/httpd/sbin/suexec [ENTER]</code></b><p> ! <i>Change the path to the suEXEC wrapper to match your system installation.</i> <hr> <h3><a name="model">Security Model of suEXEC</a></h3> ! The <b>suEXEC</b> wrapper supplied with Apache performs the following security ! checks before it will execute any program passed to it for execution. <ol> ! <li>User executing the wrapper <b>must be a valid user on this system</b>. ! <li>User executing the wrapper <b>must be the compiled in HTTPD_USER</b>. ! <li>The command that the request wishes to execute <b>must not contain a /</b>. ! <li>The command being executed <b>must reside under the compiled in DOC_ROOT</b>. ! <li>The current working directory <b>must be a directory</b>. ! <li>The current working directory <b>must not be writable by <em>group</em> or <em>other</em></b>. ! <li>The command being executed <b>cannot be a symbolic link</b>. ! <li>The command being executed <b>cannot be writable by <em>group</em> or <em>other</em></b>. ! <li>The command being executed <b>cannot be a <em>setuid</em> or <em>setgid</em> program</b>. ! <li>The target UID and GID <b>must be a valid user and group on this system</b>. ! <li>The target UID and GID to execute as, <b>must match the UID and GID of the directory</b>. ! <li>The target execution UID and GID <b>must not be the privileged ID 0</b>. </ol> ! If any of these issues are too restrictive, or do not seem restrictive enough, you are ! welcome to install your own version of the wrapper. We've given you the rope, now go ! have fun with it. <b>:-)</b> <hr> <h3>Using suEXEC</h3> ! After properly installing the <b>suexec</b> wrapper executable, you must kill and restart ! the Apache server. A simple <code><b>kill -1 `cat httpd.pid`</b></code> will not be enough. ! Upon startup of the web-server, if Apache finds a properly configured <b>suexec</b> wrapper, ! it will print the following message to the console.<p> <code>Configuring Apache for use with suexec wrapper.</code><p> ! 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 <b><em>setuid root</em></b>. Check your installation and try again.<p> ! ! One way to use <b>suEXEC</b> is through the <a href="mod/core.html#user"><b>User</b></a> and <a href="mod/core.html#group"><b>Group</b></a> directives in <a href="mod/core.html#virtualhost"><b>VirtualHost</b></a> definitions. By setting these directives to values ! different from the main server user id, all requests for CGI resources will be executed as ! the <b>User</b> and <b>Group</b> defined for that <b>&lt;VirtualHost&gt;</b>. If only one or ! neither of these directives are specified for a <b>&lt;VirtualHost&gt;</b> then the main server userid is assumed.<p> ! <b>suEXEC</b> can also be used to to execute CGI programs as the user to which the request ! is being directed. This is accomplished by using the <b>~</b> character prefixing the ! user id for whom execution is desired. 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 <a href="#model">security checks</a> above. <hr> <h3>Debugging suEXEC</h3> ! The suEXEC wrapper will write log information to the location defined in the <code>suexec.h</code> 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. <!--#include virtual="footer.html" --> </BODY> </HTML> - --- 59,181 ---- */ #define SAFE_PATH "/usr/local/bin:/usr/bin:/bin" </pre> <h3>Compiling the suEXEC wrapper</h3> ! At the shell command prompt, type:&nbsp;&nbsp;<STRONG><code>cc suexec.c ! -o suexec [ENTER]</code></STRONG>.<p> ! This should create the <STRONG><em>suexec</em></STRONG> wrapper executable. <h3>Compiling Apache for suEXEC support</h3> By default, Apache is compiled to look for the suEXEC wrapper in the following location.<p> ! <EM>From src/httpd.h</EM> <pre> /* The path to the suEXEC wrapper */ #ifndef SUEXEC_BIN #define SUEXEC_BIN "/usr/local/etc/httpd/sbin/suexec" #endif </pre> <p> If your installation requires location of the wrapper program in a different ! directory, edit src/httpd.h and recompile your Apache server. ! See <a href="install.html">Compiling and Installing Apache</a> for more ! info on this process.<p> <h3>Installing the suEXEC wrapper</h3> ! Copy the <STRONG><em>suexec</em></STRONG> executable created in the ! exercise above to the defined location for <STRONG>SUEXEC_BIN</STRONG>.<p> ! In order for the wrapper to set the user ID for execution requests it ! must me installed as owner <STRONG><em>root</em></STRONG> and must have ! the setuserid execution bit set for file modes. ! If you are not running a <STRONG><em>root</em></STRONG> user shell, do ! so now and execute the following commands.<p> ! <STRONG><code>chown root /usr/local/etc/httpd/sbin/suexec [ENTER]</code></STRONG><p> ! <STRONG><code>chmod 4711 /usr/local/etc/httpd/sbin/suexec [ENTER]</code></STRONG><p> ! <EM>Change the path to the suEXEC wrapper to match your system ! installation.</EM> <hr> <h3><a name="model">Security Model of suEXEC</a></h3> ! The <STRONG>suEXEC</STRONG> wrapper supplied with Apache performs the ! following security checks before it will execute any program passed to ! it for execution. <ol> ! <li>User executing the wrapper <STRONG>must be a valid user on this ! system</STRONG>. ! <li>User executing the wrapper <STRONG>must be the compiled in ! HTTPD_USER</STRONG>. ! <li>The command that the request wishes to execute <STRONG>must not ! contain a leading / or ../, or the string &quot;/../&quot; anywhere</STRONG>. ! <li>The command being executed <STRONG>must reside under the compiled in ! DOC_ROOT</STRONG>. ! <li>The current working directory <STRONG>must be a directory</STRONG>. ! <li>The current working directory <STRONG>must not be writable by ! <em>group</em> or <em>other</em></STRONG>. ! <li>The command being executed <STRONG>cannot be a symbolic link</STRONG>. ! <li>The command being executed <STRONG>cannot be writable by ! <em>group</em> or <em>other</em></STRONG>. ! <li>The command being executed <STRONG>cannot be a <em>setuid</em> or ! <em>setgid</em> program</STRONG>. ! <li>The target UID and GID <STRONG>must be a valid user and group on ! this system</STRONG>. ! <li>The target UID and GID to execute as, <STRONG>must match the UID and ! GID of the directory</STRONG>. ! <li>The target execution UID and GID <STRONG>must not be the privileged ! ID 0</STRONG>. </ol> ! If any of these issues are too restrictive, or do not seem restrictive ! enough, you are welcome to install your own version of the wrapper. ! We've given you the rope, now go have fun with it. <STRONG>:-)</STRONG> <hr> <h3>Using suEXEC</h3> ! After properly installing the <STRONG>suexec</STRONG> wrapper ! executable, you must kill and restart the Apache server. A simple ! <code><STRONG>kill -1 `cat httpd.pid`</STRONG></code> will not be enough. ! Upon startup of the web-server, if Apache finds a properly configured ! <STRONG>suexec</STRONG> wrapper, it will print the following message to ! the console:<p> <code>Configuring Apache for use with suexec wrapper.</code><p> ! 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 <STRONG><em>setuid root</em></STRONG>. Check ! your installation and try again.<p> ! ! One way to use <STRONG>suEXEC</STRONG> is through the ! <a href="mod/core.html#user"><STRONG>User</STRONG></a> and ! <a href="mod/core.html#group"><STRONG>Group</STRONG></a> directives in ! <a href="mod/core.html#virtualhost"><STRONG>VirtualHost</STRONG></a> ! definitions. By setting these directives to values different from the ! main server user ID, all requests for CGI resources will be executed as ! the <STRONG>User</STRONG> and <STRONG>Group</STRONG> defined for that ! <STRONG>&lt;VirtualHost&gt;</STRONG>. If only one or ! neither of these directives are specified for a ! <STRONG>&lt;VirtualHost&gt;</STRONG> then the main server userid is assumed.<p> ! <STRONG>suEXEC</STRONG> can also be used to to execute CGI programs as ! the user to which the request is being directed. This is accomplished by ! using the <STRONG>~</STRONG> character prefixing the user ID for whom ! execution is desired. ! 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 <a href="#model">security checks</a> above. <hr> <h3>Debugging suEXEC</h3> ! The suEXEC wrapper will write log information to the location defined in ! the <code>suexec.h</code> 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. <!--#include virtual="footer.html" --> </BODY> </HTML> From john82@example.net Sun May 4 07:43:13 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id HAA09255; Sun, 4 May 1997 07:43:13 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id HAA09247 for apache-cvs; Sun, 4 May 1997 07:43:10 -0700 (PDT) Date: Sun, 4 May 1997 07:43:10 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/misc FAQ.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/04 07:43:09 Modified: htdocs/manual/misc FAQ.html Log: Add FAQ&A about MIDI files. Revision Changes Path 1.50 +37 -3 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.49 retrieving revision 1.50 diff -C3 -r1.49 -r1.50 *** FAQ.html 1997/05/01 05:59:51 1.49 --- FAQ.html 1997/05/04 14:43:08 1.50 *************** *** 8,14 **** <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.49 $ ($Date: 1997/05/01 05:59:51 $) </P> <P> The latest version of this FAQ is always available from the main --- 8,14 ---- <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.50 $ ($Date: 1997/05/04 14:43:08 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 58,65 **** <!-- - How do I setup an access restriction so that people from --> <!-- this domain don't have to authenticate, and all others can --> <!-- do so via a username and password? --> - <!-- - How do I get Apache to send a MIDI file so the browser can --> - <!-- play it? (e.g., PR#514) --> <!-- - Why do I get "send lost connection" messages in my error --> <!-- log? --> <!-- - Why won't Apache compile using the (SunOS|HPUX|etc...) --> --- 58,63 ---- *************** *** 166,171 **** --- 164,172 ---- <LI><A HREF="#HPUX-core">Why do I get core dumps under HPUX using HP's ANSI C compiler?</A> </LI> + <LI><A HREF="#midi">How do I get Apache to send a MIDI file so the + browser can play it?</A> + </LI> </OL> </LI> </UL> *************** *** 1182,1187 **** --- 1183,1221 ---- with HP's ANSI C compiler using optimization. Disabling the compiler optimiation has fixed these problems. </P> + <HR> + </LI> + <LI><A NAME="midi"> + <STRONG>How do I get Apache to send a MIDI file so the browser can + play it?</STRONG> + </A> + <P> + Even though the registered MIME type for MIDI files is + <SAMP>audio/midi</SAMP>, some browsers are not set up to recognize it + as such; instead, they look for <SAMP>audio/x-midi</SAMP>. There are + two things you can do to address this: + </P> + <OL> + <LI>Configure your browser to treat documents of type + <SAMP>audio/midi</SAMP> correctly. This is the type that Apache + sends by default. This may not be workable, however, if you have + many client installations to change, or if some or many of the + clients are not under your control. + </LI> + <LI>Instruct Apache to send a different <SAMP>Content-type</SAMP> + header for these files by adding the following line to your server's + configuration files: + <DL> + <DD><CODE>AddType audio/x-midi .mid .midi .kar</CODE> + </DD> + </DL> + <P> + Note that this may break browsers that <EM>do</EM> recognize the + <SAMP>audio/midi</SAMP> MIME type unless they're prepared to also + handle <SAMP>audio/x-midi</SAMP> the same way. + </P> + </LI> + </OL> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> </LI> From john82@example.net Sun May 4 09:44:13 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id JAA24973; Sun, 4 May 1997 09:44:13 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id JAA24967 for apache-cvs; Sun, 4 May 1997 09:44:11 -0700 (PDT) Date: Sun, 4 May 1997 09:44:11 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/misc FAQ.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/04 09:44:10 Modified: htdocs/manual/misc FAQ.html Log: Add Q&A about "why won't it build with my compiler?" Revision Changes Path 1.51 +58 -5 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.50 retrieving revision 1.51 diff -C3 -r1.50 -r1.51 *** FAQ.html 1997/05/04 14:43:08 1.50 --- FAQ.html 1997/05/04 16:44:08 1.51 *************** *** 8,14 **** <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.50 $ ($Date: 1997/05/04 14:43:08 $) </P> <P> The latest version of this FAQ is always available from the main --- 8,14 ---- <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.51 $ ($Date: 1997/05/04 16:44:08 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 60,69 **** <!-- do so via a username and password? --> <!-- - Why do I get "send lost connection" messages in my error --> <!-- log? --> - <!-- - Why won't Apache compile using the (SunOS|HPUX|etc...) --> - <!-- compiler that comes with the OS? --> - - <UL> <LI><STRONG>Background</STRONG> <OL START=1> --- 60,65 ---- *************** *** 167,172 **** --- 163,171 ---- <LI><A HREF="#midi">How do I get Apache to send a MIDI file so the browser can play it?</A> </LI> + <LI><A HREF="#cantbuild">Why won't Apache compile with my + system's <SAMP>cc</SAMP>?</A> + </LI> </OL> </LI> </UL> *************** *** 1216,1221 **** --- 1215,1274 ---- </P> </LI> </OL> + <HR> + </LI> + <LI><A NAME="cantbuild"> + <STRONG>Why won't Apache compile with my system's + <SAMP>cc</SAMP>?</STRONG> + </A> + <P> + If the server won't compile on your system, it is probably due to one + of the following causes: + </P> + <UL> + <LI><STRONG>The <SAMP>Configure</SAMP> script doesn't recognize your system + environment.</STRONG> + <BR> + This might be either because it's completely unknown or because + the specific environment (include files, OS version, <EM>et + cetera</EM>) isn't explicitly handled. If this happens, you may + need to port the server to your OS yourself. + </LI> + <LI><STRONG>Your system's C compiler is garbage.</STRONG> + <BR> + Some operating systems include a default C compiler that is either + not ANSI C-compliant or suffers from other deficiencies. The usual + recommendation in cases like this is to acquire, install, and use + <SAMP>gcc</SAMP>. + </LI> + <LI><STRONG>Your <SAMP>include</SAMP> files may be confused.</STRONG> + <BR> + In some cases, we have found that a compiler installation or system + upgrade has left the C header files in an inconsistent state. Make + sure that your include directory tree is in sync with the compiler and + the operating system. + </LI> + <LI><STRONG>Your operating system or compiler may be out of + revision.</STRONG> + <BR> + Software vendors (including those that develop operating systems) + issue new releases for a reason; sometimes to add functionality, but + more often to fix bugs that have been discovered. Try upgrading + your compiler and/or your operating system. + </LI> + </UL> + <P> + The Apache Group tests the ability to build the server on many + different platforms. Unfortunately, we can't test all of the OS + platforms there are. If you have verified that none of the above + issues is the cause of your problem, and it hasn't been reported + before, please submit a + <A + HREF="http://www.apache.org/bugdb.cgi" + >problem report</A>. + Be sure to include <EM>complete</EM> details, such as the compiler + &amp; OS versions and exact error messages. + </P> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> </LI> From john82@example.net Sun May 4 10:05:29 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id KAA28999; Sun, 4 May 1997 10:05:29 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id KAA28993 for apache-cvs; Sun, 4 May 1997 10:05:27 -0700 (PDT) Date: Sun, 4 May 1997 10:05:27 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/misc FAQ.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/04 10:05:26 Modified: htdocs/manual/misc FAQ.html Log: Add Q&A about logging Referer: and User-Agent: headers. Revision Changes Path 1.52 +37 -2 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.51 retrieving revision 1.52 diff -C3 -r1.51 -r1.52 *** FAQ.html 1997/05/04 16:44:08 1.51 --- FAQ.html 1997/05/04 17:05:25 1.52 *************** *** 8,14 **** <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.51 $ ($Date: 1997/05/04 16:44:08 $) </P> <P> The latest version of this FAQ is always available from the main --- 8,14 ---- <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.52 $ ($Date: 1997/05/04 17:05:25 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 54,60 **** <!-- HTTP/1.1 browsers? --> <!-- - Is there an Apache for W95/WNT? --> <!-- - Why does Apache die when a vhost can't be DNS-resolved? --> - <!-- - How do I add browsers and referrers to my logs? --> <!-- - How do I setup an access restriction so that people from --> <!-- this domain don't have to authenticate, and all others can --> <!-- do so via a username and password? --> --- 54,59 ---- *************** *** 166,171 **** --- 165,173 ---- <LI><A HREF="#cantbuild">Why won't Apache compile with my system's <SAMP>cc</SAMP>?</A> </LI> + <LI><A HREF="#addlog">How do I add browsers and referrers to my + logs?</A> + </LI> </OL> </LI> </UL> *************** *** 1268,1273 **** --- 1270,1308 ---- >problem report</A>. Be sure to include <EM>complete</EM> details, such as the compiler &amp; OS versions and exact error messages. + </P> + <HR> + </LI> + <LI><A NAME="addlog"> + <STRONG>How do I add browsers and referrers to my logs?</STRONG> + </A> + <P> + Apache provides a couple of different ways of doing this. The + recommended method is to compile the + <A + HREF="../mod/mod_log_config.html" + ><SAMP>mod_log_config</SAMP></A> + module into your configuration and use the + <A + HREF="../mod/mod_log_config.html#customlog" + ><SAMP>CustomLog</SAMP></A> + directive. + </P> + <P> + You can either log the additional information in files other than your + normal transfer log, or you can add them to the records already being + written. For example: + </P> + <P> + <CODE> + CustomLog&nbsp;logs/access_log&nbsp;"%h&nbsp;%l&nbsp;%u&nbsp;%t&nbsp;\"%r\"&nbsp;%s&nbsp;%b&nbsp;\"%{Referer}i\"&nbsp;\"%{User-Agent}i\"" + </CODE> + </P> + <P> + This will add the values of the <SAMP>User-agent:</SAMP> and + <SAMP>Referer:</SAMP> headers, which indicate the client and the + referring page, respectively, to the end of each line in the access + log. </P> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> From john82@example.net Sun May 4 11:03:13 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id LAA07198; Sun, 4 May 1997 11:03:13 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id LAA07190 for apache-cvs; Sun, 4 May 1997 11:03:11 -0700 (PDT) Date: Sun, 4 May 1997 11:03:11 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/misc FAQ.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/04 11:03:10 Modified: htdocs/manual/misc FAQ.html Log: Added some references to Apache Wekk articles. Revision Changes Path 1.53 +34 -3 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.52 retrieving revision 1.53 diff -C3 -r1.52 -r1.53 *** FAQ.html 1997/05/04 17:05:25 1.52 --- FAQ.html 1997/05/04 18:03:09 1.53 *************** *** 8,14 **** <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.52 $ ($Date: 1997/05/04 17:05:25 $) </P> <P> The latest version of this FAQ is always available from the main --- 8,14 ---- <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.53 $ ($Date: 1997/05/04 18:03:09 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 332,338 **** HREF="http://www.apacheweek.com/" REL="Help" ><CITE>Apache Week</CITE></A> ! available. </P> <HR> </LI> --- 332,339 ---- HREF="http://www.apacheweek.com/" REL="Help" ><CITE>Apache Week</CITE></A> ! available. Links to relevant <CITE>Apache Week</CITE> articles are ! included below where appropriate. </P> <HR> </LI> *************** *** 611,616 **** --- 612,625 ---- which may put an inordinate load on your server. </LI> </UL> + <P> + For additional information, see the <CITE>Apache Week</CITE> article + on + <A + HREF="http://www.apacheweek.com/features/ssi" + REL="Help" + ><CITE>Using Server Side Includes</CITE></A>. + </P> <HR> </LI> <LI><A NAME="ssi-part-ii"> *************** *** 689,695 **** HREF="../content-negotiation.html" REL="Help" >content negotiation</A> ! description page. </P> <HR> </LI> --- 698,709 ---- HREF="../content-negotiation.html" REL="Help" >content negotiation</A> ! description page. In addition, <CITE>Apache Week</CITE> carried an ! article on this subject entitled ! &quot;<A ! HREF="http://www.apacheweek.com/features/negotiation" ! REL="Help" ! ><CITE>Content Negotiation Explained</CITE></A>&quot;. </P> <HR> </LI> *************** *** 1173,1178 **** --- 1187,1200 ---- >related projects</A>&quot; page at the main Apache web site. </P> + <P> + You can find out more about this topic in the <CITE>Apache Week</CITE> + article about + <A + HREF="http://www.apacheweek.com/features/ssl" + REL="Help" + ><CITE>Apache and Secure Transactions</CITE></A>. + </P> <HR> </LI> <LI><A NAME="HPUX-core"> *************** *** 1303,1308 **** --- 1325,1339 ---- <SAMP>Referer:</SAMP> headers, which indicate the client and the referring page, respectively, to the end of each line in the access log. + </P> + <P> + You may want to check out the <CITE>Apache Week</CITE> article + entitled: + &quot;<A + HREF="http://www.apacheweek.com/features/logfiles" + REL="Help" + ><CITE>Gathering Visitor Information: Customising Your + Logfiles</CITE></A>&quot;. </P> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> From john82@example.net Sun May 4 11:06:13 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id LAA07924; Sun, 4 May 1997 11:06:13 -0700 (PDT) Received: (from coar@localhost) by hyperreal.com (8.8.5/8.8.5) id LAA07918 for apache-cvs; Sun, 4 May 1997 11:06:11 -0700 (PDT) Date: Sun, 4 May 1997 11:06:11 -0700 (PDT) From: Rodent of Unusual Size <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/misc FAQ.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net coar 97/05/04 11:06:10 Modified: htdocs/manual/misc FAQ.html Log: Removing some nasty TAB characters that crept in. Revision Changes Path 1.54 +7 -7 apache/htdocs/manual/misc/FAQ.html Index: FAQ.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/misc/FAQ.html,v retrieving revision 1.53 retrieving revision 1.54 diff -C3 -r1.53 -r1.54 *** FAQ.html 1997/05/04 18:03:09 1.53 --- FAQ.html 1997/05/04 18:06:09 1.54 *************** *** 8,14 **** <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.53 $ ($Date: 1997/05/04 18:03:09 $) </P> <P> The latest version of this FAQ is always available from the main --- 8,14 ---- <!--#include virtual="header.html" --> <H1>Apache Server Frequently Asked Questions</H1> <P> ! $Revision: 1.54 $ ($Date: 1997/05/04 18:06:09 $) </P> <P> The latest version of this FAQ is always available from the main *************** *** 701,709 **** description page. In addition, <CITE>Apache Week</CITE> carried an article on this subject entitled &quot;<A ! HREF="http://www.apacheweek.com/features/negotiation" ! REL="Help" ! ><CITE>Content Negotiation Explained</CITE></A>&quot;. </P> <HR> </LI> --- 701,709 ---- description page. In addition, <CITE>Apache Week</CITE> carried an article on this subject entitled &quot;<A ! HREF="http://www.apacheweek.com/features/negotiation" ! REL="Help" ! ><CITE>Content Negotiation Explained</CITE></A>&quot;. </P> <HR> </LI> *************** *** 1331,1339 **** entitled: &quot;<A HREF="http://www.apacheweek.com/features/logfiles" ! REL="Help" ! ><CITE>Gathering Visitor Information: Customising Your ! Logfiles</CITE></A>&quot;. </P> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> --- 1331,1339 ---- entitled: &quot;<A HREF="http://www.apacheweek.com/features/logfiles" ! REL="Help" ! ><CITE>Gathering Visitor Information: Customising Your ! Logfiles</CITE></A>&quot;. </P> <HR> <!-- Don't forget to add HR tags at the end of each list item.. --> From john82@example.net Sun May 4 13:12:02 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA01044; Sun, 4 May 1997 13:12:02 -0700 (PDT) Received: (from dgaudet@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA00962 for apache-cvs; Sun, 4 May 1997 13:11:55 -0700 (PDT) Date: Sun, 4 May 1997 13:11:55 -0700 (PDT) From: Dean Gaudet <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/htdocs/manual/mod core.html Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net dgaudet 97/05/04 13:11:54 Modified: htdocs/manual dns-caveats.html vhosts-in-depth.html htdocs/manual/mod core.html Log: Add documentation about :port in virtualhost. Note the necessity of using _default_:* if the user wants to match all ips on all ports. Revision Changes Path 1.3 +6 -3 apache/htdocs/manual/dns-caveats.html Index: dns-caveats.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/dns-caveats.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C3 -r1.2 -r1.3 *** dns-caveats.html 1997/05/01 05:26:33 1.2 --- dns-caveats.html 1997/05/04 20:11:51 1.3 *************** *** 139,146 **** the IP address of any of the webservers will be served from the "main" or "default" server configurations. The "main" server configuration consists of all those definitions appearing outside of any VirtualHost section. ! You may want instead to define a <code>&lt;VirtualHost _default&gt;</code> ! which returns 403 or 404 for all hits. <h3><a name="tips">Tips to Avoid these problems</a></h3> --- 139,149 ---- the IP address of any of the webservers will be served from the "main" or "default" server configurations. The "main" server configuration consists of all those definitions appearing outside of any VirtualHost section. ! You may want instead to define a <code>&lt;VirtualHost _default_:*&gt;</code> ! which returns 403 or 404 for all hits. (The trailing <code>:*</code> ! makes it apply to all ports, which is just a safety measure should you ! begin using multiple <code><a href="mod/core.html#listen">Listen</a></code> ! directives.) <h3><a name="tips">Tips to Avoid these problems</a></h3> *************** *** 149,155 **** <li> use IP addresses in <code>Listen</code> <li> use IP addresses in <code>BindAddress</code> <li> ensure all virtual hosts have an explicit <code>ServerName</code> ! <li> create a <code>&lt;VirtualHost _default_&gt;</code> server that has no pages to serve </ul> --- 152,158 ---- <li> use IP addresses in <code>Listen</code> <li> use IP addresses in <code>BindAddress</code> <li> ensure all virtual hosts have an explicit <code>ServerName</code> ! <li> create a <code>&lt;VirtualHost _default_:*&gt;</code> server that has no pages to serve </ul> 1.7 +6 -6 apache/htdocs/manual/vhosts-in-depth.html Index: vhosts-in-depth.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/vhosts-in-depth.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C3 -r1.6 -r1.7 *** vhosts-in-depth.html 1997/05/01 05:26:36 1.6 --- vhosts-in-depth.html 1997/05/04 20:11:52 1.7 *************** *** 302,321 **** DNS for all the domains listed. <a href="dns-caveats.html"> There's more information ! available on this and the next two topics</a>. <li><code>ServerName</code> should always be set for each vhost. Otherwise ! A DNS lookup is required for each vhost. <li>A DNS lookup is always required for the main_server's <code>ServerName</code> (or to generate that if it isn't specified ! in the config). <li>If a <code>ServerPath</code> directive exists which is a prefix of another <code>ServerPath</code> 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 was available to disambiguate the two.) <li>If a vhost that would otherwise be a name-vhost includes a <code>Port</code> statement that doesn't match the main_server --- 302,321 ---- DNS for all the domains listed. <a href="dns-caveats.html"> There's more information ! available on this and the next two topics</a>.</p> <li><code>ServerName</code> should always be set for each vhost. Otherwise ! A DNS lookup is required for each vhost.</p> <li>A DNS lookup is always required for the main_server's <code>ServerName</code> (or to generate that if it isn't specified ! in the config).</p> <li>If a <code>ServerPath</code> directive exists which is a prefix of another <code>ServerPath</code> 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 was available to disambiguate the two.)</p> <li>If a vhost that would otherwise be a name-vhost includes a <code>Port</code> statement that doesn't match the main_server *************** *** 325,331 **** to the port of the main_server) as the connection vhost. Then <code>check_hostalias</code> will refuse to check any other name-based vhost because of the port mismatch. The result is that the vhost ! will steal all hits going to the main_server address. <li>If two IP-based vhosts have an address in common, the vhost appearing later in the file is always matched. Such a thing might happen --- 325,331 ---- to the port of the main_server) as the connection vhost. Then <code>check_hostalias</code> will refuse to check any other name-based vhost because of the port mismatch. The result is that the vhost ! will steal all hits going to the main_server address.</p> <li>If two IP-based vhosts have an address in common, the vhost appearing later in the file is always matched. Such a thing might happen *************** *** 335,341 **** Then the last of them will steal all the hits.</P> <li>The last name-based vhost in the config is always matched for any hit ! which doesn't match one of the other name-based vhosts. </ul> --- 335,341 ---- Then the last of them will steal all the hits.</P> <li>The last name-based vhost in the config is always matched for any hit ! which doesn't match one of the other name-based vhosts.</p> </ul> 1.55 +7 -1 apache/htdocs/manual/mod/core.html Index: core.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/core.html,v retrieving revision 1.54 retrieving revision 1.55 diff -C3 -r1.54 -r1.55 *** core.html 1997/05/01 05:26:49 1.54 --- core.html 1997/05/04 20:11:53 1.55 *************** *** 1370,1376 **** </menu> Example: <blockquote> <code> ! &lt;VirtualHost host.foo.com&gt; <br> ServerAdmin john82@example.net <br> DocumentRoot /www/docs/host.foo.com <br> ServerName host.foo.com <br> --- 1370,1376 ---- </menu> Example: <blockquote> <code> ! &lt;VirtualHost 83.161.120.155&gt; <br> ServerAdmin john82@example.net <br> DocumentRoot /www/docs/host.foo.com <br> ServerName host.foo.com <br> *************** *** 1392,1397 **** --- 1392,1403 ---- 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 match occurs.<p> + + You can specify a <code>:port</code> to change the port that is matched. + If unspecified then it defaults to the same port as the most recent + <code><a href="#port">Port</a></code> statement of the main server. You + may also specify <code>:*</code> to match all ports on that address. + (This is recommended when used with <code>_default_</code>.)<p> <strong>SECURITY</strong>: See the <A HREF="../misc/security_tips.html">security tips</A> From john82@example.net Sun May 4 13:18:19 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA02116; Sun, 4 May 1997 13:18:19 -0700 (PDT) Received: (from dgaudet@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA01957 for apache-cvs; Sun, 4 May 1997 13:18:07 -0700 (PDT) Date: Sun, 4 May 1997 13:18:07 -0700 (PDT) From: Dean Gaudet <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/conf httpd.conf-dist Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net dgaudet 97/05/04 13:18:06 Modified: conf httpd.conf-dist Log: PR#536, improve documentation of shared memory problem on hpux Revision Changes Path 1.13 +2 -0 apache/conf/httpd.conf-dist Index: httpd.conf-dist =================================================================== RCS file: /export/home/cvs/apache/conf/httpd.conf-dist,v retrieving revision 1.12 retrieving revision 1.13 diff -C3 -r1.12 -r1.13 *** httpd.conf-dist 1997/03/17 08:18:19 1.12 --- httpd.conf-dist 1997/05/04 20:18:04 1.13 *************** *** 27,32 **** --- 27,34 ---- # 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. User nobody Group #-1 From john82@example.net Sun May 4 13:22:35 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA03875; Sun, 4 May 1997 13:22:35 -0700 (PDT) Received: (from dgaudet@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA03814 for apache-cvs; Sun, 4 May 1997 13:22:30 -0700 (PDT) Date: Sun, 4 May 1997 13:22:30 -0700 (PDT) From: Dean Gaudet <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/src CHANGES Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net dgaudet 97/05/04 13:22:29 Modified: src CHANGES Log: Note the problem described in PR#530. Revision Changes Path 1.264 +4 -1 apache/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.263 retrieving revision 1.264 diff -C3 -r1.263 -r1.264 *** CHANGES 1997/05/01 17:36:23 1.263 --- CHANGES 1997/05/04 20:22:27 1.264 *************** *** 13,19 **** *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) <VirtualHost _default_:portnum> didn't work properly. [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko] --- 13,22 ---- *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) <VirtualHost _default_:portnum> didn't work properly. Note that ! this fix probably requires existing configs to begin using ! <VirtualHost _default:*> if they have multiple Listen statements. ! [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko] From john82@example.net Sun May 4 13:28:17 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA05168; Sun, 4 May 1997 13:28:17 -0700 (PDT) Received: (from dgaudet@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA05161 for apache-cvs; Sun, 4 May 1997 13:28:15 -0700 (PDT) Date: Sun, 4 May 1997 13:28:15 -0700 (PDT) From: Dean Gaudet <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/src CHANGES Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net dgaudet 97/05/04 13:28:15 Modified: src CHANGES Log: Clean up that last commit. It's better to document this in a place where people who already read the 1.2b10 changes will see this note. Since it is a sensitive issue relating to the security of a config it's better to make sure everyone can see it. Revision Changes Path 1.265 +8 -4 apache/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.264 retrieving revision 1.265 diff -C3 -r1.264 -r1.265 *** CHANGES 1997/05/04 20:22:27 1.264 --- CHANGES 1997/05/04 20:28:13 1.265 *************** *** 1,5 **** --- 1,12 ---- Changes with Apache 1.2 + *) The _default_ change in 1.2b10 will change the behaviour on configs + that use multiple Listen statements for listening on multiple ports. + But that change is necessary to make _default_ consistent with other + forms of <VirtualHost>. It requires such configs to be modified + to use <VirtualHost _default_:*>. The documentation has been + updated. [Dean Gaudet] PR#530 + *) If an ErrorDocument CGI script is used to respond to an error generated by another CGI script which has already read the message body of the request, the server would block trying to read the *************** *** 13,22 **** *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) <VirtualHost _default_:portnum> didn't work properly. Note that ! this fix probably requires existing configs to begin using ! <VirtualHost _default:*> if they have multiple Listen statements. ! [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko] --- 20,26 ---- *) Allow HTTPD_ROOT, SERVER_CONFIG_FILE, DEFAULT_PATH, and SHELL_PATH to be configured via -D in Configuration. [Dean Gaudet] PR#449 ! *) <VirtualHost _default_:portnum> didn't work properly. [Dean Gaudet] *) Added prototype for mktemp() for SUNOS4 [Marc Slemko] From john82@example.net Sun May 4 13:47:51 1997 Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA09406; Sun, 4 May 1997 13:47:51 -0700 (PDT) Received: (from dgaudet@localhost) by hyperreal.com (8.8.5/8.8.5) id NAA09400 for apache-cvs; Sun, 4 May 1997 13:47:49 -0700 (PDT) Date: Sun, 4 May 1997 13:47:49 -0700 (PDT) From: Dean Gaudet <john82@example.net> Message-Id: <john82@example.net> To: john82@example.net Subject: cvs commit: apache/src mod_log_config.c Sender: john82@example.net Precedence: bulk Reply-To: john82@example.net dgaudet 97/05/04 13:47:48 Modified: htdocs/manual/mod mod_log_config.html src mod_log_config.c Log: PR#507: TransferLog has no default. %{FOOBAR}e wasn't documented. Revision Changes Path 1.17 +2 -1 apache/htdocs/manual/mod/mod_log_config.html Index: mod_log_config.html =================================================================== RCS file: /export/home/cvs/apache/htdocs/manual/mod/mod_log_config.html,v retrieving revision 1.16 retrieving revision 1.17 diff -C3 -r1.16 -r1.17 *** mod_log_config.html 1997/05/01 05:26:59 1.16 --- mod_log_config.html 1997/05/04 20:47:46 1.17 *************** *** 101,106 **** --- 101,107 ---- <PRE> %...b: Bytes sent, excluding HTTP headers. %...f: Filename + %...{FOOBAR}e: The contents of the environment variable FOOBAR %...h: Remote host %...{Foobar}i: The contents of Foobar: header line(s) in the request sent to the server. *************** *** 228,234 **** <h2><A name="transferlog">TransferLog</A></h2> <!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> ! <strong>Default:</strong> <code>TransferLog logs/transfer_log</code><br> <Strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_log_config<p> --- 229,235 ---- <h2><A name="transferlog">TransferLog</A></h2> <!--%plaintext &lt;?INDEX {\tt TransferLog} directive&gt; --> <strong>Syntax:</strong> TransferLog <em>file-pipe</em><br> ! <strong>Default:</strong> none<br> <Strong>Context:</strong> server config, virtual host<br> <strong>Status:</strong> Base<br> <strong>Module:</strong> mod_log_config<p> 1.28 +1 -0 apache/src/mod_log_config.c Index: mod_log_config.c =================================================================== RCS file: /export/home/cvs/apache/src/mod_log_config.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C3 -r1.27 -r1.28 *** mod_log_config.c 1997/04/12 04:24:59 1.27
{'source': 'Apache Software Foundation Public Mail Archives'}