繁体   English   中英

部署Rails应用后出现403错误(Apache +乘客)

[英]403 error after rails app deploy (apache + passenger)

这是我的第一个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,以及大约一个月前通过安装脚本安装的任何版本的passenger。 在设置乘客时,我遵循了该指南: 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

我们找出了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错误页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM