No mod_perl in RHEL 7 and CentOS 7
I was reading up on the documentation for the newly released RHEL 7 beta the other night. The section Removed Packages showed that RHEL 7 no longer includes mod_perl as it is ‘Incompatible with HTTP 2.4‘ and mod_fcgid is recommended as its replacement.
With ‘HTTP 2.4‘ the Red Hat folks actually mean the Apache Webserver 2.4, which package is called ‘httpd’ in the RHEL repositories.
While it is true that there still is no ‘official’ mod_perl release that has support for Apache httpd 2.4, there is a mod_perl branch with support for 2.4 and this has been used by the Fedora project in Fedora 19 and later. Since RHEL 7 would be based on Fedora 19 I find it kind if weird to read there will be no mod_perl in RHEL 7: there has not been a single release of Fedora without mod_perl!
Furthermore, mod_fcgid is by no means a drop-in replacement for mod_perl; mod_perl allows very deep integration with the Apache web server. If you’d just use mod_perl as a way to make your CGI scripts run faster, then you can use it as an alternative though.
Most ‘modern’ perl applications have moved off from mod_perl to plack, which is a more standardized way to integrate your application with your web server, which has lots of deployment options. So if you have moved your application to plack in the last years, you’d be good.
OTRS is typically deployed on mod_perl; and last summer (when I still worked at OTRS Group) we created a wrapper around our frontends which allows you to deploy on Plack. This is still marked as ‘experimental’, and it’s not documented, but it does work. I’ve been running in Plack mode on my ‘personal’ OTRS system since August last year. I’ll want to post a how-to on deployment soon.
I find it a bit disheartening to see that there has been no real activity on mod_perl and there is still no ‘official’ support for mod_perl on Apache 2.4; but also I can’t really understand why there is no mod_perl in RHEL7 as it is readily available in Fedora. Of course, I do consider mod_perl as ‘old’ technology, Plack is really the more modern choice. That said, it’s not always trivial to port your application to Plack. But if you haven’t done so already, you really should start now!
UPDATE: luckily, you can now install mod_perl on CentOS or RHEL 7 via EPEL.
EPEL is the high-quality RPM collection for RHEL and CentOS linux, maintened by the Fedora project. You can install mod_perl like this:
yum install -y epel-release yum install -y mod_perl
David
says:Now that CentOS 7 has been released, is there any guide on installing OTRS on CentOS 7? I am running into the mod_perl issue when installing otrs-3.3.8-01.noarch.rpm
Michiel
says:It took some time but I just wrote one such guide. I hope it helps!
Aljosa
says:You can install CentOS6 repos in chroot with modperl:
“yum install mod_perl –installroot=/var/chroots/modperl –releasever=6”
you also need to import GPG keys for CentOS 6 to make it happen.
after that you should copy /dev/random /dev/urandom onto chroot and to start mod_perled apache:
“chroot /var/chroots/modperl /etc/init.d/httpd start”, start broser and work 🙂
Michiel
says:I would really recommend against this! Better install from EPEL. Just do:
yum install -y epel-release
yum install -y mod_perl
And you’d be ready!
Kjetil Skotheim
says:Mod_perl is still available through EPEL. This worked for me on CentOS 7:
cd /tmp; wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-1.noarch.rpm
yum -y install epel-release-7-1.noarch.rpm
yum -y install mod_perl
service httpd restart
Michiel
says:Yes, thanks, I’ve upated the article.
Kjetil Skotheim
says:Newer now:
cd /tmp
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum -y install epel-release-7-5.noarch.rpm
yum -y install mod_perl
Michiel
says:Why wget and then yum, why not yum with the URL directly? Better yet, why not ‘yum install -y epel-release’ directly?