Oden Eriksson wrote:
Sorry for dropping out of site, hardware problems here, my notebook is dead again :( too much modperl smoking is not good for a notebook's health. I wish somebody was sending me a new one :)
The server fails to start, but that's something else. I noticed though that if the /etc/httpd/conf/httpd.conf exists A-T is trying to inherit that config (inherit_config) but this fails as this file is for apache-1.x. Shouldn't something from "httpd2 -V" be used instead?
Take a look at: lib/Apache/TestConfigParse.pm:sub inherit_config { it should find the correct global config file, please check that code to see if something goes wrong.
I looked at it but it's hard to understand. I couldn't find where it actually looks for the httpd.conf file.
it's right here:
1) my $file = $self->{vars}->{httpd_conf};
2) unless ($file and -e $file) { if (my $base = $self->{httpd_basedir}) { my $default_conf = $self->{httpd_defines}->{SERVER_CONFIG_FILE}; $default_conf ||= catfile qw(conf httpd.conf); $file = catfile $base, $default_conf; # SERVER_CONFIG_FILE might be an absolute path $file = $default_conf if !-e $file and -e $default_conf; } }
(1) is set if you've passed an explicit -httpd_conf option to t/TEST (or perl Makefile.PL). otherwise (2) is invoked, so you can see that it gets the base dir of the server and looks for conf/httpd.conf under it. So in your case it's probably that httpd_basedir gets a wrong value. The latter gets set in TestConfig.pm:
if ($vars->{httpd}) { my @chunks = splitdir $vars->{httpd}; #handle both $prefix/bin/httpd and $prefix/Apache.exe for (1,2) { pop @chunks; last unless @chunks; $self->{httpd_basedir} = catfile @chunks; last if -d "$self->{httpd_basedir}/bin"; } }
so it tries to find the root of the Apache install.
As this of any help?
Also the mod_perl module as all other code is built as non root, so certain files and directories can't be access. The snipppet above solves some of that.
A-T handles that internally. See
lib/Apache/TestRun.pm:sub adjust_t_perms {
if you intervene with normal process, then you are on your own.
I still can't understand what's wrong with the autogenerated httpd.conf, that you need to write your own. Please explain.
Ok. As it cannot find the correct httpd.conf file I have to do it like this. But I suspect even if it would, it wouldn't work anyway as we use two main config files and includes specific module config files using the scandir feature (Include conf.d/*.conf).
And A-T should be able to do that just fine.
SUSE does it like that too, as well as RedHat, PLD, ALTLinux, and perhaps many more. As a non root user I do not have permissions to write a PidFile or LockFile unless it's in a directory I have permissions to.
I don't understand that. Both PidFile or LockFile are rewritten by A-T to point to t/logs/ check TestConfig.pm's __DATA__ section. There should be no perms problems.
I would be happy if I could disable this inherit_config thing so it does not search for any configuration files at all.
it's easy: just pass your specific -httpd_conf option and point it to the file that you create by yourself.
-- __________________________________________________________________ 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