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
これは何を意味しているのでしょうか?(何処が悪いのでしょうか)教えて下さい。
No.4ベストアンサー
- 回答日時:
すでにレスがついていますが...
■No such file or directory: exec of
まず、「No such file or directory」の中でも、「exec of」の場合、Perlへのパスが間違っているため実行できないという場合が多いです。
同じ意味で、改行コードがLFでない場合も、制御コードが最後に続いてしまうため、このエラーがでます。
先頭のパスが#!/usr/bin/perl等、正しいか、改行コードがLFか確認してください。
#1や#2でかかれている、スクリプト中の他のファイルやCGIのパスの間違いでは、関数がエラーを戻すだけで、スクリプトのエラーにはなりませんので、今回は違うかと思います。
(dieするように自分で書いた場合は別ですが。)
■Premature end of script headers
これは、retrさんの書かれたとおりです。
Content-type: text/html
という行を出力する前にエラーでCGIが終了すると全てこのエラーが表示されるので、ほとんと手掛かりになりません。
ちなみに、上の「No such file or directory: exec of」のエラーが解決されても、他にエラーがあれば、またこれが表示されることも考えられます。
#以上、動いているCGIをわざと間違えて検証したので、間違っていないと思います...
私も開発中はパスにwオプションをつけることをお勧めします。
ご回答有難う御座います。
大変詳しく、感謝します。皆さんのご指摘に沿って、
調べ直します。
お礼のご返事送れて申しわけありません。
gooからの自動メッセージが、不具合なのか、届_なかったので、
気が付きませんでした。
No.3
- 回答日時:
追加です。
改行コードはLF(UNIXタイプ)になっていますか?
特に、先頭の
#!/usr/bin/perl
の終わりにCRがついていると、同様のエラーが出ます。windows、mac等で編集された場合、要注意です。LFで保存するか、FTPをアスキーモードでupしてください。
あと、#1さんの回答ですが、
HTTPヘッダーが不完全な場合は、
malformed header from script
と出力されます。
この場合は、そこまでいっていないので、直前の処理のせいとは言い切れませんね。
No.2
- 回答日時:
Premature end of script headers
は、HTTPレスポンスヘッダの出力前にスクリプトが終了してしまっているというエラーで、CGIのエラーとしては、一般的過ぎて、なにが悪いか分かりません。
とにかく、途中にエラーでとまっていることしか分からないです。
No such file or directory: exec of /home/***/***.cgi failed
とありますが、スクリプト中で他のCGIをexecしてますか?
ファイルやディレクトリのパス(場所)が間違ってないか確認してください。
あと、先頭の/usr/bin/perl等を
/usr/bin/perl -w
に変えて実行したときのエラーログはどうなっているでしょう?
-wをつけて表示されたのが、質問の中のメッセージでした。
皆さんのご指摘で、場所が何となくつかめそうなので、調べ直します。
お礼のご返事送れて申しわけありません。
gooからの自動メッセージが、不具合なのか、届_なかったので、
気が付きませんでした。
No.1
- 回答日時:
> [error] [client **.**.**.**] Premature end of script headers: home/***/***.cgi
“ Premature end of script headers” = 「スクリプト・ヘッダーの早すぎる終わり」 = HTTPヘッダーが不完全。
だから、httpdがエラーを報告してます。理由は、その直前の処理のせい。
> [error] (2)No such file or directory: exec of /home/***/***.cgi failed
なんかファイルが無いと言われてます。だからCGIが異常終了してるのでしょう。
“No such file or directory”は、UNIXの標準エラーコードENOENT(errno=2)についての、最も一般的なエラーメッセージですね。
参考URL:http://httpd.apache.org/docs/howto/cgi.html#buti …
有難う御座いました。
何となく理解できました。
お礼のご返事送れて申しわけありません。
gooからの自動メッセージが、不具合なのか、届_なかったので、
気が付きませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(プログラミング・Web制作) python fbprophetについて 1 2022/09/29 19:44
- その他(プログラミング・Web制作) Arduinoに関する質問 4 2023/08/07 21:19
- オープンソース php-Laravelのインストールについて 1 2022/08/13 01:08
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのrequireの動き方について...
-
よくある 『 第○(1・2・3・4・...
-
月の第一週とは
-
VBAでExcelのヘッダーに文字列+...
-
燃えるゴミの日は何曜日ですか?
-
エクセルで毎月第2週日の水曜日...
-
毎○曜日って、使いますか?
-
土曜日の26時って何曜日の何時...
-
クライアントのIPとマシン名を...
-
apacheでPerl CGIが作動せず、5...
-
エクセルで相対パスの書き方を...
-
平日朝の国道246線混雑状況につ...
-
VBA。複数のChangeイベントをま...
-
「曜日」の名前、変えるとしたら?
-
DBを10件毎に表示ページング...
-
c言語の質問です。 ある月のカ...
-
cgiで拡張子.cgiと拡張子.pl...
-
バイナリファイルのアップロー...
-
指定曜日にMsgBox表示は可能で...
-
[C#]ListView一覧表示時の幅設...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiとplとpm
-
perlのrequireの動き方について...
-
jcode.plが読み込めない
-
自CGIのURLのパス部分を取得す...
-
Perlソースを2つのファイルに分...
-
Perlのデバッグ方法って。。。...
-
mt-check.cgiでForbiddenエラー...
-
webからroot権限のコマンドを実...
-
useとrequireでエラー
-
画像のURLの変数を別のCG...
-
Quantifier follows nothing in...
-
require文が実行できない
-
コマンドラインでGET or POSTで...
-
apacheのCGI設定について教えて...
-
Not Found 404エラー時のCGI出力
-
htmlからテキストを返すperlを...
-
perlのcgiで、変数の中身を表示...
-
use CGI
-
フォームでインクリメント入力→...
-
Internal Server Error
おすすめ情報