2010-05-19 55 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包结合使用。