ale*_*lod 13 passenger nginx ruby-on-rails-3
当我访问.com时,我在nginx(带有403)中收到以下错误:
[error] 5384#0: *1 directory index of "/u/apps/<app-name>/current/public/" is forbidden
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu 10.04上,我不能为我的生活让nginx,Passenger,Rails 3.1和Capistrano玩得很好.
我正在与Capistrano一起部署到/ u./ u中的所有内容均为755,由应用用户拥有.
/ u/apps // current/public /拥有我所有的资产,图标和其他你期望的东西.
当我添加autoindex on到nginx.conf时,我得到了一个public /目录的列表,这让我相信我没有权限问题.
我的nginx.conf文件是默认的期望:
server {
listen 80;
server_name <app-name>.com;
passenger_enabled on;
root /u/apps/<app-name>/current/public/;
}
Run Code Online (Sandbox Code Playgroud)
而我的Capistrano deploy.rb文件并没有什么异常.
任何想法为什么rails应用程序似乎没有启动?
ale*_*lod 29
好吧,我回答了我自己的问题.我的nginx.conf文件中缺少passenger_ruby和passenger_root配置.请注意,如果您正在使用RVM,则passenger_ruby路径必须是包装器.
passenger_root /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.9;
passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby;
Run Code Online (Sandbox Code Playgroud)
Jie*_*rat 11
如果你已经有passenger_root和passenger_ruby你的nginx.conf,但有这个错误,你必须有一些位置块.然后,您必须passenger_enabled on;在每个位置块内指定
.
如果您使用Passenger 5+遇到此问题并且您的Rails应用程序是2.3.x应用程序,您现在需要将config.ru文件添加到您的应用程序:
# 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
Run Code Online (Sandbox Code Playgroud)
我知道OP的问题是关于Rails 3.1的,但是想在这里包含它,因为输出是相同的,搜索引导我到这篇文章.
| 归档时间: |
|
| 查看次数: |
14646 次 |
| 最近记录: |