【问题标题】:Why am I getting a permission denied error on my public folder?为什么我的公用文件夹出现权限被拒绝错误?
【发布时间】:2010-06-02 16:08:46
【问题描述】:

这个让我难过。我正在将 Rails 3 应用程序部署到运行 Apache 2 和 Passenger 的 Slicehost。我的服务器使用 RVM 运行 Ruby 1.9.1。

我在我的应用程序的“公共”文件夹中收到权限被拒绝错误。我的虚拟主机设置如下:

<VirtualHost *:80>

  ServerName  sharerplane.com
  ServerAlias www.sharerplane.com
  ServerAlias *.sharerplane.com

  DocumentRoot /home/robinjfisher/public_html/sharerplane.com/current/public/

  <Directory "/home/robinjfisher/public_html/sharerplane.com/public/">
    AllowOverride all
    Options -MultiViews
    Order allow,deny
    Allow from all
  </Directory>

  PassengerDefaultUser robinjfisher

</VirtualHost>

我尝试了以下方法:公共斜线; public 没有尾部斜线;乘客用户开关; PassengerDefaultUser 设置和未设置;有和没有块。

公用文件夹归 robinjfisher:www-data 所有,Passenger 以 robinjfisher 身份运行,所以我不明白为什么会出现权限问题。

有人有什么想法吗?

谢谢

罗宾

PS。暂时禁用了该站点以避免索引,因此当前存在的不是该站点。

【问题讨论】:

    标签: ruby-on-rails apache permissions passenger


    【解决方案1】:

    检查您的实际主目录。 /home/robinjfisher 以确保设置其“其他”可执行位。即,该目录具有 NN1 或更高的权限,其中 N 是您喜欢的任何值(即 751 或 701)。

    【讨论】:

    • 目前实际上设置为 755 - 可以吗?权限对我来说完全是个谜!
    • 是的,这些都很好。请记住,权限以 8 进制表示,4 位数字,其中 3 位是必需的。它们是这样的: SUGO 其中 S 代表 setuid/setgid 或粘性位(值分别为 4、2 和 1)。 Setuid/gid 位被设置,将有效的用户 ID/组 ID 设置给拥有该文件的人。仅当您的文件可执行时才生效。 UGO 项目都是一样的:读取 - 4,写入 - 2,执行 - 1。将它们相加,您就得到了结果。所以 755 表示 User 可以读、写和执行,而 Group 和 Other 可以读和执行。希望这会有所帮助。
    【解决方案2】:

    我发现了问题。我已经移动了一些与插件相关的 js/css 文件,然后插件试图重新安装它们,因为它无法在它认为应该的位置找到它们。

    我注释掉了安装代码,现在可以正常使用了。

    罗宾

    【讨论】:

      猜你喜欢
      • 2015-11-09
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      • 1970-01-01
      • 2014-04-18
      • 2011-03-29
      相关资源
      最近更新 更多