ナウでヤングなレンタルサーバー!ロリポップ!

サーバーに設置方法!


ゆっくり読んで理解して『ホルダー作成、そしてファイル転送』モードに注意して転送すれば、
素人の私にも出来たのだから、どなたでも出来ると思います。

しかし、全てのサーバー等で設置した訳ではありません使用設置は自己責任でお願いします。一切責任を、負うことはできません。


サーバーに設置しよう!

  • カウンタを設置するファイルはトップページ (index.html) の場合に「countディレクトリ」を作成します。

  • さらにその下に、データを置く「dataディレクトリ」、ロックファイル用の「lockディレクトリ」、カウンタ画像を格納するディレクトリとして、gif1, gif2, ...と「サブディレクトリ」を作成します。

  • 全体のディレクトリ構成例は以下のとおりとなります。(かっこ内はアクセス権の設定値です)

  • また、GIF画像ディレクトリはいくつあっても構いません。追加するに従って、gif3ディレクトリ, gif4ディレクトリ、というように連番にして増やしていって下さい。
    画像は、各種素材サイト等で探してください!たくさん良いのが出ていますのでがんばって探しましょう。


    【ディレクトリ構成例】
    yume / index.html(トップページ)
      |
      +-- count / dream.cgi  [705]       
           |      drmgr.cgi  [705]
           |      drinit.cgi [604]
           |      gifcat.pl  [604]
           |
           +-- data [707] / index.dat [606]
           |
           +-- lock [707] /
           |
           +-- gif1 / 0.gif ... 9.gif a.gif c.gif d.gif p.gif
           |
           +-- gif2 / 0.gif ... 9.gif a.gif c.gif d.gif p.gif
           :    :


  • dream.cgi 及び drmgr.cgi を エディタ で開き、以下の個所を修正します。
     #!/usr/local/bin/perl
    (プロバイダで定められたPerlへのパスを指定します)

  • drinit.cgi を エディタ で開き、以下の個所を修正します。
     $pass = '0123';
    (編集画面の入室用のパスワードです。英数字で指定してください)

     $ip_chk = 0;
     (IPアドレスをチェックし、連続する二重カウントを防止する機能です。この機能を使用する方は 1 としてください)

     $id_creat = 0;
    (ログファイルの自動生成の許可を設定します。タグを記述するだけでログを自動生成したい場合は「1」とします)

     $datadir = './data/';
    (ログデータを置くディレクトリを指定します。構成例のとおり、dream.cgiのあるディレクトリの下にある場合にはこのままでOKです)

     $rename = 0;
    (ログ更新に一時ファイルを生成してからrename関数で正規ログに更新する方式の場合には「1」とします。ログの破損が起こりにくくする方式です。ただし、「1」とした設置で「Can't Rename」というエラーが出る場合には「0」とします)
     $lockkey = 2;
    (ログ消滅防止策としてのファイルロック機構の設定です。サーバでsymlink関数が使用可能であれば「1」を、使用できない場合又はよく分からない場合には「2」とします。

     $lockdir = './lock/';
    (ロックディレクトリを指定します。構成例のとおり、dream.cgiのあるディレクトリの下にある場合にはこのままでOKです)

     $base_url = "http://〜〜/index.html";
    (他サイトからのカウンタ利用を拒否するセキュリティ機能です。この機能を使用する場合は、dream.cgiを設置するWEBページのURLをhttp://から正確に記述します)

     $gifdir = './gif1/';
    (画像のあるデフォルト(初期値)のディレクトリを指定します。構成例のとおり、dream.cgiのあるディレクトリの下にある場合にはこのままでOKです)

    最後に、カウンタを取り付ける index.html 内のお好きな場所に以下のような記述をします。(以下はログファイル名が、index.dat のとき)
    【記述例】
    <img src="http://〜〜/count/dream.cgi?id=index">

    エディタ及びファイル圧縮・解凍ソフトなど、お持ちでない方はベクター等で、入手してください。



ファイルの転送


  • スクリプトファイル及びログファイルは「テキストモード」で、カウンタ(GIF)画像は「バイナリモード」でFTPファイル転送します。参考にしてください。
  • 転送後、以下のとおり パーミッション を設定します。
    ファイル名 パーミッション 転送モード
    一般サーバ suEXECサーバ
    CGIWrapサーバ
    dream.cgi 755 or 705 701 or 700 アスキー
    drmgr.cgi 755 or 705 701 or 700 アスキー
    index.dat 666 or 606 600 アスキー
    drinit.cgi 644 or 604 600 アスキー
    gifcat.pl 644 or 604 600 アスキー
    dataディレクトリ 777 or 707 701 or 700 -
    lockディレクトリ 777 or 707 701 or 700 -
    *.gif - - バイナリ


  • 転送とアクセス権の設定がうまくいったら、ブラウザを立ち上げてURL欄に、
    http://〜〜/dream.cgi?mode=check と、URLを直接打ち込んでみましょう。エラーのある場合にはその旨表示されます。



  • 総カウント数を途中から開始する場合
    1. これは編集ファイル (drmgr.cgi) から簡単に行うことができます。
    2. ブラウザのURL欄に、http://〜〜/drmgr.cgi と打ち込み、直接アクセスします。
    3. アクセスされるとパスワード画面が現われますので、指定したパスワードを入力すると編集画面となります。その後、IDファイルのID名を指定し、修正したいカウンタ値を入力してください。その場でカウンタ数値が修正されます。

  • 複数ページに設置する場合
    1. ホームページにページ毎にカウンタを取り付けたい場合や、また複数のプロバイダにホームページを持っている方で、もう1方のホームページにカウンタを供給したい場合、「夢カウンタ」ではそれが簡単にできてしまいます。

    2. ログ自動生成機能をONにしている場合 ($id_creat=1;)
      設置はきわめて簡単です。取り付けるページ毎に、
      <img src="http://〜〜/dream.cgi?id=ログファイル名"> (ログファイル名は必ず英数字で)
      とするだけでOKです。各ページ毎のログは、***.datというファイル名で、countディレクトリ内に自動生成されます。

    3. ログ自動生成機能をOFFにしている場合 ($id_creat=0;)
      ページ毎にログファイルを作成します。
      idファイルの生成は、前項で解説する編集ファイル (drmgr.cgi) から行うことができます。
      idファイルが生成できたら、カウンタを取り付けるページには、
      <img src="http://〜〜/dream.cgi?id=ログファイル名"> (ログファイル名は必ず英数字で)
      とタグを記述して下さい。


バーミッション


  • 通常のUNIX系のWWWサーバの場合、HTTPとして動作するCGIプログラムの所有者権限は nobody で動作します。
  • これに対して、SuExec環境やCGIWrap環境のWWWサーバの場合には、CGIプログラムはそのファイルの所有者権限 (ユーザ権限) でプログラムが起動し、ファイルの読み書きや実行がそのユーザ権限で実行できるため、セキュリティ的に安全になります。
  • どうしてファイルの所有者権限で動作させたほうが安全かというと、例えば一般サーバでは、掲示板のログファイルはパーミッションを666又は606に設定します。この3番目の数字が nobody の実行権限を意味しますが、これを「6」、つまり「読み書き可能」にする必要があります。(ブラウザ上の操作が nobody であるため)

    オーナー 自分 (owner) グループ (group) その他 (nobody)
    パーミッション 6 0 6

    読む ( r ) = 4
    書く ( w ) = 2
    実行 ( x ) = 1

    (例) 読み書きが可能 = r + w = 4 + 2 = 6

  • しかしながら、このような環境では、例えばログファイルのURLを直接指定することでダウンロードさせることができたり、あるいは同一のサーバ内のID所有者などからもログファイルの読み書きが可能になってしまう危険性が考えられます。
  • そこで、CGIプログラムの実行を nobody ではなく owner 権限で動作させるようにして、ログファイルのパーミッションを 600 に指定可能にすれば、このような危険性がなくなることになります。

    【パーミッション例】
    種別 一般サーバ suEXECサーバ
    CGIWrapサーバ
    CGIファイル 755 or 705 701 or 700
    ログファイル 666 or 606 600
    読出専用ファイル
    (ライブラリ,HTML等)
    644 or 604 600
    ファイル生成ディレクトリ
    (ロックディレクトリ等)
    777 or 707 701 or 700




KENT さんの開設書そのままですけど!KENTさんありがとうございました。 詳しくはここ