Ruby on rails Nginx和乘客根指令不适用于Capistrano 3。符号链接到当前发布的应用程序

Ruby on rails Nginx和乘客根指令不适用于Capistrano 3。符号链接到当前发布的应用程序,ruby-on-rails,nginx,capistrano,passenger,Ruby On Rails,Nginx,Capistrano,Passenger,使用Capistrano 3部署时,我将部署到/home/dev/app name/。Cap创建一个目录结构/home/dev/app name/current/ 它是指向/home/dev/app name/releases/20181129161818(当前版本)的符号链接 此符号链接已损坏,不适用于nginx和乘客。我知道这一点,因为这是我的应用程序配置,位于/etc/nginx/conf.d/app name.conf: server { listen 80; server_na

使用Capistrano 3部署时,我将部署到
/home/dev/app name/
。Cap创建一个目录结构
/home/dev/app name/current/

它是指向
/home/dev/app name/releases/20181129161818
(当前版本)的符号链接

此符号链接已损坏,不适用于nginx和乘客。我知道这一点,因为这是我的应用程序配置,位于
/etc/nginx/conf.d/app name.conf

server {
  listen 80;
  server_name app-name.domain.com;

  passenger_enabled on;
  passenger_ruby /home/dev/.rvm/gems/ruby-2.5.1/wrappers/ruby;

    rails_env production;

    root /home/dev/app/app-name/releases/20181129161818/public/;
    #root /home/dev/app/app-name/current/public;
}
如果我注释掉路径
root/home/dev/app/mullen admin/releases/20181129161818/public/
sudo服务nginx重启
应用程序工作

如果我使用另一个root指令,应用程序将被破坏,我将得到这个500服务器错误

2018/11/29 15:31:43 [alert] 11278#0: *3 Cannot stat '/home/dev/app/app-name/current/passenger_wsgi.py': 
Permission denied (errno=13); This error means that the Nginx worker process (PID 11278, running as UID 1002) does not have permission to access this file. 
Please read this page to learn how to fix this problem: https://www.phusionpassenger.com/library/admin/nginx/troubleshooting/?a=upon-accessing-the-web-app-nginx-reports-a-permission-denied-error; 
Extra info, client: 10.194.234.100, server: app-name.domain.com, request: "GET /employees/sign_in HTTP/1.1", host: "app-name.domain.com"
我正在办公室的虚拟机上运行
centos-release-7-5.1804.5.el7.centos.x86_64
。我有一个sudouser
dev
,用于ssh和部署


请帮忙!?我需要应用程序在nginx root指令的/current下工作,以便我可以部署并使更改生效。

我假设capistrano已经有符号链接指令:
ln-nfs release\u path current\u path

Cannot stat '/home/dev/app/app-name/current/passenger_wsgi.py': 
Permission denied (errno=13);
您的符号链接未断开,您的权限已断开,您必须将它们对齐(乘客无权创建文件)。部署后更改chmod:symlink

差不多

 run "#{try_sudo} chmod 755 -R #{current_path}"

另外,根据您的配置,您可能希望执行chown而不是sudo,如果我没记错的话,capistrano会为
public
设置一个特定的文件夹,因此它不在发行版中,它应该是
/home/dev/app/app name/public
或者类似的共享/public是capistrano rails/assets放置编译资产的地方。不幸的是,这不是解决办法。?