2016-08-25 16 views
0

我使用Ubuntu作爲我的操作系統,並且我有XAMPP。在htdocs文件夾中,我創建了一個項目文件夾,其中有index.php文件。現在的index.php,代碼的一部分,做到這一點:在Ubuntu中運行PHP程序 - fopen(「filename」,「w」):無法打開流:權限被拒絕

fopen("colors_new.csv", "w"); 

manual

'w' Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

但該文件,而不是被創建的,我越來越

Warning: fopen(colors_new.csv): failed to open stream: Permission denied... 

而當我查看項目文件夾時,colors_new.csv文件未創建。

當我在運行Windows操作系統的另一臺計算機上運行此程序時,它運行成功。該文件已成功創建。

如何解決Ubuntu中的這個問題?

我的嘗試:

我試圖運行sudo chmod 777 colors_new.csv,但我得到chmod: can not access colors_new.csv. No such file or directory.。我試着用文件名(如圖所示)在項目目錄中的WAS終端上執行此操作;以及提供文件的完整絕對路徑。兩次都有同樣的錯誤。


注:我所看到的其他問題,如上面所指出的,我想給權限的文件。其他問題沒有解決問題,下面接受的答案確實解決了這個問題。

+1

在運行chmod命令之前,您必須在文件的位置。否則它會拋出錯誤:chmod:無法訪問colors_new.csv。沒有這樣的文件或目錄 –

+2

這個問題不在文件中,因爲它沒有被創建,但是使用文件夾/目錄,你很可能沒有在目錄/文件夾中創建文件的權限 – Epodax

+0

可能有[無法打開流:沒有這樣的文件或目錄](http://stackoverflow.com/questions/36577020/failed-to-open-stream-no-such-file-or-directory) –

回答

2

這意味着您沒有權限在index.php所在的目錄中寫入文件。你可以做的幾件事情使它工作

  • 給目錄的文件寫入權限。 使用755和文件上的644,如果設置正確,這就足夠了。永遠不要滿777,這是安全風險。

  • 在你的目錄中創建一個子目錄,並給予足夠的權利(755)去做你想做的事。 F.i. Fopen('./ files/colors_new.csv)

2

在要寫入文件的文件夾上提供寫入權限。你的問題將得到解決。

+0

以及如何做到這一點? – Jesss

+0

@Jesss與文件一樣,最常見的是你的文件夾需要具有'755'或'775',這取決於你係統的安裝方式。但是那裏有很多教程。 – Epodax

+0

chmod選項權限文件名 –

相關問題