Bruno Ducouet

Nextcloud

Instalation et configuration de Nextcloud

Intallez les dépendances et mettez memory_limit à 512M ou lieu de 128M dans le php.ini.

root@omega:~# apt install php7.3-gd php7.3-curl php7.3-intl php-imagick php-apcu
root@omega:~# nano /etc/php/7.3/apache2/php.ini
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M
root@omega:~# systemctl restart apache2

Télécharger et copier l'archive de la dernière version de Nextcloud dans l'arborescence de /var/www, puis dézippez la.

Changez le propriétaire du répertoire de nextcloud

root@omega:~# chown -R www-data:www-data /var/www/nextcloud

Créez un répertoire pour les données si vous en souhaitez un de particulier, et changer le propriétaire comme au dessus.

Aborécense web

Créez un fichier /etc/apache2/sites-available/010-nextcloud.conf contenant (A modifier avec vos données)

‹virtualhost *:80›
    ServerAdmin bruno@ducouet.fr
    ServerName mycloud.ducouet.fr
    ServerAlias mycloud
    DocumentRoot /var/www/nextcloud
    ‹IfModule mod_headers.c›
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
    ‹/IfModule>
    ‹IfModule mod_rewrite.c›
        RewriteEngine on
        RewriteRule ^/\.well-known/host-meta /public.php?service=host-meta [QSA,L]
        RewriteRule ^/\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
        RewriteRule ^/\.well-known/webfinger /public.php?service=webfinger [QSA,L]
        RewriteRule ^/\.well-known/carddav /remote.php/dav/ [R=301,L]
        RewriteRule ^/\.well-known/caldav /remote.php/dav/ [R=301,L]
    ‹/IfModule›
‹/virtualhost›

Activez le site et redémarez appache :

root@omega:~# a2ensite 010-nextcloud
...
root@omega:~# systemctl restart apache2

Renseignez la valeur de ServerName dans votre DNS ou votre box ou le fichier hosts de votre ordinateur. Puis ouvrez l'adresse http://nextcloud.local.

Vous aurez à remplir :

  • le login/password de l'administrateur de nextcloud
  • le login/password de l'administrateur de la base de données
  • éventuellement, le repertoire où seront stockées les données

Puis lancez l'installation.

Résolution des erreurs et ajout de Let's encryt (Pour les serveurs accessibles d'internet)

Ajouter au fichier /var/www/nextcloud/config/config.php la ligne 'memcache.local' => '\OC\Memcache\APCu',

root@omega:~# nano /var/www/nextcloud/config/config.php

Lancez les commandes pour finaliser l'instalation de Nextcloud :

root@omega:~# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
root@omega:~# sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
Maintenance mode enabled
root@omega:~# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Nextcloud is in maintenance mode - no apps have been loaded

Following columns will be updated:

* mounts.storage_id
* mounts.root_id
* mounts.mount_id

This can take up to hours, depending on the number of files in your instance!
Continue with the conversion (y/n)? [n] y
root@omega:~# sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Maintenance mode disabled
root@omega:~#

 Seul les sites web (et Nextcloud) accessiblent depuis internet peuvent être protégés par Let's encryt. Depuis le serveur (pas par ssh) taper (Renseignez les informations demandées et acceptez la création les fichiers de conf ssl) :

root@omega:~# apt install certbot python-certbot-apache
...
root@omega:~# cerboot --apache
...
root@omega:~# systemctl restart apache2

Test de Nextcloud sur https://www.ssllabs.com/ssltest

Grade B

editez /etc/apache2/mods-enabled/ssl.conf

commentez la ligne SSLProtocol all -SSLv3 et ajoutez les 2 lignes

# The protocols to enable.
# Available values: all, SSLv3, TLSv1, TLSv1.1, TLSv1.2
# SSL v2 is no longer supported
# SSLProtocol all -SSLv3
SSLProtocol TLSv1.2 +TLSv1.3
SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2, TLSv1.3"

Vous obtenez le Grade A. (A+ si vous omettez la prochaine version de TLS : +TLSv1.3 et TLSv1.3)

CRON

root@omega:~# crontab -u www-data -e
*/15 * * * * /usr/bin/php -f /var/www/nextcloud/cron.php

Size Upload

root@omega:~# nano /etc/php/7.3/apache2/php.ini


;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
...
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 1G