> -----Original Message----- > From: Stas Bekman [mailto:[EMAIL PROTECTED] > Sent: Tuesday, 10 May 2005 1:39 a.m. > To: [EMAIL PROTECTED] > Cc: modperl@perl.apache.org > Subject: Re: Can't retrieve page I just created with LWP under mod_perl > > Dan Horne wrote: > > I've written a small CGI::Application CMS that publishes content to flat > > files via. The file-type can be any that the designers decide, but > generally > > it will be something that supports includes such as SSI or PHP. This is > fine > > most of the time but occasionally I need to produce dynamic pages - e.g. > a > > search result. > > > > To do this, I generate the search result php/shtml page to the file > system, > > and then request it from the web server using LWP: > > > > my $file = $self->get_value('cms_document_root') . "/" . $page; > > $self->logger->debug("Creating $file"); > > > > # write the results to the temporary file > > open(FH, ">$file") || die "Cannot create $file"; > > print FH $template->output(); > > close FH || die "Cannot close $file"; > > $self->logger->debug("Created $file"); > > > > # request the temporary file > > my $request_page = "http://" . $ENV{SERVER_NAME} . > > $self->get_value('cms_publish_url') . "/$page"; > > $self->logger->debug("request_page: $request_page"); > > my $agent = LWP::UserAgent->new; > > my $request = HTTP::Request->new(GET => $request_page); > > > > This works fine under standard CGI, but the LWP request times out under > > mod_perl. The temporary page name is random, so I know that it's not a > file > > conflict. > > > > Have I missed something? I'm using Apache 1.3.31 and mod_perl 1.29 on > > Windows XP, but whatever I do has to also work under vanilla CGI. > > Not sure if there is something specific under win32, but mod_perl differs > from mod_cgi since: > > 1) it is running under the same username the server runs with > 2) the environment persists > > In the script above, you don't use LWP, you create an agent, but you don't > use it. I can't see where the actual request is. > Sorry - the request is on the next line - missed it when I pasted the code:
my $response = $agent->request($request); Assuming caveats one and two above, can anyone see anything obviously wrong? The temp file gets created - I can see it on the file system. I'm guessing it's due to the Win32 envronment. Dan