• ベストアンサー

dos2unix(コード変換)をしなくてもも済むLinuxの設定

RedHat Linux9でWebサーバーをつくり、Perlを使ったCGIプログラムもアップしています。しかし、CGIプログラムはWindowsで作成し、Linuxにアップしているので、そのままだとコードが違い表示されないので、 dos2unix < DOS_FILE >UNIX_FILE とLinux側でやってコードを変換しています。 これをいちいちやらないようにするためにはどうすれば良いのでしょうか。 何かをLinuxにインストールするなどしたら大丈夫になりますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

最近この質問が多い理由にやっと気がつきました。 問題は vsftpd の初期設定(ASCIIモードでの転送が許可されない)にあるようです /etc/vsftpd.conf を編集して、以下の行のコメントを外すと良いかもしれません #ascii_upload_enabled=YES #ascii_download_enabled=YES

ponsuke777
質問者

補足

やってみましたが、だめでした。 編集後、再起動もしてみましたが。。 購入したサーバーだと、dos2unixをやらなくてもいいのですが、私が構築したサーバーだとdos2unixをやらないとだめです。何か設定をしなくてはいけないみたいです。

その他の回答 (4)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.5

ほう,そうですか.今手元で検証したら, ・vsftpdをrpmでインストール -> ASCII転送が出来ない. ・ascii_upload_enabled=YES を有効にして vsftpd を再起動 ・FFFTPで再度ファイルをアップロード で,ASCII転送ができることを確認しました.ファイルをいったん削除する必要もありませんでした. きっと,何かつまらないミスをしているのでしょうね.

ponsuke777
質問者

お礼

何度もご回答、ありがとうございました。 他のPCでやってみたらうまくいきました。 astronautさんのご回答で良いようです。 ただ、なぜか私のPCでがうまくいかない。。 別のPCからvsftpd.confのみを上書きしてやってみたりもしたのですが。。 何か違うミスをおかしているようです。

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.4

http://oshiete1.goo.ne.jp/kotaeru.php3?q=644185 の方は, ・vsftpdの設定変更 ・一度ファイルを削除して再度アップロード でうまくいったようですが. 相変わらず手元では確認してないので悪しからず.

ponsuke777
質問者

補足

>vsftpの設定を変更しtest.cgiをアップし、サーバも立ち上げなおしました。それでもうまくいかなかったので、サーバにあるtest.cgiを削除し再度転送しなおしたら見れるようになりました。(muxicさん) とありますが、たぶんこの方は、 >なお,転送後に改行コードを変換するには,dos2unixという便利なコマンドがあります。(astronautさん) とあるので、それをやったのではないでしょうか。。 私がvsftpd.confを編集御後、再起動し、cgiのファイルを新たにアップしましたが、 cat -v でファイルを見たところ、^Mというのが一杯、でてきました。

  • gaktank
  • ベストアンサー率65% (23/35)
回答No.2

私の場合、 (1)FTPが使える場合はアスキーモードで転送 (2)FD等で持ち込む場合は、一旦秀丸でEUCモードで保存 を使い分けてます。 アップロードするときにコード変換する(1)、 Windowsで作成する時点でコード変換しておく(2)、 ですね。

ponsuke777
質問者

補足

エディタはQXを使用しています。QXでEUCとCFで保存し、 FTPソフトはFFFTPを使用しています。ホストの設定の文字コードのところで、 ホストの漢字コードはEUC(半角カナを全角に変換)にし、 ファイル名の漢字コードもEUC(半角カナを全角に変換)にしました。 転送はcgiはアスキーモード転送になっています。 しかし、それでは直っていませんでした。なぜでしょうか?

回答No.1

最初にWindows側でCGIを作成する際に、UNIX形式(文字コードEUC/改行コードLF)で保存できるエディタを利用するのが一番簡単だと思います。 EUC+LFに対応しているエディタでもっともメジャーなのは、おそらく"秀丸"だと思います。 秀丸を利用するのであれば、ファイルを保存するときに"EUC(改行=LF)"を選択して保存を行えば、そのままLinux側で利用することが出来ます。

参考URL:
http://www.vector.co.jp/soft/win95/writing/se086280.html
ponsuke777
質問者

補足

エディタはQXを使用しています。QXでEUCとCFで保存し、 FTPソフトはFFFTPを使用しています。ホストの設定の文字コードのところで、 ホストの漢字コードはEUC(半角カナを全角に変換)にし、 ファイル名の漢字コードもEUC(半角カナを全角に変換)にしました。 転送はcgiはアスキーモード転送になっています。 しかし、それでは直っていませんでした。なぜでしょうか?

関連するQ&A