今日、初めて利用するWEBサーバーでCGIがerror500になった。
CGIは基本的にちょっとでも記述ミスがあるとこれが出てしまうのだが、
今回使おうとしたCGIは他のサーバーで既に動作確認をしていたものだ。
色々試してみると、改行をLFに修正した上で、
バイナリモードで転送してみると、正常にCGIが動作することがわかった。
わたしはFFFTPでは拡張子が.cgiのものはアスキーモードで転送するようにしているので、
手元のファイルがCR+LFになっていても、サーバーのファイルはLFに変換されるはず。
なのにどうもアスキーモードでの転送が行われていないんじゃないだろうか…?
というわけで、また色々調べてみた。
すると、どうもサーバーの設定でアスキーモードの許可がされていないと、
FFFTPや他のソフトでクライアントがどんなにアスキーモード設定をしていても、
バイナリモードで転送されてしまうようなのだ。
というわけで、サーバー管理者に以下の設定変更を依頼してみた。
vsftpdでAsciiモードによる、アップロード/ダウンロードを許可
vsftpd設定ファイルは、/etc/vsftpd.confあるいは/etc/vsftpd/vsftpd.conf
ascii_upload_enable=YES ←先頭の#を削除
ascii_download_enable=YES ←先頭の#を削除
設定完了後にCGIを転送してみた結果、
無事に今まで通りのアスキーモード転送でCGIが動作するようになった。
今まであんまり改行のCRとかLFとか気にもしてなかったけど、
今回はその違いが身にしみてよくわかりましたとさ…(笑)
