GeoIP & fopen () - "fopen (GeoIP / GeoIP.dat) [function.fopen]: не удалось открыть поток" происходит, даже если файл существует? - PullRequest
0 голосов
/ 14 августа 2011

Я пытаюсь отладить эту ошибку уже более трех часов, меняю имена файлов, пытаюсь использовать GeoIP Lite вместо GeoCity (в последнем есть файл 27 Мб, который нужно включить, так же, как и у этого мышления fopen() был максимум) и т. д.

Вот моя структура файловой структуры: index.php -> include("configuration/config.php") - config.php -> include("inc/geo_text.php") -> geo_text.php

Содержимое geo_text.php:

$ip = $_SERVER['REMOTE_ADDR'];
include("GeoIP/geoip.inc");
$gi = geoip_open("GeoIP/GeoIP.dat",GEOIP_STANDARD);
$count_name = geoip_country_name_by_addr($gi, $ip);
geoip_close($gi);

echo($count_name);

Теперь, если я получу доступ к geo_text.phpошибки не выдаются, и просто чтобы убедиться, что я поместил echo($count_name) в geo_text.php, и он вернул, как и должно быть, мою страну.

Однако, когда я запускаю config.php, он возвращает ошибку:

Warning: fopen(GeoIP/GeoIP.dat) [function.fopen]: failed to open stream: No such file or directory in /nfs/c09/h02/mnt/177978/domains/domain.com/html/labs/final/configuration/inc/GeoIP/geoip.inc on line 399 Can not open GeoIP/GeoIP.dat

У кого-нибудь есть идеи, почему это может быть?

Ответы [ 2 ]

2 голосов
/ 14 августа 2011

SSH на ваш сервер и выполните следующую команду (при условии, что это сервер Linux):

cd /nfs/c09/h02/mnt/177978/domains/domain.com/html/labs/final/configuration/inc/GeoIP/
ls -lah

Затем вставьте сюда вывод, чтобы мы могли его увидеть.Я думаю, что этот путь не существует.


Это очень странно.В качестве теста попробуйте переместить оба гео-файла в тот же каталог, что и ваши файлы кода, а затем соответственно измените пути в вашем коде.


Он проверяет файлы в domain.com, но вы просто cdВ тему themeplated.com вот в чем проблема.Ваш код должен указывать на каталог themeplated.com.

/ nfs / c09 / h02 / mnt / 177978 / domains / domain.com / html / labs / final / configuration / inc/ GeoIP / /nfs/c09/h02/mnt/127878/domains/themeplated.com/html/labs/final/c‌ onfiguration / inc / GeoIP /

1 голос
/ 14 августа 2011

Это проблема пути.

geoip_open ("/ absolute / path / to / GeoIP / GeoIP.dat", GEOIP_STANDARD);

должно работать.

...