【问题标题】:Deploying rails with Passenger使用Passenger部署rails
【发布时间】:2012-04-05 15:05:07
【问题描述】:

我想使用 apache 和乘客将我的应用程序部署到我的本地服务器中。我安装了所有先决条件,如开发库和乘客 gem。然后我将这些行包含到我的 /etc/apache2/httpd.conf 文件中;

PassengerRoot /home/insane-36/.rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11
PassengerRuby /home/insane-36/.rvm/wrappers/ruby-1.9.3-p125/ruby

现在,我在 /etc/apache2/sites-available 中创建了一个名为 sampleapp 的文件,并将以下内容放入其中;

<VirtualHost *:80>
 ServerName sampleapp
 RailsEnv development
 DocumentRoot /home/insane-36/Documents/Web/Rails/sampleapp/public
 <Directory /home/insane-36/Documents/Web/Rails/sampleapp/public>
  AllowOverride all
  Options MultiViews
  Order allow,deny
  Allow from all
 </Directory> 
</VirtualHost>

我启用了该站点,然后将主机名添加到 /etc/hosts 文件中。但是,当我现在尝试使用其 ServerName 浏览该站点时,它给出了权限被拒绝错误:

Forbidden

You don't have permission to access / on this server.

Apache/2.2.20 (Ubuntu) Server at sampleapp Port 80

我不知道这里有什么问题。我曾尝试多次编辑相同的文件,禁用站点,启用站点,重新加载 apache。请向我提出这个问题背后的问题和解决方案。提前感谢您的帮助。

【问题讨论】:

    标签: ruby ruby-on-rails-3 apache deployment passenger


    【解决方案1】:

    这是目录中的权限问题,而不是守护进程本身; DocumentRoot /home/insane-36/Documents/Web/Rails/sampleapp/public 中有索引文件吗?谁拥有它? Apache 的运行方式是什么?

    【讨论】:

    • 我将整个Rails应用的权限设置为www-data,虚拟用户apache运行。但是,我还是没弄好。
    • 那么答案如何呢?这是如何运作的?我现在遇到同样的问题。谢谢
    【解决方案2】:

    我知道这是一个老问题,仍然是谷歌搜索该错误的最佳结果。

    解决方案是在里面添加 Require all grant 作为最后一行

     <Directory /home/insane-36/Documents/Web/Rails/sampleapp/public>
      AllowOverride all
      Options MultiViews
      Order allow,deny
      Allow from all
      Require all granted
     </Directory>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 2012-09-08
      • 2012-10-06
      • 1970-01-01
      • 2015-08-31
      相关资源
      最近更新 更多