2012-03-06 179 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。希望能幫助到你!

是的我知道這是一個老問題,但對於未來的讀者。