perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Da Rock <mod_p...@herveybayaustralia.com.au>
Subject Re: Initial setup problems with mod_perl2 - unable to locate modules
Date Fri, 14 Feb 2014 22:25:29 GMT
On 02/15/14 02:00, André Warnier wrote:
> Hi.
>
> Da Rock wrote:
>> I know this may seem straight forward and a RTFM response may be in 
>> order, but I have been trying to crack this for some days now 
>> (following attempts on and off, too, mind) and nothing I can google 
>> seems to point to an accurate answer on what the problem is here.
>>
>> I'm running FreeBSD 9.x with Apache22, and installed mod_perl2 to try 
>> to switch away from php based development based on current requirements.
>>
>> I have tried using a startup.pl, but I would like to just use 
>> PerlSwitches -I instead (which from what I read is possible); 
>> regardless the issue remains the same.
>>
>> I get a 500 response in the browser, and the logs have these errors:
>>
>> "failed to resolve handler `Mod_home::Mod': Can't locate 
>> Mod_home/Mod.pm in @INC"
>
> it should normally also show you what it finds in @INC.  What does it 
> say ?
It shows the library path prepended to the list, so thats ok. One thing 
that bothers me is that it only works with ' ' surrounding it either in 
the startup.pl or the PerlSwitches directive. Note that both myself and 
the documentation only use one or the other and not both at the same time.

(@INC contains: '/usr/local/www/<VHOST>/lib' 
/usr/local/lib/perl5/5.14/BSDPAN 
/usr/local/lib/perl5/site_perl/5.14/mach 
/usr/local/lib/perl5/site_perl/5.14 /usr/local/lib/perl5/5.14/mach 
/usr/local/lib/perl5/5.14 . /usr/local) at (eval 5) line 2.\n
>
>
>>
>> and simply "failed to resolve handler" in the main server log.
>>
>> My config looks like this:
>>
>> <VirtualHost <IP>:<PORT>>
>>     ServerName <server>
>>     ServerAlias <server>
>>     ServerAdmin <hostmaster>
>>     ErrorLog "/var/log/apache/<VHOST>-error.log"
>>     CustomLog "/var/log/apache/<VHOST>-access.log" common
>>     PerlOptions +Parent
>>     PerlSwitches -I/usr/local/www/<VHOST>/lib
>
> Can you show us the contents of that directory ?
# ls -R /usr/local/www/<VHOST>/lib/
Mod_home        startup.pl

/usr/local/www/<VHOST>/lib/Mod_home:
Mod.pm
>
>>     PerlInitHandler Apache2::Reload
>>     PerlModule Mod_home::Mod
>
> I don't think that you need the above.
I didn't think so either; except maybe the Apache::Reload (which I'd 
like to get working as well so I don't have to restart the server every 
time I change the code - especially during dev).
>
>>     <Location /<VHOST>>
>>         SetHandler modperl
>>         PerlResponseHandler Mod_home::Mod
>
> These 2 lines above should be enough.
Again as I thought. But if I may ask (for later configuration), how is 
access controlled? Using auth or access in the perl module rather than 
server acl's?
>
>>         Order allow,deny
>>         Allow from all
>>     </Location>
>> </VirtualHost>
>>
>> I also have PerlModule Apache2::Reload in the httpd.conf.
>>
>> Just to reiterate - I have tried this both as vhosting and as single 
>> server setup, and I cannot seem to resolve the same issue every 
>> single time.
>>
>> Can someone please give the magical incantation to make this thing 
>> work? :-) or at least point me in the right direction? I'm really 
>> starting to lose patience with this thing, and I now have a deadline 
>> to sort this out which is fast approaching.
>>
>
> Yes, but that's not the fault of anyone who is trying to help you here.
> So be patient.
>
> I am doing things similar to what you are intenting to do, on many 
> servers with VirtualHosts, and it works flawlessly.  So it /is/ a 
> configuration matter, not something wrong with Apache/mod_perl in the 
> first place.
That much I had assumed; especially considering I'm only trying to get 
the tutorial working to begin with. Question is what configuration am I 
missing? My thinking was its the @inc.
>
> The thing is, we don't see your system, so we depend on the accurate 
> and complete information that you are providing us with.
>
> When you (re-)start your Apache server, it prints a statup line in the 
> logs (error log).
> Can you show it here ?
> example :
> [Sun Feb 09 06:25:45 2014] [notice] Apache/2.2.16 (Debian) 
> mod_jk/1.2.30 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming 
> normal operations
>
> and then give us the *full* message that appears in the log when it 
> doesn't find your module.
>
Actually, I already did. This is all it says:

[notice] Apache/2.2.24 (FreeBSD) mod_ssl/2.2.24 OpenSSL/0.9.8x DAV/2 
PHP/5.4.23 mod_perl/2.0.8 Perl/v5.14.4 configured -- resuming normal 
operations
failed to resolve handler Mod_home::Mod

I've checked all the paths as well, and it all seems well.

Mime
View raw message