This question about Installation of Foswiki: More info required
Undefined subroutine &Foswiki::Response
Software error:
Undefined subroutine &Foswiki::Response called at C:/foswiki/wwwroot/lib/Foswiki/Engine.pm line 116.
at C:/foswiki/wwwroot/lib/Foswiki/Engine.pm line 116.
Foswiki::Engine::prepare(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:/foswiki/wwwroot/lib/Foswiki/Engine/CGI.pm line 77
Foswiki::Engine::CGI::run(Foswiki::Engine::CGI=HASH(0x2519e10)) called at C:\foswiki\wwwroot\bin\configure.pl line 29
Any ideas how to solve the problem?
We need a bit more context.
What web server? (Apache?) and is this a new Foswiki install, or one that is/was working? Is everything failing with this error, or just one particular URL?
If it's a new install, (or everything is working except configure), Foswiki 2.1.3 has an architectural error that prevents installation on Windows. There is a filename that is "reserved" on windows. This is fixed in 2.1.6, which we released yesterday. (It was actually fixed in 2.1.5, but there is a security issue with 2.1.5 and older)
So my suggestion is to:
- If there is any chance that pieces of 2.1.3 were installed, please install 2.1.6. It may indeed be caused by the badly named AUX filename. Configure uses it.
- If after that it's still failing in the same place, we need more information.
That particular line (116 in Engine.pm) is in an error handler, trying to report a prior failure, which is masked by this error. You might need to make a code change to try to figure out what's going on. Try the following patch. It should dump a different error message:
catch Foswiki::EngineException with {
my $e = shift;
require Data::Dumper; <== add these two lines
print STDERR Data::Dumper::Dumper( \$e ); <=== ... (but without these <== comments)
my $res = $e->{response};
unless ( defined $res ) {
$res = new Foswiki::Response(); <== This is the original line 116
$res->header( -type => 'text/html', -status => $e->{status} );
my $html = CGI::start_html( $e->{status} . ' Bad Request' );
$html .= CGI::h1( {}, 'Bad Request' );
$html .= CGI::p( {}, $e->{reason} );
$html .= CGI::end_html();
$res->print($html);
}
--
Main.GeorgeClark - 03 Mar 2018 - 16:01