無法工作的fopen()函數在PHP中(Apache,Linux Mint)
P粉722409996
P粉722409996 2023-08-13 14:14:43
0
1
463
<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粉722409996
P粉722409996

全部回覆(1)
P粉107772015

所以,在發佈這個問題後,我決定用檔案總管(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 "成功!";

而且它成功了!

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!