• ベストアンサー

Script Errorがでます。(過去ログ検索済)

これまでうまく動いていたcgiを新たに設置したのですが 下記のようなエラーがでます。 Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. 使用しているサーバーはxreaです。 パーミッションは 設置cgi[755] にしております。 色々、過去ログをみたりぐぐってみたりしたのですが、 考えられる手はうってみたのですが、 他に考えられる原因は何かありますでしょうか?

  • CGI
  • 回答数9
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • mattalix
  • ベストアンサー率62% (47/75)
回答No.9

捕捉にあったURLからダウンロードしてみましたが、バージョンが違って書き方も変わっているようです。 > 2009-02-09 > サニタイジング処理を追加 とあるので、新しいものを使ったらどうですか

その他の回答 (8)

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.8

動作していたスクリプトが環境を変えると動作しなくなる原因は大きく2点考えられます。 1.設置操作ミス  ・FTPソフトのダウンロード・アップロード操作に起因する自動改行や文字コードの変化  ・パーミッション(CGIだけでなくCGI周りを含む)  対応策:   アップロードしたファイルに変化がないことを確認する   パーミッションの設定をひととおり確認する 2.実行環境が変わった。  ・CGI実行環境のサーバ側の仕様変更:システム(OSなど含む)、クライアントの実行権限、ファイルシステムなどなど  ・対象言語のバージョン変更  対応策:   「Hello World!」など単純なCGIで動作確認してみる。   FormMailソフト付属のチェックツール「check.cgi」で確認してみる。   CGIサーバアナライザ(futomi)などのツールで実行環境(権限・環境変数・モジュール)を把握し、アノニモス権限などを確認する。   べたなやり方ですが、くだんのCGIにトラップを仕掛けて実行してみてエラー内容を確認する    perlに「-c」「-w」「-d」などのオプションをつけて実行してみる    USEやREQUIREの直後に「print "Content-type: text/plain\n\n";」などを入れてエラーメッセージを画面に直接表示させてみる     →大体これで判明することは少ないので、要所要所に「print "here OK Line No.".__LINE__."\n";」などと入れて実行してみる   SSHが使えるようなのでHTTPのエラーログを探ってみる(TeraTermなど端末ソフトの経験がないならWinSCPなどを使って徘徊) 障害は「問題の切り分け」が基本です。 ピンポイントで探るのは場数を踏んできた経験則の多い方が自身で作業する場合のやり方です。 マクロな視点から切り分けながら問題点を探ってください。 仮に無駄な作業があっても自分のスキルアップにはなるかと思います。 大変ですが、がんばって下さい。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.7

> パーミッションは > 設置cgi[755] > にしております。 http://www.xrea.com/?action=spec には > ■推奨パーミッション > ・実行ファイル:0700(rwx------) 以上 > CGIは必ず正しいパーミッションで設置してください。 というちょっと意味不明な記述がありますが、承知の上の 755 でしょうか? # 経験則や一般論より、正規の説明書を優先しましょう。

回答No.6

>No.5 > やはり同じエラーメッセージがでます・・・ Content-Typeヘッダを出して動かないなら、単に文法エラーがあるだけでしょう。 Windowsをお使いなら、PCにActivePerlなどをインストールして、 スタートメニューの「ファイル名を指定して実行」に"command"と入力してコマンドプロンプトを出し、 C:\>perl -c C:\path\send.cgi と入力してそのメッセージに従ってデバッグするしかないと思います。

参考URL:
http://www.synck.com/contents/download/support_bbs/
回答No.5

・アスキーモードでアップロードされましたか? ・2行目に print "Content-Type: text/html\n\n"; と書いてみるとどうなりますか?

ritzkun
質問者

補足

回答ありがとうございます! 補足遅くなってしまい、申し訳ございません。 やはり同じエラーメッセージがでます・・・ send.cgiの中身の冒頭はこうなっています。 ***************************************************************** #!/usr/local/bin/perl←ここが1行目です。 print "Content-Type: text/html\n\n"; ←先ほどのん ## 2007-04-28 Ver.5.2 require 'jcode.pl'; #use Jcode; #server check (SPAM CHECK) $this_server = $ENV{'SERVER_NAME'}; #CGIソース内で設定する場合は下記に書きます。 #※HTMLで設定している場合無視されます。 $sendmail = '/usr/local/bin/perl'; @mailto = ('xx@xxxxxxxx.com'); ***************************************************************** ディレクトリの構成は public_html/xxxxx/.htaccess .htpassword index.html L/form/index.html send.cgi jcode.pl mailform.js L/postcode/←これは郵便番号のデータです。 わかりずらい文面かもわかりませんが、こんな構成にしてます。 念のため、.htaccess等が原因との過去ログでありましたので それも検証するため、一度削除してみたのですが、結果は同じでした・・・ どうかお力をお貸し下さい・・・・

回答No.4

・アップロードするときにテキストモード(アスキーモード)でアップロードしていますか? ・「\」の記号が、バックスラッシュではなくUTF-8の\マークになっていませんか? ASCIIコードではバックスラッシュは0x00A0、円マークは0x005Cです。 1行目から2行目に以下を書いて実行してみて下さい。 #!/usr/local/bin/perl use CGI:Carp qw/fatalsToBrowser/; 違うエラーメッセージなどが出れば、それが原因です。

ritzkun
質問者

補足

回答ありがとうございます。 回答でいただいたように send.cgiの1行目から2行目にかけて #!/usr/bin/perl ↑これから   ↓これに #!/usr/local/bin/perl use CGI:Carp qw/fatalsToBrowser/; かえてみましたが、結果はエラーメッセージは同じでした・・・ ためしに、 #!/usr/local/bin/perl use CGI:Carp qw/fatalsToBrowser/; から「use CGI:Carp qw/fatalsToBrowser/;」をはぶき #!/usr/local/bin/perl で試してみたのですが、エラーメッセージは同じでした・・・ どうしたらいいでしょうか・・・

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.3

> 「/usr/local/bin/perl」に変換したのですがやはりエラーは表示されるようです。 あ、ここは、/usr/local/bin/perl か /usr/bin/perl のいずれかが正解と決めつけるのは危険かも知れません。 XREA がPerlCGIを公式に許可しているなら、どこかにどう書くべきか説明があるはずです。 探してください。 これは、とてもとても大事です。 正しいと確証が持てない状況で他の事を調べても、無駄手間になりかねません。 他にも書く事はあるのですが、まずは 1行目の正解は何かをはっきりさせてくださいね。

ritzkun
質問者

補足

さっそくお返事ありがとうございます! http://www.xrea.com/?action=spec ここでみてみたのですが、 perl : /usr/bin/perl、/usr/local/bin/perl 上記のように記載されており、両方とも正解のようです・・・

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.2

エラーメッセージの > The script did not produce proper HTTP headers. がまずは重要です。 HTTP headers はこの場合レスポンスヘッダで、大抵は Content-Type: を含みます。 CGI は、これを最初に STDOUT に出力せねばなりません。 エラーメッセージは、それが無いと言っているのです。 よくある原因は... 1 1行目の誤り #! /usr/bin/perl か #! /usr/local/bin/perl かはサーバーにより正解が違います。 2 コンパイルエラー インストール済のモジュールが違う場合もコンパイルエラーになります。 Perl標準のモジュールも自分でインストールしたモジュールもともに容疑者です。 3 クラッシュ CGIがレスポンスヘッダの出力前にクラッシュしても、やはりこうなります。 XREA で可能かどうかは知りませんが、エラーログを見る事ができるなら重大なヒントが含まれてる可能性が高いです。

ritzkun
質問者

補足

>1 1行目の誤り >#! /usr/bin/perl か #! /usr/local/bin/perl かはサーバーにより正解 >が違います。 ここに関しては、もともと「 /usr/bin/perl」とあったものを 「/usr/local/bin/perl」に変換したのですがやはりエラーは表示されるようです。 2 コンパイルエラー インストール済のモジュールが違う場合もコンパイルエラーになります。 Perl標準のモジュールも自分でインストールしたモジュールもともに容疑者です。 3 クラッシュ CGIがレスポンスヘッダの出力前にクラッシュしても、やはりこうなります。 2,3に関しては、正直ちょっとわかりません。(難読なため・・・) 2に関しては、perlはもともとあったものを設置しております。 jcode.plとなっております。 特になにもいじっていません。 3に関しては、クラッシュしている場合はどうすればよいでしょうか? サーバー側に問題がある可能性もXREAの場合、否めない部分もありますので可能性としては、それも疑っています。 ただ、XREAではエラーログがみれないため、原因となるヒントがよくわかりません。 何か解決法があれば、教えてください。

  • zyakkaru
  • ベストアンサー率15% (11/73)
回答No.1

>これまでうまく動いていたcgiを新たに設置した. 具体的にどんなCGIなのでしょうか? 例)KENTWebさんのノーマル掲示板 http://www.kent-web.com/ など 使用しているサーバーはxreaです。 うまく動いている方も、同じサーバですか? >考えられる手はうってみた 具体的になにをされたのでしょうか? >他に考えられる原因 上記の情報がなれば、他も何もありません。

ritzkun
質問者

補足

すいません、情報を追加いたします。 使用しているサーバは同じXREAです。 以前、使用していたウェブサイトをリニューアルするにあたり 問い合わせフォームだけ同じものを使用するためコピペして 使いました。 使っているのは http://www.synck.com/contents/download/cgi-perl/mailform.html を使っています。 今のところ、もともとサーバーにULした際に、パーミッションを変更することを忘れておりましたので 設置cgiを755に、設置ディレクトリを755に変更しました。 他には、現在サイトを制作中ですのでhtaccessとhtpasswordを設置しています。 設置場所は、public_html/直下で、index.html(トップページ)と同じディレクトリです。 その下に/form/としてのディレクトリを設置しており、この/form/ディレクトリ内にcgiを設置しています。 この、htaccess等が問題があるのかなと思い、削除してみたのですが やはりこのscript errorが表示されます・・・ 思いつく限り、補足してみましたが、また情報が足りない場合、 どういう情報を提示させていただけばよいか教えてください・・・

関連するQ&A

  • Script Error

    http://www.eternal-battle.net/ にアクセスできますか? 自分は行こうとすると Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. とでます。 どうすればいけるようになるんでしょうか?

  • Script Error

    http://www.eternal-battle.net/ に行こうとすると Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. とでてしまいます。 Windows98 でIE6です。 ここ何日間できません。 セキュリティソフトの影響でリダイレクトやポップアップの拒否があったのかもしれませんがどうやって調べたらいいか分かりません。 お願いします。

  • Movable Typeでインストール作業を仕様と思ったらインストールウィザードの最初でエラーができました!

    すみません。以下のようなエラーができました。なにかしらファイルが足りないのでしょうか?2,3個同時にサイトを制作してて他のサイトはインストールうまくいったのですが1つだけエラーがでてしまうんです。 宜しくお願いします。 Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file.

  • アンケートCGIについて

    よろしくお願い致します。 ホームページにアンケートを設置したく、http://www.rescue.ne.jp/cgi/weban/ にあるCGIをダウンロードさせて頂いたのですが、必要なファイルを全てサーバーにアップしたのですが、an.cgiが正常に動作しません。 an.cgiにアクセスしたときに表示されるエラーメッセージは、以下のようになっております。 ---------------------- Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. ---------------------- サーバーはxreaを使用しており、パーミッションは705(xrea推奨)でアップしています。他のcgi(メールフォー等)も同様のパーミッションでアップして正常に動作しているので、パーミッションの問題ではないと思うのですが..。 何が原因なのか、お分かりになる方がいらっしゃいましたら、どうかご教授下さいますようお願い致します。

    • ベストアンサー
    • CGI
  • perlのcgiで、変数の中身を表示させたい

    cgiで変数の中身を表示させたい perlのcgiで変数の中身を表示させたいのですが、うまくいきません ▽環境   レンタルサーバ ▽やりたいこと   通常のブラウザ画面に、変数の中身を表示させたい ▽現状   use Data::Dumper;   print Dumper($hoge));もしくは、warn Dumper $hoge;   とすると、下記エラーとなります Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. 指示に従い、.htaccessへ、AddHandler cgi-script-debug .cgiを追記すると、ズラズラ出てきたと何か出てきた中の一行に、変数の中身が表示されます ■質問事項   ▼変数の中身を確認する際、いちいち.htaccessへ追記するのが面倒なのですが、どうやって回避するのでしょうか?   ▼なぜ、変数の中身を確認しようとしただけで、Script Errorとなるのでしょうか?   ・書き方を間違えている?   ・書く場所を間違えている?   ・レンタルサーバの仕様?   ・perlのcgiだから? イメージしてるのは、PHPのvar_dumpなのですが…

    • ベストアンサー
    • Perl
  • FuelPHPをXREAのレンタルサーバーで使う

    FuelPHPをXREAのレンタルサーバーで動かしたいのですが http://d.hatena.ne.jp/suno88/20131006/1381040481#20131006f2 このサイトの手順通りにやったのですが、下のようなエラーが出ました。 Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .phpdextension, or add a AddType application/x-httpd-phpcgi-debug .phpline to your .htaccess file. どうすれば良いの全くかわかりません。お願いします。 PHP5.4.7 FuelPHP1.7.2

    • 締切済み
    • PHP
  • Movable Type 4.23のインストール

    新規でMovable Type 4.2のインストールを行いました(サーバーはXREA+独自ドメイン)。 mt-check.cgiを実行すると、バックアップに関連する二つのモジュール(IO::Uncompress::Gunzip、IO::Compress::Gzip)は不足しているものの、 『ログイン』→『Movable Typeへようこそ』→『システムチェック:必要なPerlモジュールは揃っています。』まで問題なく進みます。 しかし、『システムチェック』画面で「次へ」をクリックすると === Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. === となってしまい、次に進めません。 Web上のドキュメントを色々調べたところ、いくつか解決方法が載っていたのでやってみました。 1)パーミッションを「755」ではなく「777」にする 2)mt-config.cgiを作成して、mt.cgiからアクセスする 1)は全く変化がありませんでした。 2)は、アップグレードと判断されてしまうのか、まだ設定していない「ユーザ名」と「パスワード」を求められ、それ以上先に進めません。 自分ではきちんとやっているつもりなのですが、どうにも….htaccessファイルも削除して、複数回削除、インストールを試してみましたがだめでした。 以前使っていたMTは3なので、多少不安に思っているのがパーミッションです。サーバーUPした時はフォルダは自動で「755」になるので、後は/mt/直下の.cgi(14ファイル)を「755」にするだけとの解釈ですが、合っていますでしょうか? 解決方法、試してみたほうが良いこと、チェックすべきことがありましたら、ご教授いただきたく、よろしくお願いいたします。

  • error_logファイルの中身で教えて・・「 Premature end of script headers: 」

    Perl初心者です。 Perlでスクリプトを書いてます。 うまく動かないのでerr_logファイルを見ると下記の内容になっています。 [error] (2)No such file or directory: exec of /home/***/***.cgi failed [error] [client **.**.**.**] Premature end of script headers: home/***/***.cgi これは何を意味しているのでしょうか?(何処が悪いのでしょうか)教えて下さい。

    • ベストアンサー
    • Perl
  • レンタルサーバで、error.logが見たい

    Rubyで作成したCGIをレンタルサーバに置いて実行すると、"500 Internal Server Error"になってしまいます。 Apacheでいうところのerror.logを見れば、デバックの助けになるのかと思いますが、私が借りている無料レンタルサーバでは、error.logを見ることが出来ません。 無用のレンタルサーバで、error.logを見ることの出来るサーバをご存知でしたら、紹介して下さい。 もしくは、代替案ございました、教えてください。

  • script headers って?

    NO.202703の質問をしたものです。 1.Premature end of script headers: c:/www/public_htm/up_file.cgi 2.String found where operator expected at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 59, near "open INDD1, "$indd1"" 3.syntax error at c:\WWW\PUBLIC~1\UP_FIL~1.CGI line 58, near "open(INDD1, "$indd"" 4.Execution of c:\WWW\PUBLIC~1\UP_FIL~1.CGI aborted due to compilation errors. 2.3.4.のエラーについては、解決?できました。 (エラー行をコメント(#)にしたりしてるうちに・・・原因はよくわかりませんでしたが・・・) 1.のエラーの意味がわかりません。  script headers って何のことなんでしょうか? ※ このエラーログはApacheのサーバーのログです ※ このCGIは、フォームデータを受けっとてファイルを更新するようになっています。

    • ベストアンサー
    • Perl

専門家に質問してみよう