WEB̕׋m[g
Loading

Google Analytics ナビゲーションサマリーと閲覧開始後の遷移の違い

2010 年 8 月 7 日 カテゴリー: Google Analytics

Google Analytics

「ナビゲーションサマリー」と「閲覧開始後の遷移」の機能の違いが分からなかったので調べてみました。

ナビゲーションサマリー

Google Analytics の公式ブログによると、以下のような機能とのことです。

*ナビゲーションサマリー
[ナビゲーションサマリー] は、レポートの対象ページを中心に直前に閲覧していたページの URL と、次に閲覧したページの URL を上位 10件 まで確認できます。また直前に閲覧したページ、次に閲覧したページがサイト内のページでない場合は、それぞれが閲覧開始数、離脱数として集計されているので、参照元、移動先からページのナビゲーションを分析するのに適したレポートです。

image

最もアクセス状況のよいページから、ユーザーが次にどこのページに行ったか、などを確認しています。意外なニーズが見つかることもあるかもしれません。

「上位10位」とありますが、私の見間違いでなければ遷移先は11位まで表示されていますね。。引用している記事は2008年のものなので仕様変更があったのでしょうか。

閲覧開始後の遷移

同じく Google Analytics の公式ブログから引用します。ページ遷移という名前で紹介されています。名前の変更があったみたいですね。

*ページ遷移
当該ページから閲覧を開始したセッションのみを対象にして、対象ページを起点に次に閲覧した1ページと、そのセッションの離脱ページ (閲覧終了ページ) を URL で確認できます。対象は上記の2 URL ですが全ての移動先ページ、離脱ページを網羅しているので、広告などのリンク先ページの評価に適しています。

image

「ここで終了」という意味がやっとわかりました。解析しているページの次のページと、そのセッションの最後のページがリストになって表示されているということですね。

「ナビゲーションサマリー」と「閲覧開始後の遷移」の数値の違い

解析をしていると、ナビゲーションサマリーと閲覧開始後の遷移の画面で表示されているページのリストや数値に矛盾があるなあ、と思っていたのですが、肝心なことを見ていませんでした。

  • ナビゲーションサマリーはページビューを元にしたクリック率を表示
  • 閲覧開始後の遷移は、セッション数の割合を表示

ナビゲーションサマリーで遷移元、遷移先、分析しているページが同じページ?

こちらは Google Conversion University で見つけた内容です。ナビゲーションサマリーの画面の中で、分析しているページ、遷移元、遷移先が同じページである場合があります。ぱっと思いつくのが、ユーザーがリロードしているのでは、というものですが、それだけではなかったのでメモしておきます。

例えば、ページ内の画像のサムネイルにリンクを張り、クリックすることで大きな画像を見せる場合。Lightbox的な Ajax を利用したものではなく、単に画像ファイルへのリンクを張っている場合です。

ユーザーが画像をクリックすると、画像ファイルが表示されます。画像ファイル自体にGoogle Analytics のコードを張ることはできないので、画像が表示されてもアクセスとしてカウントされません。

たいていの場合ユーザーは戻るボタンで戻ります。このとき、元のページで再度 Google Analytics の Javascript が実行され、アクセスとしてカウントされます。つまり、同じページが2回カウントされるという現象が起きます。

Google Analytics は、キャッシュされているページを表示した場合でも Javascript によって PV をカウントするためこのような現象が起こります。

参考にしたサイト

ページ遷移とナビゲーションサマリーレポートの違い

http://analytics-ja.blogspot.com/2008/08/definition-of-navigation-summary-and.html

Conversion University

http://www.google.com/support/conversionuniversity/bin/static.py?hl=en&page=iq_learning_center.cs&rd=1

Google Analytics のデータ共有とアカウント

2010 年 3 月 15 日 カテゴリー: Google Analytics

Google Analytics

アカウントの種類と権限

Google Analytics には 2つのタイプのアカウントがあります。”user” と “Administrator”。

- User (View reports only)

レポートの閲覧ができるかどうか、プロファイルごとに設定することができます。このプロファイルを見せて、このプロファイルは見せないという設定が可能です。

User のアカウントでは、閲覧を許可されたプロファイルの設定変更や、そのプロファイルに紐付く新しいプロファイルを作成することはできません。アノテーションの書き込みはできるようです。

- Administrator (Account Administrator)

Administrator が追加されると、その Analytics アカウントの管理者となります。プロファイルではなく Analytics アカウントの管理者となるため、その Analytics アカウントに属するすべてのプロファイルを、閲覧、設定変更が可能となります。

新しい Administrator 追加後に、もとの Administrator を削除することもできるため、管理している Analytics アカウントを他の Google アカウントへ譲渡することもできます。

共有するユーザーの追加

ログインしてすぐのプルファイルの一覧画面の「ユーザーマネージャ」をクリックします。

image

「Add User」をクリック

image

追加するアカウント (XXX@gmail.com) を入力して、アクセスタイプ (権限)、User タイプの場合は閲覧を許可するプロファイルを選択。「Save Changes」をクリックして完了。簡単です。

image

Google?Conversion University

Google Analytics のアカウントとプロファイルの関係

2010 年 3 月 14 日 カテゴリー: Google Analytics

Google Analytics

Google Analytics には、前提となる Goolgle アカウントとそれに紐付く Analytics のアカウント、プロファイルがあって、それぞれが何なのか分からないまま使っていたり。また、複数のサイトの管理を行うとき、Analytics のアカウントを増やせばよいのか、Google アカウントを増やせばよいのか、など迷うことも。今回、この辺をまとめてみます。

ほとんどの情報は Conversion University (英語版) から得ています。運用方法などは、初心者のメモとしてお読みください。

Google アカウントと Analytics アカウントとプロファイルの関係

まずは、それぞれの関係性から。Google アカウントの中に複数の Analytics アカウントが所属できて、 さらに Analytics アカウントの中にいくつかのプロファイルが入っている。

HTML にコードを張り付けた時、UA-XXXXXXXX という番号が入っているけど、この番号と Analytics アカウントが 1対1で対応。プロファイルを作ると UA-XXXXXXXX-1、UA-XXXXXXXX-2 という風にプロファイル番号がくっつく。

複数のサイトを管理する時 Analytics アカウントを増やす?プロファイルを増やす?

私は、サイトごとに Analytics アカウントを作るのが良いと思います。Google のお勧めも 1つのサイトに 1つの Analytics アカウントのようです。理由として、

- 管理者のアカウントを追加すると全てのプロファイルの管理者となる

ユーザー権限のユーザーならプロファイルごとに閲覧できるかどうかを設定できるけど、Administrator 権限のアカウントを追加すると、その Analytics アカウント内の全てのプロファイルの管理者となります。

まったく別の組織のサイトのレポートがひとつの Analytics アカウントの中にプロファイルとして入っていると、管理者権限のアカウントは全部見られることになってしまいます。当然管理者なので、設定の変更もできてしまいます。

- Adwords のアカウントと Analytics のアカウントは 1対1

Adwords の解析もしたい場合、複数のサイトを 1つの Analytics アカウントとプロファイルで管理していると、そのうち1つのサイトでしか Adwords を使えないです。

プロファイルごとにサイトを管理している場合、プロファイルごとに別の AdWords のアカウントを設定、ということはできません。

- サブドメインのサイトは?

複数のサイトの管理と同じです。そのサブドメインのサイトを他のアカウントで別に管理する可能性があるか、独自の AdWords のアカウントを使用することがあるかで決定します。

- プロファイルの使い方

自分のアクセスを除外するフィルタなど、フィルタを作成する場合、必ず加工していないデータのプロファイルを残します。Google Analytics のデータは、すでに取得してあるデータに対してフィルタをかけるのではなく、フィルタがかかった状態でデータを取得するため、後からフィルタを解除しても元のデータを得ることができないためです。

いつどんなデータが必要になるとも限らないのでバックアップとして生データを残します。その上でフィルタをかけたり、サブドメインのサイトを追加したりします。

アカウント、プロファイルの数の上限

- 1つの Google アカウントに 25個のAnalytics アカウントを作成することができる

- 1つの Analytics アカウントには 50個のプロファイルを作成することができる

数が足りなくなっても、別な管理者を加え、元の管理者を外すことで Analytics アカウントを別な Google アカウントに移すこともできるので数で困ることはなさそう。

実際に25個以上作成しようとすると、以下のメッセージが表示されました。

image

新しい Google アカウントを作る時

通常、Google アカウントを作る時、メールアドレスを求められます。が、自分のアドレスはあらかた使ってしまっていたりします。そんな時は、Gmail の登録から入ると、メールアドレスなしでも Google アカウントを作成できます。

Google Analytics の基本的な仕組みと「こんな時はトラッキングできる?」

2010 年 3 月 9 日 カテゴリー: Google Analytics

Google Analytics

Google Analytics の基本的な仕組みと、ユーザーがCookie をブロックしていたらトラッキングを行うことができるか、など、Google Analytics でトラッキングができない場合などをまとめてみました。

Google Analytics はビーコン型のアクセス解析ツール

サーバーログ型 : WEBサーバーのアクセスログを解析

ビーコン型 : ユーザーのブラウザから解析用サーバーにデータを送信して解析

トップページ – サイト内のあるページ – トップページ、のように、戻るボタンなどで1回表示したページ戻ってきたとき、ブラウザがデータをキャッシュしているため、通信が発生しない場合があります。サーバーログ型はキャッシュでページが表示された場合、その PV をカウントすることができません。

Google Analytics のようなビーコン型なら、キャッシュで表示されたページでもカウントすることができます。ただし、Javascript が動かない環境や、Javascript が動作する前にユーザーがページを離れてしまうとカウントすることはできません。

Google Analytics の基本的な仕組み

1.ユーザーがWEBサイトにアクセスする

2.ブラウザでGoogle Analytics のJavascriptコードが実行される

3.クッキー読み取り(設置)

4.見えない画像をリクエスト

5.Google Analytics のサーバーでデータが処理される

6.Google Analytics でレポートを表示

WEBサイトの表示後、埋め込まれたGoogle Analytics のコードが実行され、データを収集。見えない画像のリクエストのパラメータとして、Google Analytics のサーバーにデータを送ります。

こんな時はトラッキングできる?

- cookie をブロックしているユーザーはトラッキングできるか

Google Analytics は 1stパーティクッキーを経由して、すべてのデータを送信します。よって、3rd パーティクッキーのみのブロックなら、トラッキング可能。1st パーティクッキーのブロックもされると、トラッキングできなくなる。

- クッキーを削除されたら

トラッキングは可能。クッキーに保存されていた前回の訪問日などが取得できなくなるため、新規ユーザーと認識される。

- ユーザーが Javascript を OFF にしている

トラッキングできない。同様に、Javascript に対応していない携帯ブラウザなども、通常の方法ではトラッキングできない。

- ページ内で Javascript のエラーが起きたら

ページ内で Javascript のエラーが起きると、残りのコードは実行されなくなる。Google Analytics のコードがそのエラーより後であれば、トラッキングできなくなる。

Apache,PHP,MySQLテストサーバー構築手順(beta)

2010 年 2 月 28 日 カテゴリー: 構築(テスト環境)

テストサーバーを作り直したので、メモを残します。テストサーバーは Vmware Server 上に仮想サーバーとして作成しました。物理環境でも手順は変わらないはず。手早く構築するために手順は最低限にしています。

テスト環境構築フロー

- Vmware イメージ作成
- CentOS5.4 インストール
- ネットワーク設定
- セキュリティ関係停止
- ユーザー作成
- FTP インストール
- Apache インストール
- Bind インストール
- PHPインストール
- MySQL インストール
- Virtual ホスト設定
- phpMyadmin インストール

Vmware ゲストOS作成

使用している Vmware Server は 1.x 系。2.x 系が使いづらかったのと、職場の環境が VMware Workstion とほぼ同じインターフェースなので。普通にゲスト OSを作成。

- Guset oprating system : Linux で
- Version : Red Hat Enterprise Linux 4
- ネットワークは bridge でも NAT でも用途に合わせて
- サイズは適当に10から20GB程度

スナップショットを利用すると、後から仮想ディスクの容量を増やすことができなくなるため、多めに。

- Allocate all disk now :

ここにチェックを入れてしまうと、作成に時間がかかるのと、指定したサイズ分物理ディスクを使ってしまう。上で指定した10-20GB使われると困るので、オフにする。

CentOS インストール

GUI インストールで全てデフォルト。ネットワークも後で設定するのでそのまま。

ネットワーク設定

IP を変えると SSH などの接続も切れてしまうので、VMware のコンソールで直接操作。VMware のネットワーク設定を NAT にしている場合は、[Host] → [Virtual Network Settings] → [NAT] タブから、所属しているネットワーク、ゲートウェイ、サブネットマスクを確認。

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.16.10
NETMASK=255.255.255.0
GATEWAY=192.168.16.2

適用させるために、サービス再起動。

[root@localhost ~]# service network restart

セキュリティ関係停止

開発の時に邪魔になるセキュリティ関連の機能を停止します。

iptables の停止

[root@localhost ~]# service iptables status

ステータスを確認して、なんかいっぱい出てきたら動いてる。動いてたら停止。

[root@localhost ~]# service iptables stop
ファイアウォールルールを適用中:                            [  OK  ]
チェインポリシーを ACCEPT に設定中filter                   [  OK  ]
iptables モジュールを取り外し中
[root@localhost ~]# chkconfig iptables off
[root@localhost ~]# chkconfig --list iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

SElinux の停止

getenforce が SELinux の状態確認で、Permisive が停止状態。自動起動の停止は sysconfig の selinux を編集する。

[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# vi /etc/sysconfig/selinux
SELINUX=disabled

yum-updatesd の削除

centossrv.com によると、「デフォルトで1時間ごとにアップデートチェックを行うようになっており、手動によるパッケージインストールと競合するとインストールが失敗する」 とのことなので、早々に削除。

[root@localhost ~]# /etc/rc.d/init.d/yum-updatesd stop
yum-updates 停止中:                                      [  OK  ]
[root@localhost ~]# yum -y remove yum-updatesd

ユーザー作成

作業用に root 以外のユーザーを作成。ユーザーの作成には、useradd コマンドを使用。passwd コマンドでパスワードを加えることで初めて使用できるようになる。

[root@centos ~]# useradd centos
[root@centos ~]# passwd centosChanging password for user centos.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

FTP – vsftpd

[root@centos ~]# yum -y install vsftpd

設定は、アスキーモードでの転送と、ディレクトリの削除を可能にするだけ。

[root@centos ~]# vi /etc/vsftpd/vsftpd.conf
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES

起動、自動起動の設定。終わったら、FTPクライアントから接続してみる。

[root@centos ~]# /etc/rc.d/init.d/vsftpd start
[root@centos ~]# chkconfig vsftpd on
[root@localhost ~]# chkconfig --list vsftpd
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

Apache

[root@centos ~]# yum -y install httpd

設定は、CGI、SSI、.htaccess の許可のみ。Virtual host の設定は後から。

[root@centos ~]# vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
Options Includes ExecCGI FollowSymLinks
AllowOverride All

テストページの削除。

[root@centos ~]# rm -f /etc/httpd/conf.d/welcome.conf
[root@centos ~]# rm -f /var/www/error/noindex.html

ドキュメントルートの所有者を作業用ユーザーに変更。

[root@localhost ~]# chown centos:centos /var/www/html

起動、自動起動の設定。

[root@localhost ~]# service httpd start
httpd を起動中:                                            [  OK  ]
[root@centos ~]# chkconfig httpd on
[root@localhost ~]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

テストしてみる。以下を実行して、ブラウザからサーバーのIPにアクセス。

[root@centos ~]# echo test >> /var/www/html/index.html

BIND

BIND インストールと設定

PHPとMySQLとphpMyadminのインストール

CentOS5.4 に MySQL5.1,PHP5.3とphpMyAdmin

CentOS5.4 に MySQL5.1,PHP5.3とphpMyAdmin

2010 年 2 月 28 日 カテゴリー: MySQL, php

MySQL、PHP、phpMyAdminのインストールから、Wordpress用のデータベース作成まで。

最新版を入れるため、yumのリポジトリをインストールして変更する。依存関係を解消しながらインストールするより、yum を使った方がずっと楽。

インストール

[root@localhost ~]# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
[root@localhost ~]# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-6.el5.remi.noarch.rpm
[root@localhost ~]# rpm -Uvh epel-release-5* remi-release-5*

[root@localhost ~]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
[root@localhost ~]# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

インストールする。

[root@localhost ~]# yum --enablerepo=remi,epel,rpmforge update php* mysql*
[root@localhost ~]# yum --enablerepo=remi,epel,rpmforge install php php-gd php-mbstring php-mysql php-odbc php-pdo php-pear mysql-server mysql-bench

phpMyadmin のインストール。

# yum --enablerepo=remi,epel,rpmforge install phpMyAdmin

PHPの動作確認

apacheの再起動

[root@localhost ~]# service httpd restart

phpinfo を表示してみる。一緒にインストールしたモジュールの項目が表示されていることを確認。

[root@centos ~]# vi /var/www/html/test.php

MySQL 設定

設定は文字コードのみ。

[root@centos ~]# vi /etc/my.cnf
[mysqld]
default-character-set = utf8
[mysql]
default-character-set = utf8

起動、自動起動設定

[root@centos ~]# service mysqld start
[root@centos ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

mysql の root にパスワードを設定する。OS自体のユーザーとは別もの。まずは、パスワードを設定するユーザーを確認。

[root@centos ~]# mysql -u root
mysql> select user,host,password from mysql.user;
+-------------+-----------------------+-------------------------------------------+
| user        | host                  | password                                  |
+-------------+-----------------------+-------------------------------------------+
| root        | localhost             |                                           |
| root        | localhost.localdomain |                                           |
| root        | 127.0.0.1             |                                           |
|             | localhost             |                                           |
|             | localhost.localdomain |                                           |
+-------------+-----------------------+-------------------------------------------+

root にパスワードを設定。

mysql> set password for root@localhost=password('パスワード');
mysql> set password for root@localhost.localdomain=password('パスワード');
mysql> set password for root@127.0.0.1=password('パスワード');

mysql のrootにパスワードが設定されたことを確認。

mysql> select user,host,password from mysql.user;
+-------------+-----------------------+-------------------------------------------+
| user        | host                  | password                                  |
+-------------+-----------------------+-------------------------------------------+
| root        | localhost             | *0B6A2F2B175B57F40643A0377BE9274ACB964C44 |
| root        | localhost.localdomain | *0B6A2F2B175B57F40643A0377BE9274ACB964C44 |
| root        | 127.0.0.1             | *0B6A2F2B175B57F40643A0377BE9274ACB964C44 |
+-------------+-----------------------+-------------------------------------------+

サンプルデータベース削除。

[root@centos ~]# mysql -u root -p
mysql> show databases;
mysql> drop database test;
mysql> show databases;

wordpress 用のデータベース作成

[root@centos ~]# mysql -u root -p
mysql> create database wordpress;
mysql> grant all privileges on wordpress.* to wordpress@localhost identified by 'パスワード';

phpMyAdmin を使う

yum でインストールした phpMyadmin は以下にインストールされる。

/usr/share/phpMyAdmin

設定はデフォルトのままで使用可能。ただし、ドキュメントルート外にインストールされるので、そのままではアクセスできない。http://phpmyadmin.localhost.com/ でアクセスするため、bind のレコード追加と、Virtual hostの設定をしてみた。

Bind 設定

[root@localhost ~]# cat /var/named/chroot/var/named/localhost.com.db
$TTL    86400
@       IN      SOA     localhost.com.  root.localhost.com.(
                                      2004031901 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN NS    localhost.com.
        IN MX 10 localhost.com.
@       IN A     192.168.0.250
phpmyadmin      IN A    192.168.0.250
*       IN A     192.168.0.250

Virtual host の設定

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin root@localhost.com
    DocumentRoot /usr/share/phpMyAdmin/
    ServerName phpmyadmin.localhost.com
  <Directory "/usr/share/phpMyAdmin">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>
参考記事
CentOS 5.3 に php-5.2.9, mysql-5.1.35 をインストール
データベースサーバー構築(MySQL)

BIND インストールと設定

2010 年 2 月 28 日 カテゴリー: BIND

テストサーバーを構築した時のメモ。CentOS5.4 。公開サーバーではないので、外部向けの設定は行っていません。

インストール

[root@centos ~]# yum -y install bind bind-chroot caching-nameserver

BIND設定ファイル所有グループ変更。

[root@centos ~]# chgrp named /var/named/chroot/etc/named.conf

色を付けた所を追加。

[root@localhost ~]# vi /var/named/chroot/etc/named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
        # listen-on port 53 { 127.0.0.1; };
        # listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        allow-query     { localhost; localnets; };
        allow-query-cache { localhost; localnets; };

        forwarders{
                192.168.0.1;
        };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.localhost.com.zone";
};
view "internal" {
        match-clients { localnets; };
        match-destinations { localnets; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.localhost.com.zone";
};

ゾーンファイル作成。

[root@localhost ~]# vi /var/named/chroot/etc/named.localhost.com.zone
zone "localhost.com" {
        type master;
        file "localhost.com.db";
};
zone "0.168.192.in-addr.arpa" {
        type master;
        file "0.168.192.in-addr.arpa.db";
};

内部向け正引き用ファイル作成。

[root@localhost ~]# vi /var/named/chroot/var/named/localhost.com.db
$TTL    86400
@       IN      SOA     localhost.com.  root.localhost.com.(
                                      2004031901 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN NS    localhost.com.
        IN MX 10 localhost.com.
@       IN A     192.168.0.250
*       IN A     192.168.0.250

内部向け逆引き用ファイル作成

[root@localhost ~]# vi /var/named/chroot/var/named/0.168.192.in-addr.arpa.db
$TTL    86400
@       IN      SOA     localhost.com.  root.localhost.com.(
                                      2004031901 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS    localhost.com.
250           IN      PTR   localhost.com.

起動、自動起動設定

[root@localhost ~]# service named start
named を起動中:                                            [  OK  ]
[root@centos ~]# chkconfig named on
[root@localhost ~]# chkconfig --list named
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off

nslookup などで、正引き、逆引きを確認。 複数のレコードを設定するときは、ゾーンファイルに zone{} を追加して、参照先のレコードを書いたファイルを作成。

会員専用ページに、Apache の Basic 認証を使う

2010 年 1 月 13 日 カテゴリー: .htaccess

ほとんどのレンタルサーバーでは Basic 認証を GUI で設定できるツールを用意されていると思いますが、そういった
ツールがない環境で設定する機会があったので、メモしておきます。作業はssh で接続して行いました。

設定方法

.htaccess ファイルの作成

[centos@localhost temp]$ vi .htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /var/www/html/temp/.htpasswd
Require user test

.htpasswd ファイル(パスワードファイル)の作成

[centos@localhost temp]$ htpasswd -c /var/www/html/temp/.htpasswd test
New password:
Re-type new password:
Adding password for user test

以上の手順だけで、ドキュメントルート以下の temp ディレクトリに Basic 認証をかけることができました。

Basic 認証を昨日させているモジュール

Apache 2.1 より前のバージョンでは、mod_auth によって Basic 認証機能が実装されている模様。そのため、Basic 認証を使うには、httpd.conf で mod_auth.so が読み込まれていることが必要。

LoadModule auth_module modules/mod_auth.so

Apahe 2.1 以降では、mod_auth_basic モジュールで実装されているようです。今回は Apache 2.0 を使っているので、こちらは確認していません。モジュールのインストールから始める必要のある環境は、通常の WEB サーバーであれば、ほとんどないのではないかと。

その他必要な設定

Basic 認証の設定を書き込む場所は、Apache の設定ファイルである httpd.conf に直接書くか、該当のディレクトリに .htaccess ファイルを設置する方法の 2通り。.htaccess を使う場合は、httpd.conf に以下の設定が必要です。

AllowOverride AuthConfig

もちろん、AllowOverride All でも。 普段は、httpd.conf を触ることはしないので、.htaccess を設置しました。 httpd.conf で設定を行う場合でも、設定項目は同じです。

使用したディレクティブ

AuthType : ユーザ認証の種類を指定。BasicかDigestを指定。
AuthName : ここで AuthName に指定した文字列が、大部分のブラウザのパスワードダイアログに表示される。
AuthUserFile : 認証に使用するユーザとパスワードの一覧が格納されている、テキストファイルの名前を設定。
Require : 認証に使用するユーザー名を指定。

htpasswd コマンド

パスワードファイルの作成に必要なコマンド。Apache に付属します。以下の構文で実行します。

htpasswd -c Filename username

書式が分かれば手入力でも作成はできるが、通常はこのコマンドを使う。主なオプションは、 以下の通り。

-c : 新しいパスワードファイルを作成。同名のパスワードファイルがすでに存在する場合は、既存の内容が上書きされる。
-n : テスト実行用のオプション。他のオプションなどの構文エラーがないかなどの確認に用いる。-c と一緒に使うことはできない。
-m : パスワードをファイルに書き込む際、MD5 でハッシュした値を書き込みます。
-d : パスワードをファイルに書き込む際、CRYPT でハッシュします(デフォルト)。
-p : パスワードをファイルに書き込む際、ハッシュせずに、プレーンなテキストで書き込みます。
-s : パスワードをファイルに書き込む際、SHA でハッシュします。
-D : ユーザーを削除します。

Google AJAX Feed API の件数が反映されない

2010 年 1 月 3 日 カテゴリー: javascript

WordPress に最新の記事や、その他RSSで取得できるものをいくつか表示させるためにGoogle AJAX Feed APIを使ってみました。

表示自体は問題なくできたのですが、表示件数ではまりました。表示件数は、feed.setNumEntries(10) のように指定していましたが、変更しても全く反映されず。

そもそもFeed側で件数を少なく設定していないかと思い、Wordpress の設定を変えてみたり、いろいろやってみた挙句、やっと気付きました。FeedはGoogleでキャッシュされている。。

そのキャッシュを更新する方法を探していましたが、調べるとすぐに見つかりました。

そこで、下記のようにソースに手を加えて、いわゆる「キャッシュ騙し」をします。

このブログのRSSフィードを取得するソースの場合・・・

var feed = new google.feeds.Feed("http://www.lepracaun.info/blog/atom.xml?256");

?の後ろの数字は何でもいいわけです。

Google Ajax Feed API:キャッシュ騙しを使う方法

すぐに変更した件数が反映されました。

MySQLで「mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@'localhost’ (using password: NO)’」

2010 年 1 月 1 日 カテゴリー: MySQL

インストール後、初期設定や動作確認で以下のメッセージが発生する場合がある。たとえば、mysqladmin version などの実行の際。

[root@localhost bin]# mysqladmin version
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)' 

これは、MySQL の root ユーザーにパスワードを設定した場合に発生する。mysqladmin -u root password ‘new-password’ の実行など。mysqladmin の実行時には、ユーザー名 root を付加し、パスワードを入力することで実効することができる。

[root@localhost bin]# mysqladmin version -u root -p
Enter password:
mysqladmin  Ver 8.42 Distrib 5.1.42, for pc-linux-gnu on i686
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license


Server version          5.1.42-community
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 11 min 31 sec
Threads: 1  Questions: 6  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.8