GeoIP-Eckdaten
(Stand 05.09.2017)
GeoIP-Version: 1.6.11
PECL-Modul: 1.1.1
Download-Links:
- https://github.com/maxmind/geoip-api-c/releases
- http://dev.maxmind.com/geoip/legacy/geolite/#Downloads
- http://pecl.php.net/package/geoip
Voraussetzung für diese Anleitung
- ManagedHosting Pro
- SSH-Zugang
- PHP 7.X
Die Installation von GeoIP erfolgt im eigenen Kundenmenü.
Suchen Sie die aktuellen Versionen von GeoIP und PECL-Modul.
Installation der GeoIP-C-Libary und des PECL-Moduls
Vorbereitung
Loggen Sie sich per ssh in Ihren Account ein, legen Sie ein Installationsverzeichnis auf der obersten Ebene des Kundenaccounts an und wechseln Sie in dieses Verzeichnis. Das Verzeichnis darf auf dieser Ebene noch nicht vorhanden sein. Hier im Beispiel verwende ich /geoip/. Passen Sie ggf. den Namen an.
mkdir geoip cd geoip
Für die Installation wird der Serverpfad benötigt. An diese Information kann man über verschiedene Wege bekommen:
- im Kundenbackend im Bereich Allgemein / Informationen,
- über die Variable $HOME im SSH-Terminal
Installation der GeoIP-C-Libary
Laden Sie die Dateien der GeoIP-C-Libary herunter, passen Sie die Angaben an die von Ihnen verwendete Version an, entpacken Sie das Archiv, wechseln in das entpackte Verzeichnis und installieren die GeoIP-C-Library.
wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz tar -xvf GeoIP-1.6.11.tar.gz cd GeoIP-1.6.11 ./configure --prefix=$HOME/geoip/GeoIP-1.6.11 make && make install
Hier können Fehlermeldungen wie „/bin/sh: fork: retry: Resource temporarily unavailable“ auftreten. Das ist normal da manchmal SSH-Limits greifen.
Installation des PECL-Moduls geoip
Wechseln Sie in das Installationsverzeichnis (/geoip), laden und entpacken das PECL-Modul und wechseln dann in dieses Verzeichnis.
cd $HOME/geoip wget http://pecl.php.net/get/geoip-1.1.1.tgz tar -xvf geoip-1.1.1.tgz cd geoip-1.1.1
Um das PECL-Modul zu installieren, muss zuerst eine Build-Umgbung mit phpize eingerichtet werden.
(hier muss die jewelige PHP Version benutzt werden -> phpize7 für PHP Version 7.0.x oder phpsize71 für PHP Version 7.1.x ).
Hier im Beispiel verwende ich PHP 7.1.x
phpize71
Nun konfigurieren wir das Modul mit:
(auch wieder muss die PHP Version angepasst werden)
- für PHP Version 7.0.x: –with-php-config=/usr/local/bin/php7-config oder
- für PHP Version 7.1.x: –with-php-config=/usr/local/bin/php71-config
--with-php-config=/usr/local/bin/php71-config
Der Pfad bei –with-geoip muss auf den Ordner zeigen, in dem die GeoIP-C-Libary installiert ist:
(-> der Pfad –prefix bei der oben beschriebenen Installation der GeoIP-C-Libary).
./configure --with-php-config=/usr/local/bin/php71-config --with-geoip=$HOME/geoip/GeoIP-1.6.11/
Installation abschließen:
make && make test
Die geoip.so wird in den Unterordner modules abgelegt. ($HOME/geoip/geoip-1.1.1/modules/geoip.so)
Nach Der Installation muss noch ein Verzeichnis angelegt werden:
cd $HOME/geoip/GeoIP-1.6.11/share mkdir GeoIP cd GeoIP
In dieses Verzeichnis müssen die Datenbanken gelegt werden:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz gzip -d GeoIP.dat.gz gzip -d GeoLiteCity.dat.gz gzip -d GeoIPASNum.dat.gz
Das PECL-Modul kann die Datenbank GeoLiteCity.dat nicht erkennen, daher muss diese in GeoIPCity.dat umbenannt werden.
mv GeoLiteCity.dat GeoIPCity.dat
Der ganze Installation ist auch noch mal in einem Shellskript zusammengefasst.
Anpassen der php.ini
In der php.ini müssen wir jetzt das PECL-Modul GeoIP aktivieren um es in Piwik nutzen zu können.
Tragen Sie folgendes in der php.ini ein:
[GeoIP] extension_dir = "[Serverpfad]/geoip/geoip-1.1.1/modules/" extension = "geoip.so" geoip.custom_directory = "[Serverpfad]/webseiten/piwik/misc/"
(Hier muss unbedingt der Serverpfad anstatt der Variable $HOME eingetragen werden!)
Nach dem Speichern steht nun das PECL-Modul GeoIP zur Verfügung. Es muss der Unterordner misc innerhalb de Piwik Ordners angeben werden, da dort die IP-Datenbanken gespeichert werden.
Konfiguration von Piwik
In Piwik können wir nun GeoIP (PECL) aktivieren. Dazu muss jetzt unter Einstellungen -> Standorterkennung -> GeoIP (PECL) Installiert stehen. Durch einen Klick auswählen. Jetzt müssen noch die Datenbanken unten auf der Seite eingetragen werden.
Dafür unter „Automatische Updates für GeoIP Datenbanken einrichten“ die folgenden Links einfügen:
- Standortdatenbank: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
- oder für IPv6: http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz
- Internet Anbieter Datenbank: http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
- Organisationsdatenbank: http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
- Aktualisiere Datenbanken alle: Monat
-> Speichern
Piwik lädt nun die Datenbanken herunter.
Nun benutzt Piwik die genauerer GeoIP-Methode zu Lokalisierung der Besucher. Gleichzeitig werden die Datenbanken jeden Monat von Piwik aktualisiert.