Ceci est une ancienne révision du document !


Installation d'un serveur Weave

Mozilla Weave est un outil permettant de synchroniser ses favoris, son historique, ses préférences, ses mots de passe, ses formulaires, ainsi que les onglets.
Bien entendu, il est possible d'utiliser Weave sur plusieurs ordinateurs en même temps, c'est justement ce côté qui est pratique. Ainsi, les navigateurs des différents ordinateurs que l'on utilise disposent de la même configuration quelque soit l'instant.
Pour le moment, seul le navigateur Mozilla Firefox est supporté.

Préparation

Un serveur Weave se compose essentiellement d'un ensemble de scripts PHP.
Pour installer un serveur Weave, il est donc nécessaire d'avoir :

  • un serveur HTTP (Apache dans ce cas présent),
  • PHP5 avec le support JSON, UTF-8 et PDO
  • un serveur MySQL

Pour le serveur MySQL, on suppose qu'une base de données weave a été créée. On s'y connecte avec l'utilisateur weave ayant comme mot de passe weave.

Dans mon cas, le serveur sera installé à l'adresse suivante : https://weave.gromez.fr/

Le répertoire où seront déposé les fichiers du serveur Weave est le suivant : /var/www/gromez.fr/weave/.

Initialisation de la base de données

Les données utilisateur sont stockées dans une base de données.
Il suffit simplement de l'initialiser avec la requête suivante :

CREATE TABLE `users` (
  id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  username varbinary(32) NOT NULL,
  md5 varbinary(64) DEFAULT NULL,
  email varbinary(64) DEFAULT NULL,
  STATUS tinyint(4) DEFAULT '1',
  alert text,
  reset varchar(32)
) ENGINE=InnoDB;
 
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;
 
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,
  PRIMARY KEY  (`username`,`collection`,`id`),
  KEY `parentindex` (`username`,`collection`,`parentid`),
  KEY `modified` (`username`,`collection`,`modified`),
  KEY `weightindex` (`username`,`collection`,`sortindex`),
  KEY `predecessorindex` (`username`,`collection`,`predecessorid`),
  KEY `size_index` (`username`,`payload_size`)
) ENGINE=InnoDB;

Attention : il est possible que le schéma de base de données évolue au fil du temps, donc il est préférable de jeter un œil au README fourni avec le serveur.

Installation des fichiers serveur

cd /var/www/gromez.fr/weave/
hg clone http://hg.mozilla.org/labs/weaveserver-sync
hg clone http://hg.mozilla.org/labs/weaveserver-registration

Dans le répertoire /var/www/gromez.fr/weave/, il devrait maintenant y avoir deux nouveaux répertoires : weaveserver-sync et weaveserver-registration.

Configuration

Partie «registration»

cd /var/www/gromez.fr/weave/weaveserver-registration/1.0/
cp weave_user_constants.php.dist weave_user_constants.php

Il ne reste plus qu'à éditer ce fichier weave_user_constants.php.

{...}
# ***** END LICENSE BLOCK *****

define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_HOST', 'localhost');
define('WEAVE_MYSQL_AUTH_DB', 'weave');
define('WEAVE_MYSQL_AUTH_USER', 'weave');
define('WEAVE_MYSQL_AUTH_PASS', 'weave');

define('WEAVE_SHA_SALT', 'tatayoyo');

define('WEAVE_REGISTER_USE_CAPTCHA', 1);
define('RECAPTCHA_PUBLIC_KEY', 'votre_cle_publique_chez_recaptcha.net');
define('RECAPTCHA_PRIVATE_KEY', 'votre_cle_privee_chez_recaptcha.net');

define('WEAVE_PASSWORD_RESET_EMAIL', 'admin@gromez.fr');

#engine for auth
{...}

Partie «sync»

cd /var/www/gromez.fr/weave/weaveserver-sync/1.0/
cp default_constants.php.dist default_constants.php

Il ne reste plus qu'à éditer ce fichier default_constants.php.

{...}
# ***** END LICENSE BLOCK *****

define('WEAVE_STORAGE_ENGINE', 'mysql');

define('WEAVE_MYSQL_STORE_READ_HOST', 'localhost');
define('WEAVE_MYSQL_STORE_READ_DB', 'weave');
define('WEAVE_MYSQL_STORE_READ_USER', 'weave');
define('WEAVE_MYSQL_STORE_READ_PASS', 'weave');

define('WEAVE_AUTH_ENGINE', 'mysql');
define('WEAVE_MYSQL_AUTH_HOST', WEAVE_MYSQL_STORE_READ_HOST);
define('WEAVE_MYSQL_AUTH_DB', WEAVE_MYSQL_STORE_READ_DB);
define('WEAVE_MYSQL_AUTH_USER', WEAVE_MYSQL_STORE_READ_USER);
define('WEAVE_MYSQL_AUTH_PASS', WEAVE_MYSQL_STORE_READ_PASS);

define('WEAVE_SHA_SALT', 'tatayoyo');

#engine for storage.
{...}

La configuration des fichiers Weave est maintenant terminée.

Configuration Apache

Côté Apache, il faut configurer un VirtualHost qui sera utilisé lorsque l'on interrogera https://weave.gromez.fr/.
Voici un exemple :

<VirtualHost *:80 *:443>
        ServerName weave.gromez.fr
        ServerAdmin admin@gromez.fr

        ErrorLog /var/log/apache2/gromez.fr/weave.error.log
        CustomLog /var/log/apache2/gromez.fr/weave.access.log combined

        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

        Alias /user/1.0 /var/www/gromez.fr/weave/weaveserver-registration/1.0/index.php
        Alias /user/1 /var/www/gromez.fr/weave/weaveserver-registration/1.0/index.php

        Alias /misc/1/captcha_html /var/www/gromez.fr/weave/weaveserver-registration/1.0/captcha.php
        Alias /misc/1.0/captcha_html /var/www/gromez.fr/weave/weaveserver-registration/1.0/captcha.php

        Alias /weave-registration-static /var/www/gromez.fr/weave/weaveserver-registration/1.0/static
        Alias /weave-password-reset /var/www/gromez.fr/weave/weaveserver-registration/1.0/forgot_password.php

        Alias /1.0 /var/www/gromez.fr/weave/weaveserver-sync/1.0/index.php

        <Directory "/var/www/gromez.fr/weave/">
                Options Indexes FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
gentoo powered apache powered dokuwiki powered