script that starts an example web server session located in web-root
This commit is contained in:
parent
017d5408e8
commit
8380e1668c
|
@ -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
|
Loading…
Reference in New Issue