アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
お分かりになる方いらっしゃいましたら、ご教授願えますでしょうか?

以前別の質問を致しましたが、
解決出来なかったので、再度質問させていただきます。

http://oshiete1.goo.ne.jp/qa5129802.html

カウンターを設置するため、テストページを作り、
テストページ(htmlファイル)からカウンターcgiを呼び出したいのですが、
Internal Server Errorが出てしまいます。

パーミッションの設定、アップロードの仕方について、
こちらの質問で親切に色々教えていただきましたが、
やはりカウンターが表示されません。

同じソースで表示されている方がいらっしゃるので、
ソースの修正は必要ないと思います。

また、こちらの質問でも記載しましたが、
同じサーバにメールを送るCGIを設置していますが、
こちらは動作しています。

他の原因を色々探っているのですが・・・。
他に原因があるのでしょうか?

お手数ですが、宜しくお願いいたします。

A 回答 (5件)

このWebサーバのエラーログって見ることが可能ですか?


エラーログを見れば、なぜ500エラーが発生しているかがわかる可能性が高いです。

もし見れないようでしたら、おまじないを一つ

1行目の「#!/usr/local/bin/perl」の下に
「use CGI::Carp qw(fatalsToBrowser);」
を入れてcnt.cgiを直接開いてみてください。

これは致命的なエラーをブラウザに表示させる命令です。
(ただサーバが対応してないこともあるので、うまくいかなかったらごめんなさい。)

エラー内容が分かりましたら、それをココに貼り付けてみてください。
    • good
    • 0
この回答へのお礼

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

残念ながら、エラーログは見れないので、
早速教えていただきました、
「use CGI::Carp qw(fatalsToBrowser);」を入れて
直接開いてみました。
---------------------------------------------------
↓以下ブラウザに出てきた内容です。

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, www-admin 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.
---------------------------------------------------
と、こんな感じで出てきました。

表示内容がいつもと同じ気がするのですが、
もしかして表示されていないのでしょうか?

お願いいたします。

お礼日時:2009/07/24 11:55

その表示だと、エラー箇所が拾えてないですね。



前回の質問ページからカウンター配布ページのアドレスがあったので確認してみました。
良くある質問の中で、

>■ファイルロック方法を正しく設定したか?
>flock関数が使えないサーバで、flock関数を実行するとエラーになります。

とありますが、ご利用のサーバは大丈夫でしたでしょうか?

参考URL:http://apps.cside.com/support/faq/docs/1_04.html
    • good
    • 0
この回答へのお礼

お世話になっております。

>■ファイルロック方法を正しく設定したか?
>flock関数が使えないサーバで、flock関数を実行するとエラーになります。

とのことですが、実は利用可能かが分からないので、
ロックしないに設定したのですが・・・。

標準でロックするになっていたので、
ファイルロックに関するソースの部分を
以下のソースにしました。

# ■ファイルロック(flock関数)
# '0' / ロックしない
# '1' / ロックする#標準
$define->{'FILELOCK'} = '0';

flock関数が使えないサーバだと、
0にしてもエラーが起こるのでしょうか?

お礼日時:2009/07/24 13:25

いまさらながらプログラムソース確認しました。


# プログラム名 【 JSカウンタ 】
# バージョン 【 1.5 】
このバージョンであってますでしょうか?

$define->{'FILELOCK'} = '0';
に設定した場合、ブラウザに何も表示させず終了するプログラムになっていました。

CGIをブラウザから動かした場合、最後に必ずなにかを表示させないとエラーが表示されます。
おそらくこれが原因で、500エラーが発生しているかと思います。

プログラムにflockを使わない場合の回避が書かれていない為、自分で回避プログラムを書かないといけないみたいです。

参考:http://apps.cside.com/support/guide/flock/

プログラム配布サイトにflock検査ツールというものがありましたので、お使いのサーバでflockが使えるかをチェックしてみてはいかがでしょう?

参考URL:http://apps.cside.com/cgi/util/flockch/
    • good
    • 0
この回答へのお礼

># プログラム名 【 JSカウンタ 】
># バージョン 【 1.5 】
>このバージョンであってますでしょうか?

まさにこちらのプログラムです。

>プログラム配布サイトにflock検査ツールというものがありましたので、お使いのサーバでflockが使えるかをチェックしてみてはいかがでしょう?
早速診断ツールを入れてみたのですが、
同じように500Internal Server Errorが出てしまいました…。

>プログラムにflockを使わない場合の回避が書かれていない為、自分で回避プログラムを書かないといけないみたいです。

flockを使っている部分をコメントアウトしても解決されないのでしょうか?
また、追加する場合はどのように記述すればよいのでしょうか?

お手数ですが、宜しくお願いいたします。

お礼日時:2009/07/24 15:28

>flockを使っている部分をコメントアウトしても解決されないのでしょうか?



たしかに動きますが、すぐに正しくカウントされなくなります。
flockは排他処理といって、一つのファイルを同時に更新させないための処理です。
この排他処理がないと、正しくカウントが取れなかったり、0に戻ったりしてしまいます。
(CGIではないですが排他処理の参考として)
参考:http://www.techscore.com/tech/sql/11_02.html#sql …

>また、追加する場合はどのように記述すればよいのでしょうか?

flock以外でもmkdirを使った排他処理方法があります。
参考:http://beginners.atompro.net/smpcgi_flock.shtml

すでにあるプログラムに手を加える場合、トラブルが発生しやすくなるため、それに対応する知識が必要となります。
僕が手を加えて提示するのは動作保障と今後のサポートが出来ませんのでやめておきます。
大変申し訳ないのですが、少し勉強されて追加されるか、別のカウンターに変えてみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

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

返信が大変遅くなりまして申し訳ございません。

原因が判明しました。
どうやら、レンタルしているサーバーが移設していたようで、
その関連で、うまく呼び出されない現象が起きていたようです。

移設完了後は無事カウンターが表示されました。
ご協力ありがとうございました。

お礼日時:2009/08/07 11:28

横から申し訳ありません。


良くあることなのですが、もしかしてCGIファイルをバイナリモードでアップしてはいないでしょうか?
FTPソフト側で強制的にASCIIモードでアップしてみてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

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

返信が大変遅くなりまして申し訳ございません。

原因が判明しました。
どうやら、レンタルしているサーバーが移設していたようで、
その関連で、うまく呼び出されない現象が起きていたようです。

移設完了後は無事カウンターが表示されました。
ご協力ありがとうございました。

お礼日時:2009/08/07 11:28

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