Owncloud, installation avec nginx 1.0.8 (gestion fichiers & webdav) (1/5)
Voila de nombreux mois que je suis avec attention le projet owncloud et la sortie de sa version stable. Auto-hébergeant certains de mes services tels que les mails, les flux RSS et d’autres encore, j’étais à la recherche d’une solution de sauvegarde multiplateforme de mes fichiers avec laquelle je puisse travailler de n’importe où depuis Linux ou windows.
Overview
De nombreuses solutions prometteuses sont en developpement et de bons articles parus sur planet-libre en font l’éloges. Je citerais :
- Sparkleshare (Basé sur git et ssh, un client linux/mac est disponible. Celui pour windows est en développement)
- Syncany (Supporte de nombreux protocoles tels que le ftp,sftp, webdav etc….)
- DCVS-autosync
Owncloud se différencie des autres solutions alternative à Dropbox par l’intégration d’une interface web très abouti :
- Gestion des utilisateurs et groupes
- Partage de fichiers entre utilisateurs, génération de liens pour une diffusion publique
- Upload multiple de fichiers
- Versionning des documents
- Gestion de quotas pour les utilisateurs
Voilà en ce qui concerne les fonctionnalités de gestion des fichiers offerte par l’interface web. Je détaillerais les suivantes dans les articles suivants.
La dernière fonctionnalité très importante (pour moi) est le support du protocole WEBDAV. Celui-ci permets de monter un dossier web dans son environnement de travail sans avoir à se soucier de l’OS.
La suite de cet article détaille l’installation d’owncloud sur nginx 1.0.8 et l’utilisation des fonctionnalités de gestion des fichiers.
Installation d’ownCloud
Je suppose ici que vous ayez initialement une installation de votre serveur web sous nginx, php fast-cgi et mysql de fonctionnel, sinon se référer à un précédant article.
(re)Compilation de nginx 1.0.8
Par défaut le module HttpDavModule n’est pas compilé, c’est pourquoi nous allons devoir recompiler nginx, afin de bénéficier du support webdav d’ownCloud.
Pensez tout de même à désinstaller votre ancienne version d’nginx. Vos fichiers de configuration et script de démarrage ne devraient pas être supprimés.
cd /tmp wget http://nginx.org/download/nginx-1.0.8.tar.gz tar -zxvf nginx-1.0.8.tar.gz cd nginx-1.0.8
./configure \\ --prefix=/usr \\ --conf-path=/etc/nginx/nginx.conf \\ --http-log-path=/var/log/nginx/access_log \\ --error-log-path=/var/log/nginx/error_log \\ --pid-path=/var/run/nginx.pid \\ --user=www-data \\ --group=www-data \\ --http-client-body-temp-path=/var/lib/nginx/body \\ --http-proxy-temp-path=/var/lib/nginx/proxy \\ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \\ --with-md5=/usr/lib \\ --with-http_ssl_module \\ --with-http_gzip_static_module \\ --with-http_realip_module \\ --with-http_stub_status_module \\ --with-http_flv_module \\ --with-pcre \\ --without-mail_pop3_module \\ --without-mail_imap_module \\ --without-mail_smtp_module \\ --with-http_dav_module \\ --with-debug
On lance la compilation puis la création d’un « pseudo » paquet durant l’installation afin de pouvoir désinstallaer proprement nginx si besoin (dpkg -r nginx).
make checkinstall make install
A présent vous devriez avoir nginx réinstallé avec HttpDavModule.
Il faut maintenant creer un vhost approprié à l’utilisation du WebDav. Je précise que ce vhost peut, et va être amélioré.
La conf disponible avec nginx disponible sur le site d’owncloud est celle-ci ajoutée après avoir terminé mon install de nginx.
Je n’arrive cependant pas encore à faire fonctionner le webdav sous windows.
server { listen 80; server_name yourdomainname; #name server root /var/www/owncloud; # root directory #this is to avoid Request Entity Too Large error client_max_body_size 1000M; index index.php index.html index.htm; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access user:rw group:rw all:r; # Below there is only what you need to have php-fastcgi location ~ \\.php$ { root /var/www/owncloud; fastcgi_pass 127.0.0.1:9000; # IMPORTANT: php-fastcgi listening port. include /etc/nginx/fastcgi_params; # IMPORTANT: import fastcgi_params fastcgi_param SCRIPT_FILENAME /var/www/owncloud/$fastcgi_script_name; fastcgi_index index.php; } #owncloud directory same as root location / { index index.php; try_files $uri $uri/ @webdav; } location @webdav { fastcgi_split_path_info ^(.+\\.php)(/.+)$; fastcgi_param SCRIPT_FILENAME /var/www/owncloud/$fastcgi_script_name; include fastcgi_params; #fastcgi_param HTTP on; fastcgi_pass 127.0.0.1:9000; } location ~ \\.htaccess { deny all; } }
Acitvation du fichier du vhost:
ln -s /etc/nginx/site-available/mycloud etc/nginx/site-enabled/mycloud
/etc/init.d/nginx reload
Déploiement d’ownCloud
cd /var/www wget http://owncloud.org/releases/owncloud-2.tar.bz2 tar -jxvf owncloud-2.tar.bz2
Donner les permission appropriées à owncloud :
chown -R www-data:www-data owncloud/
Création de la bdd et du user mysql:
CREATE DATABASE IF NOT EXISTS mycloud; CREATE USER 'yourlogin'@'localhost' IDENTIFIED BY 'yourpass'; GRANT USAGE ON *.* TO 'yourlogin'@'localhost' IDENTIFIED BY 'yourpassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; GRANT ALL PRIVILEGES ON mycloud.* TO yourlogin@localhost IDENTIFIED BY 'yourpassword';
Connectez-vous sur owncloud et complétez l’installation (renseigner la bdd, le user, le pass etc…).
Monter un partage webdav
Le support du webdav par ownCloud est une aubaine pour qui souhaite travailler indifférent sur un OS sur ses documents accessibles via un répertoire web.
Sous linux avec Nautilus :
Fichier > se connecter à un serveur
- Serveur : yourcloud.tld/files/webdav.php
- Identifiant: votre login
Cochez Ajouter un signet si vous souhaitez avoir votre répertoire à portée de main dans nautilus. Vous devriez avoir un prompt pour renseigner votre mot de passe.
Sous windows :
J’ai essayé diverses méthodes pour connecter un partage webdav, mais sans succès. Il se peut que cette fonction soit opérationnelle avec un serveur Apache2.