電子書籍の厳選無料作品が豊富!

コマンドラインからだと作成されるpngファイルがブラウザからだと作成されません。
ブラウザにデバッグ用のprint文は、表示されます。
http://localhost/~.../sample.pl
を実行しても、
ブラウザに hello-helloが表示されるだけで、
file.pngが作成されません。
file.pngをブラウザから作成するには、どうしたら良いのでしょうか?

よろしくお願いいたします。


コマンドラインからだと、gnuplotで作成されたfile.pngが作成されます。
bash-3.2$ perl sample.pl
Content-type:text/html
hello-hello


使用したプログラムは、以下のとおりです。

< sample.pl >
#! /usr/bin/perl
print "Content-type:text/html\n\n";
#use strict;
#use warnings;

use CGI;
use Chart::Gnuplot;

my $chart = Chart::Gnuplot->new(
output => "file.png"
);

my $dataSet = Chart::Gnuplot::DataSet->new(
datafile => "test.data"
);
print "hello-hello\n";

$chart->plot2d($dataSet);

A 回答 (1件)

あくまで一般論ですが, CGI として動かすときとコマンドラインから実行するときとではディレクトリや実行ユーザ, あるいはパスなんかが違うことは多いと思うので, コマンドラインから実行してちゃんと動いたとしても「CGI として動作するかどうか」は別問題だったりします.



perl 内部でエラーチェックができるとか, あるいはログにエラーが出ていれば容易に解決できそうなんだけど....
    • good
    • 0
この回答へのお礼

Tacosan さま

回答、ありがとうございます。
error_logには、何も出力されないので困っていました。

パスの指定をプログラムに加えたところ、ブラウザからpngファイルを作成出来ました。
$ENV{PATH}='/opt/local/bin';


行き詰まっていて、初めてWEBサイトに質問してみました。
最初の問題が解決できて嬉しいです。
今後も利用させていただきます。

ありがとうございました!!

お礼日時:2013/01/18 14:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!