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