無法工作的fopen()函數在PHP中(Apache,Linux Mint)
P粉722409996
2023-08-13 14:14:43
<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>
所以,在發佈這個問題後,我決定用檔案總管(Thunar)開啟 /var/www/site02 來檢查圖形介面下的權限。是的,這個目錄的擁有者是我,我可以讀取和寫入。群組是 我的使用者名稱,權限也是讀取和寫入。但是對於“其他人”,只有一個權限:讀取。我把它改成了讀取和寫入。並用一些程式碼進行測試:
而且它成功了!