我正在部署一个 Rails 应用程序(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) 拥有所有目录。我已对目录执行了递归 chmod,将其设置为 777、775、755。
答案1
我的问题原来是passenger (5.0.2)
昨天(2015 年 3 月 7 日)刚刚发布的 Passenger 宝石。这解释了为什么我找不到任何有我特定问题的人。
我解决了这个问题,并通过卸载版本成功启动了我的 rails 应用程序5.0.2并安装版本4.0.59(4.* 分支的最新稳定版本):
gem uninstall passenger -Iax
gem install --no-ri --no-rdoc --verbose passenger -v 4.0.59
错误报告归档。希望这能有所帮助 :)
答案2
您必须创建一个config.ru
包含以下内容的文件,才能将 Passenger5 与 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/