このページではWebサーバーApache/httpdWebalizerによるアクセス解析ユーザーディレクトリなどに対して行う方法について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
webalizerでアクセス解析

Webアクセス解析とは

Webalizer日本語版の導入

Webalizerの基本設定

httpdログの構造を理解する

Apacheでログを振り分ける

検索文字列の日本語化

統計データの見方について

解析データの最適化と分析法

解析スケジュールの設定

デフォルト以外のアクセス解析


Webalizerで色々なログファイルを解析する

ここまでは、

・設定ファイルとして "/etc/webalizer.conf" を利用する。

・ドキュメントルート "/var/www/html/" を解析対象とする。

・解析データの出力先を "/var/www/usage/" とする。

という デフォルト のアクセス解析について説明してきました。

Webalizer の基本設定 Webalizerの基本設定について をご覧の方はもうお分かりかもしれませんが、Webalizerは任意の ログ ファイルに対してアクセス解析を行い、その結果を任意のディレクトリに対して出力することができます。

従って、ログデータの振り分けで集めた 検索ロボット のログファイルの解析の他、 バーチャルホスト や個々のユーザーディレクトリで公開されている コンテンツ に対して別々にアクセス解析を行い、それぞれ異なるディレクトリに出力することができます。

このパートではいくつかのケースにおいて、デフォルト以外のアクセス解析パターンについて解説します。

"/etc/webalizer.conf"のパスを変更する

ここまでの設定では デフォルト の位置にある "/etc/webalizer.conf" を参照することを前提に説明してきましたが、複数のアクセス解析を行う場合にはこの デフォルトの設定自体があまりお薦めできる方法ではありません

Webalizer は実行時に "-c" オプションを使って、

webalizer -c [初期設定ファイル名]

と指定すると、任意の パス にある任意の名前の初期設定ファイルを参照してアクセス解析を行います。

ところがもしもこの指定がない場合には、

1.実行時の カレント ディレクトリの "webalizer.conf"

2.デフォルトの位置として既定されている "/etc/webalizer.conf"

という優先順位で初期設定ファイルが検索され、実行されるようになっています。

ということは、もしもWebalizerの実行スクリプトの記述などを違えてしまい、うっかり実行 コマンド の本体である "/usr/bin/webalizer" をオプションなしで実行してしまうと、その実行時のカレントディレクトリによっては目的とは全然異なるアクセス解析結果が出力されてしまうことがあります。

そこで、

「Webalizerの初期設定ファイルは"webalizer.conf"というファイル名に統一し、アクセス解析の出力先のディレクトリに配置する。」

というルールを決めておくことをお薦めします。

そうすると間違いが起こりにくくなるだけではなく、Webalizerの実行 スクリプト の記述や書き換えも幾分簡単になります。

というわけでこのルールに倣い、現在参照している初期設定ファイル "/etc/webalizer.conf" を移動し、 "/var/www/usage/webalizer.conf" で実行できるように設定を変更してしまいましょう。

この お便利サーバー.com のアクセス解析結果を公開中ですのでご覧ください。
メインコンテンツのアクセス解析結果 お便利サーバー.com
お便利サーバー.comへの検索ロボットのアクセス状況 検索ロボット

まず、 サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド アカウント "root" に変更し、 cp コマンドで "/etc/webalizer.conf" をアクセス解析結果の出力ディレクトリである "/var/www/usage/" にコピーしてください。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp -p /etc/webalizer.conf /var/www/usage/Enter
[root@web1 ~]#

次に稼動中のWebalizerの実行 スクリプト の一部を修正します。

もしも、「解析スケジュールの設定」 Webalizerの解析スケジュールの設定について で、 "run-parts" 用に "cron.daily" 以外のディレクトリを利用している場合は、ディレクトリ名を適宜読み替えて設定を行ってください。

もし「検索文字列の日本語化」を参考に実行スクリプト "/etc/cron.daily/webalizer_def.bash" を作成して利用中の場合は Webalizerの検索文字列の日本語化について nanoエディタ "/etc/cron.daily/webalizer_def.bash" を開き、以下のように修正を行ってください。

[root@web1 ~]# nano /etc/cron.daily/webalizer_def.bashEnter
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c /etc/webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done
赤字 のように修正します
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done

修正が終わったら、 "/etc/cron.daily/webalizer_def.bash" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

また、「検索文字列の日本語化」を行っておらず、 "/etc/cron.daily/00webalizer" をそのまま利用している場合は、 chmod コマンドを使ってこの実行スクリプトから実行属性をはずし、動作を無効化した後に、同じディレクトリに以下のような実行スクリプトを新規に作成してください。

[root@web1 ~]# chmod 644 /etc/cron.daily/00webalizerEnter
[root@web1 ~]# nano /etc/cron.daily/00webalizer_def.bashEnter
↓"00webalizer_def.bash"を以下のように記述します
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null

作成が終わったら、 "/etc/cron.daily/00webalizer_def.bash" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

そして新しく作成したスクリプトには忘れずに実行属性を与えてください。

[root@web1 ~]# chmod 755 /etc/cron.daily/00webalizer_def.bashEnter
[root@web1 ~]#

これらの修正と作成のポイントは、初期設定ファイル "webalizer.conf" の指定を 絶対パス から 相対パス に変更している点です。

これらのスクリプトの動作としては、

1.cdコマンドで解析結果の出力先(つまり使用する初期設定ファイルのパス)に移動する。

2.cdコマンドでの移動先をカレントディレクトリとして、 "webalizer.conf" を参照してWebalizerを実行。

という形を取ります。

つまり修正前はカレントディレクトリが何処であっても必ず "/etc/webalizer.conf" が初期設定ファイルとして参照されていたのですが、このように設定を変更することで、

「必ずカレントディレクトリの"webalizer.conf"が初期設定ファイルとして参照される」

ようになるわけです。

つまりこのように修正を行うことでスクリプトの内容が簡単になるばかりでなく、これらのスクリプトを雛型にして、

cd /var/www/usage

の部分を書き換えるだけで、任意のディレクトリの "webalizer.conf" を設定ファイルとして参照させ、同じディレクトリをWebalizerの出力ディレクトリとして利用できるようになります。

さて、ここでもう一つやっておくべきことは、これまで利用してきた "/etc/webalizer.conf" の無効化です。

これを忘れると、コマンド プロンプト から "webalizer" とだけ実行した場合に、この初期設定ファイルが参照されて動作してしまうからです。

方法は簡単で、 "/etc/webalizer.conf" をnanoエディタで開き、 "LogFile" ディレクティブ LogFileディレクティブについて で「存在しない」ログファイル名を指定すれば、参照されてもエラーになり、事実上何も行われなくなるからです。

LogFile    /var/log/httpd/dummy_log
↓上のように存在しないログファイルを指定すると...
[root@web1 ~]# webalizerEnter
Error: Can't open log file /var/log/httpd/dummy_log
[root@web1 ~]#  ↑のように実行できなくなる。

修正が終わったら "/etc/webalizer.conf" を保存してnanoエディタを閉じてください nanoエディタでファイルを閉じる

これでドキュメントルートに対するアクセス解析はそのままに、それ以外のアクセス解析の設定を簡単・安全に行う準備ができました。

このページの先頭へ↑

検索ロボットのログの解析を行う

ここでは設定例として、「Apacheでログを振り分ける」 Apacheでログを振り分ける でアクセス解析から除外したいログデータとして振り分けを行い、 "/var/log/httpd/access_robot_log" に収集した 検索ロボット のログファイルを解析し、出力してみましょう。

この お便利サーバー.com のアクセス解析結果を公開中ですのでご覧ください。
メインコンテンツのアクセス解析結果 お便利サーバー.com
お便利サーバー.comへの検索ロボットのアクセス状況 検索ロボット

また Apache バーチャルホスト を運用している場合でも、設定の考え方は同じですから同様の方法で Webalizer による個別解析が可能ですので試してみてください。

出力先ディレクトリの作成とApacheの設定

Webelizerにより出力される HTML のデータは、 HTTP で参照される必要がありますから、後で設定しやすいように "/var/www/usage/" と同じ並びに作成しておくと良いでしょう。

[root@web1 ~]# mkdir /var/www/robotEnter
[root@web1 ~]#

次に、このディレクトリをHTTPでアクセスできるように、 nanoエディタ "/etc/httpd/conf.d/webalizer.conf" Apacheのディレクトリ設定ファイル/etc/httpd/conf.d/webalizer.confについて を開き nanoエディタでファイルを開く 、以下のように追加記述してディレクトリ公開を有効にしてください。

誰に見られても構わない、というのであれば、 "Allow from all" を設定してもかまいません。
Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
  # Allow from .example.com
</Location>

Alias /robot /var/www/robot

<Location /robot>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
</Location>

記述が終わったら "/etc/httpd/conf.d/webalizer.conf" を保存してnanoエディタを閉じ nanoエディタでファイルを閉じる Apache の再起動または設定の有効化作業を行って Apacheの設定の有効化について ください。

これで通常のアクセス解析結果と同様に、 "/var/www/robot/" 以下に出力されたアクセス解析データは、 構築中のLinuxサーバー と同じ サブネット から、

http://www.obenri.com/robot/

や、

http://192.168.100.11/robot/

等での閲覧が可能になりました。

設定ファイル"webalizer.conf"の設置と設定

次に、アクセス解析の設定ファイル "webalizer.conf" を解析結果の出力先ディレクトリ内に設置します。

例えば「Webalizerの基本設定」 Webalizerの基本設定 で一番最初に行った「何も手を付けていない」バックアップファイルを、 cp コマンド で、

[root@web1 ~]# cp -p /etc/webalizer.conf.org /var/www/robot/web
alizer.conf
Enter
[root@web1 ~]#

のように "/var/www/robot/" にコピーして nanoエディタ で編集しても構いません。

しかし、既に使用中の初期設定ファイル "/var/www/usage/webalizer.conf" は既に細かい調整が済んでいるはずですので、これをコピーして使うようにします。

[root@web1 ~]# cp -p /var/www/usage/webalizer.conf /var/www/robot/Enter
[root@web1 ~]#

設定ファイルの雛型 "/var/www/robot/webalizer.conf" が設置できたら、これを nanoエディタ でを開き nanoエディタでファイルを開く 、参照と出力先ディレクトリに関する以下の五つの ディレクティブ を設定例のように修正してください。

1. "LogFile" ディレクティブ LogFileディレクティブについて

LogFile /var/log/httpd/access_robot_log 検索ロボットのログデータファイルについて で収集したログファイルを指定します。

2. "OutputDir" ディレクティブ OutputDirディレクティブについて

OutputDir   /var/www/robot

3. "HistoryName" ディレクティブ HistoryNameディレクティブについて

HistoryName   /var/www/robot/webalizer.hist

4. "IncrementalName" ディレクティブ IncrementalNameディレクティブについて

IncrementalName /var/www/robot/webalizer.current

5. "DNSCache" ディレクティブ DNSCacheディレクティブについて

DNSCache    /var/www/robot/dns_cache.db

その他のディレクティブについてはこのセクションを参考にして任意に設定してかまいません。

だだし、この設定が 検索ロボット のログデータの解析ではなく、 Apache バーチャルホスト に対する設定の場合にはもう一箇所設定を変更すべきディレクティブがありますので忘れないようにしてください。

※. "HostName" ディレクティブ HostNameディレクティブについて

HostName    [バーチャルホストのFQDN]

記述が終わったら "/var/www/robot/webalizer.conf" を保存してnanoエディタを閉じてください nanoエディタでファイルを閉じる

Webalizerの実行スクリプトの作成

最後に、 Webalizer の実行 スクリプト を作成します。

このパートの前半で説明した通り、既に作成している "/etc/cron.daily/webalizer_def.bash" cp コマンド で同じディレクトリに別名でコピーし、これを nanoエディタ で開いて、以下の部分だけ修正すればOKです。

[root@web1 ~]# cp -p /etc/cron.daily/webalizer_def.bash /etc/cr
on.daily/webalizer_robot.bash
Enter
[root@web1 ~]# nano /etc/cron.daily/webalizer_robot.bashEnter
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done
赤字 のように修正します
#!/bin/bash
cd /var/www/robot
/usr/bin/webalizer -c webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done

検索文字列の日本語化を行っていない "/etc/cron.daily/00webalizer_def.bash" を利用する場合も同様に作業します。

[root@web1 ~]# cp -p /etc/cron.daily/00webalizer_def.bash /etc/cr
on.daily/00webalizer_robot.bash
Enter
[root@web1 ~]# nano /etc/cron.daily/00webalizer_robot.bashEnter
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
赤字 のように修正します
#!/bin/bash
cd /var/www/robot
/usr/bin/webalizer -c webalizer.conf > /dev/null

修正が終わったら実行スクリプトを保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

これで設定は終了しました。

"/etc/cron.daily/webalizer_robot.bash" または、 "/etc/cron.daily/00webalizer_robot.bash" が実行されると、アクセス解析結果を閲覧することができるようになります。

後は動作確認を行って細かい設定を調整すればOKです。

このページの先頭へ↑

ユーザーディレクトリのログの解析を行う

Apache でユーザーディレクトリを家族や知人にホームページのための コンテンツ スペースを貸し出す場合 ユーザーディレクトリの公開のポイントについて セキュリティ 面を重視して 「必要以上の権限を与えない」 というコンセプトで行うのが基本です。

この お便利サーバー.com のアクセス解析結果を公開中ですのでご覧ください。
メインコンテンツのアクセス解析結果 お便利サーバー.com
お便利サーバー.comへの検索ロボットのアクセス状況 検索ロボット

ローカルユーザーの権限ではアクセスログの振り分けは通常できませんし、 CUI の設定ツールの扱いに慣れていないユーザーに "webalizer.conf" を編集する権限を与えてしまうと、

「設定の仕方がわからない。」

あるいは

「解析結果がおかしくなったからなんとかして欲しい。」

という具合に質問攻めに合うことは間違いありません。

そこでローカルユーザーにアクセス解析結果を提供するときは「あくまでサービスの一つ」と割り切って、単純に「アクセス解析の結果だけ」にしてしまいましょう。

出力先ディレクトリの作成とApacheの設定

Webelizerにより出力される HTML のデータは、 HTTP で参照される必要がありますから、 "/home/*/public_html/usage/" を出力先としておくと良いでしょう。

例えば ユーザーアカウント "suzuki" の場合は、

[root@web1 ~]# mkdir /home/suzuki/public_html/usageEnter mkdirコマンドについて
[root@web1 ~]#

のようにして作成します。

"/home/suzuki/public_html/" 以下のディレクトリは既に Apache で公開されていますから、 "/home/suzuki/public_html/usage" 以下に出力されたアクセス解析データは特別な設定をしなくても、

http://www.obenri.com/~suzuki/usage/

や、

http://192.168.100.11/~suzuki/usage/

等での閲覧が可能です。

ここで作成したディレクトリ "usage/" の所有者は root アカウント で、 パーミッション "755" になっています。

これによりローカルユーザー suzuki には閲覧権限しか与えられていないことになり、そのディレクトリ以下に配置する設定ファイルなどを改変することはできないというわけです。

設定ファイル"webalizer.conf"の設置と設定

次に、アクセス解析の設定ファイル "webalizer.conf" を解析結果の出力先ディレクトリ内に設置します。

例えば「Webalizerの基本設定」 Webalizerの基本設定 で一番最初に行った「何も手を付けていない」バックアップファイルを、 cp コマンド で、

[root@web1 ~]# cp -p /etc/webalizer.conf.org /home/suzuki/public_
html/usage/webalizer.conf
Enter
[root@web1 ~]#

のように "/home/suzuki/public_html/usage/" にコピーして nanoエディタ で編集しても構いません。

しかし現在使用中の初期設定ファイル "/var/www/usage/webalizer.conf" は既に細かい調整が済んでいるはずですので、これをコピーして使うようにします。

[root@web1 ~]# cp -p /var/www/usage/webalizer.conf /home/suzuk
i/public_html/usage/
Enter
[root@web1 ~]#

設定ファイルの雛型 "/home/suzuki/public_html/usage/webalizer.conf" が設置できたら、これを nanoエディタ でを開き nanoエディタでファイルを開く 、参照と出力先ディレクトリに関する以下の五つの ディレクティブ を設定例のように修正してください。

1. "LogFile" ディレクティブ LogFileディレクティブについて

LogFile /var/log/httpd/access_suzuki_log URIによるログデータの振り分けについて で収集したログファイルを指定します。

2. "OutputDir" ディレクティブ OutputDirディレクティブについて

OutputDir   /home/suzuki/public_html/usage

3. "HistoryName" ディレクティブ HistoryNameディレクティブについて

HistoryName   /home/suzuki/public_html/usage/webalizer.hist

4. "IncrementalName" ディレクティブ IncrementalNameディレクティブについて

IncrementalName /home/suzuki/public_html/usage/webalizer.current

5. "DNSCache" ディレクティブ DNSCacheディレクティブについて

DNSCache    /home/suzuki/public_html/usage/dns_cache.db

その他のディレクティブについてはこのセクションを参考にして任意に設定してかまいません。

記述が終わったら "/home/suzuki/public_html/usage/webalizer.conf" を保存してnanoエディタを閉じてください nanoエディタでファイルを閉じる

Webalizerの実行スクリプトの作成

最後に、 Webalizer の実行 スクリプト を作成します。

このパートの前半で説明した通り、既に作成している "/etc/cron.daily/webalizer_def.bash" cp コマンド で同じディレクトリに別名でコピーし、これを nanoエディタ で開いて、以下の部分だけ修正すればOKです。

[root@web1 ~]# cp -p /etc/cron.daily/webalizer_def.bash /etc/cr
on.daily/webalizer_suzuki.bash
Enter
[root@web1 ~]# nano /etc/cron.daily/webalizer_suzuki.bashEnter
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done
赤字 のように修正します
#!/bin/bash
cd /home/suzuki/public_html/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
for name in *.html
do
 /usr/local/bin/u_e_conv.pl $name > $name.temp
 /bin/mv -f $name.temp $name
done

検索文字列の日本語化を行っていない "/etc/cron.daily/00webalizer_def.bash" を利用する場合も同様に作業します。

[root@web1 ~]# cp -p /etc/cron.daily/00webalizer_def.bash /etc/cr
on.daily/00webalizer_suzuki.bash
Enter
[root@web1 ~]# nano /etc/cron.daily/00webalizer_suzuki.bashEnter
#!/bin/bash
cd /var/www/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null
赤字 のように修正します
#!/bin/bash
cd /home/suzuki/public_html/usage
/usr/bin/webalizer -c webalizer.conf > /dev/null

修正が終わったら実行スクリプトを保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

以上で基本的な設定は終わりです。

"/etc/cron.daily/webalizer_suzuki.bash" または、 "/etc/cron.daily/00webalizer_suzuki.bash" が実行されると、アクセス解析結果を閲覧することができるようになります。

アクセス解析結果に閲覧制限をかける方法

現在の設定では、公開しているユーザーディレクトリのアクセス解析結果はすべての ノード から閲覧可能、つまりインターネットに接続しているすべての人が見ることが可能になっています。

アクセス解析の結果をどのくらい秘密にしておきたいかは コンテンツ を運用している人次第ですが、アクセス数があまりにも少ないような場合には他人にはあまり見られたくないものです。

そこで、「アクセス解析結果はコンテンツ作成者、または信頼できる人にしか見ることができない。」という設定を以下に行います。

もしも提供しているユーザーディレクトリの利用者が、家族などの同居人で、基本的に 構築中のLinuxサーバー と同じ サブネット からしか接続しない場合には、 Apache "Order" ディレクティブ プライベートIPアドレス のみにアクセスを制限してしまえばOKです。

設定の記述はApacheのメインの設定ファイル "/etc/httpd/conf/httpd.conf" に行っても構いませんが、「 Webalizer に関する設定」ということを判りやすくするために、 "/etc/httpd/conf.d/webalizer.conf" に記述するほうが良いでしょう。

Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
  # Allow from .example.com
</Location>

Alias /robot /var/www/robot

<Location /robot>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
</Location>

<Directory /home/suzuki/public_html/usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
</Directory>

もしもユーザーディレクトリをいくつか運用している場合には、 "suzuki" の部分を "*" に置き換えれば、ユーザーが増えても記述を追加する必要はありません。

記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください Apacheの設定の有効化について

これで公開しているユーザーディレクトリのアクセス解析結果は、 LAN 内の ホスト 以外からは閲覧できないようになりました。

ただしこの方法では、ユーザーディレクトリの提供先が、基本的に自宅外からしか接続しない友人や知人などの場合は、その接続元が固定 IPアドレス で通信契約を行っていない限り 固定IPアドレスの通信契約について 、アクセス制限は困難です。

また、このようなアクセス制御では、コンテンツ作成者に固定のプライベートIPアドレスを割り当てない限り、「LAN内ではお互いのアクセス解析結果がすべて丸見え」という欠点が残ってしまいます。

このように、ノードでのアクセス制御が難しいケースでは、Apacheのユーザー認証機能 Apacheのユーザー認証機能の設定について を利用して、ユーザー名とパスワードでアクセス制限をかけてしまうのが簡単です。

こういう機密性のあまり高くないケースでは、ベーシック認証を利用しましょう。以下にその方法について説明します。

Apacheのユーザーディレクトリに対する設定で、 "AllowOverride" ディレクティブに "AuthConfig" あるいは "All" を指定して ユーザーディレクトリの公開設定について 、 アクセス制御ファイル ".htaccess" が利用可能な場合でも、それが設置されていないディレクトリに対しては、右のようなApache本体の設定ファイルの設定が有効になります。
もちろん、ユーザーが自分で "/home.../usage/" 以下に ".htaccess" を設置してしまえばこの設定は無効になってしまうわけですが、 "suzuki" はこのディレクトリに対する書き込み権限がありませんから、事実上右の設定に縛られることになります。

まず、 nanoエディタ "/etc/httpd/conf.d/webalizer.conf" を開き、以下のように追加記述を行います。

Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
  # Allow from .example.com
</Location>

Alias /robot /var/www/robot

<Location /robot>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
</Location>

<Directory /home/suzuki/public_html/usage>
  AuthType basic
  AuthName "Members Only"
  AuthUserFile /var/www/password/webalizer
  Require valid-user
</Directory>

記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください Apacheの設定の有効化について

もしもユーザーディレクトリをいくつか運用している場合には、 "suzuki" の部分を "*" に置き換えれば、ユーザーが増えても記述を追加する必要はありません。

ただしその場合にはユーザー全員が認証の対象となってしまいますから、ユーザー毎に認証の有無を設定したい場合には個別に設定を記述しなければなりません。

以上の条件で運用上問題がなければ、少し先の「パスワードファイルの作成」に進んでください。それで設定は終わりです。

もしもユーザー毎に認証の有無を設定したい場合には、アクセス制御ファイル ".htaccess" を利用するほうが便利かもしれません。

既にユーザーディレクトリの公開設定で、 "/home/*/public_html" に対して、 "AllowOverride" ディレクティブに "AuthConfig" あるいは "All" が設定されている場合 ユーザーディレクトリの公開設定について は、右の設定は必要ありません。

この場合、上の追加記述部分を以下のようにします。

Alias /usage /var/www/usage

<Location /usage>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
  # Allow from .example.com
</Location>

Alias /robot /var/www/robot

<Location /robot>
  Order deny,allow
  Deny from all
  Allow from 192.168.100.0/24
</Location>

<Directory /home/*/public_html/usage>
  AllowOverride AuthConfig
</Directory>

記述が終わったら忘れずにApacheの再起動または設定の反映作業を行ってください Apacheの設定の有効化について

次に、認証設定を行いたいユーザーの対象ディレクトリ以下に、 nanoエディタ を使って ".htaccess" ファイルを作成します。

[root@web1 ~]# nano /home/suzuki/public_html/usage/.htaccessEnter
↓ ".htaccess"を以下のように記述します
  AuthType basic
  AuthName "Members Only"
  AuthUserFile /var/www/password/webalizer
  Require valid-user

作成が終わったら、 "/home/suzuki/public_html/usage/.htaccess" を保存し、nanoエディタを閉じてください nanoエディタでファイルを閉じる

ここで作成した ".htaccess" ファイルは、任意のユーザーディレクトリの "usage/" 以下に存在するだけで認証機能が有効になりますから、認証が必要な該当のディレクトリ以下に、以下のようにして cp コマンド でコピーしてください。

[root@web1 ~]# cp /home/suzuki/public_html/usage/.htaccess /home/nak
ai/public_html/usage/
Enter
[root@web1 ~]#
ここでは認証のためのパスワードファイルを格納するディレクトリとして ベーシック認証のパスワードファイルの作成について で作成した "/var/www/password/" を利用しています。
作成していない方は ベーシック認証のパスワードファイルの作成について を参考に先にディレクトリを作成してください。

次にパスワードファイル "/var/www/password/webalizer" を作成します ベーシック認証のパスワードファイルの作成について

プロンプト から引き続き以下のように作業してください。

[root@web1 ~]# exitEnter suコマンドについて
[tanaka@web1 ~]$ htpasswd -c /var/www/password/webalizer suzukiEnter
New password: 登録する"suzuki"のパスワードを入力します。 Enter
Re-type new password: 確認のためにもう一度パスワードを入力します。 Enter
Adding password for user suzuki
 ↑「ユーザー"suzuki"のパスワードが追加されました。」
[tanaka@web1 ~]$

ユーザーディレクトリを複数運用している場合は、 "-c" オプションなしで "htpasswd" を実行し、 "/var/www/password/webalizer" にユーザーを追加してください。

[tanaka@web1 ~]$ htpasswd /var/www/password/webalizer nakaiEnter
New password: 登録する"nakai"のパスワードを入力します。 Enter
Re-type new password: 確認のためにもう一度パスワードを入力します。 Enter
Adding password for user nakai
 ↑「ユーザー"nakai"のパスワードが追加されました。」
[tanaka@web1 ~]$

以上で作業は終了です。

この お便利サーバー.com のアクセス解析結果を公開中ですのでご覧ください。
メインコンテンツのアクセス解析結果 お便利サーバー.com
お便利サーバー.comへの検索ロボットのアクセス状況 検索ロボット

認証が設定されているユーザーは接続元に係わらず、常にユーザー名とパスワードを入力しなければアクセス解析結果を閲覧することができなくなっているはずです。

認証設定を解除するには、該当するディレクトリから ".htaccess" を削除するだけで即解除になります。

逆に、新たに認証設定を行いたいユーザーの該当ディレクトリに ".htaccess" をコピーすれば、すぐに認証機能が有効になります。

これらの行為は設定ファイルの書き換えによる設定変更ではないので、Apacheを再起動したり、設定の有効化作業を行ったりする必要はないということです。

さて、設定が終わったら、設定したユーザー名とパスワードをコンテンツ作成者に教えてあげましょう。

コンテンツ作成者自身が Webalizer の細かい調整を行うことができませんが、それでもサービスとしては悪くはないと思います。

いかがでしょうか。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。