【发布时间】:2012-02-28 16:10:50
【问题描述】:
这是我的第一个 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
【问题讨论】:
标签: ruby-on-rails apache passenger capistrano http-status-code-403