2014-07-05 22 views
0

我不能相信它變得如此困難,但我需要能夠在localhost/rails_app運行我的rails應用程序的發展原因,沒有打破我有其他的應用程序。 (例如localhost/php_app)安裝Rails 4與乘客本地發展localhost/rails_app

我遵循了很多教程,但仍然無法正常工作。

我已安裝乘客,我認爲缺少的步驟是正確配置VirtualHost。

(Mac OS X中,軌道4,阿帕奇)

編輯:最大的問題是,我不能在本地主機上運行:3000或任何其他端口

EDIT2:

有了這個Apache的配置文件中:

<VirtualHost *:80> 
    ServerName localhost 
    ProxyRequests off 
      <Proxy *> 
        Order deny,allow 
        Allow from all 
      </Proxy> 
      <Location /my_rails_app/ >               
      ProxyPass http://localhost:3000/ 
      ProxyPassReverse http://localhost:3000/ 
     </Location> 
</VirtualHost> 

應用在localhost/my_rails_app運行/但它仍然使用本地主機/基礎網址,失蹤各項資產,使所有的鏈接錯誤。

+0

我添加信息上運行的端口80上測試服務器,以我的答案。 –

+0

您需要將'DocumentRoot'設置爲您的'public'目錄,這可能是資產的構建位置。 –

+0

不,這是一個鐵軌問題,它創建所有與本地主機/資源的路徑,而它應該創建本地主機/ my_rails_app /資源 –

回答

1

首先,在本地系統上,您可以使用Rails附帶的內置測試服務器。下面是我使用的是Ubuntu的服務器上運行Rails虛擬主機:

<VirtualHost *:80> 
    ServerName errandlist.com 
    ServerAlias www.errandlist.com 
    # !!! Be sure to point DocumentRoot to 'public'! 
    DocumentRoot /var/www/errandlist/public 
    RailsEnv production 
<Directory /var/www/errandlist/public> 
    # This relaxes Apache security settings. 
    AllowOverride all 
    # MultiViews must be turned off. 
    Options -MultiViews 
    </Directory> 
</VirtualHost> 

而且你將需要啓用乘客在httpd.conf:

# Ruby Passenger support 
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p448/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p448/gems/passenger-4.0.19 
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-1.9.3-p448/ruby 

這將是非常相似的OSX,你的版本可能會有所不同。

編輯:這裏有一個關於端口80上運行測試服務器的問題:How to run rails s -p80 on 80 port?

+0

感謝您的答案,但我不明白第一個語句「內置測試Rails附帶的服務器「。 另外,我做到了!看到我自己的答案。 –

+0

命令'rails server'啓動測試服務器,請參閱http://guides.rubyonrails.org/command_line.html –

+0

我知道,但它運行在localhost:3000,我需要它運行在本地主機/ rails –