grimboite/articles/sys/2015-03-02-owncloud.md

4.1 KiB

Title Date Tags
Owncloud from scratch 2015-03-02 owncloud, nginx, https

Owncloud est un service de cloud personnel, facile à déployer, accessible et fonctionnel. L'installation est relativement simple. La seule grosse difficulté pourrait venir de la manière dont vous allez configurer l'hébergement: si c'est dans un sous-répertoire sur votre serveur, sachez que c'est relativement complexe (avec des règles de réécriture et autres joyeusetés); dans la mesure du possible, partez pour un sous-domaine.

Parmi les prérequis, on a:

  • Un serveur Web (Nginx ou Apache, au choix)
  • Une base de données et l'extension qui-va-bien pour PHP (php5-mysql ou php5-sqlite)
  • php5-gd
  • php5-curl

Si Nginx n'est pas encore installé, suivez le tuto. Configurez ensuite un server block spécifique pour Owncloud:

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

server {
        listen 80;
        server_name <your_server>;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        server_name <your_server>;

        ssl_certificate /etc/letsencrypt/live/<your_server>/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/<your_server>/privkey.pem;

        root /var/www/<your_server>/;
        client_max_body_size 10G;
        fastcgi_buffers 64 4K;

        # Disable gzip to avoid the removal of the ETag header
        gzip off;

        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;
        }
}

Pour l'installer, le plus simple est de télécharger le fichier setup-owncloud.php, de le déplacer sur votre serveur et de lancer la configuration. Un message peut aussi survenir lors de l'installation. Une petite modification dans le fichier /etc/php/fpm/php.ini fera l'affaire.

PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.

To fix this issue set always_populate_raw_post_data to -1 in your php.ini

Pendant l'installation, vous devrez créer un administrateur, configurer l'accès à la base de données. Vous aurez ensuite accès à l'instance :-) Après cela :

  1. Connectez votre calendrier
  2. Connectez vos contacts
  3. Accédez à vos fichiers via WebDAV