`
阿尔萨斯
  • 浏览: 4180787 次
社区版块
存档分类
最新评论

使用hunchentoot搭建Lisp web 服务器。

 
阅读更多

很多人学习Lisp的时候都觉得Lisp学习起来很枯燥,不能用来写俄罗斯方块,不能用来写画图板,来来回回都是写一些基于文本的样例,很是无聊。其实Lisp可以用来写很多东西,而且写起来很有意思。因为Lisp文本处理能力很强,很适合写网站,所以对初学者来讲,如果希望做一些实际一点的小应用,写个Lisp网站是个不错的选择。

要写Lisp网站的话第一个问题就是如何搭建一个支持Lisp的web服务器,下面就详细讲述搭建Lisp web 服务器的过程。


搭建一个Lisp web 服务器可以使用很多中不同的工具,这里选择hunchentoot,原因是搭建起来不是很费事。有关hunchentoot的项目背景在这里就不详述了,有兴趣的读者可以参考相关网站。

就搭建hunchentoot服务器而言,也有很多方法,这里采用最简单的方式,目的是让各位可以快速搭建环境,开始建构Lisp网站。


第一步是安装sbcl

在ubuntu上可以通过apt-get直接安装,安装命令是 sudo apt-get install sbcl,下面是命令执行截图:


第二步是下载quicklisp.lisp文件

因为我们将通过quicklisp来安装载入hunchentoot,所以需要下载quicklisp.lisp文件。

quicklisp.lisp文件可以通过以下链接下载:

http://beta.quicklisp.org/quicklisp.lisp

在ubuntu上可以通过以下命令将quicklisp.lisp文件下载保存到本地:

sudo curl -0 http://beta.quicklisp.org/quicklisp.lisp > ~/workspace/quicklisp.lisp

注意这里将文件保存为~/workspace/quicklisp.lisp,大家可以根据自己的情况调整这个路径,下面是命令执行截图:


第三步是在sbcl中安装hunchentoot

首先是启动sbcl,然后载入刚才下载的quicklisp.lisp文件,载入quicklisp.lisp文件的命令和之前提到的载入样例lisp文件的方式是相同的,使用(load "<文件路径>")

下面是命令执行截图:



载入quicklisp后,在Lisp命令界面依次执行下面的Lisp命令:


(quicklisp-quickstart:install)
(ql:add-to-init-file)
(ql:quickload "swank")
(ql:quickload "hunchentoot")
(ql:quickload "cl-who")

quicklisp会帮你安装好hunchentoot

安装完成后通过(quit)命令退出sbcl(其实可以不退出继续执行后面的操作,不过这步是安装过程,后面是编写页面和服务器启动,所以退出一下,区分不同步骤)


第四步是编写hello world页面

安装好hunchentoot后通过vim或者是任意编辑器新建一个Lisp文件,我的文件名为:“~/workspace/lisp/hunchentoot.lisp”,大家可以根据喜好使用不同的文件名。

在该文件中写入一下代码:

(defun myserver ()      

        (start (make-instance 'easy-acceptor :port 8080))

        (define-easy-handler (greet :uri "/hello") ()
                (format nil "<html><body><h1>Hello world!</h1></body></html>")))
上面的代码首先启动hunchentoot的一个实例,帧听8080端口,然后定义uri,指定访问“/hello”时执行后面的(format)代码输出一个简单的网页。


第五步是启动服务器

先通过sbcl命令启动sbcl界面,然后通过以下命令加载hunchentoot

(ql:quickload "hunchentoot")

加载完成后执行以下命令:

(use-package :hunchentoot)


接着通过以下命令载入第四步写的Lisp文件:

(load "~/workspace/lisp/hunchentoot.lisp")

最后执行(myserver)启动你的服务器,命令执行截图如下:



一切顺利的话打开浏览器访问“localhost:8080”就可以访问hunchent的缺省主页了,其中端口8080是在"~/workspace/lisp/hunchentoot.lisp"文件中指定的。

页面截图如下:



要访问自己写的网页就使用http://localhost:8080/hello来访问,注意这里的/hello是在上面的~/workspace/lisp/hunchentoot.lisp中指定的,

页面访问截图如下:



后面就可以根据自己的喜好开始写Lisp网站了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics