0

ファイル名を変更し、GeoCity の代わりに GeoIP Lite を使用しようと (GeoCity には 27 MB のファイルが含まれているため、この考えfopen()には最大値がありました)、などなど、 3 時間以上このエラーをデバッグしようとしています。

これが私の構造ファイル構造です: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

なぜこれが考えられるのか、誰かが何か考えを持っていますか?

4

2 に答える 2

2

サーバーに SSH で接続し、次のコマンドを実行します (Linux サーバーであると仮定します)。

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

次に、出力をここに貼り付けて確認します。私の推測では、そのパスは存在しません。


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


domain.com のファイルをチェックしていますが、themeplated.com に cd しただけです。これが問題です。コードは、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/構成/株式会社/GeoIP/

于 2011-08-13T22:43:09.720 に答える
1

パスの問題です。

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

動作するはずです。

于 2011-08-13T22:39:38.383 に答える