GeoIP не работает

S
На сайте с 22.03.2008
Offline
179
4934

Geoip стоит. Базы залиты /usr/share/GeoIP

phpinfo показывает

/etc/php.d/geoip.ini
geoip extension version 1.0.8
geoip library version 1004005
geoip.custom_directory no value no value

В php.ini прописана строка extension=geoip.so

Nginx собран вместе с geo модулем, nginx -V это подтверждает.

В nginx.conf прописано

# GeoIP
geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP database
geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # the city IP database

В fastcgi_params тоже

# For GeoIP
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;
fastcgi_param GEOIP_REGION $geoip_region;
fastcgi_param GEOIP_CITY $geoip_city;
fastcgi_param GEOIP_POSTAL_CODE $geoip_postal_code;
fastcgi_param GEOIP_CITY_CONTINENT_CODE $geoip_city_continent_code;
fastcgi_param GEOIP_LATITUDE $geoip_latitude;
fastcgi_param GEOIP_LONGITUDE $geoip_longitude;
php -m | grep geoip
PHP Warning: Module 'geoip' already loaded in Unknown on line 0
geoip

А в тестовом файле не определяет даже страну.

Еще какие-то действия надо произвести?

O
На сайте с 19.01.2010
Offline
43
#1

вывод phpinfo и консольной "php -i | grep geoip" совпадает? может для fastcgi модуль нормально подхватился, а для cli нет.

iamsens
На сайте с 26.08.2009
Offline
115
#2

а что в тестовом файле?

покажите код

S
На сайте с 22.03.2008
Offline
179
#3
outbox:
вывод phpinfo и консольной "php -i | grep geoip" совпадает? может для fastcgi модуль нормально подхватился, а для cli нет.

Module 'geoip' already loaded in Unknown on line 0

/etc/php.d/geoip.ini,

geoip

geoip support => enabled

geoip extension version => 1.0.8

geoip library version => 1004005

geoip.custom_directory => no value => no value

---------- Добавлено 12.12.2015 в 23:11 ----------

iamsens:
а что в тестовом файле?
покажите код

разные варианты пробовал, например вот

<?php


$geoip_country_code = getenv(GEOIP_COUNTRY_CODE);
/*
$geoip_country_code = $_SERVER['GEOIP_COUNTRY_CODE']; // works as well
*/
$geoip_country_code3 = getenv(GEOIP_COUNTRY_CODE3);
$geoip_country_name = getenv(GEOIP_COUNTRY_NAME);

$geoip_city_country_code = getenv(GEOIP_CITY_COUNTRY_CODE);
$geoip_city_country_code3 = getenv(GEOIP_CITY_COUNTRY_CODE3);
$geoip_city_country_name = getenv(GEOIP_CITY_COUNTRY_NAME);
$geoip_region = getenv(GEOIP_REGION);
$geoip_city = getenv(GEOIP_CITY);
$geoip_postal_code = getenv(GEOIP_POSTAL_CODE);
$geoip_city_continent_code = getenv(GEOIP_CITY_CONTINENT_CODE);
$geoip_latitude = getenv(GEOIP_LATITUDE);
$geoip_longitude = getenv(GEOIP_LONGITUDE);

echo 'country_code: '.$geoip_country_code.'<br>';
echo 'country_code3: '.$geoip_country_code3.'<br>';
echo 'country_name: '.$geoip_country_name.'<br>';

echo 'city_country_code: '.$geoip_city_country_code.'<br>';
echo 'city_country_code3: '.$geoip_city_country_code3.'<br>';
echo 'city_country_name: '.$geoip_city_country_name.'<br>';
echo 'region: '.$geoip_region.'<br>';
echo 'city: '.$geoip_city.'<br>';
echo 'postal_code: '.$geoip_postal_code.'<br>';
echo 'city_continent_code: '.$geoip_city_continent_code.'<br>';
echo 'latitude: '.$geoip_latitude.'<br>';
echo 'longitude: '.$geoip_longitude.'<br>';

?>
N
На сайте с 06.05.2007
Offline
419
#4
Shing:
разные варианты пробовал, например вот

Это неправильный код.

Возьмите примеры из руководства по функциям geoip

http://php.net/manual/ru/function.geoip-country-code-by-name.php

Кнопка вызова админа ()
iamsens
На сайте с 26.08.2009
Offline
115
#5

для отображения ай-пи пользователя, достаточно переменных окружения

$_SERVER

модуль в пхп не обязателен

кстати что в переменных окружения видно?

print_r($_SERVER);

?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий