• ベストアンサー

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

  • RedHat Linux9のWebサーバーでのPerlの設定

    RedHat Linux9でWebサーバーをつくり公開しています。 今度、Perlを使ってCGIプログラムもアップしたいと思っています。しかし、RedHat Linux9でのPerlの設定が分かりません。私の持っている本ではPHPの設定なら載っていたのですが、Perlは載っていません。WEB上で設定方法を探して見たのですが見つかりませんでした。 どなたかPerlの設定方法を教えて下さい。 あと、RedHat Linux9ならPerlは標準で入っていますよね。。どこを見れば分かるのでしょうか。。

  • Linuxサーバーのcgi-binの中のgifやindex.htmが表示されない

    RedHat Linux9でWebサーバーをつくり、Perlを使ってCGIプログラムもアップしています。しかし、CGIプログラムは動いているのですが、cgi-binの中に入っているフォルダのgifファイルやindex.htmのファイルが表示されません。何が原因でしょうか。。 設定は特にいじってないです。

  • UNIX上で文字コードの一括変換はできますか?

    UNIX上で、文字コードを変換したいのですが、今まではSJISからEUCといった変換にnkfを使用してきましたが、nkfだと1ファイル毎でしか文字コードを変換できませんでした。1行のコマンドでそのディレクトリ内の全てのファイルの文字コードを変換してくれるコマンドはありますでしょうか? UNIX上で実現できれば、Perlでもなんでも結構です。よろしくお願いします。

  • エクセルでファイル保存の際に改行コードをUnixまたはDOSにするには?

    エクセル98を使用しています。 ホームページの中のコンテンツの中で、データベース検索があり、そのデータベースはエクセルで編集管理しております。 保存したファイルをそのまま、サーバにアップしても改行コードがCRとなっており、CGIで読み込む事ができないので、毎回エクセルで保存したあとはJeditで改行コードをDOS(CR+LE)にして保存しなおしています。 エクセルでファイルを保存する際に、改行コードをUnix(LE)かDOS(CR+LE)にして保存する事はできないでしょうか? 毎回Jeditで改行コードを変更してから、サーバにアップするのでは1つ手間ですので。 アドバイスをお願い致します。

    • ベストアンサー
    • Mac
  • UNIXとLinuxやFreeBSD

    こんにちは、とても初歩的な質問ですみません。 CGIやUNIXを勉強するために、OSのUNIXをインストールしたいのですが、本などを見てるとUNIXのフリーソフトはLinuxやFreeBSDとかがあるとか書いているのですが,これは行ったいどういうことなのでしょうか? Windowsで言うところのOSはどれもWindowsだけど、バージョンで98、Me,2000があるといった違いなのでしょうか? もしそうであれば、CGI、UNIXを勉強するのにどのOSをインストールするのがお勧めか教えていただけませんか?お願いします。 CGIではBBSをはじめ、通販の買い物カゴやデータベースまで勉強しようと思っています。 UNIXはサーバーの構築とPHPを使ったデータベース構築、ネットワークの構築をしようと思っています。 後CGIやUNIXの勉強にお勧めの書籍やサイトなどあれば教えて下さい。お願いします。 質問の意味がわかりにくいかもしれませんが、お願いします。

  • Linux? Unix?

    こんにちは、この度はたあいの無い質問ですが よろしくお願いします。 実は、私が入りたかったネットワークの会社に 就職することができました。しかし、元々デザ インの仕事をしていたためさっぱりわかりませ ん。面接時にどういうOSを使うのか聞いたとこ ろLinux(Unix?)が使えるようにならないとだめ とのことでした。まずはじめにコマンドを覚え てくださいと言われてしまいました。 そこで質問なのですが、LinuxとUnixの違いや、 LinuxでもRedhatやVanlinuxなどいろいろあり ましたが、どのページも初級はほとんど飛ば して説明しているページがほとんどです。 どうか、一からソフトの入手法やインストール 方法、コマンドの説明をしているページや書籍 があれば教えてください。よろしくお願いします。

  • Linuxにperlをアップする際の改行コード?

    こんにちは。フリーのメールCGIをテストでFedoraCore1にnextFTPでアップしたところサーバーエラーが出たので色々しらべていたら1行目のパスに #!/usr/bin/perl -- のように--を追加すると動作OKになりました。 これは改行コードがWInがCRLFでLinuxがLFということなのでという解答なのですが疑問があります。 ↓参照 http://oshiete1.goo.ne.jp/kotaeru.php3?q=767872 nextFTPは自動でテキストかバイナリを判別しますよね。 試しにもうひとつのRedHatには--をいれずにアップしたら何の問題もなく動作します。 この違いはいったい? おわかりの方がいらっしゃいましたらご教授おねがいします。

  • Linux・Windows間の文字コード変換方法を教えて下さい

    Linuxの携帯電話(i-mode)向けのWebサーバを立上げ、WindowsのPCからHTMLファイル等を更新することを考えていますが、文字コードの変換方法がよく判りません。変換方法、ツール等を教えて頂けないでしょうか。

    • ベストアンサー
    • HTML
  • Linuxサーバにファイルを置いた場合、自動にメールを発信したいです

    RedHat Linux9 でサーバを構築しています。このLinuxのサーバ上にカンマ形式のテキストファイルを置いた場合、CGIプログラムを使ってWeb表示することはできるかと思うのですが、それを更に応用してメールを発信したいと思っています。そうゆう場合、どのにしたら良いでしょうか?良い知恵をお貸し下さい。または、実際にどこかで使用していてサンプルがあるところがあれば教えて下さい。

  • unix-c と linux-c の違いは?

    以前unix-cの仕事をしていましたが今度linux-cの仕事をすることに なりました。 以前:unix(solaris)C言語 今回:linux(redhat)C言語 この2つの大きいな違い等がありましたらおしえてください。