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錯誤頁面。

相關問題