这是我第一次部署rails应用程序,所以请原谅我解决这个问题的方法是显而易见的......每当我遇到403错误(Forbidden)尝试在浏览器中加载我的Rails应用程序。部署(使用capistrano)终于可以毫无错误地进行下去,但似乎有一些关于我的apache或乘客设置的东西。看起来apache试图从公共文件夹加载索引文件,而不是让乘客介入。当我在浏览器中加载应用程序域时,我甚至不会收到乘客错误屏幕。我只是得到一条禁止的消息。有没有其他人遇到同样的问题?部署rails应用程序后出现403错误(apache + passenger)
下面是实际的错误日志:
[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文件,但它会试图查找前乘客应该拦截它索引文件。所以这可能是一个Apache错误,但虚拟主机配置根据教程...
我正在运行rails 3.1.3,红宝石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://[email protected]/usr/local/git_root/project.git"
set :user, "deploy"
#set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_ruby_string, "[email protected]"
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