perlのcgiがInternal server errorで全く動かない。errorlogを見てみると
Premature end of script headers: ~
(2) No such file or directory: exec of ' ~
と出力されている。
これはなんぞと調べてみて分かったことは、なにやらFTPで転送した際にcgiの改行コードがLFではなくCR+LFになっていたため、ファイル先頭のperlパスにいらない文字(この場合CR)がくっついて、perlがみつからないというエラーだった。
FTPクライアントはFFFTPを使っていて、特に文字コードうんぬんの設定はない。サーバに合わせて改行コードを変更してくれるはずなんだけど、上手く動いていないみたい。ぶっちゃけバイナリモードで改行コードLFのcgiを転送すれば動作するんだろうけど、いちいちCR+LFをLFにするのも面倒です。
ということでサーバ側に何か設定がないか調べてみた。centosのftpはvsftpdのようなので、/etc/vsftpd/vsftpd.confを開いてみる。ありましたasciiなんちゃらの設定。コメントアウトされていたのでコメントを外し、YESに設定を変更し、サーバを再起動。めでたくLFに変更されて転送されました。
0 件のコメント:
コメントを投稿