我正在尝试创建一个小型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网站显示正常,但我一直收到内部服务器错误。
答案 0 :(得分: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管理界面,而您正在覆盖它。