简短版本:我无法使用 php 上传图片,我不知道如何解决权限问题
细节 :
我已经使用 vps 大约三年了,我将其设置为运行 Sendy(一个小型新闻通讯/电子邮件脚本),它运行的是 debian 7
我创建了一个用户“sendy”,“www”目录位于用户文件夹 /home/sendy/www 内
问题是最近我想要开始上传但却发现权限混乱。
这是我在 error.log 上得到的结果
[Thu Nov 14 12:43:38 2019] [error] [client xx.xxx.xx.xxx] (13)Permission denied: file permissions deny server access: /home/sendy/www/mail/uploads/1573731818.png, referer: http://example.com/mail/create?i=3
欢迎任何帮助。
答案1
除了用户“sandy”有权在其自己的主目录(和子目录)中写入之外,Web 服务器还拥有自己的用户(通常是 www-data、nobody、apache 等)。该用户将执行写入操作。
因此,请检查哪个用户正在运行 Web 服务器守护程序,将目标目录的所有权更改为该用户,然后重试。
考虑到您提到的消息,您应该能够使用类似以下的方法进行修复:
chown www-data /home/sendy/www/mail/uploads/
或者 chow sendy:www-data /home/sendy/www/mail/uploads/ chomd -R g+w /home/sendy/www/mail/uploads/
不管怎样,我们都允许www-data
写入您的目录。第一种情况假设您的sendy
用户不需要任何访问权限,第二种情况则允许同时sendy
写入www-data
您的上传目录。