Ruby on rails 将Rails应用程序部署到共享托管服务时出现权限错误

Ruby on rails 将Rails应用程序部署到共享托管服务时出现权限错误,ruby-on-rails,ruby-on-rails-3,hosting,shared-hosting,Ruby On Rails,Ruby On Rails 3,Hosting,Shared Hosting,我正在尝试将Rails 3.2.3应用程序部署到共享托管服务(1和1)中,并将Postgres作为我的数据库。我通过FTP将我的文件夹上传到网站目录,并在控制面板中将域指向我的rails文件夹,但当我进入网站主页时,我得到“你没有访问/访问此服务器的权限”。我尝试使用Passenger,但我不确定这是否需要,或者是否有效。我对这方面还不太熟悉,所以循序渐进的指导会很好 我正在使用Mac OSX雪豹,如果需要更多信息,请告诉我。如果有更多的背景文章需要阅读,我将不胜感激。我一直在寻找一些能够很好地

我正在尝试将Rails 3.2.3应用程序部署到共享托管服务(1和1)中,并将Postgres作为我的数据库。我通过FTP将我的文件夹上传到网站目录,并在控制面板中将域指向我的rails文件夹,但当我进入网站主页时,我得到“你没有访问/访问此服务器的权限”。我尝试使用Passenger,但我不确定这是否需要,或者是否有效。我对这方面还不太熟悉,所以循序渐进的指导会很好


我正在使用Mac OSX雪豹,如果需要更多信息,请告诉我。如果有更多的背景文章需要阅读,我将不胜感激。我一直在寻找一些能够很好地解释这一过程的东西,但我还没有找到一篇好的解释。

首先,您需要将虚拟主机指向公共目录,而不是根路径

第二:我建议您在本地计算机上运行rakeassets:precompile,并将public/assets文件夹加载到主机上

第三:查看您上传的文件和文件夹的权限,Web服务器应该能够读取和执行它们


第四:如果主机以Web服务器的形式运行apache,您确实需要安装mod_passenger。

我觉得您以前好像没有部署过Rails项目,这真的不是为胆小鬼准备的,也不是像“安装apache”并启动它那样简单-如果您尝试让它在OSX上运行,您真的会大吃一惊,这使得apache的配置非常奇怪(尤其是在Lion、eesh上)

所以

1) 只要不用费心在Apache上的Snow Leopard box上运行RoR,使用附带的rails服务器(rails s--debugger),您将希望调试器大部分时间都可用

2) 使用大型端到端教程,让RoR在您的1和1设备上运行,最好是在Ubuntu上运行(这更简单)


3) 一旦你完成了第二步,让我们知道你进展如何

部署Rails应用程序并不像您在这里想象的那么简单。当你说共享主机时,你是指VPS还是使用CPanel的东西?您计划使用什么web服务器(通常是Apache或Nginex)?你有shell访问权限吗?您将创建一个从web根目录到应用程序目录中的公用/文件夹的符号链接,确保设置了目录权限。如果这是一个VPS,我建议您按照安装Redmine或Teambox等应用程序中概述的步骤进行操作,如果您能够安装这些应用程序,您将更好地了解您必须在这里执行的操作。这是我很难理解的内容。不过我会研究一下。一个问题是,当您使用ssh连接到1和1服务器“sudo:command not found”时,如果它是共享主机,出于安全考虑,普通用户可能无法访问sudo。如果用户可以访问bundle命令,您可以这样做
bundle安装--gemfile/path/to/app/gemfile--path/path/to/app/shared/bundle--deployment--quiet--无需开发测试
是否有理由必须使用1和1?现在有很多主机可以为您提供真正的“裸”虚拟机,您可以完全控制这些虚拟机,您永远不会遇到上面提到的sudo问题。在不支持的情况下,一些例子包括linode、rackspace、mediatemple、amazonec2,所有这些都是不错的选择。如果没有完全的控制,你会使这个过程变得更加困难。