2013-11-02 55 views
2

如何在項目上啓動Hunchentoot?我查看了Edi Weitz的指南,一切安然無恙。列出的教程或者被破壞或者被實際的服務器使用率所剔除。如何啓動Hunchentoot?

我有我的asdf文件,使用quicklisp安裝了依賴項,並設置了一個調度表。我如何讓Hunchentoot使用這些東西?

+0

http://weitz.de/hunchentoot/#start是這樣嗎? – 2013-11-02 15:20:57

回答

0

您在acceptor的實例上調用start

如果您使用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*))) 
0
(start (defparameter hunchentoot-listener 
     (make-instance 'easy-acceptor 
         :port 4242 
         :document-root #p"/path/to/your/html/"))) 

將讓你在端口上運行的Web服務器4242(http://localhost:4242/

+0

不要使用'defparameter'。你希望你的頂層表單可以重新加載。 – Svante

+0

我仍然處於學習曲線的上坡 - 你能舉一個更可接受的方式嗎? – JEPrice

+0

我給我的答案增加了一個例子。 – Svante

0

要更新,我在斯萬的回答改進:

(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爲零。在服務器啓動後(即使它隨後被停止),它不再是零。啓動-p測試檢查是否啓動了初始化的易接受器。如果您嘗試停止已停止的接受方,則會收到錯誤消息。