2012-03-30 120 views
3

我正在爲我的社交網站開發一項功能,允許用戶上傳圖片(和更高版本的視頻),然後其他人可以查看該圖片。代碼當前將上傳的圖像從臨時上傳目錄複製到直接位於Web服務器文檔根目錄下的/ media /目錄中,爲其生成一個名稱(我們不使用原始文件名)。圖像也存儲在mongo網格中。當一個請求來到一個圖像文件時,我使用htaccess來查看文件是否存在 - 如果沒有,那麼URL被重寫爲一個PHP程序,它從mongo中獲取圖像,並將其寫入文件名/ media下/並重定向。用戶上傳圖片到網站的權限和安全

我的問題是關於安全性和/ media目錄上的相關目錄權限。/media /目錄上的權限是必須由www-data寫入的權限。如果沒有我的文檔根目錄下的全球可寫目錄,是否有辦法實現與我目前具有的效果相同的效果?我已經閱讀了很多關於這類問題的文章,這些文章似乎有所不同(儘管通常是非衝突性的),我希望能夠對我應該留意的要點做一個很好的總結。

回答

2

如果您只需要PHP腳本將文件上傳到此文件夾(並更改其內容),則需要使用戶Apache以該目錄的所有者身份運行。

要找出運行Apache的用戶,請使用:

ps aux | grep apache 

的SSH命令行上。然後找出Apache分開的用戶組。正如你所說的,它通常總是www-data,但你總是可以仔細檢查確定。一旦你知道,將該組設置爲目錄的所有者:

chgrp -R www-data /path/to/directory