Personnalisation de Vhost sur DTC:

Nous traiterons dans cet exemple de l'ajout de la fonction WEBDAV(approve sites) sur le serveur et de son intégration et définition dans les fichiers apache2 pour un domaine et un répertoire donné.

Installation de WebDav avec authentification MySQL:

Nous considérons que votre serveur fonctionne correctement et que DTC est installé. Il ne vous manque donc qu'a activer WebDav et installer le module d'authentification MySQL.

Pour le module:

    apt-get install libapache2-mod-auth-mysql

Pour activer WebDAV:

    a2enmod dav_fs
    a2enmod dav
    a2enmod auth_mysql

Puis relancez apache2:

   invoke-rc.d apache2 restart

A ce stade tout devrait être en place et prêt à être configuré.

Il vous faut définir la table et l'utilisateur SQL pour webdav:

vous trouverez la documentation dans: /usr/share/doc/libapache2-mod-auth-mysql

    cd /usr/share/doc/libapache2-mod-auth-mysql
    gunzip DIRECTIVES.gz
    nano DIRECTIVES

et

    gunzip USAGE.gz
    nano USAGE

Au vue de cette lecture, nous allons donc créer l'utilisateur webdav pour MySQL:

    mysqladmin -u root -p create webdav

et son utilisateur avec ses droits: en se connectant sur le serveur SQL en root

    mysql -u root -p

puis:

    GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO 'webdav_admin'@'localhost' IDENTIFIED BY 'webdav_admin_password';
    GRANT SELECT, INSERT, UPDATE, DELETE ON webdav.* TO 'webdav_admin'@'localhost.localdomain' IDENTIFIED BY 'webdav_admin_password';
    FLUSH PRIVILEGES;

En prenant soins de remplacer webdav_admin_password par le mot de passe d'admin de webdav désiré.

Nous pouvons donc nous connecter en tant que webdav:

    USE webdav;

puis créer la table:

    create table mysql_auth (
    username char(25) not null,
    passwd char(32),
    groups char(25),
    primary key (username)
    );

note: nous pourrions tout aussi bien, assez simplement, utiliser le champ admin de la table DTC pour obtenir les login et identifiants directement sans avoir à re-créer les users, mais ce n'est pas le sujet ici.

Créons donc notre utilisateur test, du groupe testgroup avec un mot de passe test (crypté en MD5) sur la table mysql_auth:

    INSERT INTO `mysql_auth` (`username`, `passwd`, `groups`) VALUES('test', MD5('test'), 'testgroup');

puis sortons de MySQL:

    quit;

Voilà webdav est donc ready et notre utilisateur test est connu.


Modifier les fichiers Vhost d'apache via DTC:

Sauvegardons préalablement AVANT TOUTE CHOSE le fichier original:

    cp /var/lib/dtc/etc/vhosts.conf /var/lib/dtc/etc/vhosts.conf.orig

Paramétrer l'emplacement de webdav

Considérons que notre dossier est sur http://www.monsite.com/mon_webdav(approve sites) soit /var/www/sites/moi/monsite.com/subdomains/www/html/mon_webdav

Il nous faut donc plusieurs choses:

  • La déclaration de l'alias mon_webdav
  • Les répertoires mon_webdav, DavLockDB et .DAV
  • La déclaration apache des directives de mon_webdav
  • La déclaration de l'emplacement du cache DavLockDB
  • La définition de l'hôte virtuel avec l'activation de webdav

Créer via votre client FTP les répertoires requis:

  • mon_webdav
    • .DAV
    • DavLockDB

Renseigner le fichier vhost:

Nous allons:

  • Créer un alias de /var/www/sites/moi/monsite.com/subdomains/www/html/mon_webdav avec le nom mon_webdav
  • Attribuer les paramètres de bases au répertoire mon_webdav
  • Déclarer le cache DavLockDB
  • Activer webdav sur mon_webdav
    Alias /mon_webdav/ "/var/www/sites/moi/monsite.com/subdomains/www/html/mon_webdav/"
    <Directory www/sites/moi/monsite.com/subdomains/www/html/mon_webdav>
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    DavLockDB /var/www/sites/moi/monsite.com/subdomains/www/html/mon_webdav/DavLockDB
    <Location /mon_webdav>
        DAV On
        AuthBasicAuthoritative Off
        AuthUserFile /dev/null
        AuthMySQL On
        AuthName "webdav"
        AuthType Basic
        Auth_MySQL_Host localhost
        Auth_MySQL_User webdav_admin
        Auth_MySQL_Password webdav_admin_password
        AuthMySQL_DB webdav
        AuthMySQL_Password_Table mysql_auth
        Auth_MySQL_Username_Field username
        Auth_MySQL_Password_Field passwd
        Auth_MySQL_Empty_Passwords Off
        Auth_MySQL_Encryption_Types PHP_MD5
        Auth_MySQL_Authoritative On
        require valid-user
    </Location>

Pour ce faire rendons nous dans l'administration du domaine de l'utilisateur concerné sur DTC.

  • Cliquez sur le lien Customiser de la colonne Vhost du domaine conerné.
  • Cliquer sur le sous-domaine concerné
  • Copier les déclarations ci-dessus (renseignés correctement) dans le champs prévu à cet effet
  • Sauvegardez.

Allez ensuite sur la génération de fichiers de config et cliquer sur vhost afin que DTC génère un nouveau fichier en incluant vos modifications.

test:

Vous pouvez désormais tester votre dossier webdav avec cadaver:

    apt-get install cadaver

puis

    cadaver http://localhost/mon_webdav/(approve sites)

et renseigner votre user test et son mot de passe.

sources:


Editing this page means accepting its license.

Page last modified on June 22, 2010, at 11:59 AM EST