2010-05-19 61 views
7

我無法在Google上找到它(所以也許它不存在),但我基本上想在網絡服務器上安裝一些東西,以便我可以在Scheme上運行網站,PHP開始騷擾我,我想擺脫掉它,我要的是:運行一個網站的計劃

  • 運行方案對UTF-8輸出(杜)
  • 支持SXML,SXLT等等來源,我打算在SXML中編寫這個該死的東西,並在最後用 - >來正常表示。
  • 能夠從服務器讀取其他文件,寫他們,設置權限等等
  • 還有些事情,例如確定文件,圖像的高度,MIME類型和所有天書
  • 的文件大小(可選)連接到一個數據庫,但我想要做存儲S-表達整個數據庫本身就足以可行

我不需要任何花哨的圖書館和其他的東西,來與它像CMS除了對SXML的支持之外,還有什麼不是,但我確信我可以找到一個可以加載的lib。

+0

存在着Python框架,如果你想有一個功能的編程感覺用的放心現有實現通信標準代碼基數大的(XML,我會recommond,數據庫接口等)。我聽說Plone很受歡迎。 – 2010-05-19 19:57:29

+1

等一下,PHP開始惹惱你了,所以你想轉移到* Scheme * ???我認爲你一定是我的完全相反...... – Josh 2010-05-19 19:58:07

+2

@Josh我知道這似乎是一個奇怪的舉動,但我可以按照它。我忘記了誰先說過,但PHP確實覺得我喜歡在保留字工廠發生爆炸。 – 2010-05-19 20:00:55

回答

2

Spark-Scheme有一個完整的網絡服務器。如果你不需要它,它也有一個FastCGI接口,這樣你就可以從Apache,Lighttpd等Web服務器提供Scheme腳本.Spark-Scheme似乎也滿足你對數據庫支持,UTF-8,文件處理和SXML。有關更多信息,請參閱Spark-Scheme Programming Guide(pdf)。

+0

這對我來說似乎是一個。 – Zorf 2010-05-21 07:52:30

+0

你的鏈接已經死了,新的地址是:http://vmathew.in/spark/index.html – 2010-12-05 10:18:05

+0

@Joe D.謝謝Joe,我更新了鏈接。 – 2010-12-06 04:51:54

1
+0

我沒有,但這似乎是apache的完整替代品,而不僅僅是我可以安裝的東西,例如識別以.scm結尾的文件,並在請求時運行它們,並返回寫在其標準輸出端口上的結果。替代php。 – Zorf 2010-05-19 20:02:55

+0

Fermion的新鏈接是http://spark.vmathew.in/tutorial/web-applications – 2010-05-20 03:38:58

+0

@Lajla:對不起 - 我把網絡服務器誤解爲硬件而不是軟件,看起來你有其他的替代品現在雖然:) – pdbartlett 2010-05-20 06:48:00

2

mod_lisp和FastCGI是我所知道的目前唯一的兩個Apache模塊。 mod_lisp提供了Scheme支持,因爲它的體系結構與FastCGI相似,CGI類參數通過套接字發送到第二個進程,該進程在Scheme作爲後端到Web服務器時保持運行。基本上你使用其中一個或另一個通過套接字將CGI參數發送到正在運行的Scheme後端。

你可以找到一些關於這些解決方案的信息here。還有另一種FastCGI,名爲SCGI,它在Scheme中稱爲gambit,演示了一個簡單的SCGI接收器。該代碼可能不再被維護,但scheme receiver可能會有用。

回到Apache 2.0時代,有更多的項目正在使用scheme和clisp綁定。我不相信mod_scheme曾經發布過任何內容,但是如果他們這樣做了,那麼它與現代版本的Apache不兼容。

1

如果您正在尋找一種lispy語言來開發web應用程序,我建議您查看Clojure。 Clojure是一個lisp變體,與方案非常接近; here is a list的一些差異。

Clojure運行在Java虛擬機上並與Java庫很好地集成,並且有一個偉大的webapp框架可用,名爲Compojure

+0

嗯,我聽說過Clojure,但從來沒有真正嘗試過,因爲我認爲它主要基於Common Lisp,因爲它沒有尾部呼叫優化 現在閱讀它似乎很有趣,它修復了Scheme中的一些錯誤,但不幸的是它也向我介紹了一些新的錯誤。雖然我可以發誓在某一時刻讀取它是一個Lisp-2,但它在這裏說這是一個Lisp-1。 – Zorf 2010-05-19 21:31:28

1

退房雞計劃的Eggs Unlimited。我想你想要的是將sxml包與fastcgi包結合使用。