|
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.