搜尋

首頁  >  問答  >  主體

無法工作的fopen()函數在PHP中(Apache,Linux Mint)

<p>fopen()在我的Linux Mint上的apache2本機伺服器上不起作用</p> <pre class="brush:php;toolbar:false;"><?php error_reporting(E_ALL); ini_set('display_errors',1); include_once "c&f.php"; fopen("test.txt", 'w');</pre> <p>檔案<code>test.txt</code>已創建,我可以使用Sublime開啟並向其寫入內容。此特定項目的目錄是<code>/var/www/site02</code>。在安裝後配置apache2時,我特意更改了這個特定目錄(site02)的所有權,以便能夠讀取和寫入檔案(sudo chown $USER:$USER -R ...你明白的)。事實上,我確實可以在此目錄中使用我的使用者帳戶讀取和寫入(我可以在此目錄中自由使用cli git命令而無需“sudo”)。 </p> <p>如果我使用上面提到的程式碼存取<code>index.php</code>,我會得到以下錯誤:</p> <blockquote> <p>"警告:fopen(test.txt):無法開啟流:權限被拒絕,位於/var/www/site02/index.php的第6行"</p> </blockquote> <p>發生了什麼事?我嘗試過在谷歌上搜尋這個問題,但得到了成千上萬個不同的原因,只讓我更加困惑。問題是apache伺服器的問題嗎?還是我需要對PHP進行一些配置更改? </p>
P粉722409996P粉722409996467 天前529

全部回覆(1)我來回復

  • P粉107772015

    P粉1077720152023-08-14 11:21:06

    所以,在發佈這個問題後,我決定用檔案總管(Thunar)開啟 /var/www/site02 來檢查圖形介面下的權限。是的,這個目錄的擁有者是我,我可以讀取和寫入。群組是 我的使用者名稱,權限也是讀取和寫入。但是對於“其他人”,只有一個權限:讀取。我把它改成了讀取和寫入。並用一些程式碼進行測試:

    $fh = fopen("test.txt", 'w') or die("error writing the file");
    
        $text = <<<_END
        line 1
        line 2
        line 3
        _END;
    
        fwrite($fh, $text) or die("error writing the file");
        fclose($fh);
        echo "成功!";

    而且它成功了!

    回覆
    0
  • 取消回覆