运行Mailman在Nginx(LEMP)在Debian Squeeze / Ubuntu 11.04 / 11.10

在Debian Squeeze上运行Mailman on Nginx(LEMP)/ Ubuntu 11.04 / 11.10

来自Debian / Ubuntu存储库的Mailman软件包配有Apache,但不适用于nginx。 本教程将介绍如何在nginx vhost中使用Debian Squeeze / Ubuntu 11.04 / 11.10 Mailman软件包。 Nginx是一个HTTP服务器,比Apache使用的资源少得多,并提供了更快的网页,特别是静态文件。

我不会保证这将为您工作!

1初步说明

我想在名为www.example.com / example.com的vhost中使用文件根/var/www/www.example.com/web的Mailman

您应该有一个工作的LEMP安装(这包括MySQL安装),如这些教程所示:

Ubuntu用户注意事项:

因为我们必须使用root权限运行本教程的所有步骤,所以我们可以使用字符串sudo在本教程中添加所有命令,也可以通过键入来成为root

sudo su

2安装Fcgiwrap

为了让nginx服务于Mailman的Web界面,我们需要安装fcgiwrap软件包:

apt-get install fcgiwrap

安装完成后, fcgiwrap守护进程应该已经启动了; 它的套接字是/var/run/fcgiwrap.socket 。 如果没有运行,可以使用/etc/init.d/fcgiwrap脚本启动它。

3 Vhost配置

如果您尚未设置nginx vhost,可以按如下方式设置:

我的www.example.com网站的文档根目录是/var/www/www.example.com/web - 如果不存在,创建如下:

mkdir -p /var/www/www.example.com/web

接下来,我们为/ etc / nginx / sites-available /目录中的www.example.com vhost创建一个基本的nginx vhost配置,如下所示:

vi /etc/nginx/sites-available/www.example.com.vhost
server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/www.example.com/web;
       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }
       index index.php index.html;
       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }
       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }
       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }
       location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
       }
}

要启用该vhost,我们从/ etc / nginx / sites-enabled /目录创建一个符号链接:

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost

重新加载nginx以使更改生效:

/etc/init.d/nginx reload

4安装Mailman + Mailman Vhost配置

您可以在这里找到一个详细的Mailman安装指南: 如何安装和配置Mailman(使用Postfix)在Debian Squeeze

基本的Mailman安装如下:

apt-get install mailman

在我们可以启动Mailman之前,必须创建名为mailman的第一个邮件列表:

newlist mailman

root @ server1:〜#newlist mailman
输入运行列表的人的电子邮件: < - admin电子邮件地址,例如info@example.com
初始邮递员密码: 邮件列表中的< - admin密码
要完成创建邮件列表,您必须编辑/ etc /别名(或
等效)文件,添加以下行,并可能运行
`newaliases'程序:

##邮件邮件列表
邮递员:“| / var / lib / mailman / mail / mailman post mailman”
mailman-admin:“| / var / lib / mailman / mail / mailman admin mailman”
mailman-bounces:“| / var / lib / mailman / mail / mailman bounces mailman”
mailman确认:“| / var / lib / mailman / mail / mailman确认邮件员”
mailman-join:“| / var / lib / mailman / mail / mailman join mailman”
mailman-leave:“| / var / lib / mailman / mail / mailman leave mailman”
mailman-owner:“| / var / lib / mailman / mail / mailman owner mailman”
邮件请求:“| / var / lib / mailman / mail / mailman请求邮件员”
mailman-subscribe:“| / var / lib / mailman / mail / mailman subscribe mailman”
mailman-unsubscribe:“| / var / lib / mailman / mail / mailman取消订阅邮件员”

点击输入以通知邮递员所有者... < - ENTER

root @ server1:〜#

之后打开/ etc /别名 ...

vi /etc/aliases

...并添加以下行:

[...]
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

newaliases

之后重启Postfix:

/etc/init.d/postfix restart

然后启动Mailman守护进程:

/etc/init.d/mailman start

打开/etc/nginx/sites-available/www.example.com.vhost ...

vi /etc/nginx/sites-available/www.example.com.vhost

...并将以下部分添加到服务器{}容器中:

server {
[...]
        location /cgi-bin/mailman {
               root /usr/lib/;
               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
               include /etc/nginx/fastcgi_params;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
               fastcgi_intercept_errors on;
               fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
        location /images/mailman {
               alias /usr/share/images/mailman;
        }
        location /pipermail {
               alias /var/lib/mailman/archives/public;
               autoindex on;
        }
[...]
}

请确保在fastcgi_pass unix: line中使用正确的套接字。 默认情况下, fcgiwrap套接字是/var/run/fcgiwrap.socket

这定义了您的vhost的别名/ cgi-bin / mailman / ,这意味着您可以访问Mailman管理界面以获取http:// <vhost> / cgi-bin / mailman / admin / <listname>上的列表 ,并且可以在http:// <vhost> / cgi-bin / mailman / listinfo / <listname>找到邮件列表用户的网页。

http:// <vhost> / pipermail下,您可以找到邮件列表存档。

重新加载nginx:

/etc/init.d/nginx reload

而已! 您现在可以访问http://www.example.com/cgi-bin/mailman/admin/mailman来管理邮件员邮件列表...

...和http://www.example.com/cgi-bin/mailman/listinfo/mailman访问邮件邮件列表的公共页面(用户可以在其中订阅):

http://www.example.com/pipermail下,您可以找到邮件列表存档:

5链接

关于作者

Falko Timme是所有者 Timme Hosting (超快nginx网页托管)。 他是youcl(自2005年以来)的主要维护者, 也是ISPConfig的核心开发人员之一 (自2000年起)。 他还为O'Reilly的“Linux系统管理”一书作出了贡献。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏