Я хочу настроить 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.
Вы не можете включить 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');
}
?>
Других решений пока нет …