授予对文件夹的服务器写入权限

时间:2014-10-04 17:43:13

标签: php amazon-web-services amazon-ec2 file-permissions folder-permissions

我通过亚马逊AWS托管LAMP EC2实例。

我网站的一部分允许用户上传文件。遗憾的是,服务器无法在“uploads”文件夹中存储永久副本,因为它缺少必要的权限。

调用PHP脚本,将文件存储到“uploads”文件夹。上传文件夹具有标准755775权限时,上传将失败。但是,当我将文件夹权限更改为777(世界权限)时,它可以正常工作。

出于显而易见的原因,我不想使用777世界权限。我怎样才能使服务器有权将文件写入“uploads”文件夹?

谢谢你们。

1 个答案:

答案 0 :(得分:0)

这可能是上传文件夹所有权的问题 可以通过以下命令检查文件夹的所有权

     ls -l 
     Sample Output:
    -rw-r--r-- 1 root root 0 Aug 31 05:48 demo.txt
。 在这里可以看出,文件的USer都是root,而File的Group是root。
在目录中执行此命令将显示该文件夹中所有文件和文件夹的权限和所有权。
现在有了LAMP堆栈,你需要确保所有权与 Apache用户即www-data和Apache Group再次www-data。 这可以通过进入应用程序的根文件夹并执行Command

来完成
 chown -R www-data:www-data
     Sample Output:
    -rw-r--r-- 1 www-data www-data 0 Aug 31 05:48 demo.txt

这将递归地将根目录中的所有文件和文件夹的所有权更改为Apache用户和组。
此问题的常见原因是,当您下载了一个或多个文件包时,您显然已将其作为本地用户或root用户完成,并且Apache没有权限执行此操作。或者您已手动创建了一个目录。
这是解决问题的基本思路,您也可能想要考虑执行此命令并更改仅仅上传"上传的所有权。目录 。