首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Maxmind GeoLiteCity的地理位置,无法读取数据库文件

使用Maxmind GeoLiteCity的地理位置,无法读取数据库文件
EN

Stack Overflow用户
提问于 2012-01-17 23:34:44
回答 3查看 2.7K关注 0票数 1

有人知道为什么我的服务器不能读取数据库文件吗?

无论我尝试什么,我都会得到相同的错误:

‘无法打开GeoLiteCity.dat’

没有任何解释。文件在那里,我已经尝试上传以确保它没有损坏。我使用的是纯php模块。这两个文件都在同一个目录中...

我正试着在wordpress上设置这个,这可能是问题的一部分吗?

我的代码只是一个基本的测试器:

代码语言:javascript
复制
    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);

但它就是做不到。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-17 23:39:15

  • 尝试使用.dat文件的完整路径。
  • 确保.dat文件位于web服务器进程可以读取的目录中。
  • 确保web服务器进程可以读取.dat文件本身。
票数 2
EN

Stack Overflow用户

发布于 2012-01-17 23:38:25

您是否在文件上设置了正确的权限?在linux上,请确保www服务器用户(通常为www-data)可以读取该文件。

作为一个快速测试,您可以尝试将文件chmod设置为777。

如果这解决了问题,那么你就知道这就是你的问题,如果你愿意,你可以修改权限以获得最好的安全性(例如,将其更改为www-data用户,并对其进行chmod以适合它)

还要确保geoip类在数据库中查找的路径是正确的。这是我能想到的唯一两个会导致这种情况的问题

票数 1
EN

Stack Overflow用户

发布于 2015-04-02 17:07:52

您尝试过使用文件系统路径吗

编辑前:

代码语言:javascript
复制
$gi = geoip_open('GeoLiteCity.dat', GEOIP_STANDARD);

编辑(修复)后:

代码语言:javascript
复制
$gi = geoip_open('/var/www/html/googletitan/GeoLiteCity.dat', GEOIP_STANDARD);

上面的更改为我修复了相同的错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8897342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档