Nginx
使用 Phusion Passenger Standalone 啟動 Rails 應用程序?
我正在將 Rails 應用程序(Project Fedena)部署到 Digital Ocean 的 VPS。我可以使用
mongrel_rails start
和ruby 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 應用程序:
gem uninstall passenger -Iax
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/