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.
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