GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installez NextCloud sur Ubuntu 20.04 avec Nginx (pile LEMP)

Ce tutoriel vous montrera comment installer NextCloud sur Ubuntu 20.04 LTS avec le serveur Web Nginx.

Qu'est-ce que NextCloud ?

NextCloud est une solution de stockage cloud auto-hébergée open source gratuite. Il est fonctionnellement similaire à Dropbox. Les solutions de stockage cloud propriétaires (Dropbox, Google Drive, etc.) sont pratiques, mais ont un prix :elles peuvent être utilisées pour collecter des données personnelles car vos fichiers sont stockés sur leurs ordinateurs. Si vous vous souciez de la confidentialité, vous pouvez passer à NextCloud, que vous pouvez installer sur votre serveur domestique privé ou sur un serveur privé virtuel (VPS). Vous pouvez télécharger vos fichiers sur votre serveur via NextCloud, puis synchroniser ces fichiers sur votre ordinateur de bureau, ordinateur portable ou smartphone. De cette façon, vous avez le contrôle total de vos données.

Fonctionnalités NextCloud

  • Gratuit et open source
  • Chiffrement de bout en bout, ce qui signifie que les fichiers peuvent être chiffrés sur les appareils clients avant d'être téléchargés sur le serveur. Ainsi, même si quelqu'un vole votre serveur, il ne peut pas lire vos fichiers.
  • Peut être intégré à une suite bureautique en ligne (Collobora Online, OnlyOffice) afin que vous puissiez créer et modifier vos fichiers doc, ppt, xls directement depuis NextCloud.
  • La boutique d'applications contient des centaines d'applications pour étendre les fonctionnalités (telles que l'application d'agenda, l'application de contacts, l'application de prise de notes, l'application de visioconférence, etc.).
  • Le client de synchronisation est disponible sur Linux, macOS, Windows, iOS et Android.

Prérequis

NextCloud est écrit en langage de programmation PHP. Pour suivre ce tutoriel, vous devez d'abord installer la pile LEMP sur Ubuntu 20.04 . Si vous ne l'avez pas déjà fait, veuillez consulter le didacticiel suivant.

  • Comment installer la pile LEMP (Nginx, MariaDB, PHP7.4-FPM) sur Ubuntu 20.04

Vous pouvez installer NextCloud sur votre serveur domestique ou sur un VPS (serveur privé virtuel). Vous avez également besoin d'un nom de domaine, vous pourrez donc plus tard activer HTTPS pour chiffrer le trafic HTTP. J'ai enregistré mon nom de domaine auprès de NameCheap car le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie. Nextcloud peut être installé sans nom de domaine, mais cela n'a vraiment aucun sens si vous ne cryptez pas la connexion HTTP pour empêcher l'espionnage. Je recommande d'acheter un nom de domaine, si vous voulez vraiment bricoler avec un logiciel serveur et l'utiliser au maximum de son potentiel.

Installons maintenant NextCloud.

Étape 1 :Téléchargez NextCloud sur Ubuntu 20.04

Connectez-vous à votre serveur Ubuntu 20.04. Téléchargez ensuite l'archive zip NextCloud sur votre serveur. La dernière version stable est la 21.0.1 au moment d'écrire ces lignes. Vous devrez peut-être modifier le numéro de version. Allez sur https://nextcloud.com/install et cliquez sur download for server bouton pour voir la dernière version.

Vous pouvez exécuter la commande suivante pour le télécharger sur votre serveur.

wget https://download.nextcloud.com/server/releases/nextcloud-21.0.1.zip

Vous pouvez toujours utiliser le format d'URL ci-dessus pour télécharger NextCloud. Si une nouvelle version sort, remplacez simplement 21.0.1 avec le nouveau numéro de version.

Une fois téléchargé, extrayez l'archive avec unzip .

sudo apt install unzipsudo unzip nextcloud-21.0.1.zip -d /usr/share/nginx/

Le -d L'option spécifie le répertoire cible. Les fichiers Web NextCloud seront extraits vers /usr/share/nginx/nextcloud/ . Ensuite, nous devons changer le propriétaire de ce répertoire en www-data afin que le serveur Web (Nginx) puisse écrire dans ce répertoire.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

Étape 2 :Créer une base de données et un utilisateur pour Nextcloud dans le serveur de base de données MariaDB

Connectez-vous au serveur de base de données MariaDB avec la commande suivante. Puisque MariaDB utilise maintenant unix_socket plugin pour authentifier la connexion de l'utilisateur, il n'est pas nécessaire d'entrer le mot de passe root MariaDB. Nous avons juste besoin de préfixer le mysql commande avec sudo .

sudo mysql

Créez ensuite une base de données pour Nextcloud. Ce tutoriel nomme la base de données nextcloud. Vous pouvez utiliser le nom de votre choix.

créer la base de données nextcloud ;

Créez l'utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez your-password avec votre mot de passe préféré.

créer un utilisateur nextclouduser@localhost identifié par 'your-password' ;

Accordez à cet utilisateur tous les privilèges sur le nextcloud base de données.

accorder tous les privilèges sur nextcloud.* à nextclouduser@localhost identifié par 'your-password' ;

Vider les privilèges et quitter.

vider les privilèges ;quitter ;

Étape 3 :Créer un fichier de configuration Nginx pour Nextcloud

Créer un nextcloud.conf fichier dans /etc/nginx/conf.d/ répertoire, avec un éditeur de texte en ligne de commande comme Nano.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Copiez et collez le texte suivant dans le fichier. Remplacez nextcloud.example.com avec votre propre sous-domaine préféré. N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine dans votre éditeur de zone DNS. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.

serveur { écoute 80 ; écouter [::]:80 ; nom_serveur nextcloud.example.com ; # Ajouter des en-têtes pour servir les en-têtes liés à la sécurité add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1 ; mode=bloc" ; add_header X-Robots-Tag aucun ; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies aucun ; add_header Referrer-Policy no-referrer ; #J'ai trouvé que cet en-tête était nécessaire sur Ubuntu, mais pas sur Arch Linux. add_header X-Frame-Options "SAMEORIGIN" ; # Chemin vers la racine de votre racine d'installation /usr/share/nginx/nextcloud/; access_log /var/log/nginx/nextcloud.access ; error_log /var/log/nginx/nextcloud.error ; location =/robots.txt { tout autoriser ; log_not_found désactivé ; access_log off ; } # Les 2 règles suivantes ne sont nécessaires que pour l'application user_webfinger. # Décommentez-le si vous prévoyez d'utiliser cette application. #rewrite ^/.well-known/host-meta /public.php?service=host-meta last; #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json # last; location =/.well-known/carddav { return 301 $scheme://$host/remote.php/dav; } location =/.well-known/caldav { return 301 $scheme://$host/remote.php/dav; } location ~ /.well-known/acme-challenge { tout autoriser ; } # définir la taille de téléchargement maximale client_max_body_size 512M ; fastcgi_buffers 64 4K ; # Désactivez gzip pour éviter la suppression de l'en-tête ETag gzip off ; # Décommentez si votre serveur est construit avec le module ngx_pagespeed # Ce module n'est actuellement pas pris en charge. #pagespeed désactivé ; erreur_page 403 /core/templates/403.php; erreur_page 404 /core/templates/404.php; emplacement / { réécrire ^ /index.php; } emplacement ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ { tout refuser ; } emplacement ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { tout refuser ; } emplacement ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34 ])\.php(?:$|/) { inclure fastcgi_params ; fastcgi_split_path_info ^(.+\.php)(/.*)$; try_files $fastcgi_script_name =404 ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_param PATH_INFO $fastcgi_path_info ; #Évitez d'envoyer deux fois les en-têtes de sécurité fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active vrai ; fastcgi_pass unix:/run/php/php7.4-fpm.sock ; fastcgi_intercept_errors activé ; fastcgi_request_buffering désactivé ; } emplacement ~ ^/(?:updater|ocs-provider)(?:$|/) { try_files $uri/ =404; index index.php; } # Ajout de l'en-tête de contrôle du cache pour les fichiers js et css # Assurez-vous qu'il se trouve EN DESSOUS de l'emplacement du bloc PHP ~* \.(?:css|js)$ { try_files $uri /index.php$uri$is_args$args; add_header Cache-Control "public, max-age=7200" ; # Ajouter des en-têtes pour servir les en-têtes liés à la sécurité (il est prévu de # dupliquer ceux ci-dessus) add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1 ; mode=bloc" ; add_header X-Robots-Tag aucun ; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies aucun ; add_header Referrer-Policy no-referrer ; # Facultatif :ne pas enregistrer l'accès aux actifs access_log off ; } emplacement ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ { try_files $uri /index.php$uri$is_args$args; # Facultatif :ne pas enregistrer l'accès aux autres ressources access_log off ; }}

Enregistrez et fermez le fichier. (Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Enter confirmer. Pour quitter, appuyez sur Ctrl+X .)

Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl recharger nginx

Étape 4 :Installer et activer les modules PHP

Exécutez les commandes suivantes pour installer les modules PHP requis ou recommandés par NextCloud.

sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

Étape 5 :Activer HTTPS

Vous pouvez maintenant accéder à l'assistant d'installation Web Nextcloud dans votre navigateur Web en saisissant le nom de domaine de votre installation Nextcloud.

nextcloud.example.com

Si la page Web ne peut pas se charger, vous devez probablement ouvrir le port 80 dans le pare-feu.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPTER

Et le port 443 également.

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPTER

Avant de saisir des informations sensibles, nous devons activer la connexion HTTPS sécurisée sur Nextcloud. Nous pouvons obtenir un certificat TLS gratuit auprès de Let's Encrypt. Installez le client Let's Encrypt (certbot) à partir du référentiel Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx est le plugin Nginx. Ensuite, exécutez la commande suivante pour obtenir un certificat TLS gratuit à l'aide du plugin Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.example.com

Où :

  • –nginx  :Utilisez l'authentificateur et le programme d'installation Nginx
  • –d'accord  :Acceptez les conditions d'utilisation de Let's Encrypt
  • –redirection  : appliquez HTTPS en ajoutant une redirection 301.
  • –hsts :activez la sécurité du transport strict HTTP. Cela protège contre les attaques de suppression SSL/TLS.
  • –agrafe-ocsp  :Activer l'agrafage OCSP.
  • –e-mail :E-mail utilisé pour l'enregistrement et le contact de récupération.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.

Il vous sera demandé si vous souhaitez recevoir des e-mails de l'EFF (Electronic Frontier Foundation). Après avoir choisi O ou N, votre certificat TLS sera automatiquement obtenu et configuré pour vous, ce qui est indiqué par le message ci-dessous.

J'ai constaté que Certbot ne pouvait peut-être pas ajouter d'en-tête HSTS dans le fichier de configuration Nginx pour Nextcloud. Si vous souhaitez activer HSTS (HTTP Strict Transport Security), modifiez le fichier.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Nous pouvons ensuite ajouter la ligne suivante dans le bloc du serveur SSL pour activer l'en-tête HSTS. (S'il est déjà là, alors votre configuration est correcte.)

add_header Strict-Transport-Security "max-age=31536000" toujours ;

De plus, vous pouvez activer le protocole HTTP2 en ajoutant l'option http2 , ce qui accélérera le chargement de la page Web.

écouter 443 ssl http2 ; # géré par Certbot

Comme ci-dessous.

Enregistrez et fermez le fichier. Envoyez ensuite les configurations Nginx par SMS.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que la modification prenne effet.

sudo systemctl recharger nginx

La configuration ci-dessus obtiendra un score A+ au test SSL.

Étape 6 :terminez l'installation dans votre navigateur Web

Vous pouvez maintenant accéder à l'assistant d'installation Web Nextcloud à l'aide d'une connexion HTTPS.

https://nextcloud.example.com

Pour terminer l'installation, vous devez créer un compte administrateur, entrer le chemin du dossier de données Nextcloud, entrer les détails de la base de données que vous avez créée à l'étape 2. Vous pouvez utiliser le localhost par défaut comme adresse hôte, ou vous pouvez saisir localhost:3306 , car MariaDB écoute sur le port 3306.

Le dossier de données est l'endroit où les fichiers des utilisateurs sont stockés. Pour des raisons de sécurité, il est préférable de placer le répertoire de données en dehors du répertoire Webroot de Nextcloud. Ainsi, au lieu de stocker les fichiers des utilisateurs sous /usr/share/nginx/nextcloud/data/ , nous pouvons le changer en /usr/share/nginx/nextcloud-data . qui peut être créé avec la commande suivante :

sudo mkdir /usr/share/nginx/nextcloud-data

Assurez-vous ensuite que l'utilisateur Nginx (www-data ) dispose d'une autorisation d'écriture sur le répertoire de données.

sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R

Cliquez sur Finish Setup bouton, vous verrez l'interface Web de Nextcloud. Bravo! Vous pouvez commencer à l'utiliser comme stockage cloud privé.

Comment configurer la notification par e-mail NextCloud

Si votre instance NextCloud sera utilisée par plusieurs personnes, il est important que votre serveur NextCloud puisse envoyer des e-mails transactionnels, tels que des e-mails de réinitialisation de mot de passe. Tout d'abord, vous devez définir une adresse e-mail pour votre propre compte. Allez dans Settings -> Personal Info et définissez une adresse e-mail pour votre compte.

Allez ensuite dans Paramètres -> Paramètres de base . Vous trouverez les paramètres du serveur de messagerie. Il existe deux modes d'envoi :sendmail et smtp . Vous pouvez choisir le sendmail si votre hébergeur NextCloud a un serveur SMTP en cours d'exécution.

Si vous souhaitez utiliser un serveur SMTP exécuté sur un autre hôte, choisissez smtp mode et entrez l'adresse du serveur SMTP et les identifiants de connexion comme ci-dessous. Choisissez STARTTLS pour le chiffrement.

Pour savoir comment configurer un serveur de messagerie, veuillez consulter le didacticiel suivant. Remarque que je recommande fortement d'exécuter le serveur de messagerie iRedMail sur un nouveau système d'exploitation propre. L'installation d'iRedMail sur un système d'exploitation doté d'autres applications Web peut échouer et probablement casser les applications existantes.

  • Comment configurer facilement un serveur de messagerie complet sur Ubuntu 20.04 avec iRedMail

Comment réinitialiser le mot de passe de l'utilisateur Nextcloud à partir de la ligne de commande

Si vous avez perdu le mot de passe de votre compte administrateur et que vous n'avez pas configuré la livraison des e-mails dans Nextcloud, vous devez réinitialiser le mot de passe en exécutant la commande suivante sur votre serveur. Remplacez nextcloud_username avec votre vrai nom d'utilisateur.

sudo -u www-data php /usr/share/nginx/nextcloud/occ user:resetpassword nextcloud_username 

Il existe également d'autres commandes qui pourraient vous être utiles. Listez les commandes disponibles avec :

sudo -u www-data php /usr/share/nginx/nextcloud/occ

ou

sudo -u www-data php /usr/share/nginx/nextcloud/console.php

Comment déplacer le répertoire de données

Si vous devez déplacer le répertoire de données NextCloud, il y a 4 étapes pour y parvenir. Tout d'abord, vous devez utiliser le cp commande pour copier le répertoire de données dans le nouveau répertoire. Par exemple, le point de montage de mon disque dur externe est /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731 . Je crée le nouveau répertoire de données sur le disque dur externe.

sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Ensuite, je copie le répertoire de données d'origine dans le nouveau répertoire de données. -R signifie que l'opération de copie est récursive.

sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Vous devez également copier le .ocdata fichier.

sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Ensuite, vous devez définir www-data (utilisateur Nginx) en tant que propriétaire.

sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Enfin, vous devez modifier le config.php fichier.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Trouvez la ligne suivante et modifiez la valeur de datadirectory .

'datadirectory' => '/usr/share/nginx/nextcloud-data',

Enregistrez et fermez le fichier. Rechargez la page Web NextCloud et vous avez terminé.

Étape 7 :Augmenter la limite de mémoire PHP

La limite de mémoire PHP par défaut est de 128 Mo. NextCloud recommande 512 Mo pour de meilleures performances. Pour modifier la limite de mémoire PHP, modifiez le php.ini fichier.

sudo nano /etc/php/7.4/fpm/php.ini

Trouvez la ligne suivante. (ligne 409)

memory_limit =128M

Modifiez la valeur.

memory_limit =512M

Enregistrez et fermez le fichier. Vous pouvez également exécuter la commande suivante pour modifier la valeur sans ouvrir manuellement le fichier.

sudo sed -i 's/memory_limit =128M/memory_limit =512M/g' /etc/php/7.4/fpm/php.ini

Rechargez ensuite PHP-FPM service pour que les modifications prennent effet.

sudo systemctl recharger php7.4-fpm

Étape 8 :Configurer PHP pour interroger correctement les variables d'environnement système

Modifiez le www.conf fichier.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

Trouvez la ligne suivante (ligne 396).

;clear_env =non

Supprimez le point-virgule pour décommenter cette ligne.

clear_env =non

Enregistrez et fermez le fichier. Vous pouvez également exécuter la commande suivante pour décommenter cette ligne sans ouvrir manuellement le fichier.

sudo sed -i 's/;clear_env =no/clear_env =no/g' /etc/php/7.4/fpm/pool.d/www.conf

Rechargez ensuite PHP-FPM service pour que les modifications prennent effet.

sudo systemctl recharger php7.4-fpm

Étape 9 :Augmentez la limite de taille du fichier de téléchargement

La limite de taille de fichier de téléchargement maximale par défaut définie par Nginx est de 1 Mo. Pour autoriser le téléchargement de fichiers volumineux sur votre serveur NextCloud, modifiez le fichier de configuration Nginx pour NextCloud.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Nous avons déjà défini la taille de fichier maximale dans ce fichier, comme indiqué par

client_max_body_size 512M ;

Vous pouvez le changer si vous préférez, comme 1G.

client_max_body_size 1024M ;

Enregistrez et fermez le fichier. Rechargez ensuite Nginx pour que les modifications prennent effet.

sudo systemctl recharger nginx

PHP définit également une limite de taille de fichier de téléchargement. La taille de fichier maximale par défaut pour le téléchargement est de 2 Mo. Pour augmenter la taille limite de téléchargement, modifiez le fichier de configuration PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Trouvez la ligne suivante (ligne 846).

upload_max_filesize =2M

Modifiez la valeur comme ci-dessous :

upload_max_filesize =1024M

Enregistrez et fermez le fichier. Vous pouvez également exécuter la commande suivante pour modifier la valeur sans ouvrir manuellement le fichier.

sudo sed -i 's/upload_max_filesize =2M/upload_max_filesize =1024M/g' /etc/php/7.4/fpm/php.ini

Redémarrez ensuite PHP-FPM.

sudo systemctl redémarrer php7.4-fpm

Étape 10 : Configurer le cache Redis pour NextCloud

Si vous accédez à vos paramètres NextCloud -> aperçu page, l'avertissement suivant peut s'afficher :

Aucun cache mémoire n'a été configuré. Pour améliorer vos performances, veuillez configurer un cache mémoire si disponible.

Nous allons activer la mise en cache de la mémoire pour nextCloud en utilisant Redis. Exécutez la commande suivante pour installer le serveur Redis à partir du référentiel Ubuntu.

sudo apt install redis-server

Vous pouvez vérifier la version avec :

redis-server -v

Exemple de sortie :

Serveur Redis v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923

Nous pouvons maintenant vérifier si le serveur Redis est en cours d'exécution.

systemctl status redis

Astuce :si la commande ci-dessus ne s'est pas arrêtée immédiatement, vous pouvez appuyer sur la touche Q pour reprendre le contrôle du terminal.

À partir de la capture d'écran ci-dessus, nous pouvons voir qu'il est en cours d'exécution et que le démarrage automatique est activé. Si, pour une raison quelconque, il ne s'exécute pas, exécutez la commande suivante :

sudo systemctl start redis-server

Et si le démarrage automatique au démarrage n'est pas activé, vous pouvez utiliser la commande suivante pour l'activer :

sudo systemctl enable redis-server

Afin de configurer Redis comme cache pour nextCloud, nous devons installer l'extension PHP pour l'interface avec Redis.

sudo apt install php-redis

Vérifiez si l'extension est activée.

php --ri redis

Nous pouvons voir que l'extension Redis est activée. S'il n'est pas activé, exécutez la commande suivante :

sudo phpenmod redis

Ensuite, modifiez le fichier de configuration nextCloud.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Ajoutez les lignes suivantes au-dessus de la fin ); ligne.

'memcache.distributed' => '\OC\Memcache\Redis','memcache.local' => '\OC\Memcache\Redis','memcache.locking' => '\OC\Memcache\Redis' ,'redis' => array( 'host' => 'localhost', 'port' => 6379, ),

Enregistrez et fermez le fichier. Redémarrez ensuite Nginx et PHP-FPM.

sudo systemctl redémarrer nginx php7.4-fpm

Allez maintenant dans les paramètres de NextCloud -> aperçu page à nouveau et actualisez la page Web, l'avertissement concernant la mise en cache de la mémoire devrait disparaître.

Ajout d'index manquants

Si vous voyez le message suivant dans les Paramètres de NextCloud -> Aperçu pages,

La base de données manque de certains index. En raison du fait que l'ajout d'index sur de grandes tables pouvait prendre un certain temps, ils n'ont pas été ajoutés automatiquement.

Ensuite, vous devez ajouter manuellement ces index. Accédez au répertoire Webroot Nextcloud.

cd /usr/share/nginx/nextcloud/

Exécutez la commande suivante pour ajouter des index à la base de données Nextcloud.

sudo -u www-data php occ db:add-missing-indices

Maintenant, si vous actualisez les Paramètres de NextCloud -> Aperçu page, l'avertissement concernant les index manquants devrait avoir disparu.

Conversion en Big Int

Si vous voyez le message suivant dans les Paramètres de NextCloud -> Aperçu pages,

Certaines colonnes de la base de données n'ont pas de conversion en grand int. En raison du fait que la modification des types de colonnes sur les grandes tables pouvait prendre un certain temps, elles n'étaient pas modifiées automatiquement.

Ensuite, vous devez modifier manuellement le type de colonne. Accédez au répertoire Webroot Nextcloud.

cd /usr/share/nginx/nextcloud/

Mettez votre Nextcloud en mode maintenance pour empêcher les utilisateurs de se connecter et d'apporter des modifications.

sudo -u www-data php occ maintenance:mode --on

Exécutez ensuite la commande suivante pour modifier le type de colonne.

sudo -u www-data php occ db:convert-filecache-bigint

Une fois que c'est fait, désactivez le mode maintenance.

sudo -u www-data php occ maintenance:mode --off

Maintenant, si vous actualisez les Paramètres de NextCloud -> Aperçu page, l'avertissement concernant le grand int devrait avoir disparu.

Comment installer le client NextCloud sur le bureau Ubuntu 20.04

Exécutez les commandes suivantes sur le bureau Ubuntu 20.04 pour installer le client à partir du référentiel par défaut.

sudo apt install nextcloud-client

Client NextCloud sur Ubuntu 20.04

Le logiciel client pour macOS, Windows, Android et iOS est disponible sur la page de téléchargement de Nextcloud.

Comment activer OnlyOffice/Collabora Online

Par défaut, Nextcloud est livré avec la prise en charge de OnlyOffice, une suite bureautique en ligne qui vous permet de modifier vos fichiers doc, ppt, xls directement depuis NextCloud. Nous avons seulement besoin d'installer une application pour utiliser cette fonctionnalité. Accédez à Nextcloud Apps -> Office & Text . Recherchez et activez le community document server application.

Désormais, lorsque vous cliquez sur le bouton Ajouter (+) dans Nextcloud, vous pourrez créer des documents Word, des feuilles de calcul et des présentations directement depuis votre serveur Nextcloud.

Cependant, j'ai trouvé que cette application n'est pas très fiable. Et l'édition communautaire n'autorise que 20 utilisateurs au maximum. Vous devez acheter une édition entreprise si vous avez plus de 20 utilisateurs. Il existe une autre suite bureautique en ligne open source basée sur LibreOffice appelée Collabora Online qui a la même fonctionnalité, mais sans la limitation du nombre d'utilisateurs. Vous pouvez lire l'article suivant pour l'intégrer à Nextcloud.

  • Intégrer Collabora Online avec Nextcloud sur Ubuntu avec Docker

Ajout d'une entrée DNS locale

Il est recommandé de modifier le /etc/hosts fichier sur votre serveur Nextcloud et ajoutez l'entrée suivante, afin que Nextcloud lui-même n'ait pas à interroger le DNS public, ce qui peut améliorer la stabilité globale. Si votre serveur Nextcloud ne peut pas résoudre le nextcloud.example.com nom d'hôte, vous risquez de rencontrer un délai de passerelle 504 erreur.

127.0.0.1 localhost nextcloud.example.com

Une adresse IP dans le /etc/hosts Le fichier peut avoir plusieurs noms d'hôte, donc si vous avez d'autres applications installées sur la même boîte, vous pouvez également ajouter d'autres noms d'hôte ou sous-domaines sur la même ligne comme ceci :

127.0.0.1 localhost focal ubuntu nextcloud.example.com collabora.example.com

Utiliser Cron pour exécuter des tâches en arrière-plan

Par défaut, Nextcloud utilise AJAX pour exécuter une tâche à chaque chargement de page. Vous pouvez utiliser le service cron système plus efficace pour exécuter des tâches en arrière-plan. Allez dans Nextcloud Paramètres -> Paramètres de base et sélectionnez Cron .

Ensuite, modifiez le www-data fichier crontab de l'utilisateur.

sudo -u www-data crontab -e

Ajoutez la ligne suivante dans ce fichier, afin que la tâche cron s'exécute toutes les 5 minutes.

*/5 * * * * php7.4 -f /usr/share/nginx/nextcloud/cron.php

Enregistrez et fermez le fichier.

(Facultatif) Empêcher les tentatives de connexion malveillantes

Si votre ordinateur possède une adresse IP publique statique, vous pouvez créer une liste blanche IP dans le fichier de configuration Nginx.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Ajoutez les lignes suivantes dans le bloc du serveur SSL pour restreindre l'accès au /login URL, afin que seule votre adresse IP puisse accéder à cette URL. Remplacez 78.56.34.12 par votre propre adresse IP.

emplacement ~* ^/login{ try_files $uri /index.php; inclure fastcgi_params ; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_param PATH_INFO $fastcgi_path_info ; #Évitez d'envoyer deux fois les en-têtes de sécurité fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active vrai ; fastcgi_pass unix:/run/php/php7.4-fpm.sock ; fastcgi_intercept_errors activé ; fastcgi_request_buffering désactivé ; autoriser 78.56.34.12 ; tout nier ;}

Enregistrez et fermez le fichier. Testez ensuite la configuration de Nginx.

sudo nginx -t

Si le test réussit, rechargez Nginx pour que les modifications prennent effet.

sudo systemctl recharger nginx

Si vous n'avez pas d'adresse IP statique sur votre réseau domestique, vous pouvez configurer un serveur VPN dans un centre de données.

Conseils de dépannage

Si vous rencontrez des erreurs, vous pouvez consulter l'un des fichiers journaux suivants pour déterminer ce qui ne va pas.

  • Journal des erreurs Nginx :/var/log/nginx/error.log
  • Journal d'erreurs Nginx pour l'hôte virtuel Nextcloud :/var/log/nginx/nextcloud.error
  • Journal des applications Nextcloud :/usr/share/nginx/nextcloud/data/nextcloud.log

Par exemple, j'ai eu une fois une "Internal Server Error ” sur mon instance Nextcloud et le /var/log/nginx/nextcloud.error fichier m'a dit que

FastCGI a envoyé dans stderr :"Message PHP :Erreur fatale PHP :OC\HintException non détecté :[0] :Memcache \OC\Memcache\Redis n'est pas disponible pour le cache local (le module PHP correspondant est-il installé et activé ?) 

Il s'est avéré que parce que j'ai utilisé le PPA ppa:ondrej/php sur mon serveur Ubuntu, je dois également installer php7.4-redis en plus du php-redis paquet.

Mettre à jour Nextcloud

Il est important de maintenir votre serveur Nextcloud à jour avec les dernières corrections de sécurité et de bogues. Lisez le didacticiel ci-dessous pour savoir comment mettre à niveau Nextcloud.

  • 2 façons de mettre à niveau Nextcloud [ligne de commande et interface graphique]

Ubuntu
  1. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  2. Comment installer WordPress avec LEMP Stack sur CentOS 8

  3. Comment installer LEMP sur Ubuntu 16.04

  4. Comment installer WordPress avec une pile LEMP sur Ubuntu 18.04

  5. Installez phpMyAdmin sur Ubuntu 20.04 avec Nginx

Installez NextCloud sur Ubuntu 18.04 avec Nginx (pile LEMP)

Installer NextCloud sur Ubuntu 20.04 avec Apache (LAMP Stack)

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Comment installer la pile LEMP (Nginx, MariaDB, PHP7.2) sur Ubuntu 18.04 LTS

Comment installer la pile LEMP sur le serveur/bureau Ubuntu 20.04

Comment installer la pile LEMP avec PhpMyAdmin dans Ubuntu 20.04