web-dev-qa-db-ja.com

MailmanとApache仮想ホストの問題

Mailman、Apache2.4、Postfixのセットアップを作成しています。私の問題は次のとおりです。ドメイン名を使用してメーリングリストにアクセスすると、ブラウザで正しい結果が得られます。ここに写真があります

Normal mailman front page

ただし、サーバーのIPアドレスを使用して直接アクセスしようとすると、別のページが表示され、メーリングリストが表示されません。これはどのように見えるかです:

enter image description here 望ましい結果は、まったく同じページを取得することです。

Apache2の設定は次のとおりです。

<Directory /usr/lib/cgi-bin/mailman/>
    AllowOverride None
    Options +ExecCGI
    AddHandler cgi-script .cgi
    # (Old Apache2.2 style configuration:)
    # Order allow,deny
    # Allow from all
    # New Apache 2.4 configuration:
    Require all granted
</Directory>
<Directory /var/lib/mailman/archives/public/>
    Options FollowSymlinks
    AllowOverride None
    # (Old configuration:)
    # Order allow,deny
    # Allow from all
    # New Apache 2.4 configuration:
    Require all granted
</Directory>
<Directory /usr/share/images/mailman/>
    AllowOverride None
    # (Old configuration:)
    # Order allow,deny
    # Allow from all 
    # New Apache 2.4 configuration:
    Require all granted
</Directory>


<VirtualHost *:80>
ServerName lists.example.org
DocumentRoot /var/www/lists
ErrorLog /var/log/Apache2/lists-error.log
CustomLog /var/log/Apache2/lists-access.log combined

<Directory /var/lib/mailman/archives/>
    Options FollowSymLinks
    AllowOverride None
</Directory>

Alias /archives/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin
ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb
ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm
ScriptAlias /create /usr/lib/cgi-bin/mailman/create
ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml
ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo
ScriptAlias /options /usr/lib/cgi-bin/mailman/options
ScriptAlias /private /usr/lib/cgi-bin/mailman/private
ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist
ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster
ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe
ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/
ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo/
</VirtualHost>

編集:ここに私のmm_cfg.pyファイル(Mailman構成)を含めます:

from Defaults import *

MAILMAN_SITE_LIST = 'mailman'

DEFAULT_URL_PATTERN = 'http://%s/'
# PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private'
PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/archives/%(listname)s'
IMAGE_LOGOS         = '/mailman-icons/'

# Default domain for email addresses of newly created MLs
DEFAULT_EMAIL_Host = 'lists.example.org'

# Default Host for web interface of newly created MLs
DEFAULT_URL_Host   = 'lists.example.org'

VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_Host,DEFAULT_EMAIL_Host)

DEFAULT_SERVER_LANGUAGE = 'en'
USE_ENVELOPE_SENDER    = 0              # Still used?
DEFAULT_SEND_REMINDERS = 0
MTA='Postfix'

さらに、次のコマンドを実行してデフォルトサイトを無効にします。

Sudo a2dissite 000-default

000-defaultを無効にしないと、IPアドレスを使用してWebページにアクセスすると、すべてが正常であるというデフォルトのApacheページが表示されることに気付きました。

ドメイン名を使用したときに表示されるページと同じページを表示する、直接IPアクセスの問題に対する洗練された解決策があるかどうか疑問に思います。

編集:(mm_cfg.py内)に変更してみました:

VIRTUAL_HOSTS.clear()
add_virtualhost("104.131.98.138","lists.example.org")

提案されたように。 URL lists.example.orgを使用すると正しいページが表示されますが、IPアドレスを使用すると次のように表示されます。 Entering mailman directly using IP

ただし、今回はメールアドレスが正しいことに注意してください。

両方の行が存在する場合でも同じ結果が得られます。

VIRTUAL_HOSTS.clear()
add_virtualhost(DEFAULT_URL_Host,DEFAULT_EMAIL_Host)
add_virtualhost("104.131.98.138","lists.example.org")
2
real

まず、過去にあなたの意図を誤解していたので、ここでの誤った方向性について私を許してください。さて、私が理解している限り、あなたの意図は104.131.98.138をlists.freedomlayer.orgにエイリアスすることです-したがって、104.131.98.138lists.freedomlayer.orgのいずれかを参照すると、同じ結果が得られます-はい?

残念ながら、それは郵便配達員では不可能です。 Mailmanは、リストごとに1つの一意のURLを期待しています。詳細については、クリックしてください このFAQ 郵便配達員のドキュメントから

とにかく、Apacheでリダイレクトを設定できます。したがって、ユーザーがhttp://lists.freedomlayer.orgを使用してmailmanWebページに移動しない場合(つまり、http://104.131.98.138を使用する場合)は常に http://lists.freedomlayer.org にリダイレクトされます。

ここで、リダイレクトを機能させるためのApache構成

RewriteEngine On
RewriteCond %{HTTP_Host} !^lists\.freedomlayer\.org [NC]
RewriteRule ^(.*)$ http://lists.freedomlayer.org/$1 [R=301,L]
1
masegaloeh