Size: 2900
Comment:
|
← Revision 4 as of 2015-01-31 02:36:58 ⇥
Size: 2686
Comment: Removed FAQ Wizard last edited
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#pragma page-filename DOC/versions/4030738 | #pragma page-filename DOC/versions/4030643 |
Line 3: | Line 3: |
Line 19: | Line 20: |
}}} | |
Line 21: | Line 21: |
(in-package "NET.ASERVE") | |
Line 22: | Line 23: |
{{{ (in-package "NET.ASERVE") }}} |
;; what is the url prefix for mailman queries? |
Line 26: | Line 25: |
(defparameter *mailman-prefix* "/mailman/") | |
Line 27: | Line 27: |
{{{ ;; what is the url prefix for mailman queries? }}} |
;; where is mailman installed? |
Line 31: | Line 29: |
{{{ (defparameter *mailman-prefix* "/mailman/") }}} {{{ ;; where is mailman installed? }}} {{{ |
|
Line 46: | Line 32: |
}}} | |
Line 48: | Line 33: |
{{{ |
|
Line 52: | Line 35: |
}}} | |
Line 54: | Line 36: |
{{{ |
|
Line 66: | Line 46: |
}}} | |
Line 68: | Line 47: |
{{{ |
|
Line 78: | Line 55: |
}}} | |
Line 80: | Line 56: |
{{{ |
|
Line 91: | Line 65: |
}}} | |
Line 93: | Line 66: |
{{{ |
|
Line 98: | Line 69: |
}}} | |
Line 100: | Line 70: |
{{{ |
|
Line 107: | Line 75: |
''Last changed on Tue Sep 21 11:51:20 2004 by'' Nick Levine <<Color2(Converted from the Mailman FAQ Wizard, col=darkgreen)>>This is one of many [[../Frequently Asked Questions|Frequently Asked Questions]]. |
Converted from the Mailman FAQ Wizard This is one of many [[../Frequently Asked Questions|Frequently Asked Questions]]. |
6.13. Mailman and Allegroserve
Final system setup requires you to do something along the lines of
ScriptAlias /mailman/ $prefix/cgi-bin/
and
Alias /pipermail/ $varprefix/archives/public/
The above is very Apache! Here follows the Allegroserve counterpart. Make sure you specify :setuid and :setgid arguments to net.aserve:start, otherwise the server will attempt to run cgi scripts as root, which is a Bad Thing.
;;;;;;;;;;; (in-package "NET.ASERVE") ;; what is the url prefix for mailman queries? (defparameter *mailman-prefix* "/mailman/") ;; where is mailman installed? (defparameter *mailman-root* "/usr/local/mailman/") (defun mailman-location (where) (merge-pathnames where *mailman-root*)) ;; We want to convert "/mailman/admin/mylist" into ;; "/usr/local/mailman/cgi-bin/admin" and "/mylist" (defun mailman-cgi-names (uri-path) (let* ((uri-relative (uri-path (enough-uri uri-path *mailman-prefix*))) (where (position #\/ uri-relative)) (program-name (subseq uri-relative 0 where)) (program (merge-pathnames program-name (mailman-location "cgi-bin/")))) (values (namestring program) (and where (subseq uri-relative where))))) (defun cgi-error-output (req ent istream) (declare (ignore req ent)) (let ((ostream (error-stream))) (loop (let ((char (read-char-no-hang istream nil :eof))) (cond ((null char) (return nil)) ((eq :eof char) (return t)) (t (write-char char ostream))))))) (defun mailman-invoke-cgi (req ent) (let ((uri-path (request-decoded-uri-path req))) (multiple-value-bind (program path-info) (mailman-cgi-names uri-path) (unless (probe-file program) (error "Mailman program ~s not found." uri-path)) (run-cgi-program req ent program :path-info path-info :error-output #'cgi-error-output)))) (publish-prefix #| :host *my-vhost-names* |# :prefix *mailman-prefix* :function #'mailman-invoke-cgi) (publish-directory #| :host *my-vhost-names* |# :prefix "/pipermail/" :destination (namestring (mailman-location "archives/public/")))
Converted from the Mailman FAQ Wizard
This is one of many Frequently Asked Questions.