Aller au contenu

Debian 8 : installer Owncloud avec Nginx et MariaDB


Ldfa

Messages recommandés

Cet article est une mise à jour du précédent sur l’installation d’un serveur Owncloud, avec comme différence l’utilisation d’un certificat Let’s Encrypt. Je vais donc aller à l’essentiel et utiliser que les paquets stables présent dans les dépôts de Debian Jessie, car dans ce cas présent, je souhaite privilégier la stabilité et la sécurité au dépend de la performance.

apt install nginx php5-fpm php5-mysqlnd mariadb-server
  • Ajout de la clé :
wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
Ajout du dépôt :
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
Installation de Owncloud :
apt update && apt install owncloud

Création du certificat Let’s Encrypt avec une clé Diffie-Hellman:

Pour rappel sur l’installation de Let’s Encrypt, voir cet article : https://memo-linux.com/configurer-le-serveur-web-nginx-en-https-avec-letsencrypt-sous-debian-jessie/

  • Création du certificat :
cd /opt/letsencrypt
./letsencrypt-auto certonly -d owncloud.memo-linux.com --rsa-key-size 4096
Création de la clé de chiffrement Diffie-Hellman :
openssl dhparam -out /etc/ssl/private/dhparams.pem 4096

Le server block pour owncloud

upstream php-handler {
  server 127.0.0.1:9000;
  #server unix:/var/run/php5-fpm.sock;
}
server {
  listen 80;
  server_name owncloud.memo-linux.com;
  # enforce https
  return 301 https://$server_name$request_uri;
}
server {
  listen 443 ssl;
  server_name owncloud.memo-linux.com;

  ssl_certificate /etc/letsencrypt/live/owncloud.memo-linux.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/owncloud.memo-linux.com/privkey.pem;
  ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m;
  ssl_dhparam /etc/ssl/private/dhparams.pem;
  ssl_buffer_size 16k;
  ssl_session_tickets off;
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_trusted_certificate /etc/letsencrypt/live/owncloud.memo-linux.com/fullchain.pem;
  resolver 127.0.0.1 8.8.8.8;##j'ai mon propre serveur dns en local

  # Path to the root of your installation
  root /var/www/owncloud/;
  # set max upload size
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

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

  # Uncomment if your server is build with the ngx_pagespeed module
  # This module is currently not supported.
  #pagespeed 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/ =404;
  }

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

  # Adding the cache control header for js and css files
  # Make sure it is BELOW the location ~ \.php(?:$|/) { block
  location ~* \.(?:css|js)$ {
    add_header Cache-Control "public, max-age=7200";
    # Add headers to serve security related headers
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    # Optional: Don't log access to assets
    access_log off;
  }

  # Optional: Don't log access to other assets
  location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
    access_log off;
  }
}

Test de la configuration :

nginx -t

Relance de Nginx :

systemctl restart nginx
  • Se connecter à MariaDB :
mysql -u user -p
Création de la base de donnée :
CREATE DATABASE exemplebase;
CREATE USER 'userbase'@'localhost' IDENTIFIED BY 'supermdpdelamort';
GRANT ALL PRIVILEGES ON exemplebase.* TO 'userbase'@'localhost';
FLUSH PRIVILEGES;
  • exemplebase : c’est le nom de la base de données pour owncloud.
  • userbase : c’est le nom de l’utilisateur associé à la base.
  • supermdpdelamort : c’est le mot de passe pour l’utilisateur associé à la base.
  • Test d’accès dans un navigateur internet : https://owncloud.domaine.tld
  • Créer un utilisateur et cliquer sur « Terminer l’installation » :

owncloud-01

Installation de Owncloud terminée :

owncloud-debian-08

Afficher l’article complet

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.