RT5 Internal Server Error post upgrade RT4.4.4

OS: RHEL 7.6
Apache2.4.6 with FastCGI mod_fcgid/2.3.9
Oracle Database

I had installed and was running RT4.4.4 with RTIR with the current set-up (above) for almost a year, then saw the improvements in RT5 and thought I’d upgrade.
I followed the install and upgrade instructions, installing RT into a new RT5 location and upgrading the database.

I use perlbrew for a local copy of perl with all the relevant module dependencies.

I can tweak my RT_SiteConfig.pm config and run the standalone RT5 server. I can log-in with my old credentials and can access old tickets. I believe this rules out any potential database issues.

However, when I switch to running rt5 via apache I receive Error 500 Internal Server Error. The only logs are in ssl_error_log
[fcgid:warn] (104)Connection reset by peer: [client ] mod_fcgid: error reading data from FastCGI server
[core:error] [client ] End of script output before headers: rt-server.fcgi

I’m sure this is probably a permissions issue, but I’ve been at it all day trying to fix without success. I’ve updated my apache conf to point /rt at the new location and restarted apache everytime I make config changes. Permissions matched rt4 but have been loosened a little to try and get things working. I’m tempted to chmod 777 on everything in rt5/ just as a test!

The only warnings/errors from the standalone server are complaints about %Lifecycles.

Any ideas?

Does your new Apache virtualhost point to the new RT5 install location?

From the RT5 source code you can run make fixperms to ensure the rights on the RT file system are alright.

Are the rights for the perl install different between RT4 and RT5?

Thanks for the reply.

Apache is pointing at the new installation. Access is via a folder/path rather than subdomain so have it configured as:
ScriptAlias /rt /app/rt/rt5/sbin/rt-server.fcgi/
<Location /rt>
Require all granted
Options +ExecCGI
AddHandler fcgid-script fcgi

I’ve run ‘make fixperms’ to double check and restarted Apache. Still fails with same error.

It’s the same perl installation as rt4 but with a couple of new modules that were required for rt5. I’m going to explore that area in more detail though now, just to double check.

Perl was probably the right area to investigate. I set-up a simple perl script and had apache point to that instead of rt-server.fcgi. The script worked when I set the shebang to the standard #!/usr/bin/perl but fails with the perlbrew version! The Perl5 folder for perlbrew only had user and group permissions set, none for other; 0750. Changed to 0755 to allow apache user to access and my simple perl script now works.

Pointed Apache back to rt-server.fcgi, restarted apache, but rt5 still fails. :frowning:

Just to mention, I changed my apache config to include both rt4 and rt5 paths. rt4.4.4 continues to work, even after the database had been altered for rt5. rt5 still gives me an internal server error.

EDIT: This led me to consider there were still some permissions within the rt5 folder that were wrong.

  1. forgot to revert my RT_SiteConfig.pm file back from the standalone server version!! argh!
  2. rt5/etc permissions were wrong, unreadable by apache. Corrected with find rt5/etc/ -type f -exec chmod o+r {} ;
  3. Copied the contents of rt5/lib into the local perl folder for safe measure!

Voila!

Thank you knation for pointing me in the direction of perl in the first place.

So HTTP Error 500 Internal Server Errors are generally permissions issues after all :slight_smile:

1 Like