• 締切済み

突然CGIで作っていた掲示板が利用できなくなって困ってます・・・

CGIで動かしていた掲示板が突然利用できなくなって困ってます CGIの中にスタイルシートを利用していました そのスタイルシーをクリスマスっぽく変えようといじったのですが 動かなくなり、もとの通りに戻したのですが 動かなくなりましたパーミッションの設定も戻しています サーバー内のファイルが壊れた可能性を疑ってきれいなものをアップしたのですがそれも動きません CGIの利用できる無料サーバーなので、サーバーを疑って 別の(CGIカウンターやログ解析)CGIプログラムを動かしてみたら問題なく動きます サーバーが吐き出すエラーメッセージは以下の通りです ----------------------------------- Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. ----------------------------------- 自分でCGIを組んだことは無く フリーのCGIプログラムを利用しています このエラーメッセージは何を意味するのでしょうか? また、動かない原因は何でしょうか? よろしくお願いいたします。 CGIですので、PC環境には関係ないと思いますが 一応自分のPC環境を CPU:P3-650Mhz MEM:128MB-PC100 CL2 M/B:ASUS P3BF HDD:ATA66-20GB+9GB OS:Win98SE+IE5.5

みんなの回答

  • makorin
  • ベストアンサー率44% (31/70)
回答No.9

もしかして print "<BODY>"; ってトコに print "<BODY BACKGROUND="hoge.jpg">"; ってやってませんか? print文中で”を使う場合は直前に\を入れる必要があります。 ただ。print qq();でprintしている場合はこの限りではありません。

noname#38849
質問者

補足

おっしゃられるとおりにしてました・・・ $body = '<body BACKGROUND="./x-kay-r.gif" STYLE="font: 10pt ''"bgcolor="#004000" text="#FFFFFF" link="#FF0000" vlink="#FFFFFF" alink="#FFFFFF" leftmargin="5%" topmargin="5%"> '; こういう風に記述してました ダブルクォーテーションじゃないとだめなのでしょうか?

  • makorin
  • ベストアンサー率44% (31/70)
回答No.8

いっつもkondara MNU/Linux1.0のPerl5でしか確認していないので、Windows版Perlだと出ないかも知れませんが、日本語文字列でエラーになることがあります。 S-JISでの日本語文字列を受け付けないサーバーの場合にあるのですが、この場合は文字コードをEUCに変更して下さい。 ちなみに私はいつもPerl -c hoge.cgiでしか確認していません。 あと、この際ですからPerlも勉強してはいかがでしょうか?今後もCGIをいじろうと思ったらやった方が良いですよ。 そういやInternal Server Errorとは何かを書いていないですね。これは、CGIが動かないとゆーだけのものです。

noname#38849
質問者

お礼

回答有難うございます 原因はどうやら「掲示板(ツリー型)」に背景画像を入れようとしていたことが原因のようでした

noname#38849
質問者

補足

仰られるとおりですね ^^; CGIを設置するのならPerlの知識がないとダメですね 今回のことで自分が無責任だと思いました・・・ CGIを設置するならメンテナンスまで出来ないとマナー違反ですね これを機会に勉強しようと思いました

  • raad
  • ベストアンサー率32% (47/144)
回答No.7

そのCGIは、動かないことが確認された時から一切動かなくなったのでしょうか? 確認された時以外の時間帯で、動作確認を行いましたか? サーバが混んでいた可能性もあります。その時に、良くこのエラーを出します。 また、サーバの仕様変更で専用のアドレスでの呼び出しにしないと、CGIが使えなくなる時があります。 サービスを提供しているところの、お知らせ等を確認してみましたか?

noname#38849
質問者

補足

動かなくなってから一切動きません あらゆる時間で試したのですがダメでした 

回答No.6

Windows版のPerlは、下のURLからWin32 Binaryをダウンロードすれば使えます。あと、近くのCPAN(ftp://ring.omp.ad.jp 等)から入手できます。  Windowsでのデバックにはまずこれが第一でしょう。 ただ、Perlの知識が必要となるのでちょっと難しいかも。 まぁ、まずPerlを入手して、-wc オプションをつけて試してみてください。その後のエラーを見て考えましょう。  

参考URL:
http://www.perl.com/pub/language/info/software.html
  • callhiro
  • ベストアンサー率35% (54/152)
回答No.5

あらら? 転送モードのエラーじゃなかったのかな? 解決手段そのものではなくアドバイスですが、 意味のわからないエラーメッセージではなく、 意味のわかるエラーメッセージを出す方法があります。 それは、自分のパソコンにWWWサーバを作ることです。 そして自分のパソコンでcgiを動かしてみることです。 僕は参考URLの「自宅マシンWWWサーバ化計画」 というところを読んで、やってみたのですが、 この場合意味のわかるエラーが表示されるので 大変デバッグがしやすかったです。 一度お試しになると良いですよ。

参考URL:
http://www.kent-web.com/
noname#38849
質問者

お礼

有難うございました これを機会にもう少し深く勉強しようと思っています

noname#38849
質問者

補足

有力な情報をアリガトウございます ローカルでApacheを動かせるのは知りませんでした 大変勉強になりそうです。 出先からなので自宅に帰ってじっくりイジってみたいと思います アリガトウございました *自宅マシンでApacheを利用してCGIを動かす場合に 注意点などありました、ご指導をお願いしたいのですが (例えば無限ループになったときの対処の方法など) 宜しくお願いいたします

  • makorin
  • ベストアンサー率44% (31/70)
回答No.4

可能性から言えば改行コードのミスですね。 CGIの書き換えに利用しているのは、メモ帳ですよね? Windowsの改行コードはCR+LFとなり サーバーに使われているOSは大抵UNIX系でUNIX系の改行コードはLFのみです。 要はCRが入っていると、それも文字と認識して、文法がおかしくなるわけです。 解決方法は、callhiroさんの言うとおり、バイナリモードではなく、アスキーモードで転送することです。アスキーモードで転送すると、CR+LFがLFに変換されます。FTPソフトによっては、テキストモードと書いてあるかも知れません。 アスキーモードで転送する方法はFTPソフトに依存するのでそのソフトのマニュアルを確認して下さい。ホームページビルダーやDreamweaverなどのFTPは使わずにFTPのみのソフトを利用する方が安全かと思います。 私はFFFTPを利用しています。

noname#38849
質問者

補足

CGIの記述はHTMLエディター(CGI対応)を使っているので 改行コードは大丈夫だと思います。(一応確認してみます) 転送モードはASCIIです。

  • yu-ma
  • ベストアンサー率22% (2/9)
回答No.3

下のURLからdebug.cgiを入手して、同じフォルダにアップロードして実行して見てください。 (詳しくはリンク先の説明参照) 詳しいエラーメッセージが表示されるはずです。

参考URL:
http://hp.vector.co.jp/authors/VA020958/cgiwork/debug/index.html
noname#38849
質問者

補足

アリガトウございます 今、チョット出先からなので自宅に帰ったら 試させて頂きます

  • callhiro
  • ベストアンサー率35% (54/152)
回答No.2

僕は良く自分のホームページのcgiを改造したりするのですが、 過去に、突然cgiが動かなくなり、 改造した部分をすべてなくしても、 元々あった機能を少しずつ減らしても 全然動かなくなったという経験があります。 その際の解決手段はズバリ転送モードでした。 間違えてバイナリーモードで転送している可能性があります。 アスキーモードになっているかどうか確かめてみてくださいな。 今試してみましたが、同じ様なエラーが出ましたよ。

noname#38849
質問者

補足

回答アリガトウございます ASCIIモードで転送しているのですが、やはりダメでした

回答No.1

 CGIファイルの中身が間違っていますね。きっと。  エラーの内容は、「そのプログラム(掲示板)を実行 したらエラーがでたよ」という無いようですが、何が 原因かまでは教えてくれません。Telnetが許されてい るのならば perl -wc プログラム名 を直接実行してみてください。大抵のエラーはここで出 ます。  もし、そうでないなら。。。  Windows版のPerlで試してみてください。

noname#38849
質問者

お礼

いろいろ有難うございました ツリー表示型の掲示板だったのですが、背景画像の挿入がうまくいってなかったようです・・・ 300行くらいあるロジックを1行づつチェックしてみました 初歩的なミスでした・・・・

noname#38849
質問者

補足

アリガトウございます 残念ながら、CGI利用可能なフリーレンタルサーバーなので Telnet接続は出来ないようです Windows版のPerlですが、Windows上で擬似的にCGIを 走らせることが出来るソフトでしょうか? マイクロソフトからリリースされているのでしょうか?