This article is designed to hopefully assist someone not have to go over the same troubles as I experienced installing the latest stable Bugzilla onto my cPanel server. To say it gave me a headache is an understatement.
To begin with everything went smoothly. It was all good. I followed the instructions for the Bugzilla installation, and ran the various perl scripts, which said I needed to install some additional modules to make Bugzilla work. That was no problem, so I thought, because I had CPAN installed and set up.
Most of the modules went on OK, and everything looked good. But then I started receiving e-mails from users of another site written in perl that resides on the server. They were getting Internal Server Errors galore. Premature end of script headers. Oh joy.
So I went on the hunt for what could be going on. I ran the perl script manually for the site that was complaining. It borked with some file or other that couldn’t be found in the @INC path. That’s odd, because it was working before I tried installing the JSON::RPC module from CPAN. I ran the Bugzilla ‘checksetup.pl’ script again and now that borked with files missing from @INC.
I tried using CPAN to install the missing modules that the checksetup.pl script was now complaining about. One went on, then CPAN itself stopped working! Now I was really confused.
I did some googling around, discovered some fairly useful information to put things back and got CPAN up and running again. I can’t give specifics of this because it really depends on what you did prior to getting here as to what you’ll need to look for. Hopefully though you read this BEFORE you bork your CPAN install 🙂
Long story short, I have two Perl binaries on my system, compiled with different @INC paths.
I discovered it quite by accident. One was in /usr/bin/perl – the other was /usr/local/bin/perl. Running from the command line was using /usr/local/bin/perl, but web scripts (and the checkconfig.pl script) were coded to use /usr/bin/perl.
At this point in time I have renamed the /usr/bin/perl version to /usr/bin/perl.sav and softlinked to /usr/local/bin/perl since all my CPANing and tweaking was done with the /usr/local/bin/perl variant (which used a /usr/local/ prefix to its @INC path).
This seems to have fixed Bugzilla, and kept the other site happy too. I’ve yet to test whether it’s broken cPanel now though!