12 mars 2015

mod_perl 2.0.9

La version très attendue de mod_perl 2.0.9 fonctionnera avec pratiquement toutes les versions du serveur http 2.0.x, 2.2.x et 2.4.x d'Apache. C'est le support de 2.4.x qui est attendu depuis des années ! Ceci est d'autant plus important que CentOS 7 n'existe qu'en 64 bits et ne fournit que Apache 2.4. Pour utiliser mod_perl2 il fallait rester à Centos 6.x :-(

[ UPDATE: La version officielle de mod_perl 2.0.9 est disponible depuis le 18/juin/2015 ]
[ Mais en attendant les packages officiels la procédure ci-dessous reste valide ]

Steve Hay, le principal développer de mod_perl2, affirme que l'on est en phase de test ...
En attendant un package voici pour les impatients comment tester sous Linux (dans mon cas Centos 7) cette version bêta de mod_perl 2.0.9 (il y a encore quelques problèmes sous Windows, et Perl 5.22 n'est pas supporté).

# Il faut avoir de quoi compiler et bien-sur apache et ses fichiers de développement
yum group install "Development Tools"
yum install httpd httpd-devel

# Depuis le 19/juin/2015 on peut récupérer les sources ici
http://apache.org/dist/perl/

# Sinon on peut récupérer les source via SVN
svn checkout https://svn.apache.org/repos/asf/perl/modperl/trunk/ mod_perl-2.0.9

# Il ne faut pas etre root sinon le 'make test' echoue
# On prepare un Makefile, on compile, on teste
# Vérifier que /usr/bin/apxs existe  (il vient du package httpd-devel)
# MP_TRACE=1 permet ensuite d'utiliser dans httpd.conf la directive PerlTrace
cd mod_perl-2.0.9
perl Makefile.PL MP_APXS=/usr/bin/apxs MP_TRACE=1
make
make test


# Si tout se passe bien on doit avoir une fin qui ressemble à
All tests successful.
Result: PASS


# Pour cette dernière commande il faut être root
su
make install

La commande suivante indique où sont les modules (mod_xxxxx.so) que Apache charge
/usr/bin/apxs -q LIBEXECDIR

C’est là que doit se trouver le nouveau module mod_perl.so qui est chargé dans la config du serveur web avec

LoadModule perl_module modules/mod_perl.so

Voir ce précédent ce post pour la configuration,