2012-01-17 10 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ファイルが、Webサーバープロセスが読み取れるディレクトリにあることを確認してください。
  • .datファイル自体がWebサーバープロセスによって読み込み可能であることを確認してください。
+0

Brillを確認してください。それはそれだった。理由はわかりませんが、datファイルがプラグインにあり、テンプレート内で呼び出されていた可能性があります(ただし、関数内のクラスを経由していましたが、他のすべての相対ファイルが見つかりました)。しかし、ええ、サーバーに相対的な経路は、治療を働いた。ありがとう! – josh

1

ファイルに対して正しいアクセス許可を設定しましたか? Linuxでは、Webサーバーユーザー(通常はwww-データ)がファイルを読み取ることができることを確認してください。あなたはそれはあなたが知っている問題を解決し、あなたの問題をthatsの場合は777

にファイルをchmodは試みることができる、そしてあなたが望むならば、あなたは最高のセキュリティのためのアクセス権を変更することができます簡単なテストとして

(すなわちchownコマンドそれをwwwデータユーザーとchmodに合わせてください)

また、geoipクラスがデータベースで探しているパスが正しいことを確認してください。これらは私が考えることができる唯一の2つの問題です。

0

あなたが編集する前に、ファイルシステムのパス例えば

を使用してみましたが:EDIT AFTER

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

(FIX):

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

私のために同じエラー固定上記の変更。

関連する問題