由于写入权限被拒绝而导致图片上传错误

Image Upload Error due to permission denied to write

我的网站有上传图片功能。我在我的本地主机上试过了,它工作正常。现在我托管了,出现如下错误:

move uploaded file failed to open stream permission denied

网上查了错误,发现把chmod改成777就可以解决

我也试过,成功了。即使只有 713 也能正常工作。但是由于黑客攻击的可能性,给予 777 权限并不好。

有办法解决这个问题吗?我现在已经将 chmod 更改为 713,直到我能找到更好的解决方案。

我目前在 Google Cloud Platform 中托管了 Ubuntu 16.04 图片

您可以使用 2 个选项。

1) 您可以将所有者从上传目录更改为apache 用户

chmod www-data:www-data your_folder

但这有一些负面影响。您的 ssh 用户可以使用 root 权限在这里编辑文件。

2)你可以创建一个只用于上传文件的组,并将你的ssh用户和apache用户放入这个组

sudo addgroup uploaders
sudo usermod -aG uploaders www-data
sudo usermod -aG uploaders your_user

在此之后更改上传文件夹的所有者

chmod your_user:uploaders your_folder

在此之后您可以将权限更改为 744 或您想要的其他内容