Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Ubuntu: Enable Piwik geolocation support with GeoIP PECL #Piwik #Markdown


By default Piwik uses the provider location to guess a visitor's country based on the language they use. This is not very accurate, so they recommend installing and using GeoIP.


  • Ubuntu server
  • libgeoip-dev
  • Nginx
  • Nginx minimal website
  • php5-fpm
  • MySQL
  • php5-dev, php5-geoip, php5-mysql
  • Nginx php5-fpm website
  • Piwik website


Download the latest GeoLite database

sudo wget -P /var/www/[piwik]/misc/

Unzip the database.

sudo gunzip /var/www/[piwik]/misc/GeoLiteCity.dat.gz

Rename the file.

cd /var/www/[piwik]/misc
sudo mv GeoLiteCity.dat GeoIPCity.dat

Update the access rights.

sudo chown www-data:www-data GeoIPCity.dat

Update the php configuration file.

sudo vi /etc/php5/fpm/php.ini

Add the geoip configuration.

geoip.custom_directory = /var/www/[piwik]/misc

Restart Nginx and php5-fpm service.

sudo nginx -t && sudo service nginx reload
sudo service php5-fpm restart

Now open your piwik installation on //[host]/piwik/index.php?module=UserCountry&action=adminIndex and check the GeoIP (PECL) option.

In addition the the GeoLite download url to the Download URL field and click save.


How do I install the GeoIP Geo location PECL extension?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment