带有SVN/的Web项目有一个上传器,上传器需要由apache拥有才能工作


Web Project with SVN / Has an Uploader, uploader needs to be chowned by apache to work

我们的web项目存储库托管在我们的web服务器的一个子域上,然后项目的"部署"涉及在同一服务器的子域中签出副本。

因此,我们在staging.mydomain.com上签出了工作副本,为了让上传实用程序工作,/upload/目录必须是chowned apache:apache,因为PHP作为apache运行。

当然,当我尝试使用staging.mydomain.com上的副本上传文件时,会出现权限错误。所以像个好孩子一样,我狼吞虎咽地吃着-hR apache:apache上传/

当然,我的ssh凭据不在apache组中,也不被称为apache,所以运行svn更新会失败,直到我把所有内容都退回给签出repo的用户。

有什么建议吗?

如果源代码与web服务器在同一系统中,那么您可以将trunk导出到web服务器目录中。每次修改代码时,都必须导出它们。我认为这样做更安全,因为您没有使用管理或超级用户。

您应该使用单个用户进行部署。通常情况下,我会让这个帐户无法登录。然后我会让不同的开发人员使用自己的帐户和su登录到这个用户。部署用户至少应该在apache组中,如果不是实际用户的话,或者作为该用户执行操作的sudo能力有限。