4

我想使用 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。请向我提出这个问题背后的问题和解决方案。提前谢谢你的帮助。

4

2 回答 2

1

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

于 2012-04-05T15:56:49.443 回答
1

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

解决方案是添加 Require allgranted 作为里面的最后一行

 <Directory /home/insane-36/Documents/Web/Rails/sampleapp/public>
  AllowOverride all
  Options MultiViews
  Order allow,deny
  Allow from all
  Require all granted
 </Directory>
于 2015-09-13T16:59:37.380 回答