看板 Web_Design 關於我們 聯絡資訊
感謝您的回答 我後來看了一下heroku dev center的說明 DYNO確實是當我的code push上去後就會產生DYNO, 而不是我說的當有request進來才會產生 而平常DYNO只是處於sleep的狀態 感謝指正 另外我後來詳細的去了解的問題 發現不僅僅是config無法做儲存,甚至連某些CMS在運作時所安裝的plugins以及templates 都是會隨著DYNO處於sleep狀態後而消失 後來自己想到解決的方法 只能先在local端先架設一個簡易的sever, 進行CMS的configuration以及plugins,templates的安裝 當一切設定完畢,在push至heroku完成初始化設定 ※ 引述《blue3 (啦啦啦)》之銘言: : 你要先了解heroku平台的設計原則 : 才有辦法設計出符合這個平台的應用程式 : http://12factor.net/ : 這是heroku創辦人提出的12factor : 如果一個應用程式依照這12個原則去設計 : 那麼將可以更容易地被scale或是部署在不同的環境 : 你的問題解決方式很簡單,也是heroku建議的方式 : 就是所有應用程式相關的設定,都應該透過環境變數的方式去設定 : https://devcenter.heroku.com/articles/config-vars : 像是資料庫,或是add-on的設定 : 而dyno本身的設計必須是stateless的 : 也就是不應該有任何的狀態資料(session, file等)被儲存 : file應該透過第三方平台去存取 : session則應寫入資料庫或是透過像memcached來做分散式快取 : 這是因為dyno的設計,是建構在硬體可能隨時壞掉的前提之上 : 因此stateless的特性,讓dyno不儲存任何狀態 : 可以在dyno crash的時候,重新啟動一個dyno來服務 : 另外,修正一下你的說法, : 並不是一個request進來才會產生一個dyno, : dyno在你push code到heroku時就會產生了 : 如果你只有一個dyno, 才會有sleep的效應 : 也就是你說的,太久沒用被卸載來減輕平台本身的負擔 : 當"第一個"request進來,才會再產生一個dyno : 如果你有兩個dyno, 就不會sleep : 但是兩個dyno的狀況下,就要讓session可以在不同dyno之間同步 : 你遇到的不是平台的問題 而是它的設計就是如此 : ※ 引述《jimmytzeng (jimmytseng)》之銘言: : : 各位大大好 : : 小弟最近再使用Heroku 進行Jommla的佈署 : : 但是遇到一些問題 : : 因為Heroku為了減少server負載的使用量,設計成當有request進來時,才會產生一個DYNO : : (好像再google cloud platform裡叫作instance) : : 而第一次再這個DYNO進行Joomla的初始化的時候(就是再web上進行設定那步驟), 其設定檔(configruation.php)似乎只儲存在這個DYNO : : 當這個DYNO隨著時間被關閉後, 此設定檔或是安裝的模組就隨著此DYNO的消失而消失... : : 如此當下次DYNO被產生的時候,又要重新一次去進行Joomla的設定.... : : 有大大有相關經驗解決類似這種問題嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.199.128 ※ 文章網址: http://www.ptt.cc/bbs/Web_Design/M.1419748868.A.CB2.html