2012-10-28 11 views
6

के रूप में यसोड ऐप को कॉन्फ़िगर करें एक ताजा मचान यसोड एप्लिकेशन को देखते हुए, निष्पादन योग्य प्राप्त करने के लिए आवश्यक परिवर्तनों का न्यूनतम सेट क्या है जो सीजीआई प्रोग्राम के रूप में कार्य करता है? एक रैपर कार्यक्रम स्वीकार्य है। यदि 'कैबल बिल्ड' द्वारा निर्मित डिफ़ॉल्ट निष्पादन योग्य एक सीजीआई प्रोग्राम है, तो सीजीआई के रूप में कार्य करने के लिए कौन से पर्यावरण चर सेट किए जाने चाहिए (डिफ़ॉल्ट रूप से यह एक बंदरगाह से बंधेगा और अनुरोधों को पूरा करने का प्रयास करेगा।)सीजीआई

फास्टसीजीआई के लिए एक समान जवाब की भी सराहना की जाएगी।

उत्तर

7
निम्नलिखित के साथ

अद्यतन अपने app/main.hs:

import Prelude    (IO, (>>=)) 
import Yesod.Default.Config (fromArgs) 
import Yesod.Default.Main (defaultMain) 
import Settings    (parseExtra) 
import Application   (makeApplication) 
import Network.Wai.Handler.CGI (run) 

main :: IO() 
main = fromArgs parseExtra >>= makeApplication >>= run 

आप अपने कबाल फ़ाइल में निर्भरता को wai-extra जोड़ने की आवश्यकता होगी। इसके बजाय FastCGI का उपयोग करने के लिए, Network.Wai.Handler.CGI को Network.Wai.Handler.FastCGI के साथ प्रतिस्थापित करें और इसके बजाय निर्भरता सूची में wai-handler-fastcgi जोड़ें।

+0

क्या यह 'yesod devel' तोड़ता है? –

+0

उत्तर नहीं लगता प्रतीत होता है! :-) –

+1

बस यह स्पष्ट करने के लिए कि क्यों: मचान साइट को लाइब्रेरी के रूप में बनाया गया है जो (अनिवार्य रूप से) 'आईओ एप्लीकेशन' प्रदान करता है। फिर दो निष्पादन योग्य हैं: 'main.hs' का उत्पादन के लिए उपयोग किया जाता है और 'yesvel.hs' का उपयोग' yesod devel' के लिए किया जाता है। इसलिए 'main.hs' में किए गए परिवर्तनों पर विकास पर कोई प्रभाव नहीं पड़ता है। –

संबंधित मुद्दे