簡體   English   中英

file_put_contents權限被拒絕-沒有777的解決方案嗎?

[英]file_put_contents permission denied — any solution without 777?

我正在一個頁面上,用戶可以在其中使用表單上傳圖像/視頻。 該代碼包括以下行:

move_uploaded_file($ tempfile,$ newfile)

然后,將根據此圖像/視頻自動創建縮略圖,並將其上傳到服務器,如下所示:

file_put_contents($ thumbname,$ thumbnail)

現在,圖像的上傳可以正常工作,但是縮略圖無法保存,我得到以下響應:

警告:file_put_contents(thumbnails / 1.jpg):無法打開流:第17行的SITEURL / upload.php中的權限被拒絕

我的兩個問題:

  1. 為什么用戶具有通過move_uplaoded_file上傳圖像但通過file_put_contents上傳縮略圖的權限被拒絕? 請注意,圖像和縮略圖這兩個文件都被上載到同一文件夾。 用戶是否應該既沒有權限又沒有權限?

  2. 我確實意識到已經有一個這樣的線程,但是建議的答案是運行chmod 777 但是我讀到將文件夾設置為777 始終存在安全風險。 沒有777,有沒有辦法解決此問題?
    再次,我不明白為什么我必須將file_put_contents的權限更改為777,而move_uploaded_file在755才可以正常工作。

采用:

// PHP code:
echo `whoami`;

找出運行PHP的用戶身份。

然后檢查擁有thumbnails的服務器

# log in via SSH and run:
ls -l | grep thumbnails

這應該向您顯示這樣的一行(取自我自己的服務器):

drwxr-xr-x 8 niet niet 4096 Jul 15 12:12 thumbnails

在上面的示例中,該文件夾由用戶niet擁有,並且位於組niet 如果與whoami ,則需要更改文件夾的所有者 例如,如果whoamiuser3041398 ,您將執行以下操作:

chown user3041398 thumbnails

再次運行ls行,您現在應該在輸出中看到您的用戶名,並且PHP應該能夠寫入該文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM