2011-05-27 152 views
0

我想在這裏部署我的第一個Rails應用程序,而且自從昨晚以來我一直被困在某些東西上。我遇到了一些我無法解釋的奇怪行爲。我正在運行Rails,Apache,Phusion Passenger,而現在,SQLite 3(我將馬上移到MySQL)。目前,這是託管在運行Ubuntu Server的太小的EC2切片上11.04(Natty)。Rails環境部署問題?

當我在瀏覽器中訪問EC2切片的地址時,我得到了默認的Rails 500通知。不過,這有些奇怪。當我尾部/log/production.log,我看到以下錯誤:

ActionView::Template::Error (SQLite3::SQLException: no such table: offers: SELECT "offers".* FROM "offers" WHERE (code = '') ORDER BY created_at desc LIMIT 25 OFFSET 0): 

所以,我手動開闢了sqlite3的開發數據庫,​​看到表中出現。然而,生產數據庫沒有該表。

好的,所以我收到生產日誌中記錄的生產數據庫錯誤。應用程序必須在生產模式下運行,對吧?

這是什麼扔我。首先,它在我的開發機器上以開發模式運行,並且在部署它時我沒有更改任何文件。我也沒有使用任何花哨的部署工具來部署它(可能在我不知情的情況下切換了某些東西) - 我只是做了一個簡單的git push

此外,我增加了以下我httdp.conf虛擬主機配置:

RailsEnv development 

而且,當我運行軌道控制檯,我可以得到如下:

irb(main):002:0> Rails.env 
=> "development" 

因此,應用程序真的在開發模式下運行,對不對?事實上,它似乎認爲(部分)它是,對吧?

我真的不知道這裏發生了什麼,我真的很感謝一些專家的建議。

謝謝大家。

編輯 - 一些服務器稍後重新啓動,現在當我嘗試在瀏覽器中查看它時,它就會掛起。另外,當我嘗試重新啓動它(因此重新啓動服務器),相關問題或完全不同的問題時,Apache似乎會掛起?

回答

0

對我來說,這不是一個100%滿意的答案,但我做了兩件事,而且我認爲我能做到。

首先,我重新安裝了乘客Apache模塊。這可能或可能不是必需的。

雖然這是一件大事:在將httpd.conf中的行添加到傳遞給Passenger的Rails環境之後,我相信Apache重新啓動不正確。 (相反,我相信我已經被不正確地重新啓動Apache的我的整個生命!)

我試圖重新啓動Apache這樣:

sudo /etc/init.d/apache2 restart 

這一直爲我工作(當PHP編程)但它根本不在這裏工作。Apache只會在重啓時停頓。

然而,這工作得很好:

sudo apachectl restart 

我要問服務器故障的顯著區別是什麼介於兩者之間。

我希望能幫助別人。