这是我的第一个rails应用程序部署,所以请原谅我,如果这个问题的解决方案很明显......每当我尝试在浏览器中加载我的rails应用程序时,我都会收到403错误(禁止)。部署(使用capistrano)终于没有错误,但似乎有一些关于我的apache或乘客设置的问题。似乎apache试图从公共文件夹加载索引文件而不是让乘客干预。当我在浏览器中加载应用程序域时,我甚至没有获得乘客错误屏幕。我刚收到一条禁止的消息。还有其他人遇到过同样的问题吗?
这是实际的错误日志:
[Mon Feb 27 10:03:12 2012] [error] [client xxx.xxx.xxx.xx] Directory index forbidden by Options directive: /usr/local/www/sites/project.example.ca/public/
我假设这基本上意味着它出错了,因为它无法找到index.html文件,但Passenger应该在尝试查找索引文件之前拦截它。所以这可能是一个apache错误,但虚拟主机是根据教程配置的......
我正在运行rails 3.1.3,ruby 1.9.2-p290,capistrano 2.1.12,Apache 2.2,rvm 1.10.2以及安装脚本大约一个月前安装的任何版本的乘客。我在设置乘客时遵循了本指南:http://beginrescueend.com/integration/passenger/
非常感谢任何帮助!感觉就像我一直试图永久部署这个应用程序。
这是我的部署文件,以防它有用:
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :application, "Project"
set :scm, "git"
set :repository, "ssh://git@server.project.ca/usr/local/git_root/project.git"
set :user, "deploy"
#set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_ruby_string, "ruby-1.9.2-p290@project"
set :normalize_asset_timestamps, false
ssh_options[:forward_agent] = true
set :branch, "master"
set :deploy_via, :remote_cache
set :deploy_to, "/usr/local/www/sites/project.example.ca/public/"
set :use_sudo, false
set :domain, 'project.example.ca'
role :app, domain
role :web, domain
role :db, domain, :primary => true
答案 0 :(得分:0)
我们发现了403错误。我们正在部署到/usr/local/sites/www/project.example.ca/public。但是,capistrano部署的方式,实际应用程序位于/usr/local/sites/www/project.example.ca/public/current/public。我吹走了那里已经存在的所有东西并调整了deploy.rb以指向/usr/local/www/sites/project.example.ca,并将虚拟主机更改为指向/usr/local/sites/www/project.example .ca / current / public,现在我们至少得到一个Phusion Passenger错误页面。