如何在帶有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