J'utilise Request Tracker version 3 depuis un certain temps et cela a très bien fonctionné. Mais tout à coup, le serveur RT s'est écrasé et le journal des erreurs Apache avait le message d'erreur ci-dessous :
Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6. Segmentation fault
Il semblait que de nombreux scripts perl avaient des problèmes et en fait, le perl et cpan commandes ont abouti à la même erreur que ci-dessus :
# cpan Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6. Segmentation fault
Solution :
Je n'étais pas sûr de ce qui aurait causé cette erreur, mais après avoir passé quelque temps sur Google, j'ai compris que certains modules perl ou le système d'exploitation avaient peut-être été mis à jour. Mais le plus effrayant, c'est que je n'ai rien mis à jour récemment. Quoi qu'il en soit, j'ai commencé à résoudre le problème.
La seule option que j'avais était d'installer à nouveau Perl et ses modules.
Réinstaller Perl
Pour plus de sécurité, j'ai effectué une sauvegarde des anciens fichiers d'installation de Perl comme ci-dessous :
#mv /usr/lib/perl5 /usr/lib/perl5.bak #mv /usr/lib64/perl5 /usr/lib64/perl5.bak
Maintenant, j'ai réinstallé Perl en utilisant Yum
#yum reinstall perl
Bon, maintenant j'ai pu exécuter au moins le 'perl ' commande (ce que je ne pouvais pas faire auparavant)
# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi
Installer Perl CPAN
# perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains:
J'ai installé perl-CPAN module utilisant yum
#yum install perl-CPAN
Maintenant, le cpan a également fonctionné (sans l'erreur d'erreur de segmentation)
# cpan cpan shell -- CPAN exploration and modules installation (v1.7602) ReadLine support available (try 'install Bundle::CPAN') cpan>
Vérifier si les configurations RT sont correctes dans httpd.conf
Voici l'exemple de configuration :
NameVirtualHost rt_server:443 <VirtualHost rt_server:443> ServerName rt_server_in DocumentRoot /opt/rt3/share/html AddDefaultCharset UTF-8 PerlModule Apache::DBI PerlRequire "/opt/rt3/bin/webmux.pl" <Location /NoAuth/images> SetHandler default </Location> <Location /> SetHandler perl-script PerlResponseHandler RT::Mason </Location> ErrorLog logs/error_log SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/rt_server_cert.pem SSLCertificateKeyFile /etc/httpd/conf/ssl.key/rt_server_key.pem SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 </VirtualHost>
Démarrer le serveur httpd et mysqld :
N'oubliez pas que nous n'avons installé aucun module Perl requis pour démarrer RT. Pour savoir quels sont les modules perl nécessaires, nous allons lancer httpd server et résoudre les erreurs générées dans httpd error_log .
Comme prévu, le "httpd ' le serveur n'a pas pu démarrer et le error_log a indiqué que webmux.pl de RT nécessite les modules ci-dessous :
Remarque : Le httpd error_log ne fournira pas toutes ces informations de module à la fois, mais indiquera quel module est actuellement à l'origine du problème. Vous devrez installer un module à la fois et essayer de démarrer httpd un service. Si cela échoue, vérifiez error_log pour trouver quel module est le coupable (maintenant !). Continuez à suivre cette étape jusqu'à ce que vous ne trouviez plus aucun message d'erreur dans error_log .
Vous trouverez ci-dessous les quelques modules que je me suis souvenu de capturer pour écrire cet article. Mais vous devrez peut-être en installer plus….
Apache2/Response.pm Can't locate Log::Dispatch Params::Validate.pm Can't locate Module::Implementation Attribute::Handlers Can't locate File::ShareDir Can't locate Locale::Maketext::Lexicon [error] Base class package "Locale::Maketext::Fuzzy" is empty.\n (Perhaps you need to 'use' the module which defines that package first.)\n at /opt/rt3/bin/../lib/RT/I18N.pm line 62.\nBEGIN failed--compilation aborted at /opt/rt3/bin/../lib/RT/I18N.pm line 62.\nCompilation failed in require at /opt/rt3/bin/../lib/RT.pm line 152.\nBEGIN failed--compilation aborted at /opt/rt3/bin/webmux.pl line 102.\nCompilation failed in require at (eval 2) line 1.\n Can't locate MIME::Entity Can't locate DBIx::SearchBuilder Can't locate Email::Address Can't locate UNIVERSAL::require Text::Template Can't locate File::Slurp HTML::Element HTML::FormatText Font::Metrics::Courier Can't locate Text::Wrapper Time::ParseDate Test::EOL HTML::Scrubber Test/Memory/Cycle.pm Test/CPAN/Meta.pm Base class package "HTML::Mason::Request" is empty.\n install_driver(mysql) failed: Can't locate DBD/mysql.pm
Installer des modules Perl via CPAN
Par exemple, si le httpd error_log rapports : Impossible de localiser Log/Dispatch.pm @ INC ….alors vous devez installer ce module via CPAN comme ci-dessous
cpan> install Log::Dispatch
Remplacez la commande ci-dessus pour installer d'autres modules.
Lors de l'installation du module perl, j'ai rencontré un problème de compatibilité de version pour DBD::MySQL module. Le httpd error_log avait le message ci-dessous :
install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.031
Nous devons déplacer 'mysql ' sous '/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ et ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.
Installez maintenant 'DBD::MySQL ' à nouveau via CPAN
cpan> install DBD::MySQL
Enfin, le httpd serveur démarré et le error_log était propre sans aucun message. J'ai essayé d'accéder à la page Web de RT via un navigateur, pour ne voir qu'une boîte de dialogue me demandant d'enregistrer un fichier "dtélécharger ‘. Ufff… qu'est-ce que c'était ? J'ai vérifié le httpd error_log et il n'y avait aucun message d'aide. Tout ce que j'ai fait a été de sauvegarder le fichier "télécharger" à partir du navigateur et de l'ouvrir avec un éditeur de texte. Heureusement, il contenait un message pour vous aider :
Can't located Apache/Session/MySQL.pm @ INC....
J'ai installé 'Apache/Session/
cpan > install Apache::Session::MySQL
Page Web RT chargée sans style/CSS
Après avoir installé tous les modules Perl nécessaires, j'ai redémarré le httpd serveur et essayé d'accéder à la page Web de RT. La page chargée, mais sans style comme ci-dessous :
Pour résoudre le problème, vous devez installer un module Perl appelé 'CSS:Squish ‘
cpan > install CSS:Squish
C'est ça. J'ai pu charger la page Web RT avec succès. J'espère que ces informations pourront aider quelqu'un.
Vous pouvez également lire :Erreur RT : Mailgate undefined server error.