Apache2/Reload.pm issue

Discussion in 'Installation/Configuration' started by vinnymeyer, Mar 29, 2013.

  1. vinnymeyer

    vinnymeyer New Member HowtoForge Supporter

    I'm running a brand-new installation of ISPConfig under Centos6.4. Everything installed fairly easily, and seemed to be working ok, with three sites hosted. When adding the 4th site, however, ISPConfig froze. Restarting httpd fails, with the following entry in /var/log/httpd/error_log:

    [Fri Mar 29 17:55:44 2013] [error] Can't locate Apache2/Reload.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /etc/httpd) at (eval 8) line 3.\n

    I'm pretty new as a sysadmin, and have spent a couple hours ramping up the learning curve.. and found this code in the entry for the site in /etc/httpd/conf/sites-available/ has this code in it:

    <IfModule mod_perl.c>
    PerlModule ModPerl::Registry
    PerlModule Apache2::Reload
    <Directory /var/www/meyerandmalin.com/web>
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    Options +ExecCGI
    </Directory>
    <Files *.pl>
    SetHandler perl-script
    </Files>
    </IfModule>


    It kinda makes sense, if you're going to make a change in ModPerl to restart Perl (hence the "Apache2::Reload).. but did I miss a step where this is installed? It does not appear to be included in Centos, and has to be built.. and it depends on something else being installed to be able to build.

    I commented this out in the site's config file, after which httpd will now start and server comes up.

    I'm new at all this - am I missing something?
     
  2. compugraphix

    compugraphix Member

  3. vinnymeyer

    vinnymeyer New Member HowtoForge Supporter

    Yes, I did - Apache::Reload is no longer packaged with Perl - has to be downloaded from cpan and compiled. Found this while looking for an answer today:

    http://www.gossamer-threads.com/lists/modperl/modperl/98870

    I installed cpan, and got the source for Apache::Reload from there, but doesn't build without another missing piece:

    Can't locate ModPerl/MM.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 41.

    getting ModPerl::MM from cpan and trying to build it yields:

    Can't locate ExtUtils/Embed.pm in @INC (@INC contains: lib Apache-Test/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at lib/Apache2/Build.pm line 27.

    I know almost nothing about Perl and its environment, so I'm not comfortable digging any deeper to figure out what pieces to put together make the pieces to put together to build Apache2::Restart. If someone has a bit of a handle on this, as far as either getting it packaged so it can be installed with rpm, or suggesting the steps to build this so it can be added to the Perfect Server how-to, I would be very grateful. :D
     
  4. compugraphix

    compugraphix Member

  5. vinnymeyer

    vinnymeyer New Member HowtoForge Supporter

    OK.. we got it fixed today. Apache2::Reload needs ModPerl::MM, which needs Embed, which if you build it in place needs other things. Fortunately the Embed module is packaged in an rpm, which makes adding Embed at least fairly painless to add to your system. For Centos6.4 you need to do the following:

    1) yum install perl-ExtUtils-Embed
    2) download from cpam ModPerl::MM and build it, then
    3) download from cpam Apache2::Reload and build it.

    Hope this helps someone. The steps to actually do this should be added to the installation howto for ISPConfig3.
     
  6. deunan

    deunan New Member

    Hello everyone,

    I too faced with the same problem -

    [Mon Aug 11 03:22:33 2014] [error] Can't locate Apache2/Reload.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 . /etc/httpd) at (eval 8) line 3.\n

    Using RPMFORGE's package but with an extra config -

    perl-Module-Reload-1.07-1.2.el6.rf.noarch

    Code:
    ln -s /usr/share/perl5/vendor_perl/Module/Reload.pm /usr/lib/perl5/vendor_perl/Apache2/Reload.pm
    
    The RPM installs the perl module on a different location -

    Code:
    # rpm -ql perl-Module-Reload-1.07-1.2.el6.rf.noarch
    /usr/share/man/man3/Module::Reload.3pm.gz
    /usr/share/perl5/vendor_perl/Module/Reload.pm
    So far my installation works and the configuration is working fine.

    Hope this solves someone else issue too.
     

Share This Page