- 締切済み
自作したサーバーで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ファイルも存在します。 どなたかお教え頂けませんでしょうか? 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- t-okura
- ベストアンサー率75% (253/335)
うーん。まさかとは思いますが、 test.html ファイルは perl CGI スクリプトと 同じディレクトリにありますか。
- nizyuuichi
- ベストアンサー率24% (137/562)
ん? パーミッションが644って どの権限でも実行不可になってるけど?
- uwi
- ベストアンサー率74% (55/74)
suEXEC機能を使っていませんか? suEXEC サポート http://httpd.apache.org/docs/2.0/ja/suexec.html ↑に書いてあるようにsuEXECの権限チェックは非常に厳しいのでsuEXECを使っている場合は注意が必要です。
ファイルの改行コードがCRLFになっていませんか? #!/usr/bin/perl -- にするとどうなりますか?
- nizyuuichi
- ベストアンサー率24% (137/562)
Perl自身のパスと そのスプリクトの置いてあるディレクトリの パスは通ってますか?
補足
もちろんパスも通っております。 同じフォルダに置いた、簡易なテスト用CGIは動作をしておりました。 ですので余計に原因不明な感じです。 プログラムから、htmlをOPENで開いても取得出来てないような感じなのです。 htmlのパーミッションは644に設定してます。
補足
改行コードをLFにしても、--を足しても状況は変わらずでした。 サーバーへの転送は、Sambaを設定してあるので、エクスプローラーでアップしました。やはりFTPでアップしないとダメとかあるのでしょうか?