2012-03-30 166 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