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.

200px-RedHat.svgWith ‘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

Posted

in

, ,

by

Tags:

Comments

8 responses to “No mod_perl in RHEL 7 and CentOS 7”

  1. David Avatar
    David

    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

    1. Michiel Avatar
      Michiel

      It took some time but I just wrote one such guide. I hope it helps!

  2. Aljosa Avatar
    Aljosa

    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 🙂

    1. Michiel Avatar
      Michiel

      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!

  3. Kjetil Skotheim Avatar
    Kjetil Skotheim

    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

    1. Michiel Avatar
      Michiel

      Yes, thanks, I’ve upated the article.

    2. Kjetil Skotheim Avatar
      Kjetil Skotheim

      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

      1. Michiel Avatar
        Michiel

        Why wget and then yum, why not yum with the URL directly? Better yet, why not ‘yum install -y epel-release’ directly?