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



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

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

我知道"Nginx集成模式下的乘客将通过Nginx配置文件进行配置。没有特定于乘客的配置文件" => 根应用程序目录中没有乘客文件.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-a-permission-denied-error

但不能解决问题。

My passenger.conf inside/etc/nginx/conf.d

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;

我的应用配置文件:

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;
}
}

乘客记忆统计

---------- 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
----- 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

乘客配置重启应用程序/主页/部署/我的应用程序

There are no Phusion Passenger-served applications running whose paths begin with '/home/deploy/my-app'.

提前感谢!

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

chmod o+x $HOME

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

这是解决它的权限错误,请在您的 ec2 实例或任何其他机器中运行以下命令。
1. 成为根用户:

sudo -i 
  1. 转到主页导演:

    光盘/首页

  2. 授予对用户主目录的执行权限:

    chmod g+x,o+x EC2-user

现在重新启动你的服务器nginx

sudo kill $(cat /opt/nginx/logs/nginx.pid) 
sudo /opt/nginx/sbin/nginx

最新更新