为了允许对Apache的写入访问,我需要将chown www-data:www-data /var/www/mysite/uploads
到我网站的上传文件夹中。 这使我可以通过PHP脚本中的unlink()
从文件夹中删除文件。
不幸的是,这阻止了另一个使用FTP函数的PHP脚本的工作。 我认为这是因为FTP用户是mike
,现在上传目录由www-data
拥有, mike
不能访问它。
我将mike
添加到组www-data
,但是这不能解决问题。
有人可以告诉我如何让PHP的FTPfunction除了使用PHP的unlink()
函数删除文件吗?
这就是为什么,你需要'写'权限来删除文件。 这里有几个选项。
setfacl -m user:mike:rwx
在mike的文件夹中设置一个acl setfacl -m group:<ftp_group>:rwx
所有其他用户的权限setfacl -m group:<ftp_group>:rwx
文件系统权限应该足以解决你的问题。 只在上传目录中尝试像chmod o + rw这样的东西。 chmod命令有效地说“给不在www-data组中的任何人读写权限”。
但是,长期的解决方法是使用一个用于脚本的服务帐户来调用FTP,并将该特定服务帐户与www-data进行绑定。