実現したいこと
"Hello World”と出すだけの簡単なPerl(他のサーバでは動いていることを確認)で、404エラー、エラーログには"End of script output before headers"が出るのですが、その原因の解明がしたいです。
発生している問題・分からないこと
専用サーバで、
Perl:5.26.3
を動くようにしてもらっております。
サーバ移行の仕事なのですが、
今まで動いていたPerlで作成されたCGIが動かそうとすると「404エラー」となります。
Perlが動いているのか確認するために
Perl
1#!/usr/local/bin/perl 2use strict; 3use warnings; 4print "Content-type: text/html\n\n"; 5print "Hello World!";
というプログラムを作成して、サーバにアップ、パーミッションは755で動かしてみたところ、
404エラーのままであり、
エラーログには
End of script output before headers
が出ておりました。
エラーメッセージ
error
1End of script output before headers
該当のソースコード
Perl
1#!/usr/local/bin/perl 2use strict; 3use warnings; 4print "Content-type: text/html\n\n"; 5print "Hello World!";
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
CGIが動かなくなる原因として検索してでてきた内容は一つずつ、つぶしてみました。
(1)1行目にPerlへのパスはサーバ会社に確認して入れました
(2)FTPの転送時には「テキストモード」で転送しました。
(3)改行コードはLFにしていますし、他の改行コードも確かめました。
(4)1行目のパスに--を入れて改行コードをコメント化する方法も確かめました。
(5)パーミッションは755,705,700で試してみました。
(6)cgiファイルの入ってるディレクトリに、以下のコードを記入した.htaccessを入れてみました。
Options -Indexes Options +ExecCGI AddType application/x-httpd-cgi .cgi .pl .pm AddHandler cgi-script cgi pl pm
他に何か試してみることがあったら教えてください。
サーバ会社には問い合わせたのですが、「Perl」は入れている、としか報告がありません。
補足
特になし

回答1件
あなたの回答
tips
プレビュー