Errata

The following errors, oversights, and ommissions have been discovered since the book went to press. Some of these may be corrected in later printings. Note that rather few of these are actual errors, but are changes that I wish had been made.

Page Remarks/Error
XX COMMENT
23-26 Those long dashes that appear on page 23-26 are actually two dashes, not a single long dash. That will be clear to folks used to running configure scripts, but may be confusing if this is your first time.
29 The command line at the bottom of the page - cat /usr/local/apache/logs/httpd.pid | xargs kill - could stand to have a little more explanation. The file /usr/local/apache/logs/httpd.pid contains the process ID number - or "pid" - of the Apache process. The cat command prints the contents of a file. And the xargs command feeds it's input, as command line arguments, to whatever command is specified. Thus, this command sequence kills whatever process is identified by the pid in the specified file - that is, it kills the Apache parent process. Note that this will leave all the child processes still going, so this is not likely to actually do you much good.
36 There is, of course, no CD that accompanies the book. You will need to get the documentation from the Apache web site, at httpd.apache.org/docs
47 Typesetting problem here. In the General Syntax section:
1) There should be a newline after option and before Prepending
2) [ps] should have been replaced with + (a plus sign) during typesetting.
3) The ñ should have been replaced with - (a minus sign) during typesetting.
49 Punctuation: There should be a close parenthesis at the end of the line, near the bottom of the page, that reads "... indicated with the DirectoryIndex directive."
57 The example starting with gunzip < webmin ... should all be in monospace font. These are actual commands you will type at the command line.
Also, the path specified for the configuration and log files does not contain a hyphen between web and min. That was an unfortunate place for a linebreak.
75 In the example accompanying the Limit directive, although it does not make any difference to the actual configuration, it may make more sense if the example were listed in an alternate order, thus:
          Order Deny,Allow
          Deny from all
          Allow from yourcompany.com
          
107 More of an ommission than an error. I feel a little bad about how little time was given to mod_rewrite. It is a very important module, and asked about all the time on both IRC and Usenet, and it got a bit of a shameful treatment here. I will attempt to add a bonus chapter here on the web site in the near future to correct this ommission.
118 Accessing a directory with no index.html file, and with Options Indexes not turned on will, of course, not give you a 404 Not Found error, but a 403 Forbidden error, and give you a message like You don't have permission to access /foo on this server.
127 In the section about VersionSort the last sentence may be a little clearer if we replace the phrase "even though it was an earlier version of the file" with "even though the file version order is the other way around."
145 In the next-to-last paragraph of the section on MaxRequestsPerChild, should read "... when a configuration file changes ..."
153 The correct syntax for disabling AllowOverride is None, not off.
154 In the section on Process Creation, when discussing MaxRequestsPerChild, the font makes it unclear what the default value is. The default value is 0 (the number zero) not O (the letter oh).
166 The second paragraph on this page may be clearer if introduced with the clause "Prior to client-side image maps, ..."
199 The first line on this page should refer to the XBitHack directive, rather than XVitHack.
219 The last paragraph of the Example mod_perl Handlers section should refer to the line use warnings;, rather than use warning;.

On that same page, in the last line, it's should be its.

250 In the last paragraph on this page, "reside the behind firewall" should read "reside behind the firewall."
251 In the very last line of this page, the ambiguous "it" should be "this user account".
257 In the third paragraph, "exasperated" should probably be "exacerbated", although I do find myself frequently exasperated by some precompiled Apache binaries.
258 In the section titled Cautious Server-Side Includes Usage, "can be called any non-executable ..." should read "can be called by any non-executable ..."
289 To get pedantic, the AuthName in the example should be "Apache Admin Handbook Authors". The book changed name a few times during the writing process. ;-)
292 In the final URL given in the How Digest Authentication Works section, a space has been inserted where one should not be. The correct url, sans space, is http://userpages.umbc.edu/mabzug1/cs/md5/md5.html.
299 The example UP address and host name given in the deny from examples should probably be changed out for better examples, such as 10.20.30.40 and hostname.example.com. The examples used are real addresses, and might make certain people unhappy if you were to use them on your web site.
302 MIT Laboratory for Coumputer Science should be Computer instead.
328 The quote from Aristophanes should have him asking to whet his brain with wine, not wet it, which would require rather painful surgery. Also, it is generally accepted to spell his name Aristophanes rather than Aristophanies.
333 The example CustomLog directive has a stray backslash in it in the path of the access log. Should read /usr/local/apache/logs/access_log
345 The code listed for the Logfile::Rotate script is not correct. I fear it got screwed up in typesetting. Anyways, you should have something more like:
#!/usr/bin/perl
use Logfile::Rotate;

for (qw(access_log error_log))  {

        my $log = new Logfile::Rotate( File   => "/usr/local/apache/logs/$_",
                Count  => 5,
                Gzip  => 'lib',
                Dir    => '/usr/local/apache/logs',
                Flock  => 'yes',
                Persist => 'yes',
                );

        # process log file
        $log->rotate();

}

qx(/usr/local/apache/bin/apachectl restart);
Note that I've moved the apachectl restart out of the loop. In the other version, you'd end up restarting the server several times, which is a little overkill. Note also that you can add as many log files as you want to that list, if you want to rotate log files for other vhosts as well.
366 SSL/TLS is not turned on by default in Apache 2.0. To turn on SSL, you need to add the --enable-ssl option when you configure your installation.
370 I'd like to replace the phrase "a different set of programmers" with "a different set of developers" so as not to leave the documentation people out of that class.

Also, in the footnote, that should read "mod_ssl is distributed with", now that 2.0 is released.

392 The example of a form handler given in the appendix does not handle file upload at all. If you care about file upload, you may need a modified function instead of this one. For one such example of this, see my posting to the mod_perl mailing list on this topic.
Back
cover
Cooper McGregor offers training courses, not cources. Also, Rich is not exactly the founding member of the LPLUG. Just one of them.
Please tell me about errors that you find in the book.