我按照这个安装指南设置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
转到主页导演:
光盘/首页
授予对用户主目录的执行权限:
chmod g+x,o+x EC2-user
现在重新启动你的服务器nginx
sudo kill $(cat /opt/nginx/logs/nginx.pid)
sudo /opt/nginx/sbin/nginx