PHP7.0でPiwik

PiwikはGoogleアナリティクスみたいなリアルタイム反映のウェブサイトのアクセス解析ツール。高機能なアクセス解析ツールを使いたいけどアクセス情報をGoogleなど外部に取られるのは嫌で自前でやりたいというならとても良い。でも、処理が重いので公開しているウェブサイト数が多かったりアクセス多めなら別サーバでやった方が良いかも。
今回は久しぶりにPiwikを入れてみたのでその備忘録。

解析したいウェブサイトに一つでもHTTPSサイトがあるならPiwik側もHTTPS対応にしておいた方が良い。
NginxでやるならvHostの最低限の設定ファイルはこんな感じ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
server {
  listen                       80;
  server_name                  piwik.example.com;
  access_log                   /var/log/piwik_access.log;
  error_log                    /var/log/piwik_error.log;

  location / {
    root                       /usr/local/www/piwik;
    index                      index.php;

    location ~ ^/(.*\.php).*$ {
      fastcgi_split_path_info  ^(.*\.php)(.*)$;
      include                  fastcgi_params;
      fastcgi_pass             unix:/var/run/php-fpm.sock;
      fastcgi_index            index.php;
      fastcgi_read_timeout     1200;
      fastcgi_param            SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
  } 
}

server {
  listen                       443 ssl;
  server_name                  piwik.example.com;
  access_log                   /var/log/piwik_access.log;
  error_log                    /var/log/piwik_error.log;

  ssl_certificate              /usr/local/etc/nginx/ssl/piwik/server.crt;
  ssl_certificate_key          /usr/local/etc/nginx/ssl/piwik/server.key;
  ssl_dhparam                  /usr/local/etc/nginx/ssl/piwik/dhparams.pem;
  ssl_trusted_certificate      /usr/local/etc/nginx/ssl/piwik/trusted.crt;
  ssl_protocols                TLSv1.2 TLSv1.1 TLSv1;
  ssl_ciphers                  EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
  ssl_prefer_server_ciphers    on;
  ssl_session_cache            shared:SSL:10m;
  ssl_session_timeout          10m;
  ssl_stapling                 on;
  ssl_stapling_verify          on;
  resolver                     8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout             5s;

  gzip                         off;

  location / {
    root                       /usr/local/www/piwik;
    index                      index.php;

    location ~ ^/(.*\.php).*$ {
      fastcgi_split_path_info  ^(.*\.php)(.*)$;
      include                  fastcgi_params;
      fastcgi_pass             unix:/var/run/php-fpm.sock;
      fastcgi_index            index.php;
      fastcgi_param            HTTPS on;
      fastcgi_read_timeout     1200;
      fastcgi_param            SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
  }
}

2016年5月上旬現在のStable版のPiwikはPHP7.0では動かないのでGitHubから開発版を落として解凍。
FreeBSDの場合はportsにPiwikがある(www/piwik)が、それはStable版なのでphp7.0では動作しない。
PHPのキャッシュ系は停めておいた方が無難。
MySQLはPiwik用ユーザーとPiwik用の空のテーブルを作成してPiwik用ユーザーにそのテーブルの全権を与えておけば良い。

PIWIK 1
画面1:
インストールしたPiwikをブラウザで開く。URLは当然設定によるわけだがhttps://piwik.example.com/またはhttps://example.com/piwik/みたいな感じで良い筈。
いきなりエラー画面だが慌てずにメッセージを読む。上の画像の中央の赤枠部分(実際には赤枠は無い)のメッセージに従ってPiwikをインストールしたディレクトリでコマンドを実行。ここはFreeBSDでもLinuxでも書いてあるままのコマンドでいける筈だが、既にgitを使える状態でないと途中でエラーになるのでコマンド実行前にgitをインストールしておくこと。

FreeBSDのgitインストール
おそらく依存関係解決のために大量に欲しくもないports(パッケージ)をインストールされる筈なので覚悟が要る。

cd /usr/ports/devel/git
make install

PIWIK 2
画面2:
コマンド実行が正常に終了したら再度ブラウザでPiwikを表示。今度は「ようこそ」画面が表示される筈。「次へ」ボタンを押す。

PIWIK 3
画面3:
システムの確認画面で必要条件を満たしているか確認する。基本的には全ての項目で緑のチェックマークが付けば良いが、いくつかの項目は緑チェックにならなくても構わないと書いてあるのでその項目は条件に合致すれば無視。「次へ」ボタンを押す。

PIWIK 4
画面4:
セットアップ済みのMySQLのアクセス設定を入力。最近はパスワードをランダムで長く複雑なものにするのはもちろんユーザー名やテーブル名なども推測できないものにした方が良い。PHP7.0の場合はアダプタはmysqliが良い。もちろんPHP7.0側もmysqliモジュールが有効になっていること。「次へ」ボタンを押す。

PIWIK 5
画面5:
データベースへの接続が正常に行えればこの画面。「次へ」ボタンを押す。

PIWIK 6
画面6:
管理者登録画面。最近はパスワードをランダムで長く複雑なものにするのはもちろんユーザー名も同じく推測できないものにした方が安全。「次へ」ボタンを押す。

PIWIK 7
画面7:
ウェブサイトのセットアップ画面。ここでいうウェブサイトとはアクセス解析対象のウェブサイト(の1つめ)のこと。サイト名とURLを登録する。タイムゾーンは普通はTokyoを選べば良い。「次へ」ボタンを押す。

PIWIK 8
画面8:
上の画面7で登録した1つ目のアクセス解析対象サイト用のタグが表示される。Googleアナリティクスと同様にこのタグをアクセス対象サイトのHTMLヘッダの最後に入れる。後で管理画面からこのタグを表示させることができるのでここでタグのコピーや保存が必須というわけではない。「次へ」ボタンを押す。

PIWIK 9
画面9:
「おめでとうございます」の表示が出る。この画面の下の方にチェックが2つある。下側のチェックは日本では外して良い筈。「Piwikを続ける」ボタンを押す。
インストールは終わり。

PIWIK 10
画面10:
ログイン画面が出るので画面6で登録した管理者アカウントでログインする。

PIWIK 11
画面11:
ダッシュボードが表示される。アクセス解析対象サイトの一覧が出る場所だが、まだ画面7で登録した1つのウェブサイトしか存在しない。
アクセス解析対象サイトのページをいくつか見ても「ビジット」や「ページビュー」の数字がゼロのままの場合は表示対象期間に本日が含まれていない可能性があるので上の画像の赤枠部分(実際には赤枠はない)で本日が含まれる期間を選択する。
一応、個人設定に「デフォルトで読み込むリポートの日付」という項目があって今日を含むように設定できるがときどきおかしくなるので。

PIWIK 12
画面12:
上の画面11の青字のアクセス解析対象サイト名をクリックするとそのサイトのアクセス状況がいろいろ出てくる。ここで「ビジット」や「ページビュー」の数字がゼロのままの場合は画面11と同じく表示対象期間に本日が含まれていない可能性があるので左上の上の画像の赤枠(実際には赤枠はない)で本日が含まれる期間を選択する。
他のレポートページも表示期間には注意する。

PIWIK 13
画面13:
左メニューから「ビジット」→「リアルタイムマップ」を選択してからアクセス解析対象サイトをブラウザで表示する。このとき、黄土色の丸が表示されなければ何か問題がある。画面右上のを選択し、左メニューから「ジオロケーション」を選択してGeoIP関係の設定を確認する。

標準で有効になっているプラグインのいくつかは不要なので無効にする。有用そうなプラグインがあればインストールする。現在はプラグインがまだ全て無料なので早めに。(でもそんなに有用だと思えるのが見つからない・・)
こんな感じ。

ロジクール ステレオスピーカー Z120BW

PCの音を鳴らすのに以前使っていたHDMI接続のモニターだと音が出た。現在使っているDisplayport接続のモニターからは何故か音が出ないので外付けスピーカーが要る。
購入したのは販売開始から5年経っても販売が続いていてアマゾンで「PCスピーカー」カテゴリでランキング1位、レビューが3000件もある人気製品。0.6W+0.6Wと小出力だが音にこだわってるでもなく、ちょろっと鳴れば良いのでこれで十分な筈。

Z120BW 1
外箱。大きさは普通だけど他の同価格帯の小型スピーカーより重い。(と思う)

Z120BW 2
正面。筐体がポコッと膨らむほど前面に大きな円周があるけど外周部はただのプラスチックで実際に振動する1ウェイのフルレンジユニット部自体は中心の銀色の部分とその数ミリ外までの5センチメートル程度なので見た目以上に小さい。
ステレオミニプラグが音声信号用でUSBコネクタは電源のみ。なのでこの製品はUSBスピーカーではない。そのかわりイヤホン出力端子のある機器で使えるので汎用性は高い。USB電源は別途必要だけど。
ボリュームダイヤルの7時の方向に印があって時計回りに回すとカチッという感じで電源が入り音量増加。反時計回りで音量減少で7時の位置で電源が切れる。電源ON時はボリュームダイヤル左横のLEDが緑色に点灯する。
写真ではボリュームダイヤルが付いてる方が左にあるけどこちらが「右」らしいので写真の置き方は逆。どうもスミマセン。

Z120BW 3
背面は余ったケーブルを巻きつけられるようになっている。ケーブルが同価格帯の製品に比べて太め(キーボードのケーブルくらいある)で邪魔になるところなのでスッキリさせられるのはありがたい。

Z120BW 4
USBの電源アダプタ。製品には付属しない。PCなどのUSB端子から電源を取るよりはこういう電源アダプタを使うのがおすすめ。

写真には撮ってないけどボリュームダイヤルの付いている側の下面にはMade in Chinaと書いてある。
小型低出力スピーカーだけどスカスカペラペラではなく割としっかりした音で中域(から高域)はわりと綺麗。低域は圧倒的に力不足で重低音の迫力は生み出せてないというか鳴っていない。で、アマゾンのレビューでは抜けが良いという声があったけど、個人的な感想は全域をとおして何か挟まった感じ。小型の安物スピーカーでも抜けの良いのもあるのでここだけ残念。もしかしたらエイジングで少しは改善するかもだけど。
激安スピーカーは常にブーンと鳴ったりザリザリガリガリというノイズが入ったりロクでもないのが多いけど、この製品はそういう酷いのはない。
比較して聴いてみるとノートPCやデスクトップPC用の小さなモニターに内蔵されてるスピーカーよりはだいぶマシで大型の家庭用テレビで音に気を使った機種の内蔵スピーカーには負けてる。
価格を考えるととても良心的な製品。もっと高くても不思議ではない。さすがに2〜3倍の3〜4000円以上なら低価格レンジなりにもう1クラス上があるのでこの製品を買う気にはならないと思うけど。
小型スピーカーだからそんなものだと思って期待せずに使ってみれば結構良いかもという感じかな。

Up