簡體   English   中英

生產無效(Rails 5,Passenger,Nginx)

[英]Production does'nt work ( Rails 5 , Passenger , Nginx )

我將我的應用程序部署到服務器。 (Rails 5,Passenger,Nginx)我的應用程序正在開發模式上。 但是我將模式更改為生產,但出現了此錯誤(/var/log/nginx/error.log):

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

}

需要幫助解決這個問題!

因此,事實證明問題出在用戶的文件權限不正確。

Nginx以www-data用戶身份運行,該用戶無權讀取app目錄中的文件。 這就是啟動應用服務器失敗的原因。

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

使用上述命令后,乘客將能夠讀取app-directory的文件並成功啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM