Марат-блог
Услуги по продвижению и разработке сайта
Отправить заявку
Заказать обратный звонок

Спасибо, Ваша заявка принята.

В ближайшее время менеджер свяжется с Вами.

Главная » WEB » Установка GeoIP на Centos (Red Hat) с панелью WHM/CPanel
Установка GeoIP на Centos (Red Hat) с панелью WHM/CPanel
Веб разработки
1393
07 сентября 2014

Установка GeoIP на Centos (Red Hat) с панелью WHM/CPanel

Информация берётся из специальной базы, лучшая из которых находиться на сайте MaxMind.

В настоящее время существует множество разных скриптов и плагинов к скриптам, которые в своей работе используют именно это расширение. Однако некоторым из них достаточно работы GeoIP как модуля apache (mod_geoip) а некоторым этого мало и они хотят расширения GeoIP в PHP или Perl.

Следующая инструкция подойдет для установки GeoIP на CentOS, RedHat, Fedora с панелью управления WHM/CPanel

Все действия делаются в командной строке на сервере по SSH

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

CentOS 5

для i386

http://dl.fedoraproject.org/pub/epel/5/i386/
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

для x86_64 (64-битной системе)
http://dl.fedoraproject.org/pub/epel/5/x86_64/
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64//epel-release-5-4.noarch.rpm

CentOS 6

для i386

http://download.fedoraproject.org/pub/epel/6/i386/
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

для x86_64 (64-битной системе)

http://download.fedoraproject.org/pub/epel/6/x86_64/
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

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

yum install geoip geoip-devel

3. Скачиваем базы IP адресов, создаем директорию для баз и копируем в нужное место:

mkdir /usr/local/share/GeoIP
cd /usr/local/share/GeoIP

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gzip -d GeoIP.dat.gz

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz

wget http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz
gzip -d GeoIPv6.dat.gz

Последние базы, и правильность названия файлов, можно посмотреть на сайте

http://geolite.maxmind.com/download/geoip/database/
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/

4. Устанавливаем модуль mod_GeoIP для Apache на сервер или VPS

wget http://docs.cpanel.net/twiki/pub/EasyApache3/CustomMods/custom_opt_mod-mod_geoip.tar.gz
tar -C /var/cpanel/easy/apache/custom_opt_mods -xzf custom_opt_mod-mod_geoip.tar.gz

Пересобираем Apache и выбираем модуль GeoIP

/scripts/easyapache


Это можно сделать и через WHM, в разделе Software > EasyApache (Apache Update)

Установка займет от 20-40 минут, зависит от загруженности и производительности сервера/vps

5. Подгружаем модуль mod_GeoIP в Apache

vi /usr/local/apache/conf/includes/pre_virtualhost_global.conf

Вписываем:

GeoIPEnable On
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
GeoIPDBFile /usr/local/share/GeoIP/GeoLiteCity.dat
GeoIPDBFile /usr/local/share/GeoIP/GeoIPv6.dat

Перезапускаем Apache:

service httpd restart

Это можно сделать и в WHM в разделе Service Configuration > Include Editor > Pre VirtualHost Include (All Versions)

6. Устанавливаем расширение GeoIP как модуль php

Если же GeoIP нужен как модуль php, то проделываем следующее:

wget http://pecl.php.net/get/geoip-1.0.8.tgz
tar xvfz geoip-1.0.8.tgz
cd geoip-1.0.8
phpize
./configure
make
make install

Последнюю версию можно скачать с сайта PECL : http://pecl.php.net/package/geoip

Открываем файл php.ini

vi /usr/local/lib/php.ini

Добавить туда строку:
extension=geoip.so
добавляем где то к концу файла, где подгружаются различные расширение

Перезапускаем Apache:
service httpd restart

Проверить то, что модуль установлен и корректно работает можно командой php -m или php -m | grep geoip

Так же можете создать файл с выводом phpinfo на сервере, и отобразить это через браузер.

7. Устанавливаем GeoIP как модуль perl (если нужен)

Скачиваем последнюю версию с сайта PEAR http://pear.php.net/package/Net_GeoIP/download/

wget http://download.pear.php.net/package/Net_GeoIP-1.0.0RC3.tgz

Устанавливаем:
pear install Net_GeoIP-1.0.0RC3

Путь к бинарному файлу:
/usr/local/bin/geoiplookup
/usr/local/bin/geoiplookup6

На этом установка закончена!

P.S. , может кому понадобится, так тоже работает

Есть вариант не пересобирать Apache через EasyApache а сделать так:

Скачиваем последнюю версию модуля с сайта maxmind и устанавливаем, в место 4-го пункта описанного выше.

wget -c http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz
tar -xzf mod_geoip2_1.2.5.tar.gz
cd mod_geoip2_1.2.5/
/usr/local/apache/bin/apxs -lGeoIP -cia mod_geoip.c

Откроя файл конфигурации апача:
vi /usr/local/apache/conf/httpd.conf
Вы должны обнаружить :
LoadModule geoip_module modules/mod_geoip.so
Значить все в порядке.,

Остальные пункты делаем как все написано.