- ベストアンサー
ウイルスでしょうか?
cgiを使ったサイトを作っているのですが、 plというディレクトリにあるa.cgiというファイルを Windowsで編集して、サーバーにアップロード し、plにもともとあった、a.cgiと置き換えたところ 突然それまで正常に動作していたサイトにエラーが発生しました。 すぐにもともとあったa.cgiに置き直したのですが、エラーは直りません。 エラーの内容は an error occurred while processing this directive という文字がいくつかサイトの画面に移り画像以外の他の文字が消えてしまったのと、あと、ページを移動しようとするとInternal Server Error なります。 fedora core3を使っていて、ドキュメントルートに設置しているほかのサイトは正常に動いています。 また、編集したa.cgiはWindows上では正常に動作していました。 a.cgiを置き換えた以外は一切何もしていません。 どうかよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、C言語等で書き、コンパイルされたものではなく、スクリプトレベルということであれば、そのウィルスに犯されるということはまずありえませんので安心してください。 > アパッチのaddcharasetもEUC-JPにしています。 CGIスクリプトでは自分でヘッダを出力するのでこの設定は全く意味が内容に思いますが・・・。 Perlであれば、 print "Content-Type: text/html; charset=EUC-JP\n\n"; という記述がなければ、その時点でエラーとなってしまうでしょう。 あと、サーバ環境がSJISなんてことはないですか? 最近はUNIX機でもHP-UXなど、SJIS環境で動作するものが多く存在します。このような環境ではスクリプトもSJISとしてアップロードする必要があると思いますが。
その他の回答 (3)
- Lean
- ベストアンサー率72% (435/603)
ちなみにそのエラーになった時に、Apacheのエラーログ(/var/log/httpd-error.logだったかな)に何か出力されていますか?
- Lean
- ベストアンサー率72% (435/603)
>エラーの内容は >an error occurred while processing this directive >ページを移動しようとするとInternal Server Error どちらもスクリプトのエラーによるものだと思います。 エラー内容から考えられのは、 ・a.cgiを置き換えた時のパーミッションに問題がある ・a.cgiをバイナリモードで転送している ・スクリプトファイル内で文法的に誤った記述をしている あたりですかね。
お礼
お久しぶりですLeanさん。 度々すみませんが、よろしくお願いいたします。 パーミッションについては、調べましたが、スクリプトの作者の推奨のものに設定しています。そして、これまではその設定で動いていました。 また、EUC-JPとLFにしてファイルは転送しています。 アパッチのaddcharasetもEUC-JPにしています。 最後にスクリプトの文法的なエラーに関しては、私は正常に動いていたときからa.cgiを置き換えた以外は一切書き換えては居ません。そして、エラーが出たので 元のa.cgiファイルにまた置きなおしています。 いったい何なのでしょうか? 自分では何もやったつもりはないので本当に見当がつきません。ウイルスという可能性はないのでしょうか? 御指示のほうよろしくお願いいたします。
- taka_pre
- ベストアンサー率32% (146/451)
モードの問題ではないでしょうか? バイナリーとASCIIの間違いかと・・・。
お礼
ご回答ありがとうございます。何とか解決することができました。