0

这是我第一次部署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 

回答

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错误页面。

相关问题