他のサーバーのcron
Piwikはフリーの高性能なアクセス解析です。日本語にも対応しています。
Google アナリティクスと違い、リアルタイムで解析することも出来ます。
Piwikの自動リポート処理はブラウザで管理画面にアクセスしたことをトリガーに行われますが、アクセスの多いサイトを解析している場合、待ちが出来ます。
予めデーター処理をして置くことで利便性が増します。
これには一時間ごとにそれまでのデーターをcronをトリガーにして行わせることが必要です。
この備考録です。
さて、私のPiwikを設置しているサーバーはcronが使えません。これをさくらインターネットのサーバーのcronで動かします。
そこで、URLをフェッチすることでcronを働かせることにしました。つまりURLを実行することによってcronの代替をします。
http://あなたのドメイン/piwik/misc/cron/archive.php?token_auth=***
仮にあるドメインの下のPiwikというフォルダにPiwikを設置しているとしますと、このようなURLになります。
最後の***は、あなたのAPIコードです。ユーザーの画面のAPIをご覧下さい。32桁の英数字です。
さて、こちらをクリックすればトリガーになりますが、自分でクリックして作動を確認します。
エラーにならずにかなりの時間後、処理が完了したことを示すメッセージがあれば成功です。
これを自動処理する必要があります。これにcronを使います。
<?php readfile("http://あなたのドメイン/piwik/misc/cron/archive.php?token_auth=***"); ?>
このような簡単な構文のPHPファイルを作ります。cron.phpでも良いですし、なにか適当な名前で保存します。
さくらの任意の場所に置きます。属性を実行権限を与えておきます。755で良いです。
さくらのあなたのwwwのトップのフォルダに置いたとして、cron設定の構文はこうなります。
cd /home/***/www/; /usr/local/bin/php -f /home/***/www/melchan.php >/dev/null
/dev/nullはメッセージは全部棄ててしまえと言うことです。***はあなたのユーザー名、つまりフォルダです。
時間は1時間に1回動かせばよろしいでしょう。0 * * * * で、毎時0分に起動させます。
cronに設定する場合
後日記載。
ちなみにGMOクラウドのVPSのcronに設定する場合。結局こちらに設置しました。
/usr/local/psa/admin/bin/php -f /var/www/vhosts/***.com/httpdocs/piwik/console core:archive --url=http://***.com/piwik/ > /dev/null
/usr/local/psa/admin/bin/phpは、PHPの場所です。他のサーバーなら、/usr/local/bin/phpが多いと思います。
***はあなたのドメイン。
/var/www/vhosts/***.com/httpdocsとかは、サーバー上の位置です。さくらなら/home/~ですね。
バリューサーバーの場合は、シェルスクリプトで書いた実行ファイルをcronで指定する形になります。
#!/bin/sh /usr/local/bin/php -f /virtual/*******/public_html/****.com/piwik/console core:archive --url=http://****.com/piwik/ > /virtual/*******/public_html/piwik-archive-output.log
これを***.shという、ファイルで保存して、そのファイルを指定して実行します。改行コードは必ず「LF」、文字コードは、UTF-8にします。