Samstag, 26. Mai 2012, 05:43

Du bist nicht angemeldet.



Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

1

Montag, 23. Januar 2012, 21:18

Eigenen Weave Sync Server aufsetzen

Dieses Howto beschreibt die Einrichtung eines Firefox Syncservers mit mysql-Unterstützung. Dies hier ist kein weave_minimal! In dem HowTo habe ich mein eigenes Vorgehen protokolliert. Es kommen absichtlch die deprecated Versionen zum Einsatz, da diese sofort einsatzbereit sind und nicht noch erst kompiliert werden müssen. Kompiliert man sich die aktuellen Versionen selber muss mit unter sqlite3 installiert werden, da 'server-full' (aktuelle Bezeichnung) darauf aufbaut und man es dann auf mysql umkonfiguriert. Darin sah ich keinen Sinn für mich. Ich hoffe es ist ausführlich genug beschrieben und hilft auch bei euerer Einrichtung eines eigenen Weave Syncserver.





Vorraussetzung
  • Vorhandener und eingerichteter Apache2 mit ssl, php5 und mysql

Informationen
  • Zum Entpacken der herunter geladenen Pakete wird hier 'unp' eingesetzt. Alternativ kann das Archiv auch auf andere weise entpackt werden.
    Die sub.Domain für den Weave-Server zeigt in diesem Beispiel auf /srv/www/vhosts/weave/ (Apache config Pfad, Documentroot)


Anwendungshinweise


Erste Synchronisation / Konto erstellen
Wenn man mit dem Firefox ein Benutzerkonto anlegen möchte, muss zu Beginn die url des Syncservers im browser aufgerufen werden. Erst wenn das Serverzertifikat heruntergeladen und akzeptiert worden ist, lässt sich die Serveradresse bei der Kontoerstellung verwenden!


Passwort vergessen
Sollte man mal sein Passwort vergessen, kann dieses über https://weave.meine_domain.de/passwort-vergessen zurückgesetzt werden. Aus dem Firefox herraus hat es bei mir nicht funktioniert, da Firefox nicht die eigene Serveradresse, sondern die Mozilla eigene aufruft.
Ein vorhandenes Passwort zu ändern ist hingegen kein Problem. Ist man erfolgreich an seinem Sync-Server angemeldet, kann das Passwort direkt aus dem Firefox herraus geändert werden.


Benutzer löschen
Über die Adresse https://weave.meine_domain.de/benutzer-loeschen lässt sich die zugehörige Seite öffnen. Von Hause aus ist diese Funktion in der Apachekonfiguration deaktiviert und muss nur in Betrieb genommen werden damit sie nutzbar ist. Getestet habe ich diese Funktion bisher noch nicht. Ich sehe aber keinen Grund warum sie nicht funktionieren sollte.
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

2

Montag, 23. Januar 2012, 23:10

Reg-Server

Herunterladen des Reg-Servers

Quellcode

1
wget http://hg.mozilla.org/services/deprecated/reg-server/archive/tip.tar.bz2


Umbenennen des Reg-Servers, da der Sync-Server den gleichen Namen beim späteren download hat.

Quellcode

1
mv tip.tar.bz2 reg-server.tar.bz2


Entpacken

Quellcode

1
unp reg-server.tar.bz2


In /srv/www/vhosts/weave/ wird der Ordner 'regserver' erstellt.

Quellcode

1
mkdir -p /srv/www/vhosts/weave/regserver


Den Ordner '1.0' des entpackten Archives in das web-Verzeichnis kopieren.

Quellcode

1
cp -rp reg-server-*/1.0/ /srv/www/vhosts/weave/regserver/


In das regserver-Verzeichns wechseln

Quellcode

1
cd /srv/www/vhosts/weave/regserver/1.0/


und die weave_user_constants.php.dist kopieren/umbenennen

Quellcode

1
cp weave_user_constants.php.dist weave_user_constants.php


Konfigurationsdatei bearbeiten

Quellcode

1
vi weave_user_constants.php


Und unterhalb der Zeile

Zitat

#host, db name, username and password for the mysql auth store

die Angaben zur MySql eintragen (host, database, user, passwort)

Quellcode

1
2
3
4
5
6
#host, db name, username and password for the mysql auth store
if (!defined('WEAVE_MYSQL_AUTH_HOST')) { define('WEAVE_MYSQL_AUTH_HOST', 'localhost'); }
if (!defined('WEAVE_MYSQL_AUTH_DB')) { define('WEAVE_MYSQL_AUTH_DB', 'weave'); }
if (!defined('WEAVE_MYSQL_AUTH_USER')) { define('WEAVE_MYSQL_AUTH_USER', 'weave'); }
if (!defined('WEAVE_MYSQL_AUTH_PASS')) { define('WEAVE_MYSQL_AUTH_PASS', 'weave'); }
#if (!defined('WEAVE_MYSQL_AUTH_PORT')) { define('WEAVE_MYSQL_AUTH_PORT', 3306); }


Ein paar Zeilen tiefer aktiviert man den Eintrag

Quellcode

1
if (!defined('WEAVE_SHA_SALT')) { define('WEAVE_SHA_SALT', 'salt goes here'); }


und tauscht den Satz 'salt goes here' gegen ein eigenes max. 16 Zeichen langes Passwort aus, welches zum späteren Zeitpunkt auch in die Konfiguration des Syncserver eingetragen wird.
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

3

Dienstag, 24. Januar 2012, 20:38

MySql Tabelle anlegen - Reg-Server

Eine Datenbank namens 'weave' anlegen und in dieser folgende Tabelle anlegen. Grundsätzlich empfiehlt es sich für den Zugriff auf die mysql-Datenbank einen separaten weave-user anzulegen. Die notwendigen Rechte dieses mysql-users sind auf dem angehängten screenshot zu ersehen.

Quellcode

1
2
3
4
5
6
7
8
9
10
CREATE TABLE users (
  id int(11) NOT NULL PRIMARY KEY auto_increment,
  username varchar(32) NOT NULL,
  password_hash varbinary(128) DEFAULT NULL,
  email varbinary(64) DEFAULT NULL,
  status tinyint(4) DEFAULT '1',
  alert text,
  reset varchar(32) DEFAULT NULL,
  reset_expiration datetime
) engine=InnoDB;
»Easyy-S« hat folgendes Bild angehängt:
  • mysqluserrechte.png
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

4

Dienstag, 24. Januar 2012, 21:13

Apachekonfig - Reg-Server

Die Documentroot in diesem Beispiel ist /srv/www/vhosts/weave/

In die Seitenkonfigurationdatei des Apache für weave (/etc/apache2/sites-available/..) folgenden Eintrag hinzufügen.

Quellcode

1
2
3
4
Alias /user/1.0 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /user/1 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /passwort-vergessen /srv/www/vhosts/weave/regserver/1.0/forgot_password.php
#Alias /benutzer-loeschen /srv/www/vhosts/weave/regserver/1.0/delete_user.php


Die komplette Konfiguration könnte dann zum Beispiel so aussehen (inkl. der Einträge für den Sync-Server die weiter unten folgen):

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<VirtualHost *:443>

  ServerAdmin webmaster@meine_domain.de
        DocumentRoot /srv/www/vhosts/weave/
        ServerName weave.meine_domain.de
        DirectoryIndex index.php index.html
        ErrorLog /var/log/apache2/weave-ssl-error.log
        TransferLog /var/log/apache2/weave-ssl-access.log

Alias /user/1.0 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /user/1 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /passwort-vergessen /srv/www/vhosts/weave/regserver/1.0/forgot_password.php
#Alias /benutzer-loeschen /srv/www/vhosts/weave/regserver/1.0/delete_user.php

Alias /1.2 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.1 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.0 /srv/www/vhosts/weave/syncserver/1.1/index.php

  <IfModule mod_ssl.c>
  SSLCertificateFile /etc/ssl/certs/weave.crt
  SSLCertificateKeyFile /etc/ssl/private/weave.key
  SSLEngine on
  SSLOptions +StrictRequire
  </IfModule>

        <Directory "/">
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory "/srv/www/vhosts/weave">
                Options Indexes FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

5

Dienstag, 24. Januar 2012, 21:34

Sync-Server

Die Einrichtung des Sync-Servers verläuft sehr ähnlich wie die des Reg-Servers.

Herunterladen des Sync-Servers

Quellcode

1
wget http://hg.mozilla.org/services/deprecated/sync-server/archive/tip.tar.bz2


Umbenennen des Sync-Servers.

Quellcode

1
mv tip.tar.bz2 sync-server.tar.bz2


Entpacken

Quellcode

1
unp sync-server.tar.bz2


In /srv/www/vhosts/weave/ wird der Ordner 'syncserver' erstellt.

Quellcode

1
mkdir -p /srv/www/vhosts/weave/syncserver


Den Ordner '1.1' des entpackten Archives in das web-Verzeichnis kopieren.

Quellcode

1
cp -rp reg-server-*/1.1/ /srv/www/vhosts/weave/syncserver/


In das syncserver-Verzeichns wechseln

Quellcode

1
cd /srv/www/vhosts/weave/syncserver/1.1/


und die Datei default_constants.php.dist kopieren/umbenennen

Quellcode

1
cp default_constants.php.dist default_constants.php


Konfigurationsdatei bearbeiten

Quellcode

1
vi default_constants.php


Hier müssen zwei Abschnitte editiert werden. host, Datenbank, Benutzer und Passwort eintragen.

Quellcode

1
2
3
4
5
6
#host, db name, username and password for the auth store
if (!defined('WEAVE_MYSQL_STORE_READ_HOST')) { define('WEAVE_MYSQL_STORE_READ_HOST', 'localhost'); }
if (!defined('WEAVE_MYSQL_STORE_READ_DB')) { define('WEAVE_MYSQL_STORE_READ_DB', 'weave'); }
if (!defined('WEAVE_MYSQL_STORE_READ_USER')) { define('WEAVE_MYSQL_STORE_READ_USER', 'weave'); }
if (!defined('WEAVE_MYSQL_STORE_READ_PASS')) { define('WEAVE_MYSQL_STORE_READ_PASS', 'weave'); }
#if (!defined('WEAVE_MYSQL_STORE_READ_PORT')) { define('WEAVE_MYSQL_STORE_READ_PORT', '3306'); }

Quellcode

1
2
3
4
5
6
        #host, db name, username and password for the mysql auth store
        if (!defined('WEAVE_MYSQL_AUTH_HOST')) { define('WEAVE_MYSQL_AUTH_HOST', 'localhost'); }
        if (!defined('WEAVE_MYSQL_AUTH_DB')) { define('WEAVE_MYSQL_AUTH_DB', 'weave'); }
        if (!defined('WEAVE_MYSQL_AUTH_USER')) { define('WEAVE_MYSQL_AUTH_USER', 'weave'); }
        if (!defined('WEAVE_MYSQL_AUTH_PASS')) { define('WEAVE_MYSQL_AUTH_PASS', 'weave'); }
        #if (!defined('WEAVE_MYSQL_AUTH_PORT')) { define('WEAVE_MYSQL_AUTH_PORT', '3306'); }


Danach den SALT-Eintrag aktivieren und das gleiche Passwort eintragen, wie es im Reg-Server eingefügt worden ist.

Quellcode

1
if (!defined('WEAVE_SHA_SALT')) { define('WEAVE_SHA_SALT', 'salt goes here'); }


Das Quota per user einzusetzen macht Sinn und kann auf 100MB beschränkt werden. Zeile aktivieren und Speicherfreigabe bearbeiten.

Quellcode

1
2
#The maximum quota per user in bytes. Keep commented out to turn quotas off
if (!defined('WEAVE_QUOTA')) { define('WEAVE_QUOTA',102400000); } #100MB
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

6

Dienstag, 24. Januar 2012, 21:35

MySql Tabelle anlegen - Sync-Server

In der MySql-Datenbank 'weave' folgende Tabellen erstellen.

Quellcode

1
2
3
4
5
6
7
CREATE TABLE collections (
  userid int(11) NOT NULL,
  collectionid smallint(6) NOT NULL,
  name varchar(32) NOT NULL,
  PRIMARY KEY  (userid,collectionid),
  KEY nameindex (userid,name)
) ENGINE=InnoDB;


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE wbo (
  username int(11) NOT NULL,
  collection smallint(6) NOT NULL default '0',
  id varbinary(64) NOT NULL default '',
  parentid varbinary(64) default NULL,
  predecessorid varbinary(64) default NULL,
  sortindex int(11) default NULL,
  modified bigint(20) default NULL,
  payload longtext,
  payload_size int(11) default NULL,
  ttl int(11) default '2100000000',
  PRIMARY KEY  (username,collection,id),
  KEY modified (username,collection,modified),
  KEY ttl_idx (ttl)
) ENGINE=InnoDB;
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

7

Dienstag, 24. Januar 2012, 23:05

Apachekonfig - Sync-Server

Die Documentroot in diesem Beispiel ist /srv/www/vhosts/weave/

In die Seitenkonfigurationdatei des Apache für weave (/etc/apache2/sites-available/..) folgenden Eintrag hinzufügen.

Quellcode

1
2
3
Alias /1.2 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.1 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.0 /srv/www/vhosts/weave/syncserver/1.1/index.php


Die komplette Konfiguration könnte dann zum Beispiel so aussehen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<VirtualHost *:443>

  ServerAdmin webmaster@meine_domain.de
        DocumentRoot /srv/www/vhosts/weave/
        ServerName weave.meine_domain.de
        DirectoryIndex index.php index.html
        ErrorLog /var/log/apache2/weave-ssl-error.log
        TransferLog /var/log/apache2/weave-ssl-access.log

Alias /user/1.0 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /user/1 /srv/www/vhosts/weave/regserver/1.0/index.php
Alias /passwort-vergessen /srv/www/vhosts/weave/regserver/1.0/forgot_password.php
#Alias /benutzer-loeschen /srv/www/vhosts/weave/regserver/1.0/delete_user.php

Alias /1.2 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.1 /srv/www/vhosts/weave/syncserver/1.1/index.php
Alias /1.0 /srv/www/vhosts/weave/syncserver/1.1/index.php

  <IfModule mod_ssl.c>
  SSLCertificateFile /etc/ssl/certs/weave.crt
  SSLCertificateKeyFile /etc/ssl/private/weave.key
  SSLEngine on
  SSLOptions +StrictRequire
  </IfModule>

        <Directory "/">
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory "/srv/www/vhosts/weave">
                Options Indexes FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

</VirtualHost>
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Easyy-S

Boardgrafiker

  • »Easyy-S« ist der Autor dieses Themas

Beiträge: 2 987

Ubuntu: 12.04

Kernel: generic

Desktop: GNOME Shell

Architektur: 64-bit

Danksagungen: 3 / 1

  • Private Nachricht senden

8

Mittwoch, 25. Januar 2012, 00:01

Weiterführende Anpassungen

Abschliessend ein chown auf die weave-Dateien durchführen. Bei Ubuntu ist das der user und die Gruppe 'www-data'.

Quellcode

1
chown -R www-data:www-data /srv/www/vhosts/weave/


# # #

Apachekonfiguration aktivieren und und einlesen

Quellcode

1
a2ensite weave

Quellcode

1
service apache2 reload


# # #

Um Fehlermeldungen zu vermeiden die auf eine fehlende Sprache zurück zu führen sind

Quellcode

1
vi /srv/www/vhosts/weave/syncserver/1.1/weave_user/mysql.php

Ändere

Quellcode

1
if (setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8") == false)

in

Quellcode

1
if (setlocale(LC_CTYPE, "UTF8", "de_DE.UTF-8") == false)


# # #

Leere index.html in der webroot erstellen

Ruft man die Sync-Serveradresse im browser auf, bekommt man die obere Verzeichnisstruktur von weave angezeigt. Da das eher unschön ist, kann man dies mit einer ganz einfachen index.html abstellen.

Quellcode

1
vi /srv/www/vhosts/weave/index.html


Inhalt der index.html

Quellcode

1
2
3
<head></head>
Firefox Sync
<body></body>

Benutzer ändern

Quellcode

1
chown www-data:www-data /srv/www/vhosts/weave/index.html

und Datei in zwei weitere Verzeichniss kopieren

Quellcode

1
cp -p /srv/www/vhosts/weave/index.html /srv/www/vhosts/weave/regserver/

Quellcode

1
cp -p /srv/www/vhosts/weave/index.html /srv/www/vhosts/weave/syncserver/
Easyy-S

Mein pubkey

Dein eigener UbuntuFreunde-Avatar: hier - Dein UbuntuFreunde-Banner: hier

Ähnliche Themen

Verwendete Tags

Firefox, Server, Sync, Weave