我有一个在 Digital Ocean 上运行并通过 Cloud 66 部署的 Rails 应用程序( Spree Commerce商店)。
我想通过 SSH 连接到我的服务器,运行 rails 控制台,并调整一些 Spree 配置设置。当我尝试这样做时,出现权限错误:
Errno::EACCES: 权限被拒绝 @ dir_s_mkdir - /var/deploy/my-app/web_head/releases/20150220220517/tmp/cache/29B
根据Spree Developer Guide 的首选项页面,这是因为首选项被缓存到内存中以提高性能。问题(我认为)是我的用户没有对该tmp/cache
目录的写访问权限,而运行 rails 控制台的是我的用户。
如果我ls -l
在 $STACK_PATH/tmp/cache 目录上,我会得到以下信息:
> lrwxrwxrwx 1 nginx nginx 43 Feb 20 22:05
> tmp/cache ->
> /var/deploy/my-app/web_head/shared/cache
我想我需要给我的用户对目录的写访问权限,就像 nginx 用户一样。我尝试将自己添加到 nginx 用户组,但这似乎没有任何效果。我能做些什么来防止这个权限错误?