2010-01-06 96 views
1

最近我一直在玩rails,并希望通过deploent流程来了解它的工作原理。我用一个脚手架的sIngle模型创建了一个简单的应用程序。我将它上传到我的服务器,发现我需要在URL中添加/公开,以获得'欢迎使用rails'屏幕。但是,如果我试图访问我的模型(公共/消息),我刚刚得到一个404错误。任何人都可以告诉我该怎么做?部署导轨应用程序

我的服务器使用fcgi导轨。

对于这样一个简单问题的道歉,我以前没有使用rails,也不完全知道它是如何工作的。

任何意见赞赏。

谢谢。

回答

0

你可能想看看部署你的Rails应用程序Passenger的Apache模块(又名mod_rails或mod_rack),它更容易和更好的性能,fcgi。

+0

我的服务器是共享主机,我没有shell访问它 – Dan 2010-01-06 19:52:18

0

设置导轨可能会非常棘手,并且主机之间的差异很大。

但是,如果你已经正确设置了它,你不应该把/ public放在你的URL中。/public是默认目录。所以如果正在寻找rails生成的默认index.html,它应该是#domain.com/index.html

您需要与您的主机一起检查上传和设置应用的正确方法。

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的全部内容,并解释的目录结构的托管帐户。如前所述,让我们知道您正在使用哪个主机也一定会有所帮助。

+0

嗨, 会尝试,当我今晚回来。 我的主机是34sp顺便说一句,我已经给他们发邮件征求建议。 – Dan 2010-01-07 07:41:25