- PR -

RedHat9でperlが動かない

投稿者投稿内容
jack_pma
常連さん
会議室デビュー日: 2002/11/15
投稿数: 35
お住まい・勤務地: 埼玉
投稿日時: 2003-08-22 11:19
RHLの9なら私もちょっと引っかかりました。
CGIスクリプトはFTPでアップロードしてサーバに置いていますか?
だとすると、(今手元にないので詳しく覚えてないのですが)RHL9のftpサーバはデフォルトではASCIIモードでのアップロードが禁止されていたように記憶してます。

それも、アップロード時にエラーを起こすとかではなく黙ってバイナリでアップロードされてしまうのでなかなか気がつきませんでした。

ftpdのconfファイルの中に、ASCIIでのアップロード禁止が指定されているので、それを外す必要があります。
手元に環境がある方ならこれで解りますかね?もしわからなければ、後で自宅に戻ってから確認して書き込みます。
Marionette
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 70
投稿日時: 2003-08-22 12:32
引用:
charsetはShift_JISです。Windowsでファイルを作っています。
charset〜の後に改行も2つ入れています。


WindowsだとデフォルトではCRLFになりますがその点は大丈夫ですか?

jack_pmaさんが指摘されているように asciiモードで転送しないとトラブルの元です。
(binaryモードでアップロードすると改行コードが変換されません。)

RH9側の転送したファイルの改行コードが '0d 0a' になっていないか hexedit等の
バイナリエディタで確認してください。
インストールされていなければ変換コマンドで強制的に変更しても OKです。

---------
※追記
# cat -v test.cgi
で確認できるようです。CRLFだと末尾に '^M'がくっついてます。
----------

# dos2unix test.cgi だったかな?
または

# mv test.cgi test.cgi.orig
# tr -d '\r' < test.cgi.orig > test.cgi

引用:
この書き方でもプロバイダのサイトでは動いているのです。


もちろん、動くものはあっても動きます。


[ メッセージ編集済み 編集者: Marionette 編集日時 2003-08-22 13:37 ]
Marionette
ベテラン
会議室デビュー日: 2003/08/08
投稿数: 70
投稿日時: 2003-08-22 12:34
2003-08-18 11:01付投稿の「ファイルがたくさんあってたいへん」ということなら
findやsedなどを組み合わせてスクリプトを書けば簡単にできます。
たぶん10分もあれば終わるでしょう。


[ メッセージ編集済み 編集者: Marionette 編集日時 2003-08-22 12:47 ]
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-08-22 22:19
jack_pmaさんこんにちは。

おっしゃるとおり、
vsftpdのデフォルト設定で、ASCII転送が無効になっていました。
WindowsからffftpでASCIIモードでアップロードしても
エラーにならないので気づきませんでした。

/etc/vsftpd/vsftpd.conf の中の、
#ascii_upload_enable=YES
#ascii_download_enable=YES
のコメントを外して、restartし、アップロードしなおしたら
見事表示されました。ありがとうございます。

スキルアップ/キャリアアップ(JOB@IT)