作業ログの部屋

自宅サーバでの作業ログを公開。何かの時に便利・・・かも。


テーマ:

前回、Internal Errorで実行できなかったので、画面のメッセージに従って、/usr/local/apache/logsのerror_logを見てみました。

出ていたエラーは、

Can't locate RRDs.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/5.8.5
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5
/usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.3
/usr/lib/perl5/site_perl/5.8.2
/usr/lib/perl5/site_perl/5.8.1
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5
/usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.3
/usr/lib/perl5/vendor_perl/5.8.2
/usr/lib/perl5/vendor_perl/5.8.1
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl .) at
/usr/local/www/cgi-bin/mrtg-rrd.cgi line 37.
BEGIN failed--compilation aborted at /usr/local/www/cgi-bin/mrtg-rrd.cgi line 37.
[Thu Oct 20 17:49:03 2005] [error] [client 219.11.2.32] Premature end of script headers: /usr/local/www/cgi-bin/mrtg-rrd.cgi
(少し見た目を加工してます)

用は、RRDs.pmが@NICで指定された場所にない!と言ってるようです。

で、どこにあるのかというと、

# find / -name RRDs.pm
/usr/local/rrdtool-1.2.10/lib/perl/5.8.5/i386-linux-thread-multi/RRDs.pm
/home/shige/Desktop/package/rrdtool-1.2.10/bindings/perl-shared/RRDs.pm
/home/shige/Desktop/package/rrdtool-1.2.10/bindings/perl-shared/blib/lib/RRDs.pm

でした。

/usr/local/rrdtool-1.2.10/lib/perl/5.8.5/i386-linux-thread-multi/RRDs.pm

がちゃんとインストールされた場所になるようです。

んで、cgiの中をよく見ると、

# Location of RRDs.pm, if it is not in @INC
# use lib '/usr/lib/perl5/5.00503/i386-linux';

とかかれてました。つまり、@NIC以外にある場合は、use libで設定しろと。

んで、早速設定しました。

use lib '/usr/local/rrdtool-1.2.10/lib/perl/5.8.5/i386-linux-thread-multi';
use RRDs;

(use RRDs;の前で定義する必要があるようです)


そんで、ブラウザからhttp://www.sleepingforest.dyndns.info/cgi-bin/mrtg-rrd.cgi/ にアクセスすると、無事画面が表示されました。

念のためerror_logを見ると、いくつかのpngファイルがないと言ってるようですが、MRTGのロゴの部分なので、後で適当にコピーでもしておきましょう。

問題は、これで本当にグラフが書かれるのかなんだけどな・・・。

で、グラフが生成されるか確認したところ、書き込みに関するアクセス権がないので、、、というエラーが・・・。

これか~~~~!

ってことで、グラフイメージが作成されるディレクトリ書き込みのアクセス権を付与。

これで!

と思ったら、ダメ。

で、すでにMRTGが生成していたイメージファイルを一度削除したら、うまくい行きました。

MRTGはrootで生成されていたのが、cgiから生成されるとapacheで定義したwww-dataってユーザで作成されるんやね。ほぇ~


AD
いいね!した人  |  コメント(0)  |  リブログ(0)

shige2006さんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。