[mod-lisp-devel] setting up mod_lisp with apache

Sheng Han shengh at cadence.com
Wed Oct 27 09:53:09 UTC 2004


Hi there,

I've some difficulty in setting up mod_lisp in apache. Hope someone out
there can shede some light on this.

I've compiled mod_lisp.c:
        [root at lnx-mucvcadpool2 httpd-1-3-31]# ll
        total 116
        drwxr-xr-x    2 root     root         4096 Oct 27 11:21 bin
        drwxr-xr-x    2 root     root         4096 Oct 25 17:49 cgi-bin
        drwxr-xr-x    2 root     root         4096 Oct 27 11:22 conf
        drwxr-xr-x    3 root     root         4096 Oct 25 17:49 htdocs
        drwxr-xr-x    3 root     root         4096 Oct 25 17:49 icons
        drwxr-xr-x    3 root     root         4096 Oct 26 17:21 include
        drwxr-xr-x    2 root     root         4096 Oct 27 11:21 libexec
        drwxr-xr-x    2 root     root         4096 Oct 26 17:22 logs
        drwxr-xr-x    4 root     root         4096 Oct 25 17:48 man
        -rw-r--r--    1 root     root        49217 Oct 26 17:15
        mod_lisp.c
        drwxr-xr-x    2 nobody   nobody       4096 Oct 25 17:49 proxy
        [root at lnx-mucvcadpool2 httpd-1-3-31]#
         
        [root at lnx-mucvcadpool2 bin]# ./apxs -a -i -c ../mod_lisp.c
        gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -fpic
        -DSHARED_MODULE -I/home2/software/httpd-1-3-31/include  -c
        ../mod_lisp.c
        gcc -shared -o ../mod_lisp.so mod_lisp.o
        [activating module `lisp' in
        /home2/software/httpd-1-3-31/conf/httpd.conf]
        cp ../mod_lisp.so
        /home2/software/httpd-1-3-31/libexec/mod_lisp.so
        chmod 755 /home2/software/httpd-1-3-31/libexec/mod_lisp.so
        cp /home2/software/httpd-1-3-31/conf/httpd.conf
        /home2/software/httpd-1-3-31/conf/httpd.conf.bak
        cp /home2/software/httpd-1-3-31/conf/httpd.conf.new
        /home2/software/httpd-1-3-31/conf/httpd.conf
        rm /home2/software/httpd-1-3-31/conf/httpd.conf.new
        

Modified the httpd.conf file:
        .....<snip> ....
        LoadModule setenvif_module    libexec/mod_setenvif.so
        LoadModule lisp_module        libexec/mod_lisp.so
        ...
        ClearModuleList
        ...
        AddModule mod_lisp.c
        
        # Setup lisp dir for lisp code to be handled by LISP
        LispServer  127.0.0.1 3000 "fractal"
        <Location /asp>
           SetHandler lisp-handler
        </Location>
    	Alias /asp/ "/home2/software/asp/"
 
   	<Directory "/home2/software/asp">
		Options None
		AllowOverride None
		Order allow,deny
        	Allow from all
   	</Directory>

The server seems not happy with the port setting 3000, or its not
listening to 3000:

         * (fetch-mod-lisp-url "localhost" "/asp/fixed")
         
         
        Error in function CONNECT-TO-INET-SOCKET:
           Error connecting socket to [localhost:3000]: Connection
        refused
           [Condition of type SIMPLE-ERROR]
         
        Restarts:
          0: [ABORT] Return to Top-Level.
         
        Debug  (type H for help)
         
        (CONNECT-TO-INET-SOCKET "localhost" 3000 :STREAM)
        Source: Error finding source:
        Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM:  Source file
        no longer exists:
          target:code/internet.lisp.
        0] 0
         
So I added this to httpd.conf:
	Listen 3000
restart and run the test function again:

        * (fetch-mod-lisp-url "localhost" "/asp/fixed")
         
        (("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">" .
        "<HTML><HEAD>")
         ("<TITLE>501 Method Not Implemented</TITLE>" . "</HEAD><BODY>")
         ("<H1>Method Not Implemented</H1>" . "url to /index.html not
        supported.<P>")
         ("Invalid method in request url<P>" . "<HR>")
         ("<ADDRESS>Apache/1.3.31 Server at lnx-mucvcadpool2 Port
        8000</ADDRESS>"
          . "</BODY></HTML>"))
        
So I assume the server is openning the port and lisp is listening to
this port, am I right? 
But as you can see, " ...Method Not Implemented...", in the returned
text. Something must be wrong.

Oh, of cause I have already open a lisp session in terminal and load the
cmucl lisp file:
	(load "/home2/software/asp/modlisp-cmucl.lisp")

Now the problem is if I point my browser to the area that lisp suppose
to handle:
        http://127.0.0.1:8000/asp/debug-table
As I understand debug-talbe is a predefined function in
modlisp-cmucl.lisp, so something should happen. However, I received
nothing in the browser, empty screen and empty source file. Look at the 
apache log file:
        In access.log:
        
        	127.0.0.1 - - [27/Oct/2004:11:43:46 +0200] 	"remote-ip-addr"
        501 -
        	127.0.0.1 - - [27/Oct/2004:11:43:46 +0200] "GET
        	/asp/debug-table 	HTTP/1.1" 200 5
        
        In error.log:
        
        [Wed Oct 27 11:34:10 2004] [notice] SIGHUP received.  Attempting
        to restart
        [Wed Oct 27 11:34:10 2004] [error] Cannot remove module
        mod_lisp.c: not found in module list
        [Wed Oct 27 11:34:10 2004] [notice] Apache/1.3.31 (Unix)
        mod_lisp/2.35 configured -- resuming normal operations
        [Wed Oct 27 11:34:10 2004] [notice] Accept mutex: sysvsem
        (Default: sysvsem)
        [Wed Oct 27 11:34:14 2004] [error] [client 127.0.0.1] Invalid
        method in request url
        [Wed Oct 27 11:43:46 2004] [error] [client 127.0.0.1] Invalid
        method in request remote-ip-addr
        
Note the mod_lis.c is not found in module list. Where should I put it?

First invalid method in request url is generated from this function call
in lisp session:
	 (fetch-mod-lisp-url "localhost" "/asp/fixed")
the second "invalid mthod in request remote-ip-addr" is from the
broswser request for "debug-table".

It seems to me something is still wrong. Maybe someone can point it out?


Many thanks,
sheng





More information about the mod-lisp-devel mailing list