我的 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,则前者可能不起作用。