由于写入权限被拒绝而导致图片上传错误
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 或您想要的其他内容
我的网站有上传图片功能。我在我的本地主机上试过了,它工作正常。现在我托管了,出现如下错误:
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 或您想要的其他内容