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. Rép nextcloud

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