Upgrade Apache Änderungen von Allow Order bei der Installation von Modoboa auf Ubuntu Trusty

Abstract

Als ich letzthin Apache von Version 2.2 zu 2.4 gewechselt habe, um Modoboa auf Ubuntu Trusty zu installieren, fiel ich über eine Änderung bei den Parametern Allow Order

Als ich letzthin Apache von Version 2.2 zu 2.4 gewechselt habe ,um Modoboa auf Ubuntu Trusty zu installieren, fiel ich über eine Änderung bei den Parametern Allow Order. Die Erklärung findet sich dann auch im Apache changelog.

...
in this example, all requests are allowed.
2.2 configuration:

Order allow,deny
Allow from all

2.4 configuration:

Require all granted

Apache 2.4 Vhost für Modoboa

Ich hab nun folgende Vhost Config erfolgreich getestet.

<VirtualHost *:80>
ServerName mail.test.de
DocumentRoot /srv/www/modoba/modoboa_example

<Directory /srv/www/modoba/modoboa_example/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

WSGIScriptAlias / /srv/www/modoba/modoboa_example/wsgi.py

Alias /media/ /srv/www/modoba/modoboa_example/media/
<Directory /srv/www/modoba/modoboa_example/media>
Require all granted
</Directory>

Alias /sitestatic/ /srv/www/modoba/modoboa_example/sitestatic/
<Directory /srv/www/modoba/modoboa_example/sitestatic>
Require all granted
</Directory>

Alias /robots.txt /srv/www/modoba/modoboa_example/sitestatic/robots.txt
Alias /favicon.ico /srv/www/modoba/modoboa_example/sitestatic/favicon.ico

</VirtualHost>

Im Error Log des Apache, erschien dann eine Meldung, dass modoboa_example.settings nicht eingebunden werden konnte, ich habe dann wsgi.py wie folgt abgeändert.

"""
WSGI config for modoboa_example project.

This module contains the WSGI application used by Django's development server
and any production WSGI deployments. It should expose a module-level variable
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
this application via the ``WSGI_APPLICATION`` setting.

Usually you will have the standard Django WSGI application here, but it also
might make sense to replace the whole Django WSGI application with a custom one
that later delegates to the Django one. For example, you could introduce WSGI
middleware here, or combine a Django application with an application of another
framework.

"""
import os, sys

sys.path.append('/srv/www/modoba')

# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
# if running multiple sites in the same mod_wsgi process. To fix this, use
# mod_wsgi daemon mode with each site in its own daemon process, or use
os.environ["DJANGO_SETTINGS_MODULE"] = "modoboa_example.settings"
#os.environ.setdefault("DJANGO_SETTINGS_MODULE", "modoboa_example.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)

Ich bin mir derzeit nicht sicher ob es nicht elegantere Lösungen dafür gibt, aber der Zugriff war damit zumindest möglich. Ich werde dazu noch bei Kollegen rückfragen.

Robert Schetterer, 26. February 2014