Capistrano 3部署失败,访问被拒绝:dir_initialize tmp / passenger.h6D8mJy / apps.s

时间:2019-04-23 09:00:45

标签: capistrano

在运行Apache的计算机上,有3个Rails应用程序正在运行,全部使用capistrano进行部署,并且它们使用乘客。部署脚本是标准的。我的前任将用户deploy设置为教科书样式,所有3个项目都使用相同的capistrano版本(3.8),并且在服务器上使用相同的目录结构。所有用户都位于deploy用户家中的公共目录中。所有旅客均使用相同的红宝石和铁轨版本。他们共享了一些链接的目录,但否则部署脚本都很简单。我的前任坚持认为在他的时代部署是可行的。我们仍然有他的机器,并且部署也不能从他的机器上进行-仅在这个项目中。

在三个项目之一的cap production deploy上,我总是遇到Errno::EACCES: Permission denied @ dir_initialize - /tmp/passenger.h6D8mJy/apps.s错误。

我唯一的解决方法是: 我登录生产服务器,使自己成为超级用户,并将/ tmp目录的所有者更改为deploy。然后,我运行部署脚本,它成功。 (然后,我当然将目录的所有者改回了root。)

因此似乎好像/tmp/passenger.something目录将其所有者设置为错误。我以某种方式认为这可能不是问题,因为其他两个脚本使用相同的目录并且没有此问题。还是他们?谁创建此目录,为什么创建,以及在何处配置此目录的所有权?

我认为最好只包含日志,但我必须将其全部删掉... stackOverflow拒绝了我的帖子,因为“这看起来像垃圾邮件”。)

INFO [e1c2bb25] Running ~/.rvm/bin/rvm ruby-2.3.1 do bundle exec rake assets:precompile as deploy@99.999.99.999
 DEBUG [e1c2bb25] Command: cd /home/deploy/projects/external-services/releases/20190423082459 && ( export RAILS_ENV="production" ; ~/.rvm/bin/rvm ruby-2.3.1 do bundle exec rake assets:precompile )
 DEBUG [56ee67e8]   rake aborted!
Errno::EACCES: Permission denied @ dir_initialize - /tmp/passenger.h6D8mJy/apps.s

0 个答案:

没有答案