Как настроить GeoIP на общем сервере?
Я хочу настроить ГЕОИП перенаправление домена на поддомены в соответствии с IP-адресом страны на общем сервере. Я создал пользовательский php.ini
для импорта geoip.so затем в моем index.php
Я добавил этот код:
<?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 1.0.8.
2
Author: Mustapha Aoussar, 2014-09-26
1 answers
Вы не можете включить 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');
}
?>
3
Author: Isaac, 2014-09-26 15:07:42