Ich benutze Request Tracker Version 3 seit geraumer Zeit und es hat großartig funktioniert. Aber plötzlich stürzte der RT-Server ab und das Apache-Fehlerprotokoll hatte die folgende Fehlermeldung:
Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6. Segmentation fault
Es schien, als hätten viele der Perl-Skripte Probleme und tatsächlich perl und cpan Befehle ergaben den gleichen Fehler wie oben:
# 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
Lösung:
Ich war mir nicht sicher, was diesen Fehler verursacht hätte, aber nachdem ich mich einige Zeit mit Google beschäftigt hatte, wurde mir klar, dass einige der Perl-Module oder das Betriebssystem möglicherweise aktualisiert wurden. Aber das Beängstigende ist, dass ich in letzter Zeit nichts aktualisiert habe. Wie auch immer, ich habe begonnen, das Problem zu beheben.
Die einzige Option, die ich hatte, war, Perl und seine Module erneut zu installieren.
Perl neu installieren
Sicherheitshalber habe ich wie folgt eine Sicherungskopie der alten Perl-Installationsdateien erstellt:
#mv /usr/lib/perl5 /usr/lib/perl5.bak #mv /usr/lib64/perl5 /usr/lib64/perl5.bak
Jetzt habe ich Perl mit Yum
neu installiert#yum reinstall perl
Gut, jetzt konnte ich zumindest das 'perl ausführen ‘ Befehl (was ich früher nicht konnte)
# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi
Installieren Sie Perl CPAN
# perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains:
Ich habe perl-CPAN installiert Modul mit yum
#yum install perl-CPAN
Jetzt funktionierte auch der cpan (ohne den Segmentierungsfehler)
# cpan cpan shell -- CPAN exploration and modules installation (v1.7602) ReadLine support available (try 'install Bundle::CPAN') cpan>
Überprüfen Sie, ob die RT-Konfigurationen in httpd.conf korrekt sind
Unten ist die Beispielkonfiguration:
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>
httpd- und mysqld-Server starten:
Denken Sie daran, dass wir kein Perl-Modul installiert haben, das zum Starten von RT erforderlich ist. Um zu wissen, welche Perl-Module erforderlich sind, starten wir httpd server und lösen Sie die Fehler, die in httpd error_log geworfen werden .
Wie erwartet ist die Datei „httpd ‘ Server konnte nicht gestartet werden und das error_log angegeben, dass webmux.pl von RT erfordern die folgenden Module:
Hinweis: Das httpd error_log wird nicht alle diese Modulinformationen auf einmal bereitstellen, aber es wird darauf hingewiesen, welches Modul derzeit das Problem verursacht. Sie müssen jeweils ein Modul installieren und versuchen, httpd zu starten Service. Wenn dies fehlschlägt, überprüfen Sie error_log um herauszufinden, welches Modul der Übeltäter ist (jetzt!). Führen Sie diesen Schritt so lange aus, bis Sie keine Fehlermeldungen mehr im error_log finden .
Unten sind die wenigen Module, an die ich mich erinnert habe, um diesen Beitrag zu schreiben. Aber Sie müssen möglicherweise mehr installieren….
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
Perl-Module über CPAN installieren
Wenn zum Beispiel httpd error_log Berichte: Kann Log/Dispatch.pm @ INC nicht finden ….dann müssen Sie dieses Modul über CPAN installieren wie unten
cpan> install Log::Dispatch
Ersetzen Sie den obigen Befehl, um andere Module zu installieren.
Während der Installation des Perl-Moduls stieß ich auf ein Versionskompatibilitätsproblem für DBD::MySQL Modul. Das httpd error_log hatte die folgende Nachricht:
install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.031
Wir müssen „mysql“ verschieben ‘-Ordner unter ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ und ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.
Installieren Sie nun ‘DBD::MySQL ‘-Modul erneut über CPAN
cpan> install DBD::MySQL
Schließlich der httpd Server gestartet und das error_log war sauber ohne irgendwelche Nachrichten. Ich habe versucht, über den Browser auf die RT-Webseite zuzugreifen, aber es wurde nur ein Dialogfeld angezeigt, in dem ich aufgefordert wurde, eine Datei zu speichern, die ownload ist ‘. Uff…was war das? Ich habe das httpd error_log überprüft und es gab keine hilfreiche Nachricht. Alles, was ich getan habe, war, die Datei „Download“ aus dem Browser zu speichern und sie einfach mit einem Texteditor zu öffnen. Glücklicherweise hatte es eine hilfreiche Nachricht:
Can't located Apache/Session/MySQL.pm @ INC....
Ich habe „Apache/Session/
cpan > install Apache::Session::MySQL
RT-Webseite ohne Style/CSS geladen
Nachdem ich alle notwendigen Perl-Module installiert hatte, startete ich den httpd neu Server und versuchte, auf die RT-Webseite zuzugreifen. Die Seite wurde geladen, aber ohne Stil wie unten:
Um das Problem zu beheben, müssen Sie ein Perl-Modul namens „CSS:Squish installieren ‘
cpan > install CSS:Squish
Das ist es. Ich konnte die RT-Webseite erfolgreich laden. Ich hoffe, diese Informationen könnten jemandem da draußen helfen.
Sie könnten auch lesen:RT error :Mailgate undefined server error.