3

我已经设置了页面缓存,可以在公用文件夹中动态创建 HTML 文件。我正在使用 Capistrano 部署 Rails 应用程序。

当您需要清理Capistrano 中的旧版本时,问题就开始了。缓存文件归 rails 所有,这意味着部署用户无法删除这些文件。

我没有对服务器的 root 权限,因此不能选择使用提升的权限。

建议的一种可能性是将缓存符号链接到共享文件夹中。但是,这不会清除版本之间的缓存,这可能很危险。

4

1 回答 1

0

好吧,主要问题是当你运行 capistrano 任务时,你有一个用户(通常是 deploy 用户),所以为了创建/删除文件,你的 deploy 用户应该对它们具有权限。

因此,您的网络用户(在本例中为 rails)与部署用户无关,正如您所说,您不能在服务器上拥有 root 权限(可能是托管公司,对吗?)

您可以在您的网站上创建一个只有您可以访问的操作,例如 http://mywebsite.com/clear_cache

在该操作中,您实际上编写代码来列出每个较旧的部署,并清除旧部署中的缓存文件,通过这样做,将删除文件的用户将是 Web 用户 (rails)。

于 2012-12-05T12:44:06.733 回答