あまつぶ

10.5 【初めてのcgi】

 ふと、1年前くらいに確保したPortland Communicationsのスペースでcgi(phpもいけるみたい)を動かすことができることを発見。ツリー型の掲示板がほしいなと思っていたところだったので、早速試してみることに。無料のツリー型掲示板をいくつか試してみたところ、CGIROOMのツリー型掲示板がデザインもシンプルでよさそうな感じ。ダウンロードして、まずはそのまま設置してみる。
 cgiを使う場合、アクセス権の設定をしないといけないらしい。例えば実行されるcgiのファイルは実行ができるようにしないといけないし、掲示板のログを保存するようなファイルは、書き込みができるようにしないといけない。なんか難しそうだけど、まあ勘でなんとか(笑)。最初、アップロードする度にアクセス権を設定し直していたのだけど、RBrowser Liteでは、アップロードする前のファイルに設定されているアクセス権がそのまま引き継がれるみたい。だから、先にローカルでアクセス権を適切に設定しておけば書き換えが楽になる。アクセス権は、Terminalでchmodコマンドを使って設定すると早い(chmod 755 aaa.cgiとか)。
 設置して動作することを確認したら、デザインや設定を変更してみる。何度かInternal Server Errorが出てきてしまって冷や冷やしたが、なんとかクリア。iCabで表示させると怒られる部分がいくつかあったのでそのあたりを修正。また、字の大きさや色はスタイルシートを用いるように変更してみた。
 デザインなどはもう少しいじるつもりだけど、とりあえずこんな感じ(テスト書き込み歓迎(笑))。時々表示に時間がかかることがあるみたいだけど、サーバが混んでいるのかな? 無料サーバなので動作速度はちょっと気になるところ。細かいところを修正しつつ、しばらく様子を見ることにしよう。(※ サーバの問題か、書き込みに失敗する場合があるようで、こちらへ移動)

 cgiで他にしてみたいことといえば、アクセス解析かな。こちらはCGI RESCUEにあった、画像を使ってアクセス解析を行うcgiを利用してみた。アクセスカウンタなんかと同じ要領でimgタグを利用してcgiを呼ぶ方式らしい。これで、アクセスしてきた人のIPアドレスとかブラウザの種類とかを取得することができるのだけど、リンク元(リファラ)は無理(cgiが呼ばれるときのリンク元は、imgタグのあるHTMLファイルになってしまう)。この方式で取得しようと思ったら、クライアントサイドのスクリプトを使ってリンク元を取得し、それをcgiに渡してやるなど(他にも方法があるのかどうかよく知らない)の方法をとる必要がある。
 ということで、スクリプトが使用可能な場合にはリンク元を取得してcgiに渡し、それをログに記録することができるように改造してみた。cgiに渡す部分は、JavaScriptを使う。スクリプトが使えない場合はnoscriptタグを使って、普通にimgタグでcgiを呼ぶ(具体的に知りたい方はトップのソースを参照)。
 アクセス解析の結果はこんな感じ(※ 重いので公開中止しました)。テストしながらだったので一部の集計が変だったり、リンク元に変なものが入っていたりするけど気にしてはいけない(汗)。あと、iCabが妙に多いのは私のログ(汗)。

 初めて設置してみた割には意外にあっさりとうまくいったのでちょっと調子に乗りつつある(笑)。ソフトのサポート掲示板とか、ダウンロード数のカウンタとか、ちょっと考えてみようかな。

October 4, 2002 ↑ 2002 index → October 12, 2002