PHP Apache 权限 - 最佳实践

3

我有一个使用PHP创建文件夹的CodeIgniter应用程序。通过PHP创建的任何文件夹的所有者都是“apache”,但是如果我想通过FTP上传文件夹,则所有者是我的FTP用户名。

由于权限问题,我遇到了PHP(Apache)无法修改通过FTP上传的文件夹中的文件的问题。同时,我已将我的FTP用户添加到Apache组和Apache添加到FTP用户组,但想知道是否有更好的方法?


我建议阅读这个答案:http://serverfault.com/a/357109/233024 - HEDMON
2
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。另请参阅我应该在哪里发布Dev Ops相关问题? - jww
2个回答

3

通常我所做的是将php将写入的任何目录chgrp为apache运行的组(在我的服务器上是www,可能在您的服务器上是apache),chmod g+s。这将使该目录中创建的任何文件也属于Web服务器组。如果默认的umask允许组写入,则可以解决您的问题。


1
所以,只是为了澄清一下,如果我在整个网站目录上使用chmod g+s,并使用www-data,但然后通过我的ftp用户进行ftp上传文件,所有上传的文件都将自动归属于www-data? - the-a-train

1
最佳实践是只允许用户读写他们应该读写的文件。
在我的 Web 应用中,我有一个数据目录用于存储应用程序生成的所有动态数据。
然后,我只授予应用程序对该目录的写入权限,而不授予其他任何权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接