capistrano 删除缓存权限被拒绝

capistrano remove cache permission denied

我在 raspberry pi 上有一个网络服务器 (Nginx),我使用 capistrano 来部署我的网站。我是 Capistrano 的新手,但我觉得它很有趣。

我的问题是,当 Capistrano 想要删除旧版本时,它不能,因为 Nginx 已经用用户 www-data 写入缓存目录,我有一个错误:权限被拒绝!

如何解决?

希望我清楚。

一般来说,您不希望您的网络服务器写入 Capistrano 版本。否则你会运行陷入这个问题。

我会建议以下两种解决方法之一:

  1. 更改您的 Ngnix 配置,使其使用不同的缓存位置。例如,/var/nginx/cache/app_name.
  2. 如果缓存位置必须在应用程序内,请将该目录设为 Capistrano 中的 "shared" 目录。这将在每个版本中放置一个符号链接,指向单独位置中的单个共享目录。

例如,假设缓存被写入到你发布的根目录下的 cache 目录,你会告诉 Capistrano:

set :linked_dirs, fetch(:linked_dirs, []) << "cache"