乘客正在列出所有公共文件夹文件

乘客正在列出所有公共文件夹文件

大家好,请忽略我的菜鸟身份,这是我第一次部署 RailsApp;

我已将 apache 和 phussion Passenger 与 rvm 一起使用,以下是我在 apache2.conf 中添加的虚拟主机配置,

在此之前,它给了我禁止访问错误 403,我用 Google 搜索并发现这是权限问题,所以我运行chmod -R 640 /root,之后它开始列出我的公用文件夹文件。

   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-4.0.8
   PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

   <VirtualHost *:80>
      ServerName mydoctor
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /root/mydoctor/public    
      <Directory /root/mydoctor/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
   </VirtualHost>

如有任何建议,我们将不胜感激。

谢谢

答案1

在 中有一个 webroot 是非常奇怪的/root。通常,此文件夹是 root 的主目录,用于存放只有 root 才可以访问的内容;您可能已经造成了安全风险。

如果您想阻止显示目录列表,您应该将选项添加-Indexes到目录的选项指令中(目前只是-MultiViews)。

您可能还想设置默认文档或类似内容;否则,您只会收到错误而不是目录列表403 Forbidden

答案2

您必须将以下行添加到 VirtualHost-apache.conf:

Options +Indexes
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
Options -MultiViews

应保持如下状态:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-4.0.8
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
<VirtualHost *:80>
      Options +Indexes
      ServerName mydoctor
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /root/mydoctor/public    
      <Directory /root/mydoctor/public>
          Options Indexes FollowSymLinks
          AllowOverride all
          Order allow,deny
          Allow from all
          Options -MultiViews
      </Directory>
      RailsEnv production
</VirtualHost>

保存设置并重新启动 apache2

相关内容