Aveti un magazin online gazduit de Nettissimo. Doriti sa afisati oferte speciale pentru vizitatorii din Bucuresti si alte oferte speciale pentru cei din Cluj. Sau doriti poate sa afisati un mesaj in spaniola pentru vizitatorii din Spania. Am luat in considerare acest aspect.
Pe serverele Nettissimo am instalat baza de date GeoIP de la MaxMInd (versiunea gratuita) care permite cu acurateţe identificarea ţării / localitaţii vizitatorilor paginilor clienţilor în funcţie de adresa de IP a conexiunii de internet a acestora.
Aceasta permite webmaster-ilor să optimizeze paginile şi să direcţioneze anumite mesaje comerciale în funcţie de zona geografică a publicul ţintă.
Webmasterii pot scrie instrucţiuni pentru serverul Apache in fişierele .htaccess instalate pe site-urile pe care le administrează sau pot folosi funcţiile din extensia php pentru baza de date GeoIP.
Pentru webmasteri: instalarea este relativ simplă. Serverele Nettissimo rulează pe centos şi cpanel. CPanel nu suportă oficial în distribuţie modulul geoip pentru apache, dar îl pune la dispoziţie. Aici lecţia pentru instalarea prin easypache.
Noi am preferat instalarea manuală pentru a avea la dispoziţie ultimele funcţionalităţi. Nu am folosit yum pentru librăria geoip deoarece am remarcat că la instalarea modulului apache dă eroare. Am compilat manual librăria (ultima ediţie):
- Am descărcat librăria de pe maxmind.com, am dezarhivat-o, am intrat in directorul respectiv şi am efectuat instalarea.
cd /root
wget http://www.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
tar xvzf GeoIP-1.4.8.tar.gz
cd GeoIP-1.4.8
./configure; make; make install
- Am creat un director pe server, am descărcat ultimele baze de date de la maxmind şi le-am dezarhivat:
mkdir /usr/local/share/GeoIP
cd /usr/local/share/GeoIP
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz
- am instalat:
yum install httpd-devel apr-devel
- am descărcat modulul apache de la maxmind, la dezarhivat şi l-am instalat:
cd /root
wget http://www.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.8.tar.gz
tar xvzf mod_geoip2_1.2.8
cd mod_geoip2_1.2.8
apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
- extensia php geoip nu este disponibilă în pachetul de baza php ci in biblioteca pecl:
pecl install geoip
În php.ini am verificat că este activă extensia şi adăugat o instrucţiune cu drumul către bazele de date:
extension=geoip.so
[geoip]
geoip.custom_directory=/usr/local/share/GeoIP/
Datorită unui bug al extensiei pecl a trebui să copiez baza de date cu oraşe cu un alt nume:
cd /usr/local/share/GeoIP
cp GeoLiteCity.dat GeoIPCity.dat
Conform cu ce scrie pe pagina maxmind baza de date cu adrese IP se actualizează în prima marţi din fiecare lună. Administratorii de servere pot scrie un script shell care să descarce bazele de date, să le dezarhiveze, să recopieze baza de date cu oraşe ca să poată funcţiona extensia php. Acest script îl vor trece în sarcinile periodice ale serverului respectiv (cron jobs)..
.