2011-08-13 12 views
0

私はこのエラーを3時間以上デバッグしようとしていましたが、ファイル名を変更し、GeoCityの代わりにGeoIP Liteを使用しようとしました(後者は27MBのファイルが含まれていましたので、fopen()は最大) 。GeoIP&fopen() - "fopen(GeoIP/GeoIP.dat)[function.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)を配置するためにそれは私の国のように戻った。

私は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

は、誰もが任意のアイデアを持っていますか?

答えて

1

これはパスの問題です。

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

が有効です。

+0

/nfs/c09/h02/mnt/177978/domains/domain.com/html/labsで探しているようです/final/configuration/inc/GeoIP/GeoIP/geoip.inc、geoip.incはすでにGeoIPディレクトリにあるので、代わりに( "GeoIP.dat")に変更するだけで済みます。 – Joe

+0

私はこれを試してみましたが動作しません:(また、 'geo_text.php'がなぜうまくいくのか説明しませんでしたが、' config.php'はそうではないでしょう。 – Avicinnian

+0

ああ、絶対パスを使用していなかったからですが、なぜ 'geo_text.php'がうまくいくのかまだ説明していないし、 t。ファイルAがファイルBに含まれ、これがファイルCに含まれている場合、ファイルBのパスを介してファイルAをファイルCに解決しようとするかどうか、すなわちファイルBに 'C/GeoIP/GeoIP.dat 'ファイルAにはファイルBが含まれていますが、 'B/C/GeoIP/GeoIP.dat'などの代わりに' C/GeoIP/GeoIP.dat'も探しますか? – Avicinnian

2

サーバーへのSSH、次のコマンドを実行します(これは、Linuxサーバの仮定):次に

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

私たちが見ることのためにここに出力を貼り付けます。私の推測では、その道は存在しないということです。


これは非常に奇妙です。テストとして、両方のジオファイルをコードファイルと同じディレクトリに移動し、それに応じてコード内のパスを変更してみてください。


domain.comのファイルをチェックしていますが、themeplated.comにcdすれば問題です。あなたのコードはthemeplated.comディレクトリを指す必要があります。

/NFS/C09/H02/MNT/177978 /ドメイン/ domain.com/HTML /ラボ/最終/構成/ INC /のGeoIP/ /NFS/C09/H02/MNT/127878 /ドメイン/ themeplated.com/html/labs/final/c onfiguration/inc/GeoIP/

+0

私はずっと前からSSHを使ったことがありません:[email protected]:/nfs/c09/h02/mnt/127878/domains/themeplated.com/html/labs/final/configuration/inc/GeoIP$ ls -lah 合計953K drwxr-xr-x 2 domain.com domain.com 5 2011-08-13 15:23 drwxr-xr-x 3 domain.com domain.com 6 2011-08-13 15:42 .. -rwxr-xr-x 1 domain.com domain.com 1.2M 2011-08-13 15:11 GeoIP。 dat -rwxr-xr-x 1 domain.com domain.com 31K 2011-08-13 15:10 geoip.inc -rwxr-xr-x 1 domain.com domain.com 41 2011-08-13 15:23 var_dump.php – Avicinnian

+0

cd'dに入っているパスにはthemeplated.comがありますが、上記のコードはdomain.comの下のファイルを探しています。これは問題です。 – Gerry

+0

それはプレースホルダだったので、私は直接コピー&ペーストしませんでした:(。 – Avicinnian

関連する問題