Apache 目录权限问题

Apache 目录权限问题

我的 Web 应用程序及其缓存目录存在问题(我正在使用 symfony)

此缓存目录由 www-data 用户在访问应用程序页面时填充。也可以通过从控制台执行某些命令来填充或删除缓存。

问题是我使用这台机器进行开发,我需要通过网络访问,并通过控制台刷新缓存、创建新模型等。

目前我有 777 个权限,可让任何人写入。如果我浏览页面(并生成缓存),我无法创建新模型,因为我没有权限更改 www-data 生成的文件。我必须使用 sudo。但是,这些文件具有 root 权限,无法由 apache 写入,页面崩溃了……

我怎样才能使这个目录(及其动态生成的内容)对两个用户都可写?

非常感谢。

答案1

“问题是我用这台机器进行开发”——是的,这是个问题。别再这样做了,或者至少使用一个单独的应用程序实例(发展建设没什么乐趣。

为了使您和 Web 服务器都可以写入目录,您可以使用扩展 ACL 授予 Web 服务器写访问权限:

setfacl -m u:www-data:rwX /whatever/you/like

或者授予 webserver 组(可能是www-data该目录的写权限):

chgrp www-data /whatever/you/like; chmod g+w /whatever/you/like

后一种选择可能需要 root 权限(如果您不是该组的成员www-data),如果您的服务器上未启用扩展 ACL,则前者可能不起作用。

相关内容