пятница, 12 августа 2011 г.

Установка mod_geoip для Apache в первый раз

Ну, что, первый опыт установки модулей на сервер через SSH получен. Zend Optimizer инсталирован и работает. Теперь нужно поставить модуль апача mod_geoip. По дилетантски. Снова будем использовать программу SecureCRT. Для начала переходим в папку tmp и скачиваем туда дистрибутивы:
cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz
Далее распаковываем:
tar xzf GeoIP.tar.gz
tar xzf mod_geoip2_1.2.5.tar.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoIP.dat.gz
Сейчас последняя версия GeoIP-1.4.8, поэтому устанавливаем следующим образом:

cd /tmp/GeoIP-1.4.8
./configure
make install clean
cd /tmp
cp *.dat /usr/local/share/GeoIP/
Далее согласно советам, которые дилетант достал в интернете, нужно было скомпилировать модуль для Apache 2.x (на моем сервере был установлен DirectAdmin и в нем используется файл apxs, в других случаях может быть apxs2):
cd /tmp/mod_geoip2_1.2.5
apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
После этого редактируем файл httpd.conf, который обычно находится по адресу /etc/httpd/conf/httpd.conf. поможет нам в этом снова nano. Набираем:
nano /etc/httpd/conf/httpd.conf
и приступаем к редактированию файла. Не нарушая орфографии вставляем в файл этот блок:
LoadModule      geoip_module    /usr/lib/apache/mod_geoip.so
<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat
    GeoIPDBFile /usr/local/share/GeoIP/GeoLiteCity.dat
    GeoIPOutput All
</IfModule>
Я его вставил перед #EnableMMAP off и проблем это не вызвало. Дальше сохраняем файл, нажимая Ctrl+X, а потом Y.
После этого проверяем, что нигде не ошиблись:
httpd -t

В ответ я получил Syntax OK – значит всё установлено корректно и можно спокойно перегружать Apache:
service httpd restart
Для проверки создаем на сервере в любом домене страницу test.php со следующим содержанием:
<pre>
Ты отсюда:
<?php
$country_code = apache_note("GEOIP_COUNTRY_CODE");
$region = apache_note("GEOIP_REGION");
$country_name = apache_note("GEOIP_COUNTRY_NAME");
$city = apache_note("GEOIP_CITY");
echo "Код страны: " . $country_code . "\n";
echo "Регион:     " . $region . "\n";
echo "Имя страны: " . $country_name . "\n";
echo "Город:      " . $city . "\n";
?>
</pre> 
Вот,  дилетант самостоятельно, используя SecureCRT, гугл и много-много разрозненной информации установил себе апатчевский модуль mod_geoip.

Комментариев нет:

Отправить комментарий