我通过亚马逊AWS托管LAMP EC2实例。
我网站的一部分允许用户上传文件。遗憾的是,服务器无法在“uploads”文件夹中存储永久副本,因为它缺少必要的权限。
调用PHP脚本,将文件存储到“uploads”文件夹。上传文件夹具有标准755
和775
权限时,上传将失败。但是,当我将文件夹权限更改为777
(世界权限)时,它可以正常工作。
出于显而易见的原因,我不想使用777
世界权限。我怎样才能使服务器有权将文件写入“uploads”文件夹?
谢谢你们。
答案 0 :(得分:0)
这可能是上传文件夹所有权的问题 可以通过以下命令检查文件夹的所有权
ls -l Sample Output: -rw-r--r-- 1 root root 0 Aug 31 05:48 demo.txt。 在这里可以看出,文件的USer都是root,而File的Group是root。
来完成
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没有权限执行此操作。或者您已手动创建了一个目录。
这是解决问题的基本思路,您也可能想要考虑执行此命令并更改仅仅上传"上传的所有权。目录 。