Introduction link I’ve been using Piwik for over a year and hadn’t written an article about it yet. This is the opportunity to show you this equivalent to Google Analytics.
Prerequisites link Set up a database on a MySQL instance that you’ll use during the installation.
Installation link Navigate to your web directory:
1
2
3
4
5
cd /var/www
wget http://piwik.org/latest.zip
unzip latest.zip
rm How\ to\ install\ Piwik.html latest.zip
chown -Rf www-data. piwik
Then launch the installer at http://server/piwik
Configuration link Web Server link Here are some web server configurations you might need.
For Piwik, here’s the configuration (/etc/nginx/sites-available/piwik.deimos.fr
):
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
server {
include listen_port.conf;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/deimos.fr/server-unified.crt;
ssl_certificate_key /etc/nginx/ssl/deimos.fr/server.key;
ssl_session_timeout 5m;
server_name piwik.deimos.fr;
root /usr/share/nginx/www/deimos.fr/piwik;
index index.php;
access_log /var/log/nginx/piwik.deimos.fr_access.log;
error_log /var/log/nginx/piwik.deimos.fr_error.log;
# Drop config
include drop.conf;
location / {
try_files $uri $uri / /index.php?$args ;
}
location ~ \. php$ {
fastcgi_cache mycache;
fastcgi_cache_key $request_method$host$request_uri ;
fastcgi_cache_valid any 1h;
include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_intercept_errors on;
}
location ~* \. ( js|css|png|jpg|jpeg|gif|ico) $ {
expires max;
log_not_found off;
}
}
We’ll create a cron job to optimize Piwik’s performance:
1
5 * * * * php /var/www/deimos.fr/piwik/console core:archive --url= https://piwik.deimos.fr >> /var/log/piwik.log
Once the crontab is added, we’ll configure the web interface to stop automatically processing data when accessing a report. Go to:
Settings > General Settings tab Let Piwik archiving trigger when reports are viewed from a browser: No Reports for today (or any date range including today) will be processed at most every: 3600 seconds The Piwik configuration is now complete. You need to add sites and configure them to send stats to Piwik.
Piwik is an equivalent of Google Analytics, but free. It enables you to have statistics for your website with nice graphs etc. There is a plugin that allows you to insert code in each page (necessary), but it’s obsolete and has security vulnerabilities. We’ll use another module that will simply allow us to insert this type of code.
You need to install the PCR GUI Inserts module which allows you to insert information at various locations on your pages. First, activate the extension by adding these lines:
1
2
# PCR Extension for Piwik / Google Ads
require_once (" $IP /extensions/pcr/pcr_guii.php" );
Insert this into the MediaWiki configuration file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# PCR Piwik
$wgPCRguii_Inserts ['SkinAfterBottomScripts' ]['on' ] = true ;
$wgPCRguii_Inserts ['SkinAfterBottomScripts' ]['content' ] = '
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.deimos.fr/piwik/" : "http://www.deimos.fr/piwik/");
document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://www.deimos.fr/piwik/piwik.php?idsite=x" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->
' ;
If you want to integrate with Piwik, it’s quite simple. I created a patch - you’ll need to modify the JavaScript code to display in your page:
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
*** gitweb.old 2011-04-05 14:05:06.120951481 +0200
--- gitweb.cgi 2011-04-05 14:04:41.913944817 +0200
***************
*** 3612,3617 ****
--- 3612,3633 ----
qq!</script>\n!;
}
+
+ print <<PIWIK;
+ <!-- Piwik -->
+ <script type="text/javascript">
+ var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.deimos.fr/piwik/" : "http://www.deimos.fr/piwik/");
+ document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+ </script><script type="text/javascript">
+ try {
+ var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 10);
+ piwikTracker.trackPageView();
+ piwikTracker.enableLinkTracking();
+ } catch( err ) {}
+ </script><noscript><p><img src="http://www.deimos.fr/piwik/piwik.php?idsite=10" style="border:0" alt="" /></p></noscript>
+ <!-- End Piwik Tracking Code -->
+ PIWIK
+
print "\n</body>\n" .
"</html>";
}
***************
*** 7033,7038 ****
--- 7049,7066 ----
}
print <<XML;
</outline>
+ <!-- Piwik -->
+ <script type="text/javascript">
+ var pkBaseURL = (("https:" == document.location.protocol) ? "https://www.deimos.fr/piwik/" : "http://www.deimos.fr/piwik/");
+ document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+ </script><script type="text/javascript">
+ try {
+ var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 10);
+ piwikTracker.trackPageView();
+ piwikTracker.enableLinkTracking();
+ } catch( err ) {}
+ </script><noscript><p><img src="http://www.deimos.fr/piwik/piwik.php?idsite=10" style="border:0" alt="" /></p></noscript>
+ <!-- End Piwik Tracking Code -->
</body>
</opml>
XML
WordPress link For WordPress, install the Piwik Analytics extension which will allow you to easily configure Piwik for your blog.
Last updated
12 Jul 2014, 09:47 CEST . history