にしし ふぁくとりー(西村文宏 個人サイト)

Presented by Nishishi via Movable Type. Last Updated: 2015/09/22. 13:20:48.

さくらインターネットでnpc.cgiが動かなくなったのだが

私のウェブサイトは、さくらインターネットのサーバで運営しています。
サイト内のあちこちに設置してあるアクセスカウンタは、にあ氏製作のnpc.cgiを使っています。色やフォントを変更できたり、桁数を指定できたり、アニメーションできたりと高機能です。

大変ありがたく使わせていただいているのですが、3月16日を境にまったく動作しなくなりました。直接CGIにアクセスしても「500 Internal Server Error」が出るのみです。最初は一時的な問題かと思っていたのですが、現在も同様のエラーが出てきます。
Apacheの生アクセスログを覗いてみたところ、npc.cgiの実行時には必ずエラーになっているようです。

これはおかしいぞ……と思って原因を考えていると、ふとあるアナウンスを思い出しました。
さくらインターネット」で使われているサーバのOSは、従来はFreeBSD 6.1だったのですが、順次FreeBSD 7.1にアップデートされるというアナウンスが先月あたりに届いていたのでした。

早速サポート情報を見てみると、ビンゴでした。
私が使っているサーバでは、3月16日にOSのアップデート(やその他の機能強化)が行われていました。
「さくらのレンタルサーバ」OSバージョンアップメンテナンスのお知らせ

このnpc.cgiは、よくあるフリーのCGIとは違って、PerlではなくC言語で書かれています。C言語なので、ソースの状態では実行できません。動作させるには各OS上でコンパイルして、実行ファイル(バイナリ)を生成する必要があります。

FreeBSD 6.1用のバイナリは、FreeBSD 7.1上では動作しないんですかね……?
もしそうだとしたら、動かなくなったのはOSのバージョンアップが原因ということになるのですが。
うーん。とすると、新OS上でコンパイルしないといけないのかな……?

今使ってるバイナリは、自分でコンパイルした記憶がないので、どこかで配布されていたFreeBSD用のバイナリを拾ってきてアップロードしたんだと思うのですが。
公式サイトで配布されているバイナリは、かなり古いFreeBSD用のしかないんですよね。私はどこで拾ってきたんだろう?(^_^;;;

SSHでサーバにログインして、自分でコンパイルって可能だったかな。どうだったかな。

……と思って検索してみたら、さくらインターネットっていつの間にか、npc.cgiを共通サービスとして提供していたんですね……。
標準で使えるCGIカウンター npc.cgi

うーん。これを使えば、自分のスペース内に自力でバイナリを置いたり設定ファイルを作らなくてもいいんですね……。
これは、自分で作った設定ファイルの参照とかは可能なのかな……?
あ、でも、これを利用するとなると、アクセスカウンタを呼び出している全HTMLソースを修正しないといけないので非常に手間ですね……。^^;;;

……あー、自分のスペース内にあるnpc.cgiファイルを消して、そこへのアクセスを全部さくらインターネット提供のnpc.cgiのある場所にリダイレクトさせるよう.htaccessファイルを記述するという手もある……かな?(^_^;;;
んー、アクセスカウンタにアクセスされるたびにリダイレクトが発生するのはスマートじゃないか……。一時しのぎとしてはいいかも知れないけど。

んあー。今調べたら、さくらインターネットではコンパイラ(gcc)使用可能なようです。
なるほど。やっぱり自分でコンパイルしなさいってことですね。(^_^;;;

とりあえず今は忙しいので後日作業しよう……。

※SSHでサーバにログインできるのは契約コースがスタンダードプラン以上の場合のみです。月額125円のコースの場合は、バイナリを拾ってくるしかないですね。(私はスタンダードプランを契約しています。)

コメント

こんにちは。
私も今気づいたのですが、さくらでCGIが動きません。
さくらに問い合わせているのですが、返事もありません・・
それで、こちらにたどり着いたのですが、その後のコンパイルのやり方などをそちらのwebにアップされる予定とかはありませんか???
もし教えていただけるとうれしいのですが・・・
私はプログラム初心者で、Cは触ったことありませんので、すごく困っています。

投稿者 ちこ : 2009年04月13日 22:47

ちこさん、どうもです。

コンパイルは実はとても簡単です。
npc.cgiの配布サイトからZIPファイルをダウンロードすると、srcフォルダの中にソースファイルが入っています。それを適当なディレクトリにアップロードしてから、Telnet(SSH)でサーバにログインして、「make」というコマンドを打てば、あとは勝手にコンパイルされてnpc.cgiが生成されます。

もしよろしければ、私がさくらインターネットのサーバ(FreeBSD 7.1)上でコンパイルしたnpc.cgiを差し上げても構いませんが。

投稿者 にしし : 2009年04月20日 17:15

コメント数: 2件

コメント投稿欄 この日記に対するコメント投稿を歓迎します。

保存しますか?



※本文中にURLは書けません。(書くと投稿が拒否されますのでご注意下さい。)

※投稿内容は、実際にページ上に掲載される前に、管理者によって確認される設定にしている場合があります。その場合は、投稿後にその旨が表示されます。たいてい1~2日以内には表示されるはずですので、気長にお待ち願います。m(_ _)m

トラックバック

このエントリーへのトラックバックURLを表示するにはここをクリック
※スパム防止のため、トラックバックURLは別ウインドウで表示します。(JavaScriptが有効でないと表示されません。)

--- 当サイト内を検索 ---