• 締切済み

CGIスクリプトのブラウザから実行エラー

OS:  RedHatLinux7.2 perl -v :  This is perl, v5.6.2 built for i686-linux HttpErrLog:  display: Unable to connect to X server ().  Premature end of script headers: /XXX/XXX/XXX.cgi GD::Graphを用いたperlスクリプトをブラウザから実行すると、 上記のようなエラーとなってしまいます。 コマンドでの実行では問題無く動作します。 「print」のみの簡易cgiで試行しましたが、問題なく実行されます。 cgiのパーミッションも確認しました。 ソースは以下の通りです。 作業が進まなくて困っています。 どなたかお知恵をお貸しください。 perl.cgi: --------------------------------------------------------- #!/usr/bin/perl -- use strict; use GD::Graph::bars; my @xLabels = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ); my @data2002 = qw( 17 19 26 38 56 64 67 53 40 29 21 13 ); my @data2003 = qw( 19 24 27 41 56 69 75 60 44 33 22 15 ); my @data = ( \@xLabels, \@data2002, \@data2003 ); my $graph = GD::Graph::bars->new( 800, 600 ); $graph->set( title => "Rainfall 2002/2003", y_label => "Millimetres" ); my $image = $graph->plot( \@data ) or die( "Cannot create image" ); open( OUT, "| display -") or die( "Cannot display image: $!" ); binmode OUT; print OUT $image->png(); close OUT; ---------------------------------------------------------

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 私はPerlもGD::Graphも良く分からんのだが、Apache(を実行しているユーザ)がXサーバに接続できないと書かれていますな。  Xが自由に使えればよいんだけど・・・・Xfbとか使う必要があるかも知れんです。Redhat 7.2にあるかどうかは分からんですが・・・・。 ・Xfbで:10あたりのディスプレイを開く。 ・apacheを起動する時かcgiを実行する時かにDISPLAY=localhost:10.0という環境変数を設定する。  この辺はXの基礎が無いとかなりつらいと思う。

bibicq
質問者

お礼

ありがとうございます。 Perlの記述に関する問題であることが判明し、 記述の修正で解決いたしました。 ご指摘のXに関する基礎、これから勉強していきます。

関連するQ&A