2010-05-18 46 views
0

我有一段時間讓我修改爲正常工作的網站。我原來並沒有設置網站,因爲設置它的人不再和我一起工作,所以我不得不學習ruby來做一些改變。我在開發服務器中進行了所有更改,並且一切正常。然後我在生產和開發方面做了一些比較,並且只改變了我的改變。不幸的是,當我將更改加載到生產服務器時,出現了很多錯誤。Ruby on Rails:上傳修改後的網站

我已將755的所有權限都更改了,因爲755能夠訪問任何內容,但之後我開始收到大量500錯誤。 production.log文件中沒有顯示任何內容。我真的不知道發生了什麼問題,除了可能沒有注意到新的變化。我將舊網站移至備份文件夾,並且每當它轉到我更改的任何內容時,新網站就會崩潰。特別是,我添加了一個帶有額外控制器/模型/視圖組的新設置鏈接。它在開發過程中工作正常,但在生產中,它給了我一個404。是的,我把所有的文件都複製了起來。

我甚至把所有事情都弄回來,但網站仍然顯示它的破損版本。我檢查了tmp/cache文件夾,但它是空的。運行dispatch.fcgi顯示舊網站(我期望的),但是當我通過瀏覽器連接時,它仍然顯示有缺陷的新網站。

我一直在撕裂我的頭髮,試圖讓這個工作。任何想法,我怎麼能得到這個工作?

+0

您是否在開發過程中使用「腳本/服務器」迷你服務器來準備您的更改?你能否提供一些關於生產應用程序如何部署的更多細節?從你的解釋我假設它使用FastCGI方法,但最好不要推測。諸如是否使用Capistrano進行部署可能會更好地幫助我們。感謝澄清。 – Roadmaster 2010-05-18 22:43:18

+0

我在開發過程中使用了腳本/服務器迷你服務器。我不確定它是如何部署的,這是我的問題的一部分,因爲設置它的人離開了,沒有人知道Ruby。我們在服務器上的所有Ruby版本都是Ruby 1.8.6和RubyGems。 如果這些信息不足,您能告訴我如何找到確定其部署方式所需的信息嗎?謝謝! – Califer 2010-05-18 22:51:56

+0

如果您使用http://hurl.it/爲網站的一部分頁面獲取「服務器」標題,您會得到什麼? – 2010-05-18 23:45:21

回答

1

只是一個想法,你做了這些改變後是否重新啓動了生產服務器?

在Ubuntu或Linux版本的命令是:

sudo /etc/init.d/apache restart 

從你的描述,好像服務器沒有采取新的變化。

希望這會有所幫助。

+0

重新啓動Apache清空事情了。感謝Sam! – Califer 2010-05-20 17:49:21

0

在FastCGI部署下,啓動了一個cgi「調度程序」進程。 Apache與這個(這些)進程進行通信,這些進程實際上負責將請求傳遞到Rails應用程序。通過這種方式,應用程序的多個副本將繼續運行,並且Apache進程只與這些副本進行通信,從而節省與非加速CGI請求相關的啓動/拆卸時間。

由於它在生產模式下運行,因此有很多緩存正在進行,這可能可以解釋爲什麼您仍然在使用舊版本的網站。當您處於開發模式時,它明確地不會緩存事物,因此您可以立即看到您的更改。

我試着按照建議重新啓動web服務器,這也應該重新啓動FastCGI處理程序。

另外,請注意,Rails部署有點複雜;我建議你閱讀它。另外,您可能想要控制權限以確保日誌正在寫入;它們包含有用的調試信息。

+0

感謝您提供額外的信息,但我在Sam第一次給出答案。 – Califer 2010-05-20 17:50:06

+0

沒有概率 - 只要你設法解決問題,我很高興。乾杯! – Roadmaster 2010-05-20 18:18:06