我遇到了一個非常奇怪的問題。我正嘗試使用fopen()
執行寫入文件。PHP權限被拒絕fopen
這是我在writetofile.php
嘗試:
$fw = fopen('/test.txt', 'w');
fwrite($fw, 'hello world' . "\r\n");
fclose($fw);
這是我不斷收到錯誤:
Warning: fopen(/test.txt):
failed to open stream: Permission denied in C:\inetpub\wwwroot\writetofile.php on line 41
Warning: fwrite() expects parameter 1 to be resource, boolean given...
我100%肯定我有權限的服務器。我是管理員。此外,我暫時給予每個人完全的權限。我甚至嘗試在本地運行php腳本,直接從服務器使用localhost
。我沒有使用Apache,我使用的是IIS。我嘗試修改權限後嘗試重新啓動IIS。我沒有在安全模式下運行PHP。
任何想法可能會導致此問題?
+1,這工作!謝謝!問題:不應該將'/ test.txt'寫入根目錄,這與我的工作目錄(C:\ inetpub \ wwwroot \)相同? – AnchovyLegend
因爲PHP在文件系統級別運行。它不能少於你實際運行php代碼的URL。它沒有看到網址。它只會看到服務器驅動器上的文件。它不受服務器的文檔根 –
的約束沒有fopen()使用系統路徑和/是文件系統的根目錄「./test.txt」會在當前工作目錄中寫入文件 –