2011-08-23 80 views
4

我對任何一個曾經說過任何與「在rails應用上部署ruby應用程序都很簡單」相等的人感到憤怒。不,這不對。這是我所做過的最難的事情,我開發了操作系統。在Ubuntu上設置Passenger Phusion 11.04

噢。現在已經結束了。我終於得到了乘客的安裝(使用低音ackwards安裝過程中),並安裝到說:

請編輯您的Apache配置文件,並添加這些行:

LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.8/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.8 
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 

假設你有一個Rails應用程序/某處。虛擬主機添加到您的 Apache配置文件和DocumentRoot的設置/地方/市民:

<VirtualHost *:80> 
     ServerName www.yourhost.com 
     DocumentRoot /somewhere/public # <-- be sure to point to 'public'! 
     <Directory /somewhere/public> 
     AllowOverride all    # <-- relax Apache security settings 
     Options -MultiViews   # <-- MultiViews must be turned off 
     </Directory> 
    </VirtualHost> 

我就把這二者都在/etc/apache2/apache2.conf中,當我試着啓動Apache它說我把這個垃圾放在哪一行上的錯誤。非常感謝幫助。我快到了,我能感覺到它!

尼克

+1

您可能應該在您的問題 – mikezter

+1

中包含錯誤消息以啓動您的虛擬主機不應該在您的apache2.conf中 - 應該是/ etc/apache2/sites-available/railsapp參考[Ubuntu apache config guide]( https://help.ubuntu.com/11.04/serverguide/C/httpd.html#http-configuration) –

回答

1

成功安裝的Apache 2模塊後,請按照以下步驟設置配置Apache的。

  1. 創建以下兩個文件在/ etc/apache2的/ MODS的可用

    的mkdir /etc/apache2/mods-available/passenger.load

粘貼以下乘用車代碼.load文件

LoadModule passenger_module /usr/lib/ruby/gems/1.9.2(your version)/gems 
/passenger-3.0.2/ext/apache2/mod_passenger.so 

的mkdir /etc/apache2/mods-available/passenger.conf

在passenger.conf文件

膏以下代碼

PassengerRoot /usr/lib/ruby/gems/1.9.2/gems/passenger-3.0.2 
PassengerRuby /usr/bin/ruby1.9.2 

2.通過創建在/ etc/apache2的/啓用的mods-

$ ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load 
$ ln -s /etc/apache2/mods-available/passenger.conf /etc/apache2/mods-enabled/passenger.conf 

3.Now創建以下符號鏈接啓用模塊虛擬主機通過在/ etc/apache2/sites-enabled中將以下內容添加到000-默認文件中。

<Directory /var/www/your_app> 
     RailsBaseURI /your_app 
     RailsEnv development 
     AllowOverride all 
     Options -MultiViews 
     allow from all 
</Directory> 
  1. 現在創建應用程序的軟鏈接,請確保您的應用程序必須駐留在/ opt,這樣做可能會爲應用程序創建一個單獨的文件夾。

    i。 $ sudo mkdir -p/opt/rails_apps

    ii。 $ sudo cp -R/path/to/your_app// opt/rails_apps/

    iii。 $ sudo ln -s/opt/rails_apps/your_app/public// var/www/your_app

  2. 然後使用以下命令重新啓動apache。

    /etc/init。d/Apache2的重啓

+0

謝謝,這很有用。但是,在遵循您的指示燈之後,我可以從公共rails文件夾中看到默認的index.html頁面。此頁面中的圖像未顯示,應用程序的其餘部分無法訪問。我還應該做什麼? –

1

,當你重新啓動Apache,如果你已經包括,逐字,下面你會得到一個錯誤信息:

AllowOverride all    # <-- relax Apache security settings 
Options -MultiViews   # <-- MultiViews must be turned off 

它吐出來的錯誤是:

[email protected]_server:~/your_site# sudo /etc/init.d/apache restart 
Syntax error on line 11 of /etc/apache2/sites-enabled/your_site: 
Illegal override option # 
Action 'configtest' failed. 
The Apache error log may have more information. 
    ...fail! 
[email protected]_server:~/your_site# 

修復?刪除下面的註釋行,看起來像這樣:

AllowOverride all 
Options -MultiViews 

希望這有助於!