如何在带有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_USER
和 FCGI_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页面上关注我们。