Weave-Server 1.0 mit mod_rewrite einrichten
1. Februar 2010Beim Versuch den neuen Weave-Server (Version 1.0) auf meinem Webserver zu installieren, bin ich auf einige Probleme gestoßen. Wie ich diese – durch ein paar auf mein Webhosting zugeschnittene Anpassungen – gelöst habe, will ich kurz beschreiben:
Vorweg sei gesagt, dass man sich grundsätzlich natürlich an die Installations-Anleitung halten sollte. Die meisten der dort beschriebenen Schritte werden an dieser Stelle vorausgesetzt!
Da ich keinen eigenen Webserver besitze unterliege ich (leider) einigen Beschränkungen, was die Konfiguration des Servers betrifft. Eine dieser Beschränkungen erlaubt es mir nicht, wie bei der Installation des Weave-Servers verlangt, Alias-Direktiven zu verwenden bzw. die Apache-Konfiguration anzupassen. Deshalb verwende ich zur Konfiguration „mod_rewrite“, welches ich per .htaccess konfiguriere.
Die Verwendung schau exemplarisch nun so aus:
# Replace following Aliases with mod_rewrite
#
# Alias /1.0 „<PATH_TO_DOCUMENT_ROOT>/weaveserver-sync/1.0/index.php“
RewriteRule ^1\.0/(.*) <PATH_TO_DOCUMENT_ROOT>/weaveserver-sync/1.0/index.php [PT,NC,L]
Weitere solcher Regeln muss man nun für die folgenden Aliase anlegen:
Alias /user/1.0 „/weaveserver-registration/1.0/index.php“
Alias /user/1 „/weaveserver-registration/1.0/index.php“
Alias /weave-registration-static „/weaveserver-registration/1.0/static“
Alias /weave-password-reset „/weaveserver-registration/1.0/forgot_password.php“
Eine weitere Besonderheit bei meinem Webhoster ist, dass die zur Authentifizierung erforderlichen Header nicht so ohne weiteres an das php-Skript weitergeleitet werden. Da kann man sich folgendermaßen behelfen:
# Forward the headers to the weave scripts
RewriteRule .* – [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
RewriteRule .* – [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
RewriteRule .* – [E=Authorization:%{HTTP:Authorization}]
RewriteRule .* – [E=AUTHORIZATION:%{HTTP:AUTHORIZATION}]
RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule .* – [E=REDIRECT_HTTP_AUTHORIZATION:%{HTTP:REDIRECT_HTTP_AUTHORIZATION}]
Nun ist die Serverseitige-Konfiguration abgeschlossen und es fehlen nur mehr kleine Änderungen, die an 2 Skripts vorgenommen werden müssen.
Da der Weave-Server in dieser Konstellation die übergebene Pfade leider nicht richtig verarbeitet, muss man ihm das noch beibringen. Dazu wird jeweils in der index.php im Ordner weaveserver-sync/1.0 und weaveserver-registration/1.0 folgendes ergänzt (mit „HACK“ markiert):
$path = ‚/‘;
if (!empty($_SERVER[‚PATH_INFO‘]))
$path = $_SERVER[‚PATH_INFO‘];
else if (!empty($_SERVER[‚ORIG_PATH_INFO‘]))
$path = $_SERVER[‚ORIG_PATH_INFO‘];
//HACK
else if (!empty($_SERVER[‚REQUEST_URI‘]))
list($path) = explode(‚?‘, $_SERVER[‚REQUEST_URI‘]);
Eine kleine Änderung findet sich noch in der Zeile darunter, um die eingelesenen Pfade auch richtig zu übergeben:
//HACK
if (defined(‚WEAVE_ROOT_FOLDER‘))
$path = substr($path, strlen(WEAVE_ROOT_FOLDER)); #chop the root folder
else
$path = substr($path, 1); #chop the lead slash
Die Variable „WEAVE_ROOT_FOLDER“ ist dabei im Skript mit all den anderen Konstanten definiert. Im angebotenen Download ist das alles schon vorbereitet und man muss folgende Dateien lediglich noch an seine Konfiguration anpassen:
- .htaccess
- weaveserver-registration/1.0/weave_user_constants.php
- weaveserver-sync/1.0/default_constants.php
User Einrichtung
Manuell lassen sich Benutzer in z.B.: phpMyAdmin so einrichten:
insert into users (username, md5, email, status) values (‚username‘, md5(‚password‘), ‚user@example.com‘, 1);
Download
Das ganze Paket kann hier heruntergeladen werden.
Changelog
- 0.1 (20100202): Initial release
- 0.2 (20100205): Fixed typo
- 0.3 (20100205): Fixed problem with captcha
- 0.4 (20100214): Updated weaveserver-sync to revision „cb6a9595ed5c“ and weaveserver-registration to revision „09b8c61b6e87“
- 0.5 (20100406): Updated weaveserver-sync to revision „b3b982c60778“ and weaveserver-registration to revision „cef052cbac41“
- 0.6 (20100413): Updated weaveserver-sync to revision „36f6c5b82e2d“ and weaveserver-registration to revision „544cfa94c8e1“
- 0.7 (20100422): Updated weaveserver-sync to revision „511d1b8f24e6“ and weaveserver-registration to revision „957db6aa5daf“
- 0.8 (20100512): Updated weaveserver-sync to revision „3032e32701c1“ and weaveserver-registration to revision „9fb294d8a602“
- 0.9 (20100602): Updated weaveserver-sync to revision „26090417e838“ and weaveserver-registration to revision „6aa735150d14“
- 0.10 (20101024): Updated sync-server to revision „5b291f5d053b“ and reg-server to revision „579bb5fd405e“