0

小さな django サイトを作成し、電子メールに iRedMail を使用しようとしています。最初に iRedMail をインストールし、それが機能することを確認しました。www.domain.com/iredadmin と www.domain.com/mail の両方にアクセスして、完全に機能させることができました。次のステップは、django サイトをインストールして Apache を構成することでした。残念ながら、これにより私の django サイトは /mail/ と /iredadmin/ を処理しようとしました。私は数時間設定をいじっていましたが、何をすべきかわかりません。設定は次のとおりです。

apache2.conf:

# Defaults...

WSGIPythonPath /path/to/website.com/website

サイト対応/website.com:

<VirtualHost *:80>
    ServerName website.in
    ServerAlias www.website.in
    ErrorLog ${APACHE_LOG_DIR}/error.log

    Alias /static /path/to/website.com/website/static
    Alias /media /path/to/website.com/website/media
    Alias /mail /usr/share/apache2/roundcubemail/
    Alias /admin /usr/share/apache2/iredadmin/


    <Directory /usr/share/apache2/roundcubemail/>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /path/to/website.com/website/website.wsgi

    <Location "/">
            SetHandler python-program
            PythonHandler django.core.handlers.modpython
            SetEnv DJANGO_SETTINGS_MODULE website.settings
            PythonDebug Off
            PythonPath "['/path/to/website.com/website/']+sys.path"
    </Location>

    <Directory /path/to/website.com/website>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>

    <Directory /path/to/website.com/website/static>
        Order allow,deny
        Allow from all
    </Directory>

    <Location /static/>
        SetHandler None
    </Location>

    <Directory /path/to/website.com/website/media>
        Order allow,deny
        Allow from all
    </Directory>

    <Location /media/>
        SetHandler None
    </Location>

</VirtualHost>

内部サーバー エラーが発生していますが、django Web サイトは問題なく表示されます。

4

1 に答える 1

0

mod_wsgi と mod_python の両方を同時に使用して Django サイトを処理しようとしており、mod_python が mod_wsgi をオーバーライドしています。他のいずれかを選択します。mod_python はもはや開発またはサポートされておらず、Django でのサポートが非推奨になっているため、使用し続けるのはおそらく適切なオプションではありません。

次に間違っているのは:

Alias /mail /usr/share/apache2/roundcubemail/
Alias /admin /usr/share/apache2/iredadmin/

末尾のスラッシュを削除します。

Alias /mail /usr/share/apache2/roundcubemail
Alias /admin /usr/share/apache2/iredadmin

mod_python を使用する場合、mod_python にこれらのパスを処理しないように指示する必要があるため、それでも機能しません。

<Location /mail/>
    SetHandler None
</Location>

<Location /admin/>
    SetHandler None
</Location>

さらに別の問題として、/admin は通常、Django 管理インターフェースに使用され、それをオーバーライドしている可能性があります。

于 2013-05-07T03:42:29.893 に答える