我该如何开始Hunchentoot?

时间:2013-11-02 06:24:45

标签: lisp common-lisp hunchentoot

如何在项目上启动Hunchentoot?我查看了Edi Weitz的指南,一切顺利,直到安装完毕。列出的教程要么在实际服务器使用情况下被破坏或略过。

我有我的asdf文件,使用quicklisp安装了依赖项,并设置了一个调度表。如何让Hunchentoot使用这些东西?

3 个答案:

答案 0 :(得分:1)

您在start的实例上调用acceptor

如果您使用hunchentoot附带的基本easy-handler机制,那将是easy-acceptor

您需要有一个机制来启动和停止服务器。这可能是这样的:

(defvar *acceptor* nil)

(defun start-server ()
  (stop-server)
  (start (setf *acceptor*
               (make-instance 'easy-acceptor
                              :port 4242))))

(defun stop-server ()
  (when *acceptor*
    (stop *acceptor*)))

答案 1 :(得分:1)

为了更新,我对Svante的回答进行了改进:

(defun start-server ()
  (stop-server)
  (start (setf *acceptor*
               (make-instance 'easy-acceptor
                              :port 4242))))

(defun stop-server ()
  (when *acceptor*
    (when started-p *acceptor*
     (stop *acceptor*))))

在启动服务器之前, acceptor 为零。服务器启动后(即使它随后被停止)它不再是零。 started-p测试检查是否启动了初始化的easy-acceptor。如果您尝试停止已停止的接受器,则会收到错误。

答案 2 :(得分:0)

(start (defparameter hunchentoot-listener
         (make-instance 'easy-acceptor
                        :port 4242
                        :document-root #p"/path/to/your/html/")))

将在端口4242(http://localhost:4242/

上为您提供正在运行的Web服务器