回答日: 2012-09-25
質問
「画像付 ニュース更新ツール」の導入を検討しておりますが、ローカルで機能・動作確認を行おうとしても、うまくいきません。具体的には、
「Server error!
サーバ内部で障害が発生し、リクエストに応えることができませんでした。
Error message:
Premature end of script headers: admin.cgi
サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。
Error 500
」
と表示されます。
ローカル環境は、
WindowsXP Pro SP2
Perlのバージョン 5.010000 (5.10.0)
ローカルHTTPサーバ Apache
(XAMPP Windows版 Version 1.6.6a)
なお、サイト内のtest.cgiをダウンロードし、当方の同じディレクトリにおいた場合は実行でき、それでadmin.cgiをテストしても文法的に問題なしでした。
当方のローカルのPerlはc:\perlに保存してあり、もちろんadmin.cgiとtest.cgiの1行目のパスをWindows用に変更することは行っております。
上記内容をご確認の上、解決法のアドバイスをよろしくお願いいたします。
また、当方にてadmin.cgiをEmeditorにて開いて修正したところ、下のほうのソース部分が一部コメントのように認識されておりますが、問題ないのでしょうか?。これにつきましても、あわせてアドバイスをよろしくお願いいたします。
なお、StepByStepマニュアルで記載されているWEB上でのエディタツールで変更・保存した場合でも同様にエラーとなったことをあわせてお伝えしておきます。
以上、よろしくお願いいたします。
投稿日時: 2008-03-23 22:48
回答
■エラーについていくつか考えられる確認点を挙げますのでお手数ですがご検証お願い致します。
なお、Perl の最新版 5.10 系では最終的に適合性がない可能性もありますので、予めご了承下さい。
----------------------
【2012年9月25日追記】「すぐ使えるCGI」製品 Ver. 3.0 から Perl バージョン5.10 に対応しました。各製品の最新の対応状況は、製品の説明ページの「動作環境」をご参照下さい。
----------------------
◇1.CGI.pm モジュール の確認
動作には Perl モジュール CGI.pm が必要です。
test.cgi の結果画面にモジュールが利用可能かが表示されますので、もし「利用可能」と表示されていなければ追加でインストールして下さい。
◇2.サーバエラーログの確認
より細かい原因のエラーメッセージが Apache のエラーログに書き出される筈ですので、何か情報が出ていましたらお手数ですがそのログを合わせて再度お問合せ下さい。
◇3.コマンドラインからの実行
設置した admin.cgi をコマンドプロンプトから実行してみて下さい。
例)>c:\perl\bin\perl.exe admin.cgi
正常に実行できれば HTTPヘッダとHTMLコードが出力される筈です。
ほぼ期待通りの出力が出る場合、問題はウェブサーバとのやり取り部分にありますが、CGI.pm モジュールが出力するヘッダがウェブサーバが期待するヘッダの形式と適合していない場合があります。
この場合、Perl のダウングレードをご検討下さい。
エラーメッセージなどが表示される場合は、お手数ですがその出力を合わせて再度お問合せ下さい。
■エディタでの認識について
> admin.cgiをEmeditorにて開いて修正したところ、下のほうのソース部分が
> 一部コメントのように認識されておりますが、問題ないのでしょうか?
エディタの認識は設定によっても変わりますので、具体的に見ないと何とも申し上げられませんが、文法チェックでエラーが無いのであれば問題ないかと思います。
もしエラーが解消しないなどの問題でその点のさらなる検証が必要な場合、エディタで開いた時のスクリーンショットと、編集中のファイルをメールでお送り下さい。
◆いただいた入力からの変更点
タイトルに環境情報を追記しました。
回答日: 2012-09-25