J'essaye de lancer un perlscript en tant que script cgi. Cependant, y compris la bibliothèque cgi de Perl ne fonctionne pas:
# Perl -e 'use CGI::Carp qw(fatalsToBrowser);'
Can't locate CGI/Carp.pm in @INC (you may need to install the CGI::Carp module) (@INC contains: /etc/Perl /usr/local/lib/x86_64-linux-gnu/Perl/5.22.1 /usr/local/share/Perl/5.22.1 /usr/lib/x86_64-linux-gnu/Perl5/5.22 /usr/share/Perl5 /usr/lib/x86_64-linux-gnu/Perl/5.22 /usr/share/Perl/5.22 /usr/local/lib/site_Perl /usr/lib/x86_64-linux-gnu/Perl-base .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
#
Sur un ancien serveur, la même commande ne génère pas de message d'erreur et les scripts cgi s'exécutent correctement.
Cela semble être un problème Perl, pas un problème Apache.
Sur mon serveur, Carp.pm est déjà installé dans l’un des chemins donnés dans @INC:
# find /usr -iname 'Carp.pm' -ls
555093613 20 -rw-r--r-- 1 root root 20074 Aug 24 21:47 /usr/lib/x86_64-linux-gnu/Perl-base/Carp.pm
382731053 20 -rw-r--r-- 1 root root 20074 Mär 13 2016 /usr/share/Perl/5.22.1/Carp.pm
#
Comment puis-je obtenir la bibliothèque cgi incluse. J'utilise Ubuntu 16.04 LTS.
Répondre partiellement à cela pour mon propre archivage. Cela semble être une erreur récente résultant d'une dépendance brisée. J'ai reçu un message d'erreur similaire lors de la vérification du journal des erreurs.
tail -100 /var/log/Apache2/error.log
...
AH01215: Can't locate CGI.pm in @INC (you may need to install the CGI module)
...
Après un travail de détective, je l’ai tracé vers la dépendance suivante (désolé d’avoir perdu ma source).
Sudo apt-get install libcgi-session-Perl
Dans mon cas, ce problème était dû à des autorisations de fichiers et de répertoires incorrects dans les divers répertoires Perl5/du système. Les fichiers doivent être lisibles par l'utilisateur sous lequel le serveur Web est en cours d'exécution. Les fichiers du programme (.pl) doivent être exécutables. Les répertoires doivent être lisibles et interrogeables.