[[PageOutline(2-5, Table of Contents, floated)]]
= Piwik Web Stats =
This page is to document the [http://piwik.org/ Piwik] server that is to be installed on the DevelopmentServer, the install was done on ticket:160
== Install ==
=== Download ===
{{{
cd /web/
mkdir piwik.transitionnetwork.org
cd piwik.transitionnetwork.org/
wget http://piwik.org/latest.zip
unzip latest.zip
}}}
=== Apache ===
Then set up apache, see /etc/apache2/sites-available/piwik.transitionnetwork.org and run the web installer and:
{{{
cd /web/piwik.transitionnetwork.org/piwik/
chown -R www-data:www-data tmp/
chown -R www-data:www-data config/
}}}
=== MySQL ===
Then a MySQL user and database was added using phpMyAdmin which ran the following SQL:
{{{
CREATE USER 'piwik'@'localhost' IDENTIFIED BY '********';
GRANT USAGE ON * . * TO 'piwik'@'localhost' IDENTIFIED BY '********' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `piwik` ;
GRANT ALL PRIVILEGES ON `piwik` . * TO 'piwik'@'localhost';
}}}
=== Tracking code ===
The installer suggested this JS tracking code, see the docs at http://piwik.org/docs/javascript-tracking/ :
{{{
}}}
And this image tracking code:
{{{
}}}
The following parameters can also be passed to the image URL:
* rec - (required) The parameter &rec=1 is required to force the request to be recorded
* idsite - (required) Defines the Website ID being tracked
* action_name - Defines the custom Page Title for this page view
* idgoal - The request will trigger the given Goal
* urlref - The Referrer URL: must be set to the referrer URL used before landing on the page containing the Image tracker. For example, in PHP this value is accessible via
{{{$_SERVER['HTTP_REFERER']}}}
* revenue - Used with idgoal, defines the custom revenue for this conversion
=== Logo ===
Customise the logo:
{{{
cd /web/piwik.transitionnetwork.org/piwik
chown -R www-data:www-data themes/
}}}
=== Cron ===
Set up the [http://piwik.org/docs/setup-auto-archiving/#toc-linuxunix-how-to-setup-a-crontab-to-automatically-archive-the-reports crontab to automatically archive the reports]:
{{{
crontab -u www-data -e
5 * * * * /web/piwik.transitionnetwork.org/piwik/misc/cron/archive.sh > /dev/null
}}}
=== Python ===
For the Google Analytics data import we need Python 2.6 and we are running with Python 2.5.2, so [http://evan.borgstrom.ca/post/845359613/python-2-6-on-debian-lenny-5-0 following this] a source compile was done on the dev server, however for the live server it would make more sense to follow [http://www.fps-gamer.net/installing-python-2-6-on-debian-lenny/ these instructions and use the debs from testing perhaps]:
{{{
aptitude build-dep python2.5
cd /usr/local/src
wget http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz
tar -zxvf Python-2.6.7.tgz
cd Python-2.6.7
./configure --with-threads --enable-shared
make
make install
ln -s /usr/local/lib/libpython2.6.so* /usr/lib/
cd /usr/local/src
wget 'http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefe74e'
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py install
cd /usr/local/src
wget "https://gdata-python-client.googlecode.com/files/gdata-2.0.14.tar.gz" --no-check-certificate
tar -zxvf gdata-2.0.14.tar.gz
cd gdata-2.0.14
python setup.py install
purge python-mysqldb
wget "http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz"
tar -zxvf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3
vim site.cfg
mysql_config = /usr/bin/mysql_config
aptitude install libmysqlclient-dev
python setup.py build
python setup.py install
}}}
=== GA Import ===
See python notes above and [http://clearcode.cc/offer/open-source-projects/google2piwik/ Google2Piwik].
{{{
cd /web/piwik.transitionnetwork.org/
wget http://clearcode.cc/google2piwik-1.2.5.tgz
tar -zxvf google2piwik-1.2.5.tgz
cd google2piwik-1.2.5
cp google2piwik.conf.sample google2piwik.conf
}}}
Edit {{{google2piwik.conf}}}:
{{{
## Google Account Credentials
# If you don't know your site table_id type:
# ./google2piwik.py -p
[google]
user_login = XXX@gmail.com
user_pass = XXX
table_id = ga:XXX
# MySQL Piwik Database configuration
[mysql]
db = piwik
host = localhost
port = 3306
user = piwik
passwd = XXX
table_prefix =
# Set export date range
[export]
start = 2011-05-01
end = 2011-06-29
## Piwik configuration of site.
# For default Piwik installation with one website, site_id should be set to 1
[piwik]
site_id = 1
site_url = http://www.transitionnetwork.org
}}}
== Requirements ==
The [http://piwik.org/docs/requirements/ requirements are]:
* PHP version 5.1.3 or greater, We highly recommend using at least PHP 5.3 as it is much more memory efficient than previous PHP versions, we have: PHP 5.2.6-1+lenny10 with Suhosin-Patch 0.9.6.2 (cli), when the server is migrated to squeeze we will get a new php, it can wait till then.
* MySQL version 4.1 or greater, we have 5.0.51a-24+lenny5-log
* (enabled by default) PHP extension pdo and pdo_mysql, weh have these already installed and they are configured via /etc/php5/apache2/conf.d/pdo.ini and /etc/php5/apache2/conf.d/pdo_mysql.ini
* PHP GD extension, installed already
* Increase your PHP memory_limit value in your php.ini config file to be at least memory_limit = 128M, we have 256M already in /etc/php5/apache2/php.ini