如何在带有Postfix,Nginx和FastCGI的Ubuntu 16.04上安装GNU Mailman

GNU mailman是使用Python编写的免费和开放源代码的基于Web的邮件列表管理器。 它是开放源代码项目常用的。 在本教程中,我们将使用Nginx和FastCGI在Ubuntu 16.04上安装GNU mailman。

先决条件

Mailman仅提供Web管理界面。 它本身不会发送或接收电子邮件,而是依靠外部SMTP服务器(如Postfix)。

假定您已经正确安装了Postfix。 如果没有,请查看以下教程。

  • 如何在Ubuntu 16.04上安装基本的Postfix SMTP服务器

顺便说一句,让我们开始安装GNU Mailman。

步骤1:安装GNU Mailman

我们可以从存储库安装GNU Mailman。

sudo apt update

sudo apt install mailman

在安装过程中,将要求您选择Mailman的语言。 使用箭头键上下移动。 使用空格键选择您的语言。 星号表示已选择语言。

之后,它会提示您创建一个新列表。 点击确定,然后运行以下命令来创建 mailman 清单。

sudo newlist mailman

输入列表管理员电子邮件地址并设置密码。 然后编辑/ etc / aliases文件。

sudo nano /etc/aliases

将以下行复制并粘贴到文件中。

## mailman mailing list
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"

保存并关闭文件。 运行以下命令以更新别名索引文件。

sudo newaliases

重新启动Postfix SMTP服务器。

sudo systemctl restart postfix

启动Mailman程序。

sudo systemctl start mailman

步骤2:安装FCGIWrap

要正确显示Mailman Web界面,我们需要安装 fcgiwrap 软件包,使我们可以使用FastCGI和Nginx运行CGI应用程序。

sudo apt install fcgiwrap

安装后,fcgiwrap将自动运行,如发出以下命令所示:

systemctl status fcgiwrap

输出:

● fcgiwrap.service - Simple CGI Server
   Loaded: loaded (/lib/systemd/system/fcgiwrap.service; indirect; vendor preset: enabled)
   Active: active (running) since Mon 2016-12-12 01:25:20 EST; 4min 27s ago
 Main PID: 27780 (fcgiwrap)
   CGroup: /system.slice/fcgiwrap.service
           └─27780 /usr/sbin/fcgiwrap -f

我们需要确保FCGI和Nginx以同一用户身份运行(www-data)。 编辑 /etc/init.d/fcgiwrap 外壳脚本。

sudo nano /etc/init.d/fcgiwrap

找出 FCGI_USERFCGI_GROUP 变量。 该值应为 www-data。 如果不是,请进行更改。

FCGI_USER="www-data"
FCGI_GROUP="www-data"

之后,重新启动 fcgiwrap 服务。

sudo systemctl restart fcgiwrap

fcgiwrap服务侦听 /var/run/fcigwrap.socket 默认。

步骤3:设置Nginx服务器块

使用以下方法安装Nginx:

sudo apt install nginx

要从现有网站的子目录访问Mailman,请编辑网站的服务器阻止文件。

sudo nano /etc/nginx/conf.d/your-site.conf

将以下行放入 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;
}

保存并关闭文件。 然后测试Nginx配置并重新加载。

sudo nginx -t

sudo systemctl reload nginx

现在,您可以通过以下URL访问Mailman管理页面,并创建新的邮件列表。

www.your-site.com/cgi-bin/mailman/admin/

而已!

我希望本文能帮助您在Ubuntu 16.04上使用Nginx安装GNU Mailman。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。

Sidebar