2014-09-26 2 views
2

Я хочу настроить GeoIP для перенаправления домена на поддомены в соответствии с IP-адресом страны на общем сервере. Я создал пользовательский php.ini импортировать geoip.so то в моем index.php я добавил этот код:Как настроить GeoIP на общем сервере?

<?php 
    require_once('/home/fuiba/php.ini'); 
    $gi = geoip_open('GeoIP.dat', GEOIP_MEMORY_CACHE); 
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']); 

    geoip_close($gi); 
    $my_countries = 'fr'; 
    if (strtolower($country) == $my_countries) { 
     header('Location: fr.fuiba.org'); 
    } 
    $my_countriessss = 'us'; 
    if (strtolower($country) == $my_countriessss) { 
     header('Location: en.fuiba.org'); 
    } 
?> 

В браузере я получаю эту ошибку:

extension=geoip.so 
Fatal error: Call to undefined function geoip_open() in /home/fuiba/public_html/index.php on line 3 

В GeoIP установлен в Сервер. Я проверил его на info.php: geoip version 1.0.8.

enter image description here

ответ

3

Вы не можете включать в php.ini с PHP скрипт, и вам не нужно, так как phpinfo() возвращения, что он уже установлен.

Что вам нужно сделать для того, чтобы сделать работу керамзита является первым включать geoip.inc файл include("include/geoip.inc");

Здесь вы можете найти его, если вы уже не имеете его: https://github.com/maxmind/geoip-api-php/blob/master/src/geoip.inc

<?php 
    include("include/geoip.inc"); 
    $country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']); 

    geoip_close($gi); 
    $my_countries = 'fr'; 
    if (strtolower($country) == $my_countries) { 
     header('Location: fr.fuiba.org'); 
    } 
    $my_countriessss = 'us'; 
    if (strtolower($country) == $my_countriessss) { 
     header('Location: en.fuiba.org'); 
    } 
?> 
+0

Спасибо Исааку. Я использую общий сервер, поэтому я не знаю путь для 'include/geoip.inc', и я не могу установить расширение или плагин или изменить конфигурацию сервера. Я спросил провайдера, но они предложили мне изменить путь к /home/fuiba/php.ini, потому что они не дают мне путь geoip.inc. –

+1

@Fuiba Как указано в моем посте, вы можете скачать его по этому адресу https://github.com/maxmind/geoip-api-php/blob/master/src/geoip.inc Затем введите 'include/'или все, что вы хотите, просто не забудьте поставить правильный путь, а затем в' include' – Isaac

+0

Большое спасибо @Isaac –

Смежные вопросы