Apache
Der Apache-Webserver ist eine Voraussetzung für ein Content Mangement System mit WebGUI. Die Basiskonfiguration setzt hierzu mod_perl und libapr (Apache2::Request) voraus.
Zum Betrieb von WebGUI als virtueller Apache-Server sind die
folgenden Ergänzungen der Apache-Konfigurations-Datei httpd.conf
notwendig:
(angenommen, Ihre Module liegen im Unterverzeichnis "modules")
Standard:
...
# Anforderungen WebGUI 7 in der Apache-Konfiguration
LoadModule perl_module modules/mod_perl.so
LoadModule apreq_module modules/mod_apreq2.so
PerlSetVar WebguiRoot /data/WebGUI
PerlCleanupHandler Apache2::SizeLimit
PerlRequire /data/WebGUI/sbin/preload.perl
# Mit einem virtuellen Host
NameVirtualHost <IP-Adresse>:80
<VirtualHost <domainname>:80>
ServerName <domainname>
DocumentRoot /data/WebGUI/www
SetHandler perl-script
PerlInitHandler WebGUI
PerlSetVar WebguiConfig WebGUI.conf
</VirtualHost>
Mehrere virtuelle Hosts, mit einer Apache-Instanz:
(s. auch Standard-Datei-Hierarchie)
# Proxy-Konfiguration (Dieser Host leitet Anfragen weiter)
# Proxy-Port in der Regel Port 80
<VirtualHost *:[% modproxyPort %]>
ServerName [% sitename %]
ServerAlias [% domain %]
CustomLog [% domainRoot %]/[% sitename %]/logs/access.log combined
DocumentRoot [% domainRoot %]/[% sitename %]/public
# turn on mod_rewrite
RewriteEngine On
RewriteLog "[% wreRoot %]/var/logs/modrewrite.log"
RewriteLogLevel 0
# block IIS related attacks from getting to WebGUI
RewriteRule ^/scripts/ - [L]
RewriteRule ^/default.ida - [L]
RewriteRule ^/_vti_bin - [L]
RewriteRule ^/_mem_bin - [L]
# leave static stuff to be served directly by modproxy
RewriteRule ^/favicon.ico - [L]
RewriteRule ^/extras/ - [L]
# Uploads werden möglichst sofort geliefert
# For speed we only pass on uploads if there is a .wgaccess file
RewriteCond %{REQUEST_FILENAME} ^(.*/)
RewriteCond ${DOCUMENT_ROOT}%1.wgaccess !-f
RewriteRule ^/uploads/ - [L]
# Weiterleitung zum eigentlichen Server
# proxy webgui pages
ProxyPreserveHost On
RewriteRule ^/(.*) http://127.0.0.1:[% modperlPort %]/$1 [P]
</VirtualHost>
# Weitere Hosts (Anfragen kommen über Proxy)
<VirtualHost *:[% modperlPort %]>
ServerName [% sitename %]
ServerAlias [% domain %]
DocumentRoot [% domainRoot %]/[% sitename %]/public
SetEnvIf SSLPROXY "1" \
SSLPROXY
SetHandler perl-script
PerlInitHandler WebGUI
PerlSetVar WebguiConfig [% sitename %].conf
</VirtualHost>
Der komplexere Fall:
Wenn Sie mehrere WebGUI-Versionen gleichzeitig laufen lassen möchten, kann das mit einer Proxy-Konfiguration (z.B. auf Port 80) und weiteren Apache-Instanzen realisiert werden.
Schlüsselworte: webserver proxy virtualhost
