Nginx乘客集成模式总是需要Passengerfile.json文件?

use*_*077 4 integration centos ruby-on-rails passenger nginx

我已按照此安装指南设置 nginx 和乘客集成模式:

https://www.phusionpassenger.com/library/install/nginx/install/oss/el7/

我知道“在 Nginx 集成模式下的 Passenger 将通过 Nginx 配置文件进行配置。没有特定于 Passenger 的配置文件”=> 根应用程序目录中没有 Passengerfile.json。

但是在配置了passenger.conf和虚拟主机配置并启动nginx后,出现了错误:

2019/05/29 09:13:22 [alert] 16126#0:*3 打开“/home/deploy/my-app/current/Passengerfile.json”读取时出错:权限被拒绝(errno=13);此错误表示 Nginx 工作进程(PID 16126,以 UID 997 运行)无权访问此文件

我尝试按照以下说明授予 nginx 工作进程权限:https : //www.phusionpassenger.com/library/admin/nginx/troubleshooting/ruby/#upon-accessing-the-web-app-nginx-reports-权限被拒绝错误

但是不能解决问题。

我在 /etc/nginx/conf.d 里面的passenger.conf

passenger.conf
# To enable the Phusion Passenger application server (www.phusionpassenger.com),
# install the following package:
#
#   yum install passenger
#
# Then uncomment these options:

passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rbenv/shims/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
Run Code Online (Sandbox Code Playgroud)

我的应用程序配置文件:

server {
  listen 80;
  listen [::]:80;

  server_name myapp.com;
  root /home/deploy/my-app/current/public;

  passenger_enabled on;
  passenger_ruby /home/deploy/.rbenv/shims/ruby;
  rails_env production;

  location /cable {
    passenger_app_group_name myapp_websocket;
    passenger_force_max_concurrent_requests_per_process 0;
  }

  # Allow uploads up to 100MB in size
  client_max_body_size 100m;

  location ~ ^/(assets|packs|uploads) {
    expires max;
    gzip_static on;
  }
}
Run Code Online (Sandbox Code Playgroud)

乘客记忆统计

---------- Nginx processes -----------
PID    PPID   VMSize    Private  Name
--------------------------------------
16121  1      113.5 MB  0.6 MB   nginx: master process /usr/sbin/nginx
16125  16121  113.7 MB  0.8 MB   nginx: worker process
16126  16121  113.7 MB  0.8 MB   nginx: worker process
### Processes: 3
### Total private dirty RSS: 2.13 MB
Run Code Online (Sandbox Code Playgroud)
----- Passenger processes -----
PID    VMSize    Private  Name
-------------------------------
16109  355.0 MB  2.1 MB   Passenger watchdog
16112  923.4 MB  4.0 MB   Passenger core
### Processes: 2
### Total private dirty RSS: 6.11 MB
Run Code Online (Sandbox Code Playgroud)

乘客配置重启应用程序 /home/deploy/my-app

There are no Phusion Passenger-served applications running whose paths begin with '/home/deploy/my-app'.
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Mik*_*gan 5

我们遇到了同样的问题;通过向用户主目录添加缺少的执行权限来解决。希望这可以帮助

chmod o+x $HOME

应用程序目录之上的所有目录都需要具有全局执行权限。