Nginx

使用 Phusion Passenger Standalone 啟動 Rails 應用程序?

  • October 14, 2015

我正在將 Rails 應用程序(Project Fedena)部署到 Digital Ocean 的 VPS。我可以使用mongrel_rails startruby script/server來毫無問題地啟動我的應用程序。它綁定到埠:3000,我可以根據需要使用該應用程序。

問題出在 Phusion Passenger 上,我已經安裝了 gem gem install passenger,但是,當我passenger start從我的 rails 應用程序根目錄執行時,出現了權限問題,而 Mongrel 或 Webrick 似乎並非如此:

=============== Phusion Passenger Standalone web server started ===============
PID file: /root/fedena/tmp/pids/passenger.80.pid
Log file: /root/fedena/log/passenger.80.log
Environment: production
Accessible via: http://0.0.0.0:3000/

You can stop Phusion Passenger Standalone by pressing Ctrl-C.
Problems? Check https://www.phusionpassenger.com/documentation/Users%20guide%20Standalone.html#troubleshooting
===============================================================================
2015/03/08 01:35:03 [error] 18827#0: *4 directory index of "/root/fedena/public/" is forbidden, client: 127.0.0.1, server: _, request: "HEAD / HTTP/1.1", host: "0.0.0.0"

這台機器上只有一個使用者 (0) 擁有所有目錄。我已經對 777、775、755 的目錄執行了遞歸 chmod。

我的問題原來是passenger (5.0.2)昨天(2015 年 3 月 7 日)發布的乘客 gem。這解釋了為什麼我找不到任何有我的特定問題的人。

我解決了這個問題,並通過解除安裝5.0.2版並安裝4.0.59版(4.* 分支的最後一個穩定版本)成功啟動了我的 rails 應用程序:

  1. gem uninstall passenger -Iax
  2. gem install --no-ri --no-rdoc --verbose passenger -v 4.0.59

已送出錯誤報告。我希望這有幫助 :)

您必須製作一個config.ru包含以下內容的文件才能將乘客 5 與 rails 2.3 應用程序一起使用

# Require your environment file to bootstrap Rails
require ::File.dirname(__FILE__) + '/config/environment'

# Serve static assets from RAILS_ROOT/public directory
# use Rails::Rack::Static
# Dispatch the request
run ActionController::Dispatcher.new  

來源:https ://blog.phusion.nl/2015/03/04/phusion-passenger-5-0-1-released/

引用自:https://serverfault.com/questions/673811