これまでうまく動いていた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]
にしております。
色々、過去ログをみたりぐぐってみたりしたのですが、
考えられる手はうってみたのですが、
他に考えられる原因は何かありますでしょうか?
No.9ベストアンサー
- 回答日時:
捕捉にあったURLからダウンロードしてみましたが、バージョンが違って書き方も変わっているようです。
> 2009-02-09
> サニタイジング処理を追加
とあるので、新しいものを使ったらどうですか
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などを使って徘徊)
障害は「問題の切り分け」が基本です。
ピンポイントで探るのは場数を踏んできた経験則の多い方が自身で作業する場合のやり方です。
マクロな視点から切り分けながら問題点を探ってください。
仮に無駄な作業があっても自分のスキルアップにはなるかと思います。
大変ですが、がんばって下さい。
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_b …
No.5
- 回答日時:
・アスキーモードでアップロードされましたか?
・2行目に
print "Content-Type: text/html\n\n";
と書いてみるとどうなりますか?
この回答への補足
回答ありがとうございます!
補足遅くなってしまい、申し訳ございません。
やはり同じエラーメッセージがでます・・・
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/;
違うエラーメッセージなどが出れば、それが原因です。
この回答への補足
回答ありがとうございます。
回答でいただいたように
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
で試してみたのですが、エラーメッセージは同じでした・・・
どうしたらいいでしょうか・・・
No.3
- 回答日時:
> 「/usr/local/bin/perl」に変換したのですがやはりエラーは表示されるようです。
あ、ここは、/usr/local/bin/perl か /usr/bin/perl のいずれかが正解と決めつけるのは危険かも知れません。
XREA がPerlCGIを公式に許可しているなら、どこかにどう書くべきか説明があるはずです。 探してください。
これは、とてもとても大事です。 正しいと確証が持てない状況で他の事を調べても、無駄手間になりかねません。
他にも書く事はあるのですが、まずは 1行目の正解は何かをはっきりさせてくださいね。
この回答への補足
さっそくお返事ありがとうございます!
http://www.xrea.com/?action=spec
ここでみてみたのですが、
perl : /usr/bin/perl、/usr/local/bin/perl
上記のように記載されており、両方とも正解のようです・・・
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 で可能かどうかは知りませんが、エラーログを見る事ができるなら重大なヒントが含まれてる可能性が高いです。
この回答への補足
>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ではエラーログがみれないため、原因となるヒントがよくわかりません。
何か解決法があれば、教えてください。
No.1
- 回答日時:
>これまでうまく動いていたcgiを新たに設置した.
具体的にどんなCGIなのでしょうか?
例)KENTWebさんのノーマル掲示板
http://www.kent-web.com/
など
使用しているサーバーはxreaです。
うまく動いている方も、同じサーバですか?
>考えられる手はうってみた
具体的になにをされたのでしょうか?
>他に考えられる原因
上記の情報がなれば、他も何もありません。
この回答への補足
すいません、情報を追加いたします。
使用しているサーバは同じXREAです。
以前、使用していたウェブサイトをリニューアルするにあたり
問い合わせフォームだけ同じものを使用するためコピペして
使いました。
使っているのは
http://www.synck.com/contents/download/cgi-perl/ …
を使っています。
今のところ、もともとサーバーにULした際に、パーミッションを変更することを忘れておりましたので
設置cgiを755に、設置ディレクトリを755に変更しました。
他には、現在サイトを制作中ですのでhtaccessとhtpasswordを設置しています。
設置場所は、public_html/直下で、index.html(トップページ)と同じディレクトリです。
その下に/form/としてのディレクトリを設置しており、この/form/ディレクトリ内にcgiを設置しています。
この、htaccess等が問題があるのかなと思い、削除してみたのですが
やはりこのscript errorが表示されます・・・
思いつく限り、補足してみましたが、また情報が足りない場合、
どういう情報を提示させていただけばよいか教えてください・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Trees掲示板CGI(CGI-Resque氏...
-
エクセルで集計したい。
-
ホームページでCGIのフォームを...
-
apacheでPerl CGIが作動せず、5...
-
postmail(UTF-8)でメールが文字...
-
サーバーのエラーでおしえてく...
-
CGI.pmはもう古い!?
-
フォームを再送信しますか?
-
CGI
-
/bin/awk '{print $5}'ってどう...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ApacheでのCGIについての質問
-
同じなのに結果が違う
-
CGIがうまくアップできない(50...
-
設置場所場わかりません。
-
cgi-lib.plのShort read~とい...
-
CGIエラー
-
特定URLから
-
cgiにアクセスしても画面が真っ白
-
perl:Insecure dependency in s...
-
CGIエラー
-
perlのcgiで-wTを記述するとエ...
-
JoyfulNoteの設定
-
なんでサーバーエラー??
-
CGIの設置ができない
-
CGIでのPC内でのテストで画面が...
-
何故?Forbidden
-
ケータイサイトの3社別自動振り...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
VBScriptで、ファイルから任意...
おすすめ情報