A Day in the Life of #Apache
Pages: 1, 2
The difficulty comes when you attempt to mix these two syntaxes in the same listing. Thus, we come to the example that we started with:
Options +Indexes Includes MultiViews
So, by the rules above, the Indexes option is added to whatever was already in place, by virtue of the + notation. However, when we get to the Includes option, since there's no + or - sign, the list is cleared, and the remaining options (Includes and Multiviews) are set as the new list. Thus, although by casual inspection it seems that we should end up with all three options turned on, only the last two are in fact turned on.
That's all well and good, except that it is completely unexpected by the user. And, to further complicate things, this isn't necessarily consistent. For example, if you do:
Options Includes +Indexes Multiviews
it turns out that Indexes is in fact enabled. This seems to contradict the long explanation I just went through.
The real answer to this problem is that you should never ever mix the +/- and bareword syntaxes. The results are too unpredictable unless you actually delve into the code and figure out what it's doing. But even when you do that, it's not clear what you should do about it.
If, for example, someone used the following syntax:
Options Indexes Options Includes +ExecCGI
What do you think they meant?
Yeah, I don't know either. Better to just yell at them for using invalid syntax, and force them to go fix it.
There's one small problem with that approach, and that's that a number of third-party distributions of Apache, like several Linux distrubutions, ship default configuration files using syntax like this, and they expect it to work. Making it break would make a lot of people very unhappy. However, that might just be a necessary tradeoff.
Just in case you missed the goal of either the presentation I gave at ApacheCon (and again at OSCON), or of this series of articles, I want to take this opportunity to state it clearly. It's not just to complain. If it was that, it would be little more than petty whining and a waste of your time.
The purpose is to point out areas where you, the interested contributor, can focus your efforts, if you're looking for a place where you can plug in. Every one of the issues I addressed has a solution, and some of them are fairly simple.
The other purpose is (as stated in the initial slide), to let the core group of developers know what is irritating their users. You'll be happy to know that they received this very warmly, and that a number of the problems have already been fixed since the talk was presented. It's not the traditional way to submit bug reports, but it was very effective.
Rich Bowen is a member of the Apache Software Foundation, working primarily on the documentation for the Apache Web Server. DrBacchus, Rich's handle on IRC, can be found on the web at www.drbacchus.com/journal.
Return to the Apache DevCenter