2012-10-28 13 views
6

Yeni bir iskeleye oturtulmuş Yesod uygulaması verildiğinde, bir CGI programı olarak davranabilen bir yürütülebilir dosya elde etmek için gerekli minimum değişiklik kümesi nedir? Bir sarıcı programı kabul edilebilir. 'Cabal build' tarafından oluşturulan varsayılan yürütülebilir bir CGI programı ise, CGI olarak davranması için hangi ortam değişkenlerinin ayarlanması gerekiyorsa (varsayılan olarak bir bağlantı noktasına bağlanacak ve buradaki istekleri sunmaya çalışacaktır.)Yesod uygulamasını CGI olarak yapılandırın

FastCGI için benzer bir cevap da takdir edilecektir. Aşağıdaki ile

cevap

7

güncellemesi, 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 

Sen Cabal dosyasında bağımlılıkları için wai-extra eklemeniz gerekir. Bunun yerine FastCGI kullanmak için Network.Wai.Handler.CGI'u Network.Wai.Handler.FastCGI ile değiştirin ve bunun yerine wai-handler-fastcgi'u bağımlılık listesine ekleyin.

+0

Bu aralar 'yesod devel' mi? –

+0

Cevap hayır gibi görünüyor! :-) –

+1

Nedenini açıklığa kavuşturmak için: İskele sitenin (esasen) bir 'IO Uygulaması' sağlayan bir kütüphane olarak inşa edilmiştir. Daha sonra iki tane çalıştırılabilir: “main.hs” üretim için kullanılır ve “devel.hs”, “yesod devel” için kullanılır. Yani 'main.hs' için yapılan değişikliklerin geliştirme üzerinde hiçbir etkisi yoktur. –