Установка GeoIP (Centos, Red Hat)

GeoIP - это библиотека для определения страны, города, организации в которой находится тот или иной IP адрес. Php-geoip - модуль для использования функций библиотеки в PHP.

Процесс установки:

1. Добавляем репозиторий EPEL.

Устанавливаем GeoIP при помощи yum:

# yum install geoip geoip-devel


2. Скачиваем базу адресов и копируем в нужное место:


#!/bin/bash

cd /tmp
wget -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
#wget -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
if [ -f GeoIP.dat.gz ]
then
gzip -d GeoIP.dat.gz
#gzip -d GeoLiteCity.dat.gz
mv -f /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIP.dat.bak
#mv -f /usr/share/GeoIP/GeoIPCity.dat /usr/share/GeoIP/GeoIPCity.dat.bak
mv -f GeoIP.dat /usr/share/GeoIP/GeoIP.dat
#mv -f GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
else
echo "The GeoIP library could not be downloaded and updated"
fi



3. Устанавливаем расширение PHP:
# echo "extension=geoip.so" >>/etc/php.ini
# pecl install geoip



Если команда вывела ошибку:"pecl.php.net is using a unsupported protocal - This should never happen.install failed" нужно выполнить следующее:

# cd `pecl config-get php_dir`
# mv .channels .channels-broken
# pecl update-channels


И снова повторить:

#pecl install geoip


4. Проверяем:

php -m | grep geoip
geoip


5. Для полного счастья скачиваем архив с флагами стран согласно формата ISO 3166-1 alpha-2 country codes.

# unzip -x flag_icons.zip


Создаем в рабочей директории веб-сервера тестовый файл следующего содержания:

 "
. geoip_country_name_by_name($ip);


При открывании страницы получим информацию:






Вас также может заинтересовать:

Установка Centos 6
Установка 1C 8.2 под PostgreSQL на CentOS 6.3
Установка GitWeb на Centos 5.5
Установка PHP-SQLite в CentOS из SRC-RPM
Сборка и установка MemcacheDB на CentOS 5.5
Удаленная установка CentOS или Fedora