Ser*_*ico 15 lisp linux webserver common-lisp
几个月前,我受到Paul Graham撰写的宏观书籍ANSI Common Lisp的启发,以及Lisp可以作为你网络开发中的秘密武器的声明,由同一作者在他的博客上发表.哇,太神奇了.这是我一直在寻找的东西.作者真正开发了一个成功的Web应用程序并将其出售给雅虎.
有了这些令人鼓舞的图像,我决定花一些时间(1年或2年,谁知道)学习Common Lisp.也许有一天我会开发我的Web应用程序并变成一个伟大的Lisp专家.事实上,这是我第二次学习Lisp.几年前我第一次被着名的SICP书迷住了,但后来发现Scheme对于现实生活的应用来说是如此令人难以置信的不成熟.
在阅读了ANSI Common Lisp的一些章节之后,我非常确定这本书是一本非常详尽的探索Common Lisp的书.然后我开始在Common Lisp中设置一个Web服务器.毕竟,如果你想学习一些东西,这应该是最好的方法.示威总是比定义更好.
正如Practical Common Lisp(顺便说一句,这本书也是一本很好的书)所建议的那样,我选择在一些Common Lisp实现上安装AllegroServe.然后,从其他地方,我了解到Hunchentoot似乎比AllegroServe更好.(我不记得这个词的来源和对象.所以不要和我争论.)
具有讽刺意味的是,你知道什么,我从来没有在任何Common Lisp实现上安装这两个包.更烦人的是,我甚至不知道为什么.机器总是吐出很多行话,导致我陷入混乱.我试过在互联网上搜索,但没有找到任何东西.
任何在Linux上成功安装这些软件包的人都可以告诉我你是怎么做到的吗?你遇到了什么麻烦吗?你怎么弄清楚出了什么问题并修好了?越详细越有帮助.
基本上,这些安装步骤来自本文为初学者提供的简单Lisp Web应用程序,由Frank Shearar推荐(再次感谢).但我没有遵循确切的步骤,因为(1)我想与本地用户安装Common Lisp; (2)我不熟悉作者提到的一些事情.你可以查看原始文章,或者你可以在这里关注我.我担心我的指示更容易理解.:)
安装前需要下载三个软件包.sbcl二进制和源包可以在这里下载,smanek包可以在这里下载.
SBCL-1.0.38-x86的Linux的binary.tar.bz2
SBCL-1.0.38-source.tar.bz2
smanek平凡-Lisp的web应用,3681c1
注意:当您看到这篇文章时,版本号可能已经改变.所以不要费心去获取确切的包裹.但是,这是适合我的包.
这是我的工作(用您的真实路径替换YOURPATH,我假设您使用的是BASH):
1.安装二进制sbcl包
tar jxf sbcl-1.0.38-x86-linux-binary.tar.bz2
cd sbcl-1.0.38-x86-linux
INSTALL_ROOT=YOURPATH sh install.sh
cd ..
Run Code Online (Sandbox Code Playgroud)
那么,二进制sbcl包现在已经安装好了.当安装程序抱怨"没有手动找到"之类的东西时,可以正常使用,因为二进制包中不包含手册内容.随它去.
2.设置PATH和SBCL_HOME
export PATH=YOURPATH/bin/:$PATH
export SBCL_HOME=YOURPATH/lib/sbcl/
Run Code Online (Sandbox Code Playgroud)
3.安装源sbcl软件包
tar jxf sbcl-1.0.38-source.tar.bz2
cd sbcl-1.0.38
sh make.sh
export SBCL_HOME=''
INSTALL_ROOT=YOUROTHTERPATH sh install.sh
cd ..
Run Code Online (Sandbox Code Playgroud)
注意:您可能需要指定另一个安装目录,或者它将安装到二进制sbcl所在的同一目录中.
4.设置PATH和SBCL_HOME
export PATH=YOUROTHERPATH/bin/:$PATH
export SBCL_HOME=YOUROTHERPATH/lib/sbcl/
Run Code Online (Sandbox Code Playgroud)
5.安装smanek包
unzip smanek-trivial-lisp-webapp-36816c1.zip
cd smanek-trival-lisp-webapp-36816c1
cd scripts
./startserver.sh
Run Code Online (Sandbox Code Playgroud)
当它显示"Webserver在端口8080上启动"时,您可以在Web浏览器中访问" http:// localhost:8080 ".它在那里,对吗?
6.几点说明
首先,保罗·格雷厄姆有:-)
我也发现 Common Lisp 需要做很多工作才能完成第一步。当你刚开始时,环境很糟糕,没有一条明确的正确路径可以让你敲入一些代码并看到一些结果(例如,Python)。和你一样,我浪费了很多时间从一种实现跳到另一种实现。所以我的建议是:
我建议你只选择一个,忽略所有其他建议,直到你开始行动。
如果你没心情,就获取 Apache 并编写一些 PHP :-)