script that starts an example web server session located in web-root

This commit is contained in:
interp 2002-08-22 15:35:51 +00:00
parent 017d5408e8
commit 8380e1668c
1 changed files with 44 additions and 0 deletions

44
start-web-server Executable file
View File

@ -0,0 +1,44 @@
#!/bin/sh
echo "Starting scsh..."
exec scsh -lm packages.scm -dm -o http-test -e main -s "$0" "$@"
!#
(define-structure http-test
(export main)
(open httpd-core
httpd-make-options
httpd-basic-handlers
cgi-server
let-opt
scsh
scheme)
(begin
(define (main args)
(let ((port (string->number (:optional (cdr args) "8080"))))
(if port
(begin
(format #t "Web-Server is now running on port ~d...~%" port)
(http port))
(format #t "Usage: ~a [port]~%~a~%" (car args) args))))
(define (http port)
(cond ((zero? (user-uid))
(set-gid -2) ; Should be (set-uid (->uid "nobody"))
(set-uid -2))) ; but NeXTSTEP loses.
(httpd (with-port port
(with-root-directory (absolute-file-name "./web-server/root")
(with-simultaneous-requests 23
(with-syslog? #t
(with-logfile (absolute-file-name "./web-server/httpd.log")
(with-path-handler
(alist-path-dispatcher
(list (cons "h" (home-dir-handler "public_html"))
(cons "cgi-bin"
(cgi-handler (absolute-file-name
"./web-server/root/cgi-bin"))))
(rooted-file-or-directory-handler
(absolute-file-name "./web-server/root/htdocs") ""))))))))))
))
;; EOF