人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxでの改行コードの質問です。
現状、cgiを動かす時に、CRLFだと500エラーになり、
LFであれば動作できるようにしてあります。
os:centOS4.5 apache2+proFTPD が環境です。
エラーなく動作させるには、ローカルからLFで上げればよいだけですが、
CRLFでも動作できるサーバがあるので同じようにできればと思っています。
理想は、LFでもCRLFでもFTPクライアントから意識しないで済む状況です。
なんとなくproFTPDの設定のような気もするのですが、文献が見つかりません。


●質問者: kou32rr
●カテゴリ:コンピュータ インターネット
✍キーワード:CGI FTPクライアント LF Linux OS
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● b-wind
●50ポイント ベストアンサー

小人さんへの置き手紙: shebang とは

Internal Server エラーになる原因は1行目の開業コードに CR があるとコマンドラインとして認識できないため。

OSがどう解釈するかなので、FTP は関係ない。


FTPServer 側でどう設定しても BINARY モードで転送されるとそのまま通すしかないので、

FTP クライアントで ASCII モードで転送するようにするしかないのでは?

◎質問者からの返答

ありがとうございます。聞いてよかったです。

そうかもしれません。基本的なことが分かっていない可能性大です。。。

FFFTPで転送モード自動切換えにしておけば、転送前にかかわらず動きました。。。


2 ● znz
●15ポイント

CGIの内容をどういう言語で書いているのかによりますが、perlやrubyなら1行目を

#!/usr/bin/perl --

#!/usr/bin/ruby --

のように「--」というオプションをつけておくと「--(CR)」というオプションでも無視してくれるのでCRLFでもLFのみでも動くと思います。

http://perldoc.jp/docs/perl/5.8.4/perlrun.pod

◎質問者からの返答

参考になりました。


3 ● JULY
●15ポイント

CGIの設置と起動

ffftp の転送モード自動切り替えは、拡張子で FTP の転送モードを ASCII モードにするか、バイナリモードにするかを判断しています。Web コンテンツであれば、HTML や CGI はテキストモードでアップしたいけど、GIF や JPEG はバイナリでアップしたい、というのが通常ですので、拡張子を見て転送モードを切り替える、という「FFFTP の機能」であって、FTP プロトコルが自動的に切り替えてくれるものではありません。

FTP の ASCII モード、バイナリモードの切替はあくまでもクライアント側から要求するものなので、FTP サーバ側で切り替えることは基本的にはありません。

ただ、Redhat でデフォルトになっている vsftpd の場合は、初期状態では ASCII モードによる転送が無効になっているため、vsftpd の設定で ASCII モードの転送を有効にしないと、常にバイナリモードで転送されます。

ProFTPD の設定項目の一覧を見ましたが、vsftpd のように転送モードを固定するような設定項目は見つけられませんでした。近いのは「DefaultTransferMode」ですが、これはあくまでもデフォルトの転送モードの設定なので、違うと思います。

◎質問者からの返答

vsftpdで転送モードの設定記事は見たのですが、

ProFTPDでの記事はみあたらなかったので投稿してみました。

とりあえず今回はFFFTPで自動切換えで済みましたので、

解決としたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ