@niftyの新しいサービスラクーカン(lacoocan)では、各自で適当なアクセスカウンターを用意するなり、無料のアクセスカウンターサービスを利用することを想定されているのか、アクセスカウンターが用意されていません。
そこで、ラクーカンに用意されているImageMagickの自習をかねてImageMagickを利用したLaCounterを作ってみました。このカウンターはそのLaCounterの一部の機能を抜粋したものです。
このアクセスカウンターは、画像ファイルとともにサーバーに転送するだけで動作させることができると同時に、設定ファイルやタグで指定することで画像の処理や動作を任意に指定することができます。
---なお、このマニュアルは印刷して利用できます。印刷はページ設定で[ヘッダ・フッターなし]および[ページ印刷なし]で、左右の余白を5mm、上下の余白を10mm程度にして印刷してください。---
--1--
一部は有償版のみの機能です。
--2--
配布されているファイル(CGI本体,画像)を指定された場所に転送し、パーミッションを設定しただけで使えます。
配布されているZIPファイルを解凍すると、CGI本体と画像ファイルを入れたフォルダーが現れます。
CGI本体: PutiCounter.cgi カウンター用画像: KATT154/ <--- フォルダ KATT154.GIF 5KATT154.GIF 0KATT154.GIF 6KATT154.GIF 1KATT154.GIF 7KATT154.GIF 2KATT154.GIF 8KATT154.GIF 3KATT154.GIF 9KATT154.GIF 4KATT154.GIF
下図のようにカウンタープログラム(LaCaunter.cgi)は[/homepage]内に[/cgi-bin]ディレクトリを作成してテキスト(ASCII)モードで、画像フォルダーは、[/homepage]内に[/images/counterImages]というディレクトリを作成してバイナリで、サーバーに転送する。
それぞれのパーミッションは下図のように指定しておく。
[ftp.**.coocan.jp] |-- [yourDomain] |-- bin/ |-- dev/ |-- etc/ |-- homepage/ | |-- cgi-bin/ 705 | | |-- PutiCounter.cgi 700 | | | |-- images/ | |-- counterImages/ | |-- KATT154/ 700 | |-- KATT154.GIF 600 | |-- 0KATT154.GIF 600 | |-- 1KATT154.GIF 600 | |-- 2KATT154.GIF 600 | |-- 3KATT154.GIF 600 | |-- 4KATT154.GIF 600 | |-- 5KATT154.GIF 600 | |-- 6KATT154.GIF 600 | |-- 7KATT154.GIF 600 | |-- 8KATT154.GIF 600 | |-- 9KATT154.GIF 600 | |-- lib/ |-- tmp/ |-- usr/
--3--
パーミッションを設定したら、CGIにブラウザでアクセスすると自動的にサーバーに必要なファイルが作成されます。[LaCooocanサーバー名]はあなた自身のサーバー名です。
http://[LaCoocanサーバー]/cgi-bin/PutiCounter.cgi
セットアップが完了すると、完了画面が表示されますからリロード(再読み込み)をしてカウンターが表示されることを確認してください。エラーが表示された場合は、指示に従ってください。
カウンターを貼り付けるHTMLのソース内に次のタグを記入する。
<img src="http://[LaCoocanサーバー]/cgi-bin/PutiCounter.cgi">
画像についての詳しい説明はこのマニュアルの7ページの[画像の使い方]にあります。
使用したい画像を、サーバーにフォルダーごと転送し、タグで指定する。たとえばDigit Maniaにある[Blue-Red Punch]という画像を利用する場合について説明すると。
<img src="http://[LaCoocanサーバー]/cgi-bin/PutiCounter.cgi?IMG=FLUBBER">
このCGIはPATH_INFOで画像と出力フォーマットを指定することができます。
PATH_INFOで指定できるのは、カウントファイルと画像の種類と出力画像のフォーマットの3つです。
<img src="http://[LaCoocanサーバー]/cgi-bin/PutiCounter.cgi/brpunch.gif">
これは、[画像の保存先]/brpunch/の画像をGIFで出力させる書き方です。
このCGIは設定や<img>タグ内のアトリビュート(属性)の記述、またはPATH_INFOで、高度なあるいは細かい設定ができます。詳しい説明は次の高度な使い方以降をご覧ください。
--4--
このCGIは、設定ファイルやタグの記述で高度な応用もできます。以下のページでインストールから使用方法まで詳しく説明します。
ここに書かれている機能のいくつかは有償配布版のみの機能もあります。
このカウンターの設置のためには、CGI本体と使用する画像ファイルを変更せずサーバーに転送し、CGI本体に実行権限を与えてブラウザから呼び出すだけで動作する。
CGIの最初の起動時に設定ファイルが作成されるので必要ならテキストエディタで書き換える。
CGIを起動すると、いくつかのディレクトリやファイルがない場合には自動的に作られます。
このCGIに必要なファイルを入手する。必要なファイルは、ダウンロードのページにあります。ファイルはZIPで圧縮してあります。リンクを右クリック(Windows)して保存してください。
なお、この有償版は、いったん@niftyのアット・ペイ:トップで購入の手続きをしてください。
いずれもZIPで圧縮されたファイルとして提供されます。ダウンロードしたファイルを適当な場所に保存してください。
解凍ソフトはOSに付属のものか、Vectorや窓の杜などで適当なものを探して利用すると良いでしょう。
--5--
下図のようにカウンタープログラム(LaCaunter.cgi)は[/homepage]内に[/cgi-bin]ディレクトリを作成してテキスト(ASCII)モードで、画像フォルダーは、[/homepage]内に[/images/counterImages]というディレクトリを作成してバイナリで、サーバーに転送する。
[ftp.**.coocan.jp] |-- [yourDomain] |-- bin/ |-- dev/ |-- etc/ |-- homepage/ | |-- cgi-bin/ 705 | | |-- PutiCounter.cgi 700 | | | |-- images/ | |-- counterImages/ | |-- KATT154/ 700(707) | |-- KATT154.GIF 600(604) | |-- 0KATT154.GIF 600(604) | |-- 1KATT154.GIF 600(604) | |-- 2KATT154.GIF 600(604) | |-- 3KATT154.GIF 600(604) | |-- 4KATT154.GIF 600(604) | |-- 5KATT154.GIF 600(604) | |-- 6KATT154.GIF 600(604) | |-- 7KATT154.GIF 600(604) | |-- 8KATT154.GIF 600(604) | |-- 9KATT154.GIF 600(604) | |-- lib/ (通常のブラウザでのアクセスでも画像への |-- tmp/ |-- usr/ アクセスを可能にするときは(カッコ)内の値にする。
このディレクトリがすでに使用されているなどの理由で画像の保存先を変更する場合は、画像の保存先は起動後に変更できます。設定ファイルの変更方法の画像の保存先を変更するにはを参考にしてください。
--6--
このCGIに実行権限(LaCoocanでは700)を与えて、ブラウザでアクセスすると下記のディレクトリとファイルが作成される。
[ftp.**.coocan.jp] |-- [yourDomain] |-- bin/ |-- dev/ |-- etc/ |-- homepage/ | |-- cgi-bin/ 705 | | |-- PutiCounter.cgi 700 | | |-- PutiCounter.conf 700(設定ファイル) | | | |-- log/ | |-- PutiCounter | |-- Count1.txt(カウントファイル) | |-- access1.csv(ログファイル) | |-- lib/ |-- tmp/ | |-- PutiCounter/ | |-- usr/
ページにカウンターを埋め込むタグ(<img src=****>)内に、コマンドを書くことで、次で説明する設定ファイルとは別の動作を上書きして指定することができる。
必ず半角英数字のみで指定すること。URIで使えない文字([^a-zA-Z0-9_.!~*'()-])はURIエスケープすること。たとえば / は %2F に、#は %23 となります。
下記に実際の設定例を示しますが、これらは同時に一括して指定できます。複数の項目を指定するときは&でつなぐこと。
--7--
--8--
カウンターで使用する画像の種類を指定したり、画像の編集を行う。
--9--
--10--
--11--
--12--
これらの設定は一括して設定できます。
使用する画像の種類と画像の形式、およびカウンタファイルについてはPATH_INFOでも指定が可能。
PATH_INFOとは、CGIファイル名の後ろに続く文字列(?があれば、?まで)で、/に続いて指定する値を/で区切って並べる。
--13--
このCGIは起動時に設定ファイルを探し、それがない場合は自動的に作成されます。設定ファイルをサーバーから削除すると次の起動時に再生する。
なお、設定ファイルに記述する内容のうち、初期状態の内容と同じものは記入する必要がないので、変更する部分のみ記述しても良い。たとえば次のように変更したい項目だけ記述したので良い。
Tr : month IMG : KATT154 FC : #00ee99
これらの項目は、カウンターの動作そのものを設定します。
--14--
--15--
画像の処理
カウンターで使用する画像と枠付け前の処理をしていする。
--16--
枠の種類や色、サイズを指定する。
枠をつけた後での画像の処理
--17--
ここからの設定項目は、この設定ファイルでのみ設定が可能でPATH_INFOやQUERY_STRINGSでは上書きできない。
記録としては残さない一時的なファイル
--18--
--19--
画像はバイナリモードで、その他のファイルはテキストモードでサーバーに転送する。本体のCGIファイルには所有者に対してのみ実行権限を与える。他のファイルは所有者にのみ読み書きの権限を与える。
このCGIで使用する画像ファイルは、JPEG,GIF,PNG,BMP,TIFFをはじめとする、ほとんどの画像フォーマット(約90種類)を使用できますがGIFかPNGを使用してください。。
いずれの素材も、それぞれの配布サイトの利用条件を必ず確認して、それに従って利用してください。
こんな画像があります。(1:のABACUSJNをのぞいて)Digit Maniaにあるものです。
1(オリジナル)
257 Chevy
3Apple
4Bank Gothic
5Bar
7BCK Blue
--20--
8Bembo
6Bubble Dot Red
9BFBLACK
10Blue-Red Punch
11CALIGRA
12cledred
13colors
14COMPUTER
15flowers
16FLUBBER
17katt116
18KATT154
19mahjong
20note
21sunset2
22uno
23WEB2
24wpkneo
25wwe
多くのサイトは圧縮ファイルとして配布されています。@niftyのLacoocanサービスではtelnetが使えないので、一旦ローカル側で解凍してからサーバーに転送する必要があるので、それぞれの圧縮方法に従って解凍する。
BMP(Microsoft Windows bitmap image file),PSD(Adbe Photoshop),TIFF (Tagged Image File Format),EPS (Adobe Encapsulated PostScript file)などのほとんどの形式の画像を扱えますが、サイズの比較的小さいJPEG(Joint Photographic Experts Group JFIF format),PNG(Portable Network Graphics),GIF(CompuServe Graphics Interchange Format)などが良いでしょう。
ひとつのディレクトリに入れる画像のファイル名と拡張子は大文字小文字を含めてすべて統一すること。またカレンダーや時刻表示に使用する(A,P,C,D)で始まる画像の(A,P,C,D)は必ず大文字にすること。
サーバーの[/homepage/images/counterImage/]内に、ディレクトリごと転送(アップロード)する。(転送先は後述の設定ファイルやQUERY_STRINGで変更することができます。)
転送した画像は所有者のみに読み書きの権限(600)を与えてください。なお画像の入っているディレクトリは実行権限も追加(700)してください。(ブラウザで直接画像を見れるようにする場合は、それぞれ[605][707])にしておいても良いでしょう。
--21--
起動時に作成される設定ファイルのすべて
****This document is written in Japanese by charset euc-jp.***** {ラカウンター用設定ファイル} _________________________________________ ※このファイルは、@niftyのLa.Coocan用のアクセスカウンター[PutiCounter]の設定ファイル。 ※このファイルは、 ・このファイルはカウンターのインストール時に自動的に作成される。 ・このファイルの文字コードは日本語EUC-JPです。 ・このファイルはテキストエディタで編集できる。 ・編集後、必ずテキスト(ASCII)モードでサーバーに転送する。 ・コマンド行は[要素 : プロパティ]の1行で、その前方になにもないこと。 ・初期値より変更しないコマンド行は削除してよい。 ・要素とプロパティの区切りは[:]。 ・[:]の前後には読みやすいように空白文字があってよい。 ・先頭が大文字の項目はタグで上書き可能 ・色名は#000〜#fffffffffないし、rgb(0〜255,0〜255,0〜255)、及び 色名(http://imagemagick.org/script/color.php#table)が使用できる。 _________________________________________ [カウンター機能] ※この章ではカウンターの機能そのものの設定を行う。 # 表示形態(Type) # このカウンターを何に使うか?カウンター、時計、それともカレンダー? # カウンターは[counter]、特定のカウント数までのカウントダウンは[countdown] # カレンダーは[calendar]、時計は[clock](24時間表記)か[clock12](12時間表記) # カレンダーに使用する画像にはダッシュ(D)が必要 # 12時間表記のときは画像にAM(午前),PM(午後),コロンを示す画像(A,P,C)が必要 # 日時までのカウントダウンは[countdownD〜DHMS]D:日数、H:時間、M:分、S:秒 # [counter|clock12|clock24|calendar|countdown|countdownDHMS| # countdownDHM|cowntdownDH|countdownD] Ty : counter # カウント対象(Target) # いつのアクセス数を表示するか?カウンター(カウントダウン)の場合に表示する対象 # 累計[total]、今年[year]、今月[month]、今週[week]、今月[month]、今日[today] # [total|t|year|y|month|m|week|w|month|m|today|d] Ta : total # カウントファイルの番号(CountFile) # 異なるカウントファイルを使うことが出来る。 # [1..] CF : 1
--22--
# カウント動作時以外のカウント(Count) # カウンター(カウントダウン含む)以外の表示(時計やカレンダー)のときにも # カウントするか?。しないときは[0](デフォルト)、カウントするときは[1] # [1|0] Count : 0 # リロードチェックチェック(CheckReload) # 再読み込みの場合にカウントするか、しないか? # [1]再読み込みの場合にカウントしない。[0]はいつもカウントする。 # [1|0} CR : 1 # 特定日(Event) # 日時のカウントダウンをするときの目標とされる日時の指定 # TyがcountdownD〜DHMSのときはここに書かれた数字を次のように判断 # 数字4桁 西暦とみなし、目標をその年の一月一日零時零分零秒とみなす。 # 数字4桁-数字2桁 西暦と月とみなし、その月の一日零時零分零秒とみなす。 # 数字4桁-数字2桁-数字2桁は西暦年月日の零時零分零秒とみなす。 # 数字4桁-数字2桁-数字2桁-数字2桁は、西暦年月日時間の零分零秒とみなす。 # 数字4桁-数字2桁-数字2桁-数字2桁:数字2桁は、西暦年月日時分の零秒とみなす。 # 数字4桁-数字2桁-数字2桁-数字2桁:数字2桁:2桁は、西暦年月日時分秒とみなす。 # [\d{4}|\d{4}-\d{2}|\d{4}-\d{2}||\d{4}-\d{2}-\d{2}| # \d{4}-\d{2}-\d{2}-\d{2}|\d{4}-\d{2}-\d{2}-\d{2}-\d{2}} Event : 000 # カウントダウンの目標(Epoc) # 全部の数字/を対象とする場合はEventではなく、次のJustを使う。 # 特定のカウント数までのカウントダウンを行うときの目標となるカウント数の末尾を指定。 # [0000}で一万カウントごとにカウントダウンする。 # [数字1桁以上] Epoc : 0000 # 特定カウント数(Just) # 特定のカウント数のみを対象とする場合はこちらを指定する。 # [数字] Just : # 最高桁数(Max) # 数字の前に0を置く最大桁数、0のときは無制限で常時先頭は0 # [数字] Max : 6 # 最低桁数(Min) # 桁数が少ないときの桁数、これ以下の値の場合前方が0で埋められる。 # [0...] Min : 6
--23--
[画像の種類と編集] ※カウンターで表示する画像に関する設定 (画像連結前の処理) # 画像の種類(IMaGe) # カウンターに使用する画像を画像フォルダーの名称で指定する。 # [画像のディレクトリ名] IMG : KATT154 # 表示画像の幅(DigiWidth) # 一文字の幅:ひとつの文字の幅。0のときは画像本来の幅 # プロポーショナルな画像の場合は一定の比率で拡大縮小される。 # 0.1,1.2など小数点を含む数値の場合は縮小・拡大率 # 10などの整数値では文字[0]の横幅(ピクセル数) # [\d+|\d+.\d+] DW : 0 # 画像を並べる方向 # 一つ一つの画像の並べ方[右(0)|下(1)] # 画像を連結する方向(漢数字などは縦) # [0|1] Tile : 0 # 背景の透明化(Transparent) # 透明化:背景を[透明にしない(0)、透明にする(1)] # 画像によっては透明化できない場合がある。 # [0|1] Tr : 0 # 背景色(BackColor) # 素材画像の背景色が指定されている場合、背景を透明にするかしないか。 # 画像によっては機能しない場合がある。 # [色名] BC : # 透明色(TransparentColor) # 透明色:背景を透明にするときの色 # 指定しない場合は画像の左上のピクセルの色を使用する。 # [色名] TrC : # 画像の回転(Rotate) # 一つ一つの画像の連結前の回転(0|R|L|A|0〜360) # [R]で右に90°[L]で左に90°。0<数値<360の場合はその角度ver右回転。 # [0]または指定がないと回転しない。この場合に余白が生じた場合は「背景色」 # で指定した色で塗りつぶされる。 # [0-360] Ro : 0
--24--
# 個別の画像の鏡像(FLip) # 連結前の画像の反転を行うか否か # 上下二反転する場合(V)、左右に反転する場合(A) # [0|A|V] FL : 0 (画像連結後の処理) # 枠付け前の回転(Spin) # 画像を連結したのちにまとめて回転する場合 # [数値] Spin : 0 # 画像の枠づけ前の追加処理 # 画像をさらに編集する場合その処理を記述したスクリプトに従って処理できる。 # 画像の前処理。枠をつける前の画像の特殊処理[しない(0)|する(1)] # [0|1] PreManipulate : 0 (枠の設定) # 枠のタイプ(FrameType) # [border|frame] FTy : frame # 枠(Frame/Border共通)の幅 # 枠の幅をピクセルする。 # [数値]ひとつで縦横とも同じ幅、[数値,数値]で、横|縦の幅を個別に指定可能 # [数値(,数値)] BW : 6 # 外枠の幅 # 枠がFrameのときの最も外の枠の幅 # [数値] FOW : 2 # 内枠の幅 # 枠の種類がFrameのときの内枠の幅 # [数値] FIW : 2 # 枠の色 # 枠(Frame/Border共通)の色 # 色名はimageMagickの認識できる形式で指定 # <URLで指定するときは必ずURLエンコードして記述する> # たとえば、#f00000 は、%23f00000 とすること # [色名] FC : #f0f000
--25--
# 画像と枠の余白 # [数値]ひとつで縦横とも同じ幅、[数値,数値]で、横|縦の幅を個別に指定可能 # [数値(,数値)] Padding : 0 # 枠の数 # 枠の数、[0]だと枠なし、[1]はデフォルト # [数字] Repeat : 1 # 枠付け後の画像の反転(Flip) # 画像をフリップ(鏡像)に[しないは0、縦方向でV、横方向でA # [0|V|A] Fl : 0 # 合成画像の回転 # [R]で右に90°[L]で左に90°。0<数値<360の場合はその角度ver右回転。 # [0]または指定がないと回転しない。この場合に余白が生じた場合は「背景色」 # で指定した色で塗りつぶされる。 # [0-360] RO : 0 (枠付け後の処理) # 画像の後処理。枠をつけた後での画像の特殊処理 PostManipulate : 0 # 出力画像の種類(ImageFormat) # 画像の出力形式の指定 # [png|gif|jpg] IF : png [カウンターのサーバー側設定] ※以下の項目は、画像の読み込み時には指定できない。(PATH_INFO,QUERY_STRINGSとも) (ディレクトリの設定) ※カウント数を保存するディレクトリ<ルートからの絶対パスで記述> # カウンター本体ログを保存する場所 countDir : /homepage/log/PutiCounter # 画像を置くディレクトリ imageDir : /homepage/images/counterImage # ログファイルの保存ディレクトリ accessLogDir : /homepage/log/PutiCounter # 作業用ファイルを置くディレクトリ tempDir : /tmp/PutiCounter
--26--
(ファイル名) ※それぞれのファイル名 # カウントファイル名 countFileName : LaCount # カウントファイルの拡張子 countFileExt : txt # ログファイル名 accessLogFileName : access # ログファイル拡張子 accessLogFileExt : csv # IPアドレスチェックファイル checkFile : reloadCheck # IPアドレスチェックファイル拡張子 checkFileExt : txt (追加スクリプトファイル名) # 前処理・後処理用ファイル # それぞれsub preManipulate{} sub postManipulate{}と言う名前で # 追加スクリプトを記述して保存するファイル名 manipulateFile : ./Manipulate.pl (動作設定) # アクセスログを取るかとらないか # 取るなら1、とらないなら0 # [0|1] log : 0 # ログの最大記録数 # ログは、CSV(Excell対応の、カンマ区切りテキストで保存される) # [数値] logMax : 200 # リロード有効期限 # リロードされたとき無視する秒数、初期値は1200秒=20分 # [数値] reloadExpires : 1200 # クッキーの名前 # [strings] cookieName : PutiCounter # イベント設定の場合のクッキーの名前 # [strings] expCookieName : PutiCounterExp
--27--
# メール送信(eMail) # 特定カウントをゲットされたとき管理者にメールを送信する。 # キリ番到達時にメールを[送信する 0|1 しない](現在動作しない) # [0|1] eMail : 1 # カウントファイルの自動作成 # 通常はOにしておく。1だと画像を呼び出す時にその番号のカウントファイルがない場合 # 自動的に作られるが、そうすると訪問者が勝手に任意のカウントファイルを作られてしまう。 # なお、一時的に1にしてから再び0に戻すことでカウントファイルを作成することもできる。 # この項目はタグからは変更できない。 # [0|1] autoMakeCountFile : 0 # 設定の上書きを許可する。 overWrite : 1 # 時差--サーバーとの時間差がある場合 timeDef : 0 # ブラウザ対策 # 一部のブラウザでは、画像が送られてくるまでのタイムラグが待てずに # 再読み込みを試みるものがあるようです。そのための対策として、リロードの # チェックの設定に関わらずこの秒数以下ではカウントしない。 # リロードをチェックしないときの画像の有効期間にも使用される。 browser : 2 -------------------------------------------------------------------- 【文書情報】このスクリプトの説明と使用条件が書かれています。 このスクリプトは、@nifty@homepageのLaCoocanサービス用に製作したアク セスカウンターですが、他のサーバーでも必要なモジュールがあればこのまま 動作するはずです。 (利用条件) ・この配布条件は変更できないこと。 ・このプログラムはフリーです。ここでいうフリーとは、以下の条件に従う限り 自由と言う意味で、無料と言う意味ではありません。 ・このプログラムは自由に改造、再配布、友人に設置してあげるなどが自由にで きます。 ・また、配布や設置してあげたり、それらに対価を受け取ることも自由です。 ・改造した場合はその変更点と変更した日付と責任者を明記し、オリジナルと区 別できるようにすること。 ・配布したり設置してあげた人にもこのプログラムが、再配布、改変、販売が自 由であることを必ず伝えること。 ・無保障である事。 (改訂履歴) V1.0 最初のバージョン by Shizuka Teshima shizuka@ichiya.com URL: http://iruka.la.coocan.jp/cgi/PutiCounter/
--28--
このCGIを作成するに当たって利用させていただいたネットワーク上の資料と参考書
--30--
© TESHIMA Shizuka 2001 - 2004 All Rights Reserved mailto:office@ichiya.com
--31--