• 締切済み

PerlでFTPアクセスし指定ファイルをアップデートしたい

先日質問してから、いろいろと調べて、okwebのサイト検索から以下の内容を発見しました。 「サーバー間でファイルコピーしたい」 http://okwave.jp/qa2052204.html 試しに以下のプログラムをサーバーに設置して実行いたしました。 (ここから) #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use Net::FTP; $ftp = Net::FTP->new('サーバー名'); $ftp->login("ユーザーID", "パスワード"); $ftp->cwd('cm'); $ftp ->ascii(); $ftp->get("index.html"); $ftp ->binary(); $ftp->get("top.jpg"); $ftp->quit; exit; (ここまで) 500のサーバーエラーが表示されるのですが、サーバーにデータはダウンロードされました。 このエラーが表示されたのになぜ動作しているのか? と、エラーができなくなるにはどうしたらよいでしょうか?

みんなの回答

回答No.3

それでいいはずだけど?エラー表示はどうなりました? Content-type:text/html は細かいけど、一応スペースじゃね? Content-type: text/html あんま影響ないと思うけど・・・ 追加した部分を削除してもう一度試してみ? それで成功すればその部分が影響してるって事だけど 特に気になる点はみられないな。 この場合エラーは報告されないからわからないけど FTPあたりでネットワークエラーが発生してるのかもね。 suexecとかどっかのログとか見れば分かるのかもわからんけど。

hihin2003
質問者

補足

JavaJavax2さん 回答ありがとうございます。 >それでいいはずだけど?エラー表示はどうなりました? エラーのまま変化がありません。 >Content-type: text/html >あんま影響ないと思うけど・・・ これも試してみましたがダメでした。 >この場合エラーは報告されないからわからないけど >FTPあたりでネットワークエラーが発生してるのかもね。 そうかもしれませんね。 ちっょと違うサーバーでやってみて同じ結果かどうか試して見たいと思います。 ありがとうございます。

  • mattalix
  • ベストアンサー率62% (47/75)
回答No.2

>このエラーが表示されたのになぜ動作しているのか? httpdから実行されたプログラム自体は正常に動いたが、 httpdが当然期待してるプログラムからのoutputがないので、 httpdから見たらプログラムは正常に動作してない だからエラー扱いして500を出した >と、エラーができなくなるにはどうしたらよいでしょうか? まっとうにoutputを出す No.1は一般論としては良いですが今回のケースでは少し違います

hihin2003
質問者

お礼

mattalixさん 回答ありがとうございます。 >まっとうにoutputを出す なるほど。例えば printで表示させるとかすればよいのでしょうか? (ここから) #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use Net::FTP; $ftp = Net::FTP->new('サーバー名'); $ftp->login("ユーザーID", "パスワード"); $ftp->cwd('cm'); $ftp ->ascii(); $ftp->get("index.html"); $ftp ->binary(); $ftp->get("top.jpg"); $ftp->quit; print "Content-type:text/html; charset=Shift_JIS\n\n"; print "おしまい\n"; exit; (ここまで) としたのですが、今度は何もダウンロードできなくなってしまいました。(汗) なんなんだったのでしょうか? 何がどうおかしくなったのかわかりません。

  • kyotokyo
  • ベストアンサー率35% (27/77)
回答No.1

エラー番号500は Internal Server Errorと呼ばれており CGI等の処理に間違いがある場合に発生するエラーとなります。 サーバーによって ActivePerlの設定等が違うので一概にいえませんが モジュールに問題が発生しているか 文法ミスのどちらかだと思います。 一行ずつソースを消したり加えたりしながら どの行でエラーが出ているのか特定するしかないと思います

hihin2003
質問者

お礼

kyotokyoさん 回答ありがとうございます。 通常500エラーの場合は、何も処理されないかな? と思っていたので、ちょっと不思議でした。 回答感謝いたします。

関連するQ&A

専門家に質問してみよう