2012-03-06 146 views
8

我想在Bluehost中部署我的RoR应用程序,但我遇到了一些麻烦。我希望我的Rails应用程序可以从顶级域访问,即一旦有人访问我的网站URL即可访问。我跟着几个教程,并尝试了几种方法,但我仍然没有得到任何地方。当我访问我的URL(http://hotelelcidacapulco.com/)时,我收到以下消息:没有这样的文件或目录 - config.ru在Bluehost上部署Rails应用程序

我认为它必须是Symlink的问题。从来就尝试了不同的符号链接,但是我觉得应该是:

LN -s〜/路径/应用程序名称/公共应用程序的名字所以是这样的: LN -s〜/ rails_apps/ELCID /公共ELCID

但我再次得到错误消息:没有这样的文件或目录 - config.ru

再次,我绝对没有专家,但我认为它与符号链接有关。我一直在苦苦挣扎,并且非常感谢帮助,因为我需要尽快实现运行。

这里是我的文件:

/home3/hotelelc/public_html/.htaccess文件:

SetEnv GEM_HOME /home3/hotelelc/ruby/gems 

<IfModule mod_passenger.c> 
Options -MultiViews 
PassengerResolveSymlinksInDocumentRoot on 
RailsEnv production 
RackBaseURI/
SetEnv GEM_HOME /home3/hotelelc/ruby/gems 
</IfModule> 

AddHandler fcgid-script .fcgi 
RewriteEngine On 
RewriteRule ^$ index.html [QSA] 
RewriteRule ^([^.]+)/!$ $1.html [QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] 
ErrorDocument 500 "Application error Application failed to start properly" 

/home3/hotelelc/.bashrc文件:

export HPATH=/home3/hotelelc/ 
export GEM_HOME=$HPATH/ruby/gemsexport GEM_HOME=$HPATH/ruby/gems 
export GEM_PATH=$GEM_HOME:/usr/lib64/ruby/gems/1.8 
export GEM_CACHE=$GEM_HOME/cache 
export PATH=$PATH:$HPATH/ruby/gems/bin 
export PATH=$PATH:$HPATH/ruby/gems 

if [ -f /etc/bashrc ]; then 
. /etc/bashrc 
fi 

最后,是我的/config/environment.rb文件:

require File.expand_path('../application', __FILE__) 

ElCid::Application.initialize! 

ENV['GEM_PATH'] = '/home3/hotelelc/ruby/gems:/usr/lib64/ruby/gems/1.8' 
+0

不应该RackBaseURI被公开吗? – simonmorley 2012-12-30 12:17:20

+0

我试过RackBaseURI为/ public,并打破了。只是为未来的读者一个笔记。 – 2014-02-27 17:04:44

回答

1

尝试将您的.htaccess文件移至您的应用程序的公共目录而不是public_html。我相信这将是app/public/.htaccess。希望能帮助到你!

是的我知道这是一个老问题,但对于未来的读者。