• ベストアンサー

ウイルスでしょうか?

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を置き換えた以外は一切何もしていません。 どうかよろしくお願いいたします。

  • yukiz
  • お礼率77% (208/269)

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

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.4

まず、C言語等で書き、コンパイルされたものではなく、スクリプトレベルということであれば、そのウィルスに犯されるということはまずありえませんので安心してください。 > アパッチのaddcharasetもEUC-JPにしています。 CGIスクリプトでは自分でヘッダを出力するのでこの設定は全く意味が内容に思いますが・・・。 Perlであれば、 print "Content-Type: text/html; charset=EUC-JP\n\n"; という記述がなければ、その時点でエラーとなってしまうでしょう。 あと、サーバ環境がSJISなんてことはないですか? 最近はUNIX機でもHP-UXなど、SJIS環境で動作するものが多く存在します。このような環境ではスクリプトもSJISとしてアップロードする必要があると思いますが。

yukiz
質問者

お礼

ご回答ありがとうございます。何とか解決することができました。

その他の回答 (3)

  • Lean
  • ベストアンサー率72% (435/603)
回答No.3

ちなみにそのエラーになった時に、Apacheのエラーログ(/var/log/httpd-error.logだったかな)に何か出力されていますか?

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

>エラーの内容は >an error occurred while processing this directive >ページを移動しようとするとInternal Server Error どちらもスクリプトのエラーによるものだと思います。 エラー内容から考えられのは、 ・a.cgiを置き換えた時のパーミッションに問題がある ・a.cgiをバイナリモードで転送している ・スクリプトファイル内で文法的に誤った記述をしている あたりですかね。

yukiz
質問者

お礼

お久しぶりですLeanさん。 度々すみませんが、よろしくお願いいたします。 パーミッションについては、調べましたが、スクリプトの作者の推奨のものに設定しています。そして、これまではその設定で動いていました。 また、EUC-JPとLFにしてファイルは転送しています。 アパッチのaddcharasetもEUC-JPにしています。 最後にスクリプトの文法的なエラーに関しては、私は正常に動いていたときからa.cgiを置き換えた以外は一切書き換えては居ません。そして、エラーが出たので 元のa.cgiファイルにまた置きなおしています。 いったい何なのでしょうか? 自分では何もやったつもりはないので本当に見当がつきません。ウイルスという可能性はないのでしょうか? 御指示のほうよろしくお願いいたします。

  • taka_pre
  • ベストアンサー率32% (146/451)
回答No.1

モードの問題ではないでしょうか? バイナリーとASCIIの間違いかと・・・。

関連するQ&A

  • ???アクセスカウンター???

    僕は、トクトク(http://tok2.com)というところで、HPを公開しています。もちろん、CGIは使えます。 しかし、レスキューというサイト(http://www.rescue.ne.jp/)でカウンタ機能付きログアナライザ(アクセスデータ解析)を使ってみたんですけど、 [an error occurred while processing this directive] と出てしまって、取り付けられません。だれか、教えてください。

    • 締切済み
    • CGI
  • SSIを使ってHTMLページにCGIを埋め込みたい

    使っているサーバーがSSIが使えるとの事で今回初めてSSIを使ってHTMLページにCGIを埋め込みたいと思い、色々なページを見ながら設置してはみてるんですが、 [an error occurred while processing this directive] となってしまいます。 やってみた事は test.shtmlを作り<BODY></BODY>の中に <!--#exec cgi="/navi/can.cgi"--> などとしてみたりしましたが上記のエラーが出てしまいます・・ 初歩的な質問なのかもしれませんが何が間違えているのかもわからなく、すみませんが教えていただけないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • ApacheをまたがるSSIの利用方法

    よろしくお願いします。 SSIをHTMLから読み出す際タグ内に exec cgi="/フルパス/cgi-bin/test.cgi" のように記述し、ブラウザから開くと、 [an error occurred while processing this directive] と出ます。 これは、パスが間違えていることが原因と思われます。 環境が特殊で、 apacheをSSL用((1))と非SSL用((2))に二つ、同じサーバ内に立ち上げています。 (2)のHTMLから、フルパスで(1)のCGIをキックすることは可能でしょうか? それともapacheをまたがってSSIからCGIをキックするのは無理なのでしょうか? ご回答、どうかおねがいいたします。

    • ベストアンサー
    • Perl
  • SSIを使ってCGIを呼び起こしたいのですが

    index.shtmlのタグにssiを使用したいのですが index.cgi?mode=m のようなパラメータもつけて実行させる場合 <!--#exec cgi="./index.cgi?mode=m"> ではだめなんでしょうか? [an error occurred while processing this directive] というエラーがでました。 どうかご教授ください。

    • ベストアンサー
    • CGI
  • SSIでのエラーについて

    こんばんわ。 RedHat7.2で、Perlで、CGIの勉強をしはじめましたが、 SSIが どうもうまくいきません。 CGIならうまくいくのですが、HTMLからSSIでCGIを実行しようと するとうまくいきません。 Apacheで練習しているのですが、Apacheの設定が悪いのか、ほかに 重大なミスをしてるのかわかりません。 HTMLの中に #exec cgi を入れてみたんですが、 ブラウザにはその部分が [an error occurred while processing this directive] と表示されるだけなんです。 ごくごく簡単なカウンターなんですが。。。 SSIにおいて、これだけは必ずしなければだめ、というのが あれば教えていただきたいのですが。。。 よろしくお願いいたします。

  • an error occurred while processing this directiveって出ます

    あるサイトであるページを開くと an error occurred while processing this directive って表示されて 本来表示されるべきものが表示されません。 これは私のパソコンが悪いのですか? どうしたらいいのでしょうか? 何か難しそうな感じがするのですが、こちら初心者の為わかりやすく解決法を教えて頂きたいです。

  • ssi設置について

    「予約状況カレンダー」というフリーのcgiをDLして動かすまではできましたが、同じものをssiで動かそうとしたら[an error occurred while processing this directive]というメッセージがでます。 HTMLソースの中に<!--#include virtual="(URL)"-->を埋め込んで名前を.shtmlにしました。サーバーはロリポップです。 ここのマニュアル【■実行ファイルまでのパスを絶対パス(フルパス)で指定すると動作出来ません。 ■上位ディレクトリを参照すると動作出来ません。 実行ファイルは、SSIを記述するファイルと同じ階層か、下位のディレクトリに設置して頂きますようお願い申し上げます。】がよくわからない初心者ですが、どなたか初心者でも分かるような説明をしてくださいませんか?

    • 締切済み
    • CGI
  • an error occurred while processing this directive

    いつも見ているサイトでいつも見れるのに an error occurred while processing this directive って表示してその先を表示しません。 サイトがおかしいのかと思いましたが、ネットカフェだと大丈夫なんです 家で2台あるパソコン どちらでやっても無理です ウィルスソフトが悪いのかと色々とわからないながら設定をオフにしましたがダメでした どうしたらいいのでしょうか? 困ってます・・・

  • 絵文字変換スクリプトに使用方法について

    現在、携帯サイトを作成中です。 1ソースで3キャリア対応のサイトを目指しているのですが、 絵文字の互換性のなさにつまずいております。 そこで、絵文字変換スクリプトを使い、絵文字を3キャリアで表示 可能にしようと思ったのですが、使用方法が分かりません。 絵文字変換スクリプトを使用する際、やったことは (1)<http://www.dspt.net/tools/emoji/>を参考にしています。 (2)<http://fs-server.net/index.html>⇒こちらのサーバーを使用しています。 (3)絵文字変換スクリプトをDL (4)画像以外はアスキーモードでサーバーにUL (5)サーバーのTOPディレクトリに「.htaccess」ファイルを作成。 記述内容は、1行目(AddHandler server-parsed html ) 2行目(AddType application/xhtml+xml .html )です。 ローカルでテキスト編集し、サーバー上で「.htaccess」ファイル に変換しました。 (6)絵文字を表示させたいhtmlファイルに<!--#include virtual="/php/emoji/trans.php?emoji=1"-->と記述。 以上のことをした時、絵文字が表示されませんでした。 代わりに、「an error occurred while processing this directive」 と表示されました。 私的にphpの仕組みがよく分かっておらず、原因は.htaccessファイルの 置き方が悪いのかと思っています。 お分かりになる方がいらっしゃったら、絵文字が表記されない原因を 教えて頂ければと思います。 何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • CGIが・・・いったい何が問題でしょうか?

    皆様よろしくお願いいたします。 以下の構成のディレクトリをvar/www/htmlに置き localhost/auct/index.cgiとしてindex.cgiファイルにアクセスしようといたしたのですが、500internal server errorとなり(エラーログ; premature end of script headers; index.cgi)、アクセスできません。 index.cgiにアクセスするとstart.shtmlが開く設定になっています。 なお、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 自分でもかなり調べたり、聞いたりしたのですが解決に至りませんのでどうかご助力お願いいたします。 ....├ [auct] ...........├ [ pl ] ...................├ [ lib ] ...................├ ap.cgi ...................├ category.cgi ...................├ cgi-lib.pl ...................├ comu.cgi ...................├ config.cgi ...................├ image.pl ...................├ index.html ...................├ jcode.pl ...................├ mail.cgi ...................├ mng.cgi ...................├ show.cgi ...................├ usr.cgi ...................└ wwwis.pl ...........├ auction.cgi ...........├ count_down.cgi ...........├ cron.cgi ...........├ index.cgi ...........├ master.cgi ...........├ search.cgi ...........├ start.shtml ...........└ temp.cgi 全てWindowsからasciiで転送してperlのパスも確認済み。 パーミッションはすべて755。 Windowsのapacheでは正常に動作。 httpd.confの設定; <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルト。

    • 締切済み
    • CGI