On ne présente plus Owncloud, qui est une alternative a dropbox, google drive et microsoft onedrive. Voici un peu résumé de l’installation de cette outil sur votre raspberry-pi, vps ou dédié tournant sous Debian avec le serveur Nginx, PHP5-FPM et Mariadb.

Petite nouveauté, vous pouvez retrouver un sondage en bas de page, si vous avez 30 secondes a perdre n’hésitez pas !

Installation

Les pré-requis

Avoir installer les paquets suivants:

sudo apt-get update
sudo apt-get install php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick

Récupérer les sources

Je ne parlerai pas de l’installation depuis un paquet Debian car il nous aurait fallut un serveur web apache et non Nginx, je vous laisse faire une recherche sur Google pour trouver la procédure.

Première possibilité

Le tout automatique, oui c’est possible !! mais il faut avoir configurer le virtualhost et la base de données. je l’explique un peu plus bas.

se placer dans le répertoire /var/www/ et lancer la seule et unique commande:

wget -N "https://download.owncloud.com/download/community/setup-owncloud.php"

Il vous est possible de créer un répertoire au préalable, mais ce n’est pas obligé car le setup vous proposera si vous le souhaitez car celui-ci le fera à votre place.

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »]

Seconde possibilité

Le faire à la main, mais si c’est facile tout est plutôt bien expliqué la documentation.

L’url pour télécharger se trouve sur cette page.

sudo wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

Nous avons donc une archive qu’il va falloir extraire:

sudo tar -xjf owncloud-7.0.2.tar.bz2

Voila rien de plus pour le moment.

Troisième possibilité

Nous allons utiliser Git ce qui permet de mettre à jour les sources plus régulièrement. Avez vous Git ?

Non alors un simple:

sudo apt-get update
sudo apt-get install git

et utiliser ces commandes pour obtenir le même résultat que l’archive ci-dessus:

sudo git clone -b stable7 https://github.com/owncloud/core.git owncloud
sudo git clone -b stable7 https://github.com/owncloud/3rdparty.git owncloud/3rdparty
sudo git clone -b stable7 https://github.com/owncloud/documents.git owncloud/apps/documents
sudo git clone -b stable7 https://github.com/owncloud/contacts.git owncloud/apps/contacts
sudo git clone -b stable7 https://github.com/owncloud/bookmarks.git owncloud/apps/bookmarks
sudo git clone -b stable7 https://github.com/owncloud/calendar.git owncloud/apps/calendar
sudo git clone -b stable7 https://github.com/owncloud/gallery.git owncloud/apps/gallery
sudo git clone -b stable7 https://github.com/owncloud/updater.git owncloud/apps/updater
sudo git clone -b stable7 https://github.com/owncloud/apps.git owncloud/apps2
sudo git clone https://github.com/owncloud/news.git owncloud/apps2/news
sudo git clone https://github.com/owncloud/maps.git owncloud/apps2/maps
sudo git clone https://github.com/owncloud/mozilla_sync.git owncloud/apps2/mozilla_sync
sudo git clone https://github.com/owncloud/notes.git owncloud/apps2/notes

nous avons donc les sources de Owncloud dans le répertoire /var/www/ , si vous suivez cette solution ou la se seconde solution il ne reste plus qu’a:

  • Créer un répertoire qui contiendra toute les données,
  • donner les droits 770 au répertoire data,
  • donner les droits d’écriture au groupe,
  • changer le user et le groupe de chaque fichier et dossier de Owncloud.
sudo mkdir owncloud/data
sudo chmod 770 owncloud/data
sudo chmod g+w owncloud/config
sudo chown -R www-data:www-data ./

[poll id= »2″]

Mise en place de owncloud sur le serveur

Cette étape est valable pour les 3 solutions décrites ci-dessus.

Virtualhost de Nginx

Toujours sur la même page d’instruction d’installation l’équipe de Owncloud nous mets à disposition la configuration d’un virtualhost pour Nginx:

upstream php-handler {
        server 127.0.0.1:9000;
        #server unix:/var/run/php5-fpm.sock;
}

server {
        listen 80;
        server_name cloud.example.com;
        return 301 https://$server_name$request_uri;  # enforce https
}

server {
        listen 443 ssl;
        server_name cloud.example.com;

        ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
        ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

        # Path to the root of your installation
        root /var/www/;

        client_max_body_size 10G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        location ~ \.php(?:$|/) {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param HTTPS on;
                fastcgi_pass php-handler;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }

}

On pense au lien symbolique:

sudo ln -s /etc/nginx/sites-available/cloud.example.com /etc/nginx/sites-enabled/cloud.example.com

 PHP

Nous allons faire une petite du php.ini pour autoriser l’upload de gros gros fichiers sur notre cloud.

Les paramètres à modifier sont:

allow_url_fopen = on
allow_url_include = on
memory_limit = 2048M
post_max_size = 20000M
upload_max_filesize = 20000M
max_input_time = -1
max_execution_time = 0

 La base de données

nous allons créer une base, un utilisateur, lui affecter tous les droits sur cette base et recharger les privilèges.

CREATE DATABASE example_cloud;
CREATE USER 'user_examplecloud'@'localhost' IDENTIFIED BY 'fdsfedserez54r4ezr7ez';
GRANT ALL PRIVILEGES ON example_cloud.* TO 'user_examplecloud'@'localhost';
FLUSH PRIVILEGES;

 La fin de l’installation

Cette partie est commune a toutes les solutions présentées ci-dessus.

Bienvenue sur votre nuage

 

Configuration

Le cron

un petit :

sudo crontab -e

 

# minute heure jour mois jour de la semaine
# +---------minute (0-59)
# | +-------heure (0-23)
# | | +-----jour du mois (1-31)
# | | | +---mois (1-12)
# | | | | +-jour de la semaine (0-7) sunday=0 or 7
# | | | | |
# - - - - -
# m h d m d
# 
*/5 * * * *	/usr/bin/php /var/www/owncloud/cron.php

 Les mails

J’ai eu ce message d’erreur lorsque j’ai essayé de m’envoyer un mail pour vérifier que tout fonctionne:

Could not instantiate mail function.

Deux jours pour trouver la solution !!! Et ça vient d’une petite bêtise.

En effet lors de l’install de Nginx avec PHP-FPM je n’avais pas renseigné dans le php.ini le smtp, du coup j’ai tenté les différentes possibilités dans Owncloud pour l’envoie de mail (mail fonction PHP, Sendmail et SMTP).

Le truc c’est qu’Owncloud a gardé dans le config.php des valeurs !! Donc même après avoir le php.ini j’avais l’erreur. la solution a été de virer tout ce qui touchait à la config du mail dans le fichier config/config.php.

Voila voila, il ne reste plus qu’a vous amusez, ne vous inquiétez pas d’ici peu il y aura de nouveaux articles sur Owncloud.[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]