在apache上使用rails capistrano部署后出现错误403

时间:2012-04-29 11:19:33

标签: ruby-on-rails-3 deployment

将应用程序部署到运行apache + passenger的VPS。 用户:Group→rails:rails 部署到/ home / rails / www / appname

以下是文件的权限:https://gist.github.com/2549332 以下是用户组:https://gist.github.com/2549336

但是在尝试申请该应用时,我仍然遇到403错误。 访问日志只是sais权限被拒绝/,没有别的。

可能是什么问题以及如何解决它。 OS运行Fedora 14。

更新1

这是virtualhost配置: https://gist.github.com/2550383

更新2

将Passenger_enabled添加到vhost

httpd.conf中的乘客选项如下

#Passenger for RubyOnRails apps
LoadModule passenger_module /home/rails/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
PassengerRoot /home/rails/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.12
PassengerRuby /home/rails/.rvm/wrappers/ruby-1.9.3-p194/ruby

乘客流程,按ps列出:

root     32342  0.0  0.6 213928  1948 ?        Ssl  13:38   0:00 PassengerWatchdog
root     32345  0.0  0.7 288308  2208 ?        Sl   13:38   0:00 PassengerHelperAgent
root     32347  0.0  2.9 112704  8520 ?        Sl   13:38   0:00 Passenger spawn server                                                                                                                                              
nobody   32350  0.0  1.3 147996  3788 ?        Sl   13:38   0:00 PassengerLoggingAgent

更新3 尝试将标准Rails index.html放在公用文件夹中。没有反应。 尝试将普通的index.html与头部和标题放在一起,没有任何变化。

更新4

甚至尝试在httpd.conf中注释掉Passenger行并重新启动服务器,但我仍然遇到同样的错误。看起来它是Apache配置中的东西,但我找不到。

* 更新5 重命名vhost.conf以查看服务器如何处理它,一切似乎都没问题。

2 个答案:

答案 0 :(得分:0)

可能是Passenger没有连接到您的站点,而Apache决定列出public目录,并且在Apache中禁用了目录列表。

  • 是否在ps

  • 中显示了乘客流程
  • 您是否正确设置了PassengerRoot

  • 尝试将PassengerEnabled on添加到vhost配置。

答案 1 :(得分:-1)

通过更改/ home / rails目录的权限解决了这个问题,因此组可以读取并执行它。 谢谢大家!