部署rails应用程序

时间:2010-01-06 19:28:30

标签: ruby-on-rails ruby deployment

我最近一直在玩铁杆,想要了解它是如何工作的。我用脚手架创建了一个带有sIngle模型的简单应用程序。我将它上传到我的服务器,发现我需要添加/ public到URL以获得'welcome to rails'屏幕。但是,如果我试图访问我的模型(公共/消息),我只是遇到404错误。谁能告诉我该做什么?

我的服务器使用带有fcgi的rails。

对于这么简单的问题道歉,我过去没有使用过rails,也不完全确定它是如何工作的。

任何建议表示赞赏。

感谢。

3 个答案:

答案 0 :(得分:0)

您可能希望看一下使用Passenger的Apache模块(也就是mod_rails或mod_rack)部署rails应用程序,它更容易并且具有更好的性能fcgi。

答案 1 :(得分:0)

设置rails可能很棘手,而且主机之间的差异也很大。

但如果您已正确设置,则不必将/ public放入您的网址。 / public是默认目录。因此,如果要查找rails生成的默认index.html,它应该是#domain.com / index.html

您需要与主持人核实上传和设置应用的正确方法。

答案 2 :(得分:0)

您是否只是将应用程序上传到您的网站目录中,或者您使用的是符号链接?通常使用cgi / fcgi,您最好将实际应用程序放在非Web可访问目录中,并使用public_html /(或任何调用Web目录)的符号链接,它指向 app / public / 目录。但是,可以在没有符号链接的情况下使其工作。

现在,以下信息是通用/通用的,包含几个流行的共享Rails主机。但是,您的主机肯定可能有不同的设置。在这种情况下,如果您能告诉我们您正在使用哪个主机,那将非常有帮助。

在app / public /目录中,应该有一个名为dispatch.fcgi的文件。首先,验证此文件是否存在。如果是,请确保将文件chmodded为755并尝试将第一行更改为:

#!/usr/bin/ruby18

如果是:

#!/usr/bin/ruby

(这可能因主机而异。)

在你的app / public /目录中,还应该有一个名为.htaccess的文件。在其中,更改以下行:

RewriteRule ^(.*)$ /dispatch.cgi?$1 [QSA,L]

为:

RewriteRule ^(.*)$ /dispatch.fcgi?$1 [QSA,L]

如果这些更改都不起作用,请发布dispatch.fcgi,.htaccess的全部内容并说明您的主机帐户的目录结构。如前所述,让我们知道您使用的主机肯定也会有所帮助。