2010-04-24 106 views
1

我目前正在學習Ruby on Rails。我目前正在筆記本電腦上完成所有的開發工作然而,我知道在所有「真實世界」的情況下,我將連接到一個專用的服務器來保存站點。Web開發學習環境

所以這裏是我的問題:在我使用的機器上開發的優點和缺點與在單獨的服務器上運行網站有什麼不同?

回答

3

本地開發的問題是,通常你不會爲基礎設施而煩惱。例如前端Web服務器,或者我們忘記在我們的開發環境中安裝了哪些寶石。要真正嘗試模擬您的生產環境,您應該安裝apache webserver + Passenger(乘客是mod_rails,一個在apache webserver中運行rails的模塊)。

我給你的一些提示是:安裝你假裝在生產中使用的同一個sql server(避免使用sqlite3開發並投入運行mysql的生產),在你的開發工作站中本地使用apache +在自開始開發以來安裝的每一個GEM文檔中(也許命令gem列表的輸出將幫助您識別您正在使用的內容)。

我喜歡做的事情是:我運行一個運行相同操作系統的虛擬機(virtualbox),我將在生產環境中運行,並提供我需要的所有必需軟件,並且我會盡早開始部署虛擬機。從第一次測試開始就採用這種方法,我已經知道我的應用程序將如何在生產環境中工作,避免將來出現太多驚喜。

因此,最重要的是:思考基礎架構,儘早保持一致性和部署。通過這3個步驟,您將有機會在您的RoR開發中取得成功。

0

好吧,沒有區別!一旦你完成了你的rails應用程序,它將完全準備好部署! Rails規則!

也許這是關於運行rails服務器問題!因此,如果您使用腳本/服務器在您的機器上運行您的應用程序,那麼在Web前臺服務器上您必須使用Passenger等。

+0

什麼是乘客,它有什麼作用? – 2010-04-25 03:42:23

+0

又名mod_rails。 Apache插件,你可以說,來運行你的Rails應用程序。在你的env * .rb文件中,你必須config.gem'所有的寶石'和web-server,你必須做的是爲apache的虛擬主機定義你的應用的公用文件夾,然後運行你的遷移在生產和耙寶石:安裝! – amrnt 2010-04-27 12:20:44

0

我在本地做我所有的發展。 (我在過去的其他環境中完成了遠程開發工作,但這是一個很痛苦的事情...... J2EE我在看着你)。

本地和遠程設置的差異可能是一個問題,但Rails和Ruby爲您處理了很多這樣的問題。

我使用RVM (Ruby Version Manager)來設置具有反映我的目標部署的特定Ruby和GEM版本的環境。您可以使用閃亮的新的Gem Bundler來創建應用程序依賴關係的清單。

我也建議在本地使用與您部署的環境相同的數據庫。數據庫之間存在細微的差異,可能會讓你感到不安。對於簡單的系統來說,這並不是一個問題,但是一旦你開始在多個模型中執行復雜的查詢或者使用聚合函數,你就可以在遠程服務器上找到調試的地方

對於分期和測試,我只是使用免費的Heroku帳戶來部署和檢查我的工作...易於設置並提供了一個令人敬畏的完整性檢查。