Už nějakou dobu používám Request Tracker verze 3 a fungovalo to skvěle. Náhle se však server RT zhroutil a protokol chyb Apache měl níže uvedenou chybovou zprávu:
Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6. Segmentation fault
Zdálo se, že mnoho perlových skriptů mělo problémy a ve skutečnosti perl a cpan příkazy měly za následek stejnou chybu jako výše:
# 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
Řešení:
Nebyl jsem si jistý, co by tuto chybu způsobilo, ale po nějaké době strávené na Googlu jsem pochopil, že některé moduly perlu nebo operační systém mohly být aktualizovány. Ale děsivé je, že jsem nedávno nic neaktualizoval. Každopádně jsem začal problém řešit.
Jedinou možností, kterou jsem měl, bylo znovu nainstalovat Perl a jeho moduly.
Přeinstalujte Perl
Pro jistotu jsem si udělal zálohu starých instalačních souborů Perlu, jak je uvedeno níže:
#mv /usr/lib/perl5 /usr/lib/perl5.bak #mv /usr/lib64/perl5 /usr/lib64/perl5.bak
Nyní jsem znovu nainstaloval Perl pomocí Yum
#yum reinstall perl
Dobře, teď se mi podařilo spustit alespoň ‘perl ‘ příkaz (což jsem dříve nebyl schopen)
# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi
Instalovat Perl CPAN
# perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains:
Nainstaloval jsem perl-CPAN modulu pomocí yum
#yum install perl-CPAN
Nyní cpan také fungoval (bez chyby segmentace)
# cpan cpan shell -- CPAN exploration and modules installation (v1.7602) ReadLine support available (try 'install Bundle::CPAN') cpan>
Zkontrolujte, zda jsou konfigurace RT správné v httpd.conf
Níže je ukázková konfigurace:
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>
Spusťte server httpd a mysqld :
Pamatujte, že jsme nenainstalovali žádný modul Perl, který je nutný ke spuštění RT. Abychom věděli, jaké moduly perlu jsou potřeba, začneme httpd serveru a vyřešte chyby vyvolané v httpd error_log .
Jak se očekávalo, „httpd “ se nepodařilo spustit server a error_log uvedl, že webmux.pl společnosti RT vyžadují níže uvedené moduly:
Poznámka: httpd error_log neposkytne všechny tyto informace o modulu najednou, ale napoví, který modul aktuálně způsobuje problém. Budete muset nainstalovat jeden modul po druhém a zkusit spustit httpd servis. Pokud selže, zkontrolujte error_log zjistit, který modul je viníkem (teď!). Pokračujte v tomto kroku, dokud v error_log nenajdete žádné chybové zprávy .
Níže je uvedeno několik modulů, které jsem si zapamatoval zachytit pro psaní tohoto příspěvku. Ale možná budete muset nainstalovat více….
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
Instalovat moduly Perl přes CPAN
Například pokud httpd error_log zprávy : Nelze najít Log/Dispatch.pm @ INC ….pak musíte tento modul nainstalovat pomocí CPAN jak je uvedeno níže
cpan> install Log::Dispatch
Nahraďte výše uvedený příkaz a nainstalujte další moduly.
Během instalace modulu perl jsem narazil na problém s kompatibilitou verzí pro DBD::MySQL modul. httpd error_log měl níže uvedenou zprávu:
install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.031
Musíme přesunout ‘mysql složka ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD ‘ a ‘/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘.
Nyní nainstalujte ‘DBD::MySQL “ modul znovu přes CPAN
cpan> install DBD::MySQL
Nakonec httpd server spuštěn a error_log byl čistý bez jakýchkoli zpráv. Pokusil jsem se přejít na webovou stránku RT přes prohlížeč, ale zobrazilo se mi pouze dialogové okno s žádostí o uložení souboru ‘dstáhnout ‘. Ufff...co to bylo? Zkontroloval jsem httpd error_log a neobsahovala žádnou zprávu, která by pomohla. Vše, co jsem udělal, bylo uložit soubor „stáhnout“ z prohlížeče a otevřít jej pomocí textového editoru. Naštěstí to mělo nějakou zprávu, která měla pomoci:
Can't located Apache/Session/MySQL.pm @ INC....
Nainstaloval jsem ‘Apache/Session/
cpan > install Apache::Session::MySQL
Webová stránka RT načtena bez stylu/CSS
Po instalaci všech potřebných modulů Perl jsem restartovalhttpd server a pokusil se o přístup na webovou stránku RT. Stránka se načetla, ale bez jakéhokoli stylu, jak je uvedeno níže:
Chcete-li problém vyřešit, musíte nainstalovat modul Perl s názvem „CSS:Squish ‘
cpan > install CSS:Squish
A je to. Podařilo se mi úspěšně načíst webovou stránku RT. Doufám, že tyto informace mohou někomu pomoci.
Můžete si také přečíst:Chyba RT :Nedefinovaná chyba serveru Mailgate.