
marcodisano at gmail
May 19, 2011, 8:02 AM
Post #5 of 6
(772 views)
Permalink
|
Il 19/05/2011 16.47, marco ha scritto: > Il 19/05/2011 16.32, André Warnier ha scritto: >> Raf wrote: >>> http://perl.apache.org/docs/2.0/user/intro/start_fast.html >>> >>> On Thu, 19 May 2011, marco wrote: >>> >>>> Hi, >>>> I tried to write an handler to be execute in the PostReadRequest >>>> phase of the http request cycle. >>>> #file:touch.pl >>> ... >>>> PerlResponseHandler touch.pl >>> ... >>>> PerlPostReadRequestHandler touch.pl >>> ^^^^^^^^ >>> This should be the package name of a module on your @INC path. >>> >>>> But I'm a little confused on what I wrote. I followed the ufficial >>>> guide but it was not very clear. >>> You might want to look at >>> http://perl.apache.org/docs/2.0/user/intro/start_fast.html again. >>> >> >> More precisely, the section : "Handler Modules" >> >> The steps there are exactly what you need to do. >> >> Look carefully at the example perl code. >> - rename your script to "touch.pm" (a convention, for mod_perl >> handler modules) >> - change your script a bit, to resemble the example, with the >> >> sub handler { >> ... >> } >> 1; >> >> That "1;" at the end is very important. >> Also important is that your handler subroutine should return "OK" to >> Apache. >> >> Also change >> PerlPostReadRequestHandler touch.pl >> to >> PerlPostReadRequestHandler touch >> >> >> >> > Hi Andrč, > thanks for your help. > The code I have written is the follow: > > *#touch.pm > use strict; > use warnings; > > use Apache2::ServerUtil (); > use Apache2::RequestIO (); > > sub handler{ > my $r = shift; > $r->content_type('text/plain'); > $r->print("<html><body><h1>ciao mondo</h1</body></html>"); > } > 1;* > > When I access to http://localhost:81/ on my Apache server, i have a > white page and the *error_log* file contains: > > <b>Warning</b>: PHP Startup: Unable to load dynamic library > 'ext/msql.so' - ext/msql.so: cannot open shared object file: No such > file or directory in <b>Unknown</b> on line <b>0</b><br /> > failed to resolve handler touch > > What's the matter? > I don't understand what is the problem!! > > Any suggests is appreciated. > > Sorry, i have posted the wrong code. The *correct* one is the follow, (as you suggest me there is OK): * #touch.pm #------------- use strict; use warnings; use Apache2::ServerUtil (); use Apache2::RequestIO (); use Apache2::Const -compile => 'OK'; sub handler{ open (MYFILE, '>> /home/marcolino/pippo'); print MYFILE "Marco on Apache\n"; close (MYFILE); #my $r = shift; #$r->content_type('text/plain'); #$r->print("<html><body><h1>ciao mondo</h1</body></html>"); return OK; } 1;* With this code the server give me the same error(white page + in the error_log file it prints "*failed to resolve handler touch*") What can i solve this?
|