Configurer Apache pour PERL

Fermé
Alain42 - 27 juin 2007 à 15:05
 Alain42 - 7 juil. 2007 à 09:06
Bonjour,

Je voudrais utiliser Perl sur mon serveur Linux (mandriva freee 2007)

Par la commande perl -v j'ai bien perl5.8.8 installé

J'ai trouvé un site qui explique très bien comment configurer Apache pour mod_perl, mais où je bloque c'est lorsqu'il faut rajouter dans httpd.cong:

LoadModule perl_module libexec/libperl.so

Déja libperl.so n'etait pas à cet endroit là, je l'y ai déplacé , lorsque je restart httpd , il le trouve bien, mais j'ai l'erreur perl_module .... API inexistant dans libperl.so. [ECHEC]

J'ai essayé par urpme de désinstaller perl => impossible !

Avez vous une solution ?

Merci
A voir également:

30 réponses

Bon avec LoadModule ....... apache redémare? mais mon script perl ne fonctionne pas, l'extension .pl n'est pas reconnue, j'ai une fenêtr e me demandant si je veux l'ouvrir ou le télécharger;

j'ai trouvé un fichier 75_mod_perl.conf qui est inclus dans le httpd.conf

et là il y a des choses interessantes, notament le LoadModule tel que ci dessus mais dans une condition
<IfDefine HAVE_PERL>

J'ai aussi la possibilité de définir des Alias /perl/ qui pointent sur /var/www/perl/ que j'ai changé en /home/alain/sites/perl/ c'est la que j'ai mes sites d'essai

Un autre Alias /cgi-perl/ idem

Mais par contre ce sont toujours dans des
<IfModule mod_perl.c>

As tu une idée ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 juin 2007 à 06:40
Salut,

laisse tombé le fichier 75_mod_perl.conf
mets la ligne avec include en commentaire
#Include 75_mod_perl.conf 
dans ton httpd.conf écrit
Alias /perl /home/alain/sites/perl/
SetHandler perl-script
PerlHandler Apache::Registry
Redémarre le serveur et fait un test
0
Merci,

Je vais essayer mais seulement en fin de semaine, là je dois partir
0
Bonjour lami20j,

Je viens de faire l'essai

j'ai suprimé l'include du fichier 75_mod_perl.conf

et rajouté dans http.conf:
Alias /perl/ /home/alain/sites/perl/
SetHandler perl-script
PerlHandler Apache::Registry

mais les deux lignes :
SetHandler perl-script
PerlHandler Apache::Registry

empêchent le serveur de fonctionner, mes sites ne fonctionnent plus

j'ai mis ces deux lignes entre
<Location /perl/*.pl>

</Location>

Le serveur refonctionne mais mon fichier d'essai prog1.pl n'est toujours pas reconnu comme script perl.

Aurais tu une idée ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
2 juil. 2007 à 11:48
Salut,

empêchent le serveur de fonctionner, mes sites ne fonctionnent plus

affiche les erreurs (voir les logs)
0
Lorsque je remet les deux lignes j'ai comme réponse:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

et dans les logs:

[Mon Jul 02 13:37:47 2007] [notice] Apache/2.2.3 (Mandriva Linux/PREFORK-1mdv2007.0) configured -- resuming normal operations
[Mon Jul 02 13:37:48 2007] [error] [client 192.168.0.5] failed to resolve handler `Apache::Registry': Can't locate Apache/Registry.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/i386-linux /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i386-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.7/i386-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl . /etc/httpd) at (eval 2) line 3.\n
[Mon Jul 02 13:37:48 2007] [error] [client 192.168.0.5] failed to resolve handler `Apache::Registry': Can't locate Apache/Registry.pm in @INC (@INC contains: /usr/lib/perl5/5.8.8/i386-linux /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i386-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.7/i386-linux /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl . /etc/httpd) at (eval 3) line 3.\n


unn find / -name 'Registry.pm' me le trouve en:

/usr/lib/perl5/vendor_perl/5.8.8/i386-linux/ModPerl/Registry.pm

il a-t-il une commande pour intégrer ce chemin dans @INC ???
0
Je n'ai pas trouvé de commande pour ajouter au @INC (un peu comme pour le PATH)

Mais en fin de semaine, je vais essayer en faisant un lien symbolique entre le rep ou j'ai trouvé le fichier et un des rep de @INC

J'avais fait l'installation par l'interface graphique mandriva.

Je pense que par urpmi cela aurait été mieux ( dans les bons répertoires) ????
0
bob031 Messages postés 8158 Date d'inscription samedi 7 août 2004 Statut Membre Dernière intervention 1 septembre 2014 472
4 juil. 2007 à 09:45
Salut Alain42,

J'ai suivi ton problème depuis le début (sans y avoir participé pour l'instant).
D'après ce que j'ai lu mod-perl est installé puisque tu as apache_mod_perl.
J'ai une mandriva spring 2007.1, j'ai testé un script perl ("hello.pl") pour voir si ça fonctionnait chez moi.
Sans toucher à aucun fichier de configuration et en plaçant mon script "hello.pl" dans /var/www/perl et cela fonctionne.

[redfox@localhost perl]$ cd /var/www/perl/
[redfox@localhost perl]$ ls -l
total 5
-rwxr-xr-x 1 root root 1075 avr 10 15:14 apache-mod_perl-testscript.pl*
-rwxr-xr-x 1 root root 73 jun 28 14:54 hello.pl*
-rwxr-xr-x 1 root root 1075 mar 10 18:34 test.pl*
[redfox@localhost perl]$

si ça peut t'aider ...

:-))
0
Merci,

Je vais essayer sous var/www

Mais j'aurais voulu que cela fonctionne sous /home/alain/sites car j'utilse mon seveur Linux pour tester en local plusieurs sites et je les met sous ces rep en /home.

Mais j'ai l'impression que Apache-mod_perl n'a pas été installé correctement, les fichiers de config ne sont pas aux endroits ou les fichiers perls les "attendent".
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 juil. 2007 à 08:53
Salut,

alors fait une réinstallation d'apache et mod_perl


si tu veux utiliser /home/alain/sites pour des tests tu peux :
- si tu as un seul site à tester tu n'as qu'a modifier le fichier de configuration
DocumentRoot "/home/alain/sites"

<Directory "/home/alain/sites">
  order allow,deny
  allow from all
</Directory>


pour le même site tu peux utiliser le répertoire d'un utilisateur avec la directive UserDir

Si tu as plusierus sites à tester alors regarde du côté hôtes virtuels
0
J'ai essaye en passant mon script de test sous var/www comme bob031, mais le résultat est le même.

Toujours la même erreur Apache/Registry.pm introuvable dans @INC

Avec un lien symbolique c'est idem.


Alors je vais faire comme préconisé par lami20j désinstaller Apache par urpme et réinstaller par urpmi.
Cette commande sera peut être plus conforme que lorsque l'install est faire par Mandriva.

A plus tard;

Et merci
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
27 juin 2007 à 18:32
Mais si j'installe par urpmi apache-mod_perl est ce que ça ne va pas entrer en conflit avec PHP ?

Non.
-1