Как настроить GeoIP на общем сервере?

Я хочу настроить 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

Решение

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

Что нужно сделать, чтобы заставить работать GeoLite, это сначала включить 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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]