Ruby-on-Rails

在顯示 RoR 程式碼更改之前,Linode 似乎需要重新啟動

  • February 20, 2012

我從無法再聯繫的開發人員那裡繼承了一個項目。這是一個 Ruby on Rails 項目,託管在 Linode 上,使用 SVN 作為 vcs。

我可以通過 SFTP 進入伺服器並更改文件,但更改不會顯示在站點上,直到我 ssh 進入並重新啟動伺服器。這些不是對配置文件的更改,只是對一些 erb.html 視圖的簡單更改。

在我之前使用 git 和 Linode 的經驗中,我只是推送,更改就會實時顯示。也許老開發者用 svn 鉤子設置了一些東西?

我可以想到可能導致這種情況的兩種可能性:

  1. 記憶體。如果您使用的是 PHP,那麼我會假設這是 APC,stat設置已切換為Off. 對 Ruby 不夠熟悉,我只能猜測內置了一個 OpCode 記憶體,並且重新啟動整個伺服器會刷新記憶體。您可能只需重新啟動 HTTP 守護程序即可擺脫困境。
  2. 啟動腳本。可能有一個啟動腳本執行對 subversion 儲存庫的檢出,或者可能是從一個目錄到另一個目錄的直接副本。這也可能是現有腳本的一部分,例如啟動 HTTP 守護程序的腳本。同樣,找到腳本並執行它可能會省去重新啟動整個伺服器的麻煩。

SVN post-commit 鉤子當然可以用來做這裡正在做的任何事情,甚至可以重新啟動伺服器,但我會警告不要這樣做。將程式碼部署到生產伺服器是您應該有一定程度的控制權的事情,並且應該與開發過程分開。開發人員送出某些東西並自動立即部署它的想法讓我很高興。

引用自:https://serverfault.com/questions/361992