2013-01-06 19 views
0

所以,我有這個簡單的小php腳本。它運行並編譯得很好,並按照我希望它在我編碼的機器上工作的方式工作。我在運行Debian 6.0.6,32位的個人家庭網絡服務器上運行它。這是Apache的PHP。而且我知道一個事實,即PHP正在服務器上工作。與php和我的家庭服務器寫入文件的麻煩

<?php 
    $hitsfile = "hits.txt";             #name of file 
    $filehandle = fopen($hitsfile, 'r') or die ("Couldn't read file.");  #Opens file, 'hitsfile' to be read. 
    $hits = fread($filehandle, 5);           #reads file to the introduced variable, 'hits' 
    fclose($filehandle);             #closes file 
    $hits++;                #increments the variable that it read. 
    $filehandle = fopen($hitsfile, 'w') or die ("Couldn't write to file."); #opens file to be read. 
    fwrite($filehandle, $hits);            #writes the hits variable to file. 
    fclose($filehandle);             #closes file. 
    echo $hits;                #outputs the hits variable. 
    ?> 

當我通過網絡瀏覽器從服務器訪問文件時,出現「無法寫入文件」。錯誤。那麼,它正確地打開文件,並閱讀它。當它打開它寫入時,它會失敗。我假設這是一些權限問題或其他問題。我對如何解決這個問題感到不知所措。有任何想法嗎?援助將不勝感激!我已經搜索了幾天,我無法解決這個問題。我是一個php'noob',我對運行一個基於linux的web服務器很陌生,但是,嘿,你必須學習。 :* l

+0

確保文件權限允許寫入文件並且它不是隻讀的。 – SISYN

+0

'var_dump(is_writable($ hitsfile));'告訴你什麼? – Niko

回答

1

試圖檢查文件的權限? Linux文件系統有一個非常嚴格的許可系統。寫在終端上:

ls -la /path/to/my/file.txt 

這會給你你在左欄的權限。請仔細閱讀this article,並檢查Apache是​​否具有文件的「寫入」權限。如果不是,請使用chmod命令讓Apache訪問該文件(或chown命令,如果此文件的所有者具有寫入權限,則將此文件的所有者更改爲apache)。

+0

AGHHHH YEEEEEEEAH。 HAHAH。我愛你。 – DrDeviation

+0

:)如果此答案對您有幫助,請檢查「V」標記我爲正確答案。謝謝 :) – Infinity