2012-03-07 45 views
3

我試圖在mediatemple(dv)上部署我的第一個rails應用程序,並且我沒有任何運氣。需要關於將我的第一個rails應用程序部署到中介(dv)的建議

我試圖使用phusion乘客,所以我去了http://www.modrails.com/videos/passenger.mov,並觀看了關於安裝這個教程。我做了一切沒有問題,我是當我指向我的IP,我看到一個Apache頁面,而不是我的Rails應用程序。

我注意到在mediatemple上,我不得不創建一個vhosts.conf文件並運行一個命令來重新配置我的項目來查看這個vhosts.conf文件。參考 - http://kb.mediatemple.net/questions/1621/Why+is+my+vhost+file+not+being+used+by+Apache%3F#dv_40對於最後一步,我做了/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain xxx.xx.xx.xx而不是重新配置全部。

這是我的vhosts.conf文件看起來是這樣的:

LoadModule passenger_module 
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125/ruby 

<VirtualHost *:80> 
     ServerName xxx.xx.xx.xx 
     DocumentRoot /var/www/vhosts/myProject/httpdocs # <-- be sure to point 
to 'public'! 
     <Directory /var/www/vhosts/myProject/httpdocs> 
     AllowOverride all    # <-- relax Apache security settings 
     Options -MultiViews   # <-- MultiViews must be turned off 
     </Directory> 
    </VirtualHost> 

任何人有任何運氣上的MT(DV),可以擺脫一些建議,以一個軌道小白部署Rails應用程序?

+1

我知道這是不是一個回答你的問題,但你有沒有想過的Heroku?自從我轉變以來,我一直沒有回頭。 – jessecurry 2012-03-07 04:18:32

+0

我是全新的鐵軌,所以我可能打開很多東西。從我的網頁搜索中,聽起來很多人都在使用phusion乘客。 – Catfish 2012-03-07 04:20:00

+0

查看Heroku,這是一種超級簡單的部署方式,他們免費提供基本的網絡託管軟件包。你基本上把git remote添加到你的目錄中,然後推送給它進行部署。如果您將Rails 3.x與資產管道一起使用,則可能需要部署到Cedar堆棧。 – jessecurry 2012-03-07 04:37:16

回答

8

我剛剛在我的dv服務器上完成了這個工作,所以這裏快速瀏覽一下。我將假定你正在使用Ruby 1.9.3和Rails 3.2,並以root身份運行下面的所有命令。

您的服務器上還安裝了最新版本的耙和乘客安裝程序。如果沒有,請嘗試:

gem update --system 
gem install rake 
gem install passenger 

下一步就是登錄到您的MEDIATEMPLE管理面板。點擊你感興趣的域的管理按鈕(不是Plesk的),然後選擇「Root Access and Developer Tools」選項。安裝開發人員工具(這將需要大約10分鐘)。

一旦這樣做了,SSH到服務器並執行以下操作:

passenger-install-apache2-module 

有指導安裝,所以我不會贅述了一個相當不錯的。您可能需要通過yum在這裏安裝一些額外的依賴關係,因此請仔細檢查此腳本的輸出。

一旦這樣,就去編輯你的httpd.conf文件。這是保存在/etc/httpd/conf/httpd.conf。你會想在它的最後添加下面幾行(請注意路徑可能會有所不同,因爲我使用rvm來管理我的ruby安裝和gemset)。

# Passenger Module for Apache (For Rails apps) 
LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11/ext/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.11 
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby 
PassengerDefaultUser root 

此時,你應該準備好創建一個新的Rails應用程序,以便從httpdocs文件夾中刪除一切併發出以下命令而登錄的域用戶(不是root!)

rails new /path/to/httpdocs 

/var/www/vhosts/www.domain.com/conf中編輯您的vhost.conf文件(或創建一個新文件)(您需要以root身份執行此操作)。

ServerName domainname.com 
ServerAlias domainname.com 
DocumentRoot /var/www/vhosts/domainname.com/httpdocs/public 
<Directory "/var/www/vhosts/domainname.com/httpdocs/public"> 
Options FollowSymLinks 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory> 
RailsEnv development 
RailsBaseURI/

最後,問題

/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain xxx.xx.xx.xx 

並重新啓動Apache

/usr/sbin/apachectl -k restart 

這應該是它!

這個環節真的幫了我整個事情:http://www.twohard.com/blog/setting-rails-passenger-mediatemple-dv35-servers

+0

終於開始嘗試這個了,你錯過的唯一的東西就是這部分'rm -rf httpdocs ln -s /var/www/vhosts/my_app.com/app/public httpdocs'。否則它是現貨。謝謝你的幫助。 – Catfish 2012-07-03 01:41:25

+0

對於仍在使用這個問題的人來說,我已經寫了一篇關於如何在mt(dv)上使用rails的文章。 https://coderwall.com/p/lu3nfa – Catfish 2013-03-31 15:14:16

+0

+1爲http://www.twohard.com/blog/setting-rails-passenger-mediatemple-dv35-servers鏈接。謝謝 – mpora 2013-04-24 13:04:48

相關問題