• 締切済み

自作したサーバーでperlが動かない

この度、centos5.3で自宅サーバーを組んだのですが、どうしてもある記述をしたperlのプログラムが動作しません。 他の記述方法であれば、問題なく動作します。 内容としては、htmlをOPENで読み込んで、出力させるだけの単純な物です。 なにか設定が悪いのでしょうか? なお他のサーバーでは、同じプログラムは動作します。 perlのバージョンは、5.8.8です。 記述の内容は次の通りです。 ********************************* #!/usr/local/bin/perl open(HTML, "test.html"); @log = <HTML>; close(HTML); print "Content-type: text/html\n\n"; print <<"EOF"; @log EOF exit; ********************************* エラーログには、Premature end of script headers: test.cgiとなっています。 もちろん、test.htmlファイルも存在します。 どなたかお教え頂けませんでしょうか? 宜しくお願いします。

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.5

うーん。まさかとは思いますが、 test.html ファイルは perl CGI スクリプトと 同じディレクトリにありますか。

回答No.4

ん? パーミッションが644って どの権限でも実行不可になってるけど?

  • uwi
  • ベストアンサー率74% (55/74)
回答No.3

suEXEC機能を使っていませんか? suEXEC サポート http://httpd.apache.org/docs/2.0/ja/suexec.html ↑に書いてあるようにsuEXECの権限チェックは非常に厳しいのでsuEXECを使っている場合は注意が必要です。

参考URL:
http://httpd.apache.org/docs/2.0/ja/suexec.html
noname#246547
noname#246547
回答No.2

ファイルの改行コードがCRLFになっていませんか? #!/usr/bin/perl -- にするとどうなりますか?

nabeoja
質問者

補足

改行コードをLFにしても、--を足しても状況は変わらずでした。 サーバーへの転送は、Sambaを設定してあるので、エクスプローラーでアップしました。やはりFTPでアップしないとダメとかあるのでしょうか?

回答No.1

Perl自身のパスと そのスプリクトの置いてあるディレクトリの パスは通ってますか?

nabeoja
質問者

補足

もちろんパスも通っております。 同じフォルダに置いた、簡易なテスト用CGIは動作をしておりました。 ですので余計に原因不明な感じです。 プログラムから、htmlをOPENで開いても取得出来てないような感じなのです。 htmlのパーミッションは644に設定してます。

関連するQ&A