私はRequestTrackerバージョン3をかなり前から使用していて、うまく機能しました。しかし、突然RTサーバーがクラッシュし、Apacheエラーログに次のエラーメッセージが表示されました。
Attempt to free unreferenced scalar: SV 0x811ef70, Perl interpreter: 0x7f5a010 at /usr/lib/perl5/5.8.8/ExtUtils/Liblist.pm line 6. Segmentation fault
多くのperlスクリプトに問題があるように見えましたが、実際には perl およびcpan コマンドの結果、上記と同じエラーが発生しました:
# 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
解決策:
このエラーの原因はわかりませんでしたが、Googleでしばらく過ごした後、一部のPerlモジュールまたはオペレーティングシステムが更新された可能性があることを理解しました。でも怖いのは、最近何も更新しなかったということです。いずれにせよ、私は問題のトラブルシューティングを開始しました。
私が持っていた唯一のオプションは、Perlとそのモジュールを再インストールすることでした。
Perlを再インストール
安全のために、以下のように古いPerlインストールファイルのバックアップを取りました。
#mv /usr/lib/perl5 /usr/lib/perl5.bak #mv /usr/lib64/perl5 /usr/lib64/perl5.bak
今、私はYumを使用してPerlを再インストールしました
#yum reinstall perl
これで、少なくとも「 perl」を実行できました。 ‘コマンド(以前はできませんでした)
# perl -v This is perl, v5.8.8 built for x86_64-linux-thread-multi
PerlCPANをインストール
# perl -MCPAN -e shell Can't locate CPAN.pm in @INC (@INC contains:
perl-CPANをインストールしました yumを使用するモジュール
#yum install perl-CPAN
これで、cpanも機能しました(セグメンテーション違反エラーなしで)
# cpan cpan shell -- CPAN exploration and modules installation (v1.7602) ReadLine support available (try 'install Bundle::CPAN') cpan>
RT構成がhttpd.confで適切かどうかを確認します
以下は構成例です:
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およびmysqldサーバーを起動します:
RTの開始に必要なPerlモジュールはインストールされていないことを忘れないでください。必要なperlモジュールを知るために、 httpdを開始します。 サーバーを作成し、httpd error_logでスローされたエラーを解決します 。
予想どおり、「 httpd ‘サーバーの起動に失敗し、 error_log RTのwebmux.pl 以下のモジュールが必要です:
注: httpd error_log これらすべてのモジュール情報を一度に提供するわけではありませんが、現在問題を引き起こしているモジュールを示唆します。一度に1つのモジュールをインストールして、 httpdを起動してみてください。 サービス。失敗した場合は、 error_logを確認してください どのモジュールが原因であるかを確認します(今すぐ!)。 error_log にエラーメッセージが表示されなくなるまで、この手順を繰り返します。 。
以下は、この投稿を書くためにキャプチャしたことを覚えているいくつかのモジュールです。ただし、さらにインストールする必要があるかもしれません…。
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
CPAN経由でPerlモジュールをインストール
たとえば、httpd error_log レポート: Log / Dispatch.pm@INCが見つかりません …。次に、 CPANを介してそのモジュールをインストールする必要があります 以下のように
cpan> install Log::Dispatch
上記のコマンドを置き換えて、他のモジュールをインストールします。
perlモジュールのインストール中に、 DBD ::MySQLのバージョン互換性の問題が発生しました。 モジュール。 httpd error_log 以下のメッセージがありました:
install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.031
「mysql」を移動する必要があります ‘ /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD の下の‘フォルダ ‘および‘ /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI ‘。
次に、「 DBD ::MySQL」をインストールします ‘モジュールを CPAN経由で再度
cpan> install DBD::MySQL
最後に、 httpd サーバーが起動し、 error_log メッセージなしできれいだった。ブラウザからRTウェブページにアクセスしてみましたが、ファイル「d ownload」を保存するように求めるダイアログのみが表示されました。 ‘。うーん…なに? httpd error_logを確認しました 役立つメッセージはありませんでした。私がしたのは、ブラウザから「ダウンロード」したファイルを保存し、テキストエディタで開くだけでした。幸いなことに、役立つメッセージがいくつかありました。
Can't located Apache/Session/が見つかりませんMySQL.pm @ INC....
「Apache/ Session /
cpan > install Apache::Session::MySQL
RTWebページがStyle/CSSなしで読み込まれました
必要なすべてのPerlモジュールをインストールした後、 httpdを再起動しました。 サーバーを使用して、RTWebページにアクセスしてみました。ページが読み込まれましたが、以下のようなスタイルはありません:
この問題を解決するには、「 CSS:Squish」というPerlモジュールをインストールする必要があります。 ‘
cpan > install CSS:Squish
それでおしまい。 RTWebページを正常にロードできました。この情報が誰かに役立つことを願っています。
次のようにも読むことができます:RTエラー:メールゲートの未定義サーバーエラー。