Re: Initial setup problems with mod_perl2 - unable to locate modules
Da Rock <[email protected]>
| Newsgroups | gmane.comp.apache.mod-perl |
|---|---|
| Message-ID | <[email protected]> |
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.