文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>s-http-server 安装全过程

s-http-server 安装全过程

时间:2006-04-02  来源:albertlee

    S-HTTP-SERVER 是一个 standalone HTTP web server,作者是Sven Van Caekenberghe。 这个东西大概和 Python 中的 cherrypy, Quoxite 是一类的程序。

1.本文涉及 MacOSX LispWorks ASDF S-HTTP-SERVER。这里使用 MacOSX10.3,其他BSD/Linux系统应该也区别不大。最近有很多Web开发框架的podcast 都是在Mac上面,他们商量好的?
2. 安装 LispWorks
比较简单,到 www.lispworks.com 添一个表单,下载一个Personal Edition的 dmg安装文件,直接安装,没什么好说的。
3. 安装 ASDF
asdf 是 clisp 的一种包管理工具,我也是今天头次听说,按照文档装下来到也不难。
(1)下载  asdf.lisp 文件:
http://cvs.sourceforge.net/viewcvs.py/cclan/asdf/
(2)在 Lisp 环境下:
(load (compile-file "/Users/albert/lisp/asdf.lisp")) ; load asdf

; 设置 asdf 包文件所在的目录,以后把那些 asd 文件链接进去就可以
(pushnew "/Users/albert/lisp/" asdf:*central-registry* :test #'equal)
4. 安装 asdf-install
我也不知道具体是什么东西。http://www.cliki.net/ASDF-Install ,下载tar.gz文件,解压缩扔到一个目录去,然后
ln -s /path/asdf-install.asd .
这里 . 就是上面设置的那个 *central-registry*
然后在 lisp 环境:
(asdf:operate 'asdf:compile-op :asdf-install)
(asdf:operate 'asdf:load-op :asdf-install)  ; 使用asdf载入asdf-install

5. 安装s-http-server及其依赖包
下载,ln asd文件,lisp中载入。几个包如下:
(asdf:oos 'asdf:load-op :s-sysdeps)
(asdf:oos 'asdf:load-op :s-base64)
(asdf:oos 'asdf:load-op :puri)
(asdf:oos 'asdf:load-op :s-utils)
(asdf:oos 'asdf:load-op :s-http-server)

安装完成,可以使用了,写个简单的 hello world 吧:
; 使用 s-http-server 包
(in-package :s-http-server)

; 生成一个 s-http-server 实例
(defvar *server* (make-s-http-server :name "Hello-world Server"))

; 启动服务器
(start-server *server*)

; s-http-server 默认服务器端口是1701

; 注册一个静态的 handler ,将一个url映射到一个目录中
(register-context-handler *server*
                         "/my-site"
                         'static-resource-handler
                         :arguments
                         '("/Users/albert/html"))
; 在浏览其中访问 http://localhost:1701/my-site/index.html 就可以查看你的网页了(前提是目录里有这个文件)

; 一个复杂点的动态 handler , 文档里给出的例子,没仔细研究,贴出来
(defun dynamic-context-handler (s-http-server handler http-request stream)
 "The Dynamic Version that takes over when no default applies."
 (logm s-http-server "Running dynamic s-http-server handler")
 (let ((body (with-output-to-string (out)
               (format out "<p>Active handler binding is ~s for path ~s</p>"
                       handler
                       (get-path http-request)))))
    (standard-http-html-message-response http-request stream
        "S-HTTP-SERVER" body)
           t))

(register-context-handler *server*
                         "/"
                         'dynamic-context-handler
                         :arguments
                         '("no one cares, really")
                         :at-end-p t)

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载