PerlでCGIを作成しています。
今作成しているのはアクセスカウンタなのですが、本のとおりにまったく同じようにかいてもエラーが出てしまいます。
(「Internal Server Error」)
添付のCDのcgiを持ってくるときちんと表示されます。
でも中身を照らし合わせてもまったく同じなのです。

cgiにする前の「pl」ファイルの状態ではOKなのですが・・・。

これより前につくったおなじようなものでもまったく中身が同じなのに実行できず、
CDの中身の一部分(HTML部分)をコピーして貼り付けたらできるようになりました。
(今回のアクセスカウンタはHTML部分をコピーして貼り付けてもダメでした。)
一体何が(どこが)違うのでしょうか?


#こんな説明でわかっていただけるかどうかわかりませんがよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

手打ちでは、同じに見えても間違えているということは良くあると思いますよ。

エクセルで検証されたとのことですが、テキスト比較ツールで比較されてみてはいかがですか。参考URLなど。

下の方の回答にもあるように、全角/半角の違い、よく似た記号の打ち間違いに注意してください。

参考URL:http://www.vector.co.jp/soft/win95/util/se113286 …

この回答への補足

回答ありがとうございます。

そうです!この参考URLにあるみたいなソフトを探していたんですよ~!!
ありがとうございました!!

それで、早速調べてみましたところ、やはり数点違うところがありました。
「これが原因か・・・」と思いながらすべて直してみたのですが、やはり実行されないんです!!

一体なぜなんでしょう??

これ以外にも何か原因があるんでしょうか?
何かおわかりでしたら再度ご回答お願いします!

補足日時:2002/01/15 17:53
    • good
    • 0
この回答へのお礼

とっても使えるソフトをご紹介いただきありがとうございます。
他のも何点か試してみたのですが、これに勝るものは今のところ出てこないもようです♪

そして、質問したことですが、おかげさまでできました。
一番下の改行が抜けていたんです。
なんだかこんなことで・・・と気が抜けてしまいました・・・。

お騒がせしてしまってすいませんでした。
今後ともよろしくお願いします。

お礼日時:2002/01/17 11:25

私が思い付くことといったら


・パーミッションが違う。(777または707になっていますか)
・改行コードが違う。(UNIX改行コードにする必要があるかも知れません)
・文字コードが違う。(Shift-JISまたは Unicodeでは動かないかも知れません)
・ファイル名が違う。(拡張子はちゃんとついてますか。また拡張子がダブッてついていませんか)
といったところです。
Windows上でこれらチェックする方法や変換する方法は存じませんのでKODAMARさん御自身でお調べ下さい。
またもうすこし細かい点をあげれば
・バックスラッシュ(\)(Winではこれも円記号に見えると思いますが)に全角円記号(¥)を使っていませんか。
・見えないところに全角の空白が入っていませんか。
といったところですが、下の補足を見る限りこちらではなさそうですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

現在はWindows上でローカルで試しているのでパーミッションは関係ないと思います。(あれっ?関係ありますか!?)
ファイル名もちゃんとなっていました。

結局一番最後に改行が入っていなかったという本当につまらない(?)ことが原因でした。
でも今後もこのようなことがないとは限らないので、そのときは回答を参考にさせていただきます!!

ご協力ありがとうございました。

お礼日時:2002/01/17 11:28

ローカルの環境で、ということなのでひとつ参考までに。


そのローカル環境がどのようなものなのかわからないのですが・・・
WindowsにApacheをいれてローカル環境を作っている場合
一番最初の行で #!/usr/local/bin/perl などと
書いてあるはずですが、この部分に間違いはないでしょうか?
多少知っていればそんなこともないとは思いますが、
私も少し前にこのような下らない間違いをしましたので。

この回答への補足

回答ありがとうございます!
2つのファイルを見比べるソフトを使い、相違点を直して、やってみてもできなかったのですが、なんと!
一番下の行のあとに「改行」をしてなかったんです。
できたあとって「なんでこんなこと・・・」って思うんですけど、できるまですごく悩むんですよね。

なんだかお騒がせしてすいませんでした。。。

ご協力ありがとうございました!!

補足日時:2002/01/17 11:22
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

そこもちゃんと同じように設定してあるのにダメなんです・・・。

一体何が悪いんでしょう?
もうわけわからなくなってきました(泣)
このままCDのコピーを使えばラクなんですけどね・・・それじゃ自分のためにならないので、まだがんばります。

ありがとうございました。

お礼日時:2002/01/15 17:43

 その2つのプログラムは同じではありません。


 どんなに同じに見えても、絶対にどこか違います。
 俺もプログラム始めたてで本のプログラムのうちこみとかやってた頃は、「全く同じなのに」とか言って何時間も延々、泣きそうになりながらソースとにらめっことかしてました(笑)

 とりあえず、余計なところに全角が混じってないか、何かを勝手に省略(または追加)してないか、転送するときにアスキーモードで転送しているか、などを確認してみてください。

この回答への補足

回答ありがとうございます。

本当に私も泣きそうです・・一体何が違うというのか・・・。

一応違いを知るためにエクセルに1行ずつコピーして、if文で照らし合わせてみたのですが、違いがなかったんです。
if文でもわからないような違いなんでしょうか??

>転送するときにアスキーモードで転送しているか
まだサーバーには送っていなくて、ローカルで確認中なので、これは多分大丈夫だと思います。

もうちょっとがんばってみようと思います。
仲間がいたようで(失礼!)ちょっと嬉しかったです。
ありがとうございましたm(_ _)m

補足日時:2002/01/15 15:20
    • good
    • 0
この回答へのお礼

おかげさまでできました。

2つのファイルを見比べるソフトを使い、相違点を直し、やってみたところできなかったのですが、なんと!
一番下の行のあとに「改行」をしてなかったんです。
できたあとって「なんでこんなこと・・・」って思うんですけど、できるまですごく悩むんですよね。

ご協力ありがとうございました!!

お礼日時:2002/01/17 11:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QCGIでhtml出力部分(print、ヒアドキュメント部分)をファイル生成できますか?

CGI/perlでブラウザにhtml出力する部分(print、ヒアドキュメントで囲った部分)をファイルに保存したいのですが、どうしたらよいのでしょうか。

テンプレート(変えたい部分だけ変数にしてあるプログラム)があって、任意の部分だけ変えたhtmlファイルを大量に作りたいのです。printした結果のソースをファイルにそのまま保存できる便利なやり方ってありますでしょうか。ご存じの方いましたらお願いします。

Aベストアンサー

1)
単純に、コマンドラインで実行して
Perl script.pl >out.html
のようにする
2)
print 文字列

print OUT 文字列
の様にファイルハンドルに切り換える
3)
2)のようにしないで、最初に
select(OUT);
の様に標準出力をファイルハンドルに切り換える。
勘違いコメントだったらすみません。

QCGI用、空っぽのindex.htmlの中身

セキュリティ効果で
CGIディレクトリ内に空っぽのindexを置きましたが
<HTML></HTML>
だけですので、なんとなく中身を書いた方がいいかなと思いますが
何を書いたらいいかわかりません。ダミーって事は知っています。
何かアイデアありますか?

Aベストアンサー

「エラーページテンプレート」で検索するのがよろしいかと。

QアクセスカウンタCGIが動きません。

テキストカウンタ(アクセスカウンタ)が動きません。
http://cgiroom.nu/list/count/tcount/index.htm
こちらのサポートはなかなか教えていただけないので、gooで質問します。
http://www.ドメイン/count.cgiで、開けますが、
http://www.ドメイン/count.htmですと、
内容が、-count- の表示のままです。

Aベストアンサー

No.2です。補足です。


表紙として表示ページってわかりにくいですよね。
つまり、表紙がカウンターだけのページってないと思うので、大抵は表紙にページ内への入り口やコンテンツに対するリンクがあると思うので、の意味です。
----以下に私が運用したフレームページを載せてみました----
</HEAD>
<FRAMESET rows="100%,*" border="0" frameborder="NO" framespacing="0">
<FRAME src="count.cgi" frameborder="0" noresize>
<NOFRAMES>
<BODY><BR>
<A href="count.cgi">Welcome</A></BODY>
</NOFRAMES>
<FRAME src="index.shtml"><!--※←index.shtmlが私の場合訪問者に見せる表紙ページです。ご自分のトップページをお入れ下さい。-->
</FRAMESET>
</HTML>

Q買い物カゴのCGI エラーInternal Server Error どうすればいいのでしょう

iMac DV SE(G3, 500MHz) OS 9.2.2 です。
買い物カゴをもう数年前から何回も設置してうまくいっていたのですが、今回改訂したら動かなくなってしまいました。cart.html(買い物で商品の個数を入れるページ)から、「買い物カゴに入れる」ボタンをクリックすると、次のエラーが出てしまいます。この時のアドレスは、http://www.*******.com/acart/setcook.cgi です。setcook.cgiは間違いなくここにありますし、パーミッションも点検しています。何か問題が考えられることがあるでしょうか。
-------------------------------------------------

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@*******.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Apache/1.3.33 Server at www.*******.com Port 80

-------------------------------------------------
*****は伏せ字にしました。

iMac DV SE(G3, 500MHz) OS 9.2.2 です。
買い物カゴをもう数年前から何回も設置してうまくいっていたのですが、今回改訂したら動かなくなってしまいました。cart.html(買い物で商品の個数を入れるページ)から、「買い物カゴに入れる」ボタンをクリックすると、次のエラーが出てしまいます。この時のアドレスは、http://www.*******.com/acart/setcook.cgi です。setcook.cgiは間違いなくここにありますし、パーミッションも点検しています。何か問題が考えられることがあるでしょうか。
----------------...続きを読む

Aベストアンサー

下記のQ&Aは読まれましたか?
一番下に、最後に注文するとサーバーエラーが起きる原因が書かれています

参考URL:http://anglers-net.com/book/booksupport.html

Qフリーで公開されているCGIのアクセスカウンタの使い方で

cgi_pagelogというフリーソフトでアクセスカウンターの設置をしようと思っております。CGIでアクセスカウンタの設定をしたいためです。

ひとつ疑問点があるのですがこれはActivePerlなどの環境は必要ないものになるのでしょうか?
例えばIISなどでテストをしたときにインストールのみで可能な代物でしょうか?
あと手順どおりインストールしたのですがどうしてもリンク切れをおこしてしまいます。
一応文が間違っていないか確認をしたのですが大丈夫です。
原因はなぜでしょうか?
ちなみにIIS5.1でCGIは使えるようにしてあります。
環境(XP、IIS5.1です)

Aベストアンサー

配布元情報を記述しないと、回答するのに検索してまわらないといけません(汗

  http://www.bannaguro.net/pagelog/PageHelp.html
  http://www.bannaguro.net/pagelog/PageHelp.html#install

Windows専用のexeとdllで構成されたもののようですから、ActivePerlは不要のようです。

リンク切れは・・リンクがどのように誤っているのかを(普通のPerlやphpのスクリプトと同じように)確認していくしかないと思いますけど。


おすすめ情報