Re: [問題] Joomla hosting in Heroku

作者: jimmytzeng (jimmytseng)   2014-12-28 14:41:06
感謝您的回答
我後來看了一下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的設定....
: : 有大大有相關經驗解決類似這種問題嗎?

Links booklink

Contact Us: admin [ a t ] ucptt.com