2012-01-17 5 views
1

Кто-нибудь есть идеи, почему мой сервер не может прочитать файл базы данных?геолокация с Maxmind GeoLiteCity, не может прочитать файл db

Независимо от того, что я стараюсь, я постоянно получаю ту же ошибку:

«не удается открыть GeoLiteCity.dat»

Нет объяснения. Файл есть, я попытался загрузить, чтобы убедиться, что он не поврежден. Я использую чистый php-модуль. Оба файла находятся в одном каталоге ...

Я пытаюсь настроить это на Wordpress, возможно, это будет частью проблемы?

мой код только основной тестер:

include("geoip.inc"); 

// read GeoIP database 
$handle = geoip_open("GeoLiteCity.dat", GEOIP_STANDARD); 

// map IP to country 
echo "IP address 62.149.130.132 located in " . geoip_country_name_by_addr($handle, "62.149.130.132") . " (country code " . geoip_country_code_by_addr($handle, "62.149.130.132") . ")"; 

// close database handler 
geoip_close($handle); 

но это просто привычка делать это.

+0

Какие права доступа к файлу? –

+0

Пожалуйста, проверьте 'is_readable (" GeoLiteCity.dat ")' – DerVO

ответ

2
  • Попробуйте использовать полный путь к файлу .dat.
  • Убедитесь, что .dat-файл находится в каталоге, который может считывать процесс веб-сервера.
  • Убедитесь, что файл .dat является читаемым процессом веб-сервера.
+0

Brill. Вот и все. Не знаю, почему, может быть, потому, что файл данных был в плагине и вызывается в шаблоне (хотя через класс в функции ... так что он находил все другие относительные файлы). Но yup, путь по отношению к серверу обработан. Благодаря! – josh

1

Установили ли вы правильные разрешения для файла? В linux убедитесь, что файл может быть прочитан пользователем веб-сервера (обычно www-data).

В качестве быстрого теста вы можете попробовать CHMOD файл 777.

Если это решает проблему, то вы знаете, вот ваш вопрос, и если вы хотите, вы можете изменить разрешения для лучшей безопасности (т.е. Чаун это пользователю www-data и chmod, чтобы оно соответствовало)

Также убедитесь, что путь, который класс геоинформации ищет в базе данных, является правильным. Это единственные 2 вопроса, которые могут возникнуть из-за этого.

0

Вы пробовали, используя путь файловой системы

например

ПЕРЕД EDIT:

$gi = geoip_open('GeoLiteCity.dat', GEOIP_STANDARD); 

ПОСЛЕ EDIT (FIX):

$gi = geoip_open('/var/www/html/googletitan/GeoLiteCity.dat', GEOIP_STANDARD); 

выше изменения фиксированной же ошибка для меня.

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