On Fri, 11 Jul 2003, Stas Bekman wrote:
[EMAIL PROTECTED] wrote:
[ .. ]
Now I get a different failure ("Alias" is now invalid):
[ .. ]
waiting for server to start: .Syntax error on line 76 of /home/slavenr/work2/httpd-test/perl-framework/Apache-Test/t/conf/httpd.conf: Invalid command 'Alias', perhaps mis-spelled or defined by a module not included in the server configuration !!!
Do you have mod_alias available?
% prefork/bin/httpd -l | grep mod_alias mod_alias.c
I suppose we could run this command to check for prerequisites and die if they aren't available?
I'm not sure what the best way to go about this is, but maybe the following might help in deciding ... I think the problem arises when Apache-Test either doesn't find the right httpd.conf corresponding to the found httpd (as might happen, for example, when httpd is a symlink to the real one), or it finds and parses a bogus one (this happened to me a couple of times when the installed httpd.conf wasn't edited to include the minimal LoadModule directives, and I forgot to check). So it's not necessarily a problem with using an incorrect httpd (although that may still happen), but rather incorrect or missing information from httpd.conf is being used.
If the above is on the right track, one possibility is to do the following (in cases where possible LoadModule directives are needed by Apache-Test): - die if an httpd.conf isn't found in a directory conf/ in an expected relative location to httpd (or perhaps add an option allowing a user to specify where httpd.conf is, if it's in a different relative to httpd). - test the configuration, and if an "Invalid Command ..." error is generated, suggest to the user to either supply the right httpd.conf, or check the validity of the existing one.
The following was necessary to make all tests pass on my system:
* Add
LoadModule auth_module modules/mod_auth.so LoadModule mime_module modules/mod_mime.so LoadModule alias_module modules/mod_alias.so LoadModule dir_module modules/mod_dir.so
to the generated t/conf/httpd.conf
* Create a symbolic link in t to the httpd's modules directory
It seems to me that the standard configuration of this system's httpd does not include a lot of "standard" modules.
I suppose we could have added:
<IfModule !mod_auth.c> LoadModule auth_module $ServerRoot/modules/mod_auth.so </IfModule>
for each module, but how do we know which ones are needed? I'm talking about Apache::Test in general, not necessarily mod_perl 2.0.
We certainly can check whether these modules exist, e.g. $ServerRoot/modules/mod_auth.so. So one approach would be to go to modules/ and try to conditionally (as in the above example) load them all.
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com