2011-08-13 97 views
0

我一直試圖調試這個錯誤現在超過三個小時,更改文件名,嘗試使用GeoIP Lite代替GeoCity(後者有一個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)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

有沒有人有任何想法,這可能是爲什麼?

回答

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中,而文件B又被包含到文件C中時,它是否嘗試通過文件B的路徑將文件A解析爲文件C,即如果文件B包含「C/GeoIP/GeoIP.dat」和文件A包含文件B,它是否也查找'C/GeoIP/GeoIP.dat'而不是'B/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中的文件,但你只是cd'd到themeplated.com,這就是問題所在。您的代碼需要指向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 total 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

相關問題