0

我将我的应用程序部署到服务器。 (Rails 5,Passenger,Nginx) 我的应用程序正在开发模式。 但我改变了我的方式来生产,这我得到这个错误(/var/log/nginx/error.log):在这个错误我换我的模式发展生产不起作用(Rails 5,Passenger,Nginx)

[ E 2017-11-10 20:11:03.9343 21613/Tb age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /home/rails/myapp: An error occurred while starting up predloader 
    Error ID: ca909334 
    Error details saved to: /tmp/passenger-error-iGQLnf.html 
    Message from application: cannot load such file -- /home/rails/myapp/config/environment (LoadError) 
    config.ru:3:in `require_relative' 
    config.ru:3:in `block in <main>' 
    /usr/local/lib/ruby/gems/2.3.0/gems/rack-2.0.3/lib/rack/builder.rb:55:in `instance_eval' 
    /usr/local/lib/ruby/gems/2.3.0/gems/rack-2.0.3/lib/rack/builder.rb:55:in `initialize' 
    config.ru:1:in `new' 
    config.ru:1:in `<main>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `preload_app' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in `<module:App>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>' 
    /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `<main>' 

。我又有同样的错误!

我nginx的文件:

server { 
    listen 80; 
    server_name myapp.com www.myapp.com; 
    access_log off; 
    return 301 https://www.myapp.com$request_uri; 
} 

server { 

    listen 443 ssl; 

    ssl on; 
    ssl_certificate /etc/nginx/ssl/myapp.com/ssl-bundle.crt; 
    ssl_certificate_key /etc/nginx/ssl/myapp.key; 

    server_name myapp.com www.myapp.com; 
    passenger_enabled on; 
    rails_env production; 
    root /home/rails/myapp/public; 
    index index.html index.htm; 

} 

需要帮助解决这个问题!

+0

你可以添加乘客配置和错误内容保存在/tmp/passenger-error-iGQLnf.html –

+0

我添加/tmp/passenger-error-iGQLnf.html –

+0

在所有文件中,你的应用程序名称是'myapp'在乘客eoor-iGQLnf.html中,您的应用名称显示为'trbodybuilding'。你能解释一下吗? 还添加乘客配置文件的内容。 –

回答

1

所以,事实证明,问题是由于用户的文件权限不正确。

Nginx正在作为www-data用户运行,它没有权限读取app目录的文件。 这就是为什么应用程序服务器的引导失败。

sudo chown -R www-data:www-data /home/rails/myapp 

使用上述命令后,乘客将能够读取app目录的文件并成功启动。

相关问题