9月23日に、someoneさんは書きました。 >9月22日に、TADさんは書きました。 >>9月22日に、someoneさんは書きました。 >> >>>NPC.cgiの本体(圧縮されてない)(Ver.0.83)はありますか。 >> >>ありますよ。 >> >> npc.cgi本体のURL:http://www2.biglobe.ne.jp/%7Enir/cgi-bin/npc.cgi >私の欲しいのは、Perlで、書かれたnpc.cgiです。 そういうことであれば、答えは「ありません」になります。 npc.cgiは、C言語で書かれたプログラムであってPerlのプログラムではないからです。
TADさん、ご返事ありがとうございます。 もうご返事はもらえないものと思い、あれから本などを見て勉強しておりました(^^;。 >makeコマンドを実行したのですよね。 >どうして、Windows上でコンパイルするためのnpc.makが使用されてしまったのでしょうか。 >makeではデフォルトで(特に何もしないと)Makefileが使われると思うのですが。 3WEBのサーバーではmakeもファイルもパスを指定しないといけないとの ことで、「makefile」がmakefaileそのものを指すということが分からずに npc.makと解釈してしまったのです(^^;お恥ずかしいです。 >>動作可能かという質問には >>「プログラムはSUN OS用のものでSolaris2.6用のcgi にするために >>コンパイルして下さいとのことでした。ですから動作は可能だと思われます。」 >>と答えました。 > >意味がよくわかりません。 tar.gzのファイルをダウンロードしましたので、WIN用のファイルが入って いるとは思いもしなかったのです。そこで、私がnpc.makでコンパイルしようと してましたので、プロバイダはsoralis用ではなくWIN用のプログラムと 思われたのだと思います(^^;。 >npc.idx(npc.cgiの設定ファイル)のデフォルトの置き場所を指しています。 >これは、下のようにnpc.cgiの呼び出し時に明示的に指定することもできるので > > 〜/npc.cgi?I=/home/hogehoge/public_html/cgi-bin/npc.idx > >意味が分からなければ、そのままにして特に変更する必要はありません。 なるほど、後から設定できるのですね。 マニュアルにも分からない場合はそのままで良いと書かれていましたので プロバイダがどうして聞いてきたのか不思議でした。 >ということなので、makeするときに使おうとしたmakeファイルが違っていたのが >コンパイルでエラーになった原因です。 TADさんのおっしゃるとおりでした。 そこで、 cgi2.osk.3web.ne.jp% /usr/local/bin/make -f /usr/home/dialup/3webnet/siozaki/pub lic_html/Makefile としてみましたところ make: *** No rule to make target `npc.c', needed by `npc.o'. Stop. となりました。 「npc.o」というのはソースの中には無いのですがこれはどういう意味なのでしょうか? 申し訳ないのですが、教えていただけませんか? お願いします。
10月1日に、アレックスさんは書きました。 >もうご返事はもらえないものと思い、あれから本などを見て勉強しておりました(^^;。 すいません。(^^; どうもこの頃、本業の方で仕事、と言うか色々と雑用が増えて、 なかなか顔出せなくなってしまって。(^^;;; >>ということなので、makeするときに使おうとしたmakeファイルが違っていたのが >>コンパイルでエラーになった原因です。 > >TADさんのおっしゃるとおりでした。 >そこで、 >cgi2.osk.3web.ne.jp% /usr/local/bin/make -f /usr/home/dialup/3webnet/siozaki/public_html/Makefile > >としてみましたところ >make: *** No rule to make target `npc.c', needed by `npc.o'. Stop. >となりました。 >「npc.o」というのはソースの中には無いのですがこれはどういう意味なのでしょうか? えーと、メッセーヂは「npc.oを作るのに必要なnpc.cの作り方が分からない」と言ってるので 無いのはnpc.oでは無く、npc.cです。npc.oはnpc.cから作られるので最初は無くて良いのです。 では、なぜnpc.cが無いと言ってるのかというと、おそらくはカレントディレクトリを /usr/home/dialup/3webnet/siozaki/public_html に cd しないままコンパイルを しているのではないでしょうか? コンパイルするときはカレントディレクトリをソースプログラムが有る所に移してから、 /usr/local/bin/make を実行します。カレントディレクトリがソースディレクトリに移っていれば、わざわざ、 /usr/local/bin/make -f Makefile の様にメイクファイル名を指定する必要もありません。 # しても問題ないですが。
にあさん、ご返事ありがとうございます。 >すいません。(^^; >どうもこの頃、本業の方で仕事、と言うか色々と雑用が増えて、 >なかなか顔出せなくなってしまって。(^^;;; 6月から来られていないので体調を崩されているのかなぁと心配して おりました。 >では、なぜnpc.cが無いと言ってるのかというと、おそらくはカレントディレクトリを >/usr/home/dialup/3webnet/siozaki/public_html に cd しないままコンパイルを >しているのではないでしょうか? その通りでした(^^;。 loginした時にはまだ/usr/home/dialup/3webnet/siozaki/public_html では なかったのですね(^^;。 cd cd public_html/ としなくてはいけなかったのですね(^^;;。 そこでmakeを実行しましたところ cgi2.osk.3web.ne.jp% /usr/local/bin/make gcc -O -c npc.c \ -DINDEX_DIR=\"/usr/local/etc/httpd/index\" \ -DINDEX_FILE=\"npc.idx\" make: gcc: Command not found make: *** [npc.o] Error 127 とエラーが出ました。 過去ログを見ていますと ccはgccでないとダメだとのことですが solaris2.6はgccではないのでしょうか? 他の方がsolaris2.5、2.4をコンパイルされたものはcc=gccと書かれて いるのですが...。 それとも何か根本的なccの設定が違っているのでしょうか? 教えていただけないでしょうか?
10月8日に、アレックスさんは書きました。 >6月から来られていないので体調を崩されているのかなぁと心配して >おりました。 ありゃ、そんなにサボってましたっけ? (^^;;; # 体調の方は、あたしは、ここ10年ぐらい医者知らずな人なので。(^^) >そこでmakeを実行しましたところ > >cgi2.osk.3web.ne.jp% /usr/local/bin/make >gcc -O -c npc.c \ > -DINDEX_DIR=\"/usr/local/etc/httpd/index\" \ > -DINDEX_FILE=\"npc.idx\" >make: gcc: Command not found >make: *** [npc.o] Error 127 > >とエラーが出ました。 gccにパスが通っていないか、インストールされていないか、と言う所ですね。 >過去ログを見ていますと ccはgccでないとダメだとのことですが >solaris2.6はgccではないのでしょうか? Solaris 2.3(4?) 辺りから、OSにはコンパイラは付属していないか、 精々がとこ、カーネルを再コンフィグレーションする程度しか出来ない cc しかついて来なかったはずです。 ですから、きちんとしたコンパイルをするために別途コンパイラを購入するか gcc をインストールして使っているはずです。 Sunの売り物のccはANSI-Cのはずですから、それが使えれば良いのですが、 まあ、通常はgccを入れて使っているでしょう。その場合、多分 gcc の場所は、 /usr/local/bin/gcc 辺りにあるでしょうから、gcc を使うためにはあらかじめ /usr/local/bin にパスを通しておかなければなりません。 実際、/usr/local/bin/gcc が無いようなら仕方ありませんが、あるなら、 PATH=/usr/local/bin:$PATH (ログインシェルが sh の場合) set path=(/usr/local/bin $path) (ログインシェルが csh の場合。プロンプトからするとこっちかな?) 等として、パスを通してから make すると良いでしょう。
にあさん、ご返事ありがとうございます。 >gccにパスが通っていないか、インストールされていないか、と言う所ですね。 まさしくおっしゃる通りでした(^^;。 パスを通すなんていうのはDOSを使うのをやめてから5年近くなりますので すっかり考えにありませんでした(^^;;。 >Solaris 2.3(4?) 辺りから、OSにはコンパイラは付属していないか、 >精々がとこ、カーネルを再コンフィグレーションする程度しか出来ない >cc しかついて来なかったはずです。 > >ですから、きちんとしたコンパイルをするために別途コンパイラを購入するか >gcc をインストールして使っているはずです。 本にもその通りに書かれていました(^^;;。 (どこを見てるんだか) そこでパスを通してからmakeを実行しましたところ cgi2.osk.3web.ne.jp% cd public_html/ cgi2.osk.3web.ne.jp% set path=(/usr/local/bin $path) cgi2.osk.3web.ne.jp% make gcc -O -c npc.c \ -DINDEX_DIR=\"/usr/local/etc/httpd/index\" \ -DINDEX_FILE=\"npc.idx\" gcc -O -c convert.c gcc -O -c digits.c gcc -O -c charfont.c gcc -O -c param.c gcc -O -c getput.c gcc -O -c regstr.c gcc -O -c -I. regexp.c gcc -O -c version.c gcc -O -o npc.cgi npc.o convert.o digits.o charfont.o param.o getput.o regstr.o regexp.o version.o cgi2.osk.3web.ne.jp% となりまして 無事コンパイルに成功しました\(^^)/ こんな超初心者に丁寧に教えていただいてありがとうございます。 TADさん、にあさんに感謝感謝です。
こんにちは カウンターを設置しようとして 数字が表示される所まではできたのですが、 npc.idxの中のタグが =COUNTER 0000000001 index.html 0000000001 index.html 0000000001 index.html 0000000001 index.html となってしまい 1からカウントアップされません。 これはどのようにしたら改善するのでしょうか?
すみません 過去の記事を参考にしたら解決しました。 原因は IMG SRC="/cgi-bin/npc.cgi?L=index.html &I=/home/***/***/npc.idx" と、 L=index.html の後に空白があったので IMG SRC="/cgi-bin/npc.cgi?L=index.html&I=/home/***/***/npc.idx" にしてみたら直りました。 ちなみに使っているサーバーは HP-UX 11.00です。 ご迷惑おかけしました。
10月7日に、T-IIさんは書きました。 >原因は >IMG SRC="/cgi-bin/npc.cgi?L=index.html &I=/home/***/***/npc.idx" >と、 L=index.html の後に空白があったので >IMG SRC="/cgi-bin/npc.cgi?L=index.html&I=/home/***/***/npc.idx" >にしてみたら直りました。 うーむ、これって仕様と言ってしまえばそうなんですが、限りなくバグに近いですよね。(^^;; # まあ、前々から気は付いているのですが... (爆) 機会が有ったら直したい所です。 # 本当言うとそれよりもPNG対応をしたいのだけど、 # 各ブラウザのMNG対応は何時になるのですかねぇ ## アニメーションモードは後回しでも良いから、PNG対応だけを ## 先にしてしまうべきか...
# もう、元投稿者は読んでいないとは思いますが、 # 備忘録を兼ねると言う事で... (^^; 8月11日に、まっちゃんさんは書きました。 >表題のとおり特定の数値の時だけ色を変えたり >点滅させたりはできないもんでしょうか? >僕がやりたいのは、カウント数が1000や >2000、はたまた1111など特定の数値 >の時に色を変更したいのです。 > >そういう設定方法はないんでしょうか? 現在のヴァージョンでは出来ませんね。 >もし無いようなら次期バージョンでそういう >機能を付けていただければ嬉しいです。 点滅はチョット無理ですが、色を変えるぐらいなら、設定ファイルの構文を 拡張することで対応出来そうですね。 つまり、変数設定と参照を出来るようにして、参照のみの変数として 現在のカウンタ値も使えるようにする、と言う事ですね。 # 実は変数設定と参照は、HTTP Cookie を使った動作設定に必須なので、 # 以前にも構文を考えたことが有ったのですが、どうも上手い書式が見つからなくて # ペンディングになっているのです。
少し前まで動いていたカウンターが急に"Time out"というエラーを出しました。 原因がさっぱりわかりません。 対処法をご存知の方は教えてください。
まめにチェックして壊れていたら設定ファイルを交換したりして直していますが やっぱりすぐ止まります。(リロードを5回ぐらいかけると"TimeOut"になります) 今まではこんなことなかったんですが・・・。 最近、アクセス数が増えたのが原因ですかね?
10月24日に、hiroさんは書きました。 >やっぱりすぐ止まります。(リロードを5回ぐらいかけると"TimeOut"になります) 仕方なくトップページから必要最低限の物だけを残して軽くしたら何とか動いています。 が、何故か(と言うかこれが正しいのですが)IEでリロードがかからなくなりました。今まではリロードでカウントアップしたのに・・・。
初めまして。 BiglobeのWWW2uサーバで新たにホームページを作ろうと思い、 カウンターを設置してみました。 試しにIEで動作確認した時も、NNで見た時も、数字の増え方等は問題ないのですが、 IEで見たときはドラムがちゃんとゆっくり回転しているように見えるのに、 NNで見たときには回転がものすごく速く表示されてしまいます。 NNで見たときにも、きちんと表示されるようにすることはできるのでしょうか?
10月29日に、KITAさんは書きました。 >BiglobeのWWW2uサーバで新たにホームページを作ろうと思い、 >カウンターを設置してみました。 私もちょうどwww2uサーバ上でnpc.cgi(0.83)を動かしているので テストしてみました。 >試しにIEで動作確認した時も、NNで見た時も、数字の増え方等は問題ないのですが、 >IEで見たときはドラムがちゃんとゆっくり回転しているように見えるのに、 >NNで見たときには回転がものすごく速く表示されてしまいます。 以下の3種類のブラウザが対象です。 NC4.73 Netscape6 PR3 IE5.0 ※なお、設定ファイル(npc.idx)の中で DELAY を'1000,50'としています。
画像が表示されてから 回り始めるまで | 回り始めてから 止まるまで | |
---|---|---|
NC4.73 | 約1秒 | 約1秒 |
Netscape6 PR3 | 約1秒 | 約1秒 |
IE5.0 | 約1.2秒 | 約1.5秒 |
※表中の秒数は正確な計測値ではなく、計測者の感覚的な値です。 [結論] IEの方がアニメーション速度は若干遅い感じです。 クライアント(パソコン等)の性能等の理由でその差が顕著になっているのでしょうかね。 >NNで見たときにも、きちんと表示されるようにすることはできるのでしょうか? 設定ファイルの中で、NCかIEかを判断してNCの場合にDELAYの値を大きくすればできるのでは ないでしょうか。 具体的なやり方は、アクセスカウンタ npc.cgi マニュアルを参照しながら ご自分で調べて見てください。 (あるいはにあさんの回答を待つか (^^;; ) #ところで、今回のテストで見つけたのですがにあさんのところのカウンタ(npc.cgi)を #Netscape6 PR3で見ると、初めは全桁の画像が表示されますが、回転が始まると変化した #桁しか表示されなくなります。 #自分のところのカウンタではそんな現象にはならなかったので違いを調べてみたら #PROGRESSオプションのON/OFFが違うようでした。 #だからどうというのは言えませんが、とりあえずご報告しておきます。
10月30日に、TADさんは書きました。 >IEの方がアニメーション速度は若干遅い感じです。 >クライアント(パソコン等)の性能等の理由でその差が顕著になっているのでしょうかね。 IE5とNC4.73(先のメールではNNと書いてしまいました)で 見比べてみてアニメーション速度が違ったので、 設定がおかしいのか、それとも私のパソコンがおかしいのかと悩んでいましたが、 元々IEの方がアニメーションの速度が遅かったのですね。 教えていただいてありがとうございます。
IE5.5ではインターネットオプションの一時ファイルの設定で デフォルトで「自動的に確認する」が設定されますが、この状 態で下記の様な事象が発生しています。 (1)アクセスカウンタ設置のページ(例:index1.htm)を表示さ せ、そのページからリンク先(例:index2.htm)をクリック してindex2.htmに移動します。 (2)index2.htmにindex1.htmに戻るリンク指定があり、それをクリ ックすると必ずindex1.htmのカウンタはカウントアップします。 ブラウザの「戻る」ボタンではカウントアップされません。 なお、IE4系、IE5.0系では本事象は発生しません。 インターネットオプションの一時ファイルの設定で「確認しない」 にすればリロードされずカウントアップされませんが、すべての ベージに適応されてしまうため問題があります。 これはIE5.5のキャッシュ管理のバグと思われますが、リロードし た時のカウントアップ制限を行えばこの現象を回避できますか?
11月13日に、たくさんは書きました。 > IE5.5ではインターネットオプションの一時ファイルの設定で > デフォルトで「自動的に確認する」が設定されますが、この状 > 態で下記の様な事象が発生しています。 > > (1)アクセスカウンタ設置のページ(例:index1.htm)を表示さ > せ、そのページからリンク先(例:index2.htm)をクリック > してindex2.htmに移動します。 > (2)index2.htmにindex1.htmに戻るリンク指定があり、それをクリ > ックすると必ずindex1.htmのカウンタはカウントアップします。 > ブラウザの「戻る」ボタンではカウントアップされません。 ふーむ、なるほど。 > インターネットオプションの一時ファイルの設定で「確認しない」 > にすればリロードされずカウントアップされませんが、すべての > ベージに適応されてしまうため問題があります。 これは、全く更新チェックをしないモードですからね。 > これはIE5.5のキャッシュ管理のバグと思われますが、リロードし > た時のカウントアップ制限を行えばこの現象を回避できますか? いや、これはどちらかと言うとnpc.cgiの方の問題ですね。(^^;; IE5.5になって初めて発現したとすると、IE5.5のキャッシュ制御機構が より正確になったためだと思われます。 IE5.5のキャッシュの制御オプションを見ると、 (1) ページを表示するごとに確認する (2) Internet Explorer を起動するごとに確認する (3) 自動的に確認する (4) 確認しない となっていますが、(1)、(2)の場合はそれぞれ〜ごとに必ず更新チェックしますが、 (3)の場合はキャッシュに残っているコンテンツに「最終変更日時」がセットされていて、 それがInternet Explorerの起動より後で、かつ、有効期限も切れていない場合には 更新チェックせず、その他の場合にチェックしているようです。 # これは自動チェックの基準としては良い選択だと思います。 ところが、npc.cgi は「最終変更日時」をセットしていないため、必ず更新チェック されてしまうようです。 今までは、Content-Type が image/* の場合は最終変更日時が無くても、キャッシュに 残っている限りチェックしなかったのでしょう、おそらく。 以前(と言うか、最初の頃、つまり大昔。(^^;;)に調べた時には、画像データに最終変更日時 (Last-Modified レスポンスヘッダ)を付けても意味無しか、弊害のほうが多かったため、 つけるのを止めた覚えがあるのですが、この頃のブラウザはキチンと情報を渡してやった方が より正しい動作をするようですね。 本来なら、各カウンタエントリごとに最終更新日時を残してやり、それとの比較でカウントアップを 制御すべきですが、残念ながら、現在の設定ファイル(カウンタファイル)は個別の更新日時を 残す様なフォーマットになっていないので、その変更をするためには、設定ファイルの中で カウンタエントリ部分の書式変更が必要になり、後方互換性が確保出来ないので、チト面倒ですね。 # 試しにnpc.cgiに現在時刻をLast-Modifiedに返すだけの簡単なwrapperを被せてやったら # 望みの動作をするようになったので、とりあえずは、その変更だけでお茶を濁すかな。(^^;; 中々出てこられなくてすみません。m(__)m > ALL そろそろリハビリを開始しないと、このまま引退に追い込まれてしまうなぁ (^^;;;
11月14日に、にあさんは書きました。 > >ところが、npc.cgi は「最終変更日時」をセットしていないため、必ず更新チェック >されてしまうようです。 > なるほど。そうだったんですね。 > >本来なら、各カウンタエントリごとに最終更新日時を残してやり、それとの比較でカウントアップを >制御すべきですが、残念ながら、現在の設定ファイル(カウンタファイル)は個別の更新日時を >残す様なフォーマットになっていないので、その変更をするためには、設定ファイルの中で >カウンタエントリ部分の書式変更が必要になり、後方互換性が確保出来ないので、チト面倒ですね。 > ># 試しにnpc.cgiに現在時刻をLast-Modifiedに返すだけの簡単なwrapperを被せてやったら ># 望みの動作をするようになったので、とりあえずは、その変更だけでお茶を濁すかな。(^^;; > 恐らく今回の件は現在時刻をLast-Modifiedにセットすることで回避できそうです。 こちらもやってみます。どうもありがとうございました。
npc.idx を以下のようにしているのですが、 リロードするとカウントしてしまうのです。 何か手順が違うのでしょうか? #!npc.cgi -- ファイル先頭行の「#!npc.cgi」で npc.cgi の設定ファイルか # どうかを見分けています。 ### # 最初の部分は sample1.idx と同じ条件を構造化文を使って書いています。 # =WIDTH 8 =PROGRESS OFF =INCREMENT 1 =IF=REFERER ^ $ =INCREMENT 0 =RESTRICTION 1 =ELSIF=REFERER ^http://nocount@www\.k-hosaka\.com/ =RESTRICTION 0 =INCREMENT 0 =ELSIF=REFERER ^http://www\.k-hosaka\.com/ =RESTRICTION 0 =IF=BROWSER ^Mozilla/[1-9] =PROGRESS ON =DELAY 1000,50 =ENDIF =IF=ADDR 127.0.0.1 =INCREMENT 0 =ELSIF=HOST ^meshse[0-9]*\.mesh\.ad\.jp $ ^host\.domain\.com $ =INCREMENT 0 =ENDIF =ELSE =RESTRICTION 2 =ENDIF ### # オプションでモード=1が設定されている場合は、リロードしても # カウントアップしないようにしています。 # =IF=ENV=HTTP_PRAGMA no-cache =INCREMENT 0 =ENDIF =COUNTER 0000057651 hosaka