GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer Nextcloud avec Nginx sur Ubuntu 20.04 LTS - Guide étape par étape ?

Nextcloud est une application open source auto-hébergée de synchronisation et de partage de fichiers (calendrier, contacts, documents, e-mail, etc.). Les développeurs de Nextcloud font de leur mieux pour offrir aux utilisateurs une plate-forme plus sécurisée, moins de bugs et, dans l'ensemble, un meilleur produit.

Chez LinuxAPT, dans le cadre de nos services de gestion de serveur, nous aidons régulièrement nos clients à effectuer des requêtes d'installation de logiciels open source connexes.

Dans ce cadre, nous verrons comment installer Nextcloud sur Ubuntu 20.04 LTS.


Étapes pour installer et configurer Nextcloud sur Ubuntu 20.04 LTS Focal Fossa

1. Effectuez la mise à jour du système

Tout d'abord, assurez-vous que tous vos packages système sont à jour en exécutant ces commandes apt suivantes dans le terminal :

$ sudo apt mise à jour 
$ sudo apt upgrade


2. Installez le serveur Web Nginx

Ici, utilisera le serveur Web Nginx au lieu du serveur Web Apache. Installez le serveur Web Nginx à l'aide de la commande apt :

$ sudo apt install nginx -y

Une fois l'installation terminée, démarrez le service Nginx et activez le service pour qu'il se lance à chaque démarrage du système à l'aide de systemctl :

$ systemctl démarrer nginx 
$ systemctl activer nginx

Le service Nginx sera opérationnel. Vous pouvez le vérifier à l'aide de la commande suivante :

$ systemctl statut nginx


3. Installez et configurez PHP

Ici, nous utiliserons PHP7.4-FPM. Par défaut, Ubuntu 20.04 est livré avec la version par défaut de PHP 7.4.

Installez les packages PHP et PHP-FPM requis par Nextcloud à l'aide de la commande apt ci-dessous :

$ sudo apt install php-fpm php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php -zip php-soap php-bz2 -y

Une fois l'installation terminée, nous allons configurer les fichiers php.ini pour php-fpm et php-cli.

Allez dans le répertoire '/etc/php/7.4' :

$ cd /etc/php/7.4/

Modifiez les fichiers php.ini pour php-fpm et php-cli à l'aide de vim :

vim fpm/php.ini 
vim cli/php.ini

Décommentez la ligne 'date.timezone' et modifiez la valeur avec votre propre fuseau horaire :

date.timezone =Australie/Sydney

Décommentez la ligne 'cgi.fix_pathinfo' et changez la valeur en '0' :

cgi.fix_pathinfo=0

Enregistrez et quittez.

Ensuite, modifiez la configuration du pool php-fpm 'www.conf'.

$ vim fpm/pool.d/www.conf

Décommentez ces lignes ci-dessous :

env[HOSTNAME] =$HOSTNAME 
env[CHEMIN] =/usr/local/bin:/usr/bin:/bin
env[TMP] =/tmp
env[TMPDIR] =/tmp
env[TEMP] =/tmp

Enregistrez et quittez.

Redémarrez le service PHP7.4-FPM et activez-le pour qu'il se lance à chaque démarrage du système :

$ systemctl redémarrer php7.4-fpm 
$ systemctl activer php7.4-fpm

Vérifiez maintenant le service PHP-FPM à l'aide des commandes suivantes :

$ ss -xa | grep php 
$ systemctl status php7.4-fpm

Et vous obtiendrez le php-fpm est opérationnel sous le fichier sock '/run/php/php7.4-fpm.sock'.


4. Installez et configurez le serveur MariaDB

Ici, nous allons installer la dernière version de MariaDB et créer une nouvelle base de données pour l'installation de nextcloud. La dernière version des packages MariaDB est disponible sur le référentiel par défaut.

Installez la dernière version du serveur MariaDB à l'aide de la commande apt ci-dessous :

$ sudo apt install mariadb-server -y

Une fois l'installation terminée, démarrez le service MariaDB et activez-le pour qu'il se lance à chaque démarrage du système :

$ systemctl start mariadb 
$ systemctl enable mariadb

Vérifiez maintenant le service MySQL en utilisant la commande suivante :$

$ systemctl status mariadb

Vous verrez que le serveur MariaDB est opérationnel sur le système.

Ensuite, nous allons configurer le mot de passe root de MariaDB à l'aide de la commande 'mysql_secure_installation'.

Exécutez la commande suivante :

$ mysql_secure_installation

Et il vous sera demandé une configuration de MariaDB Server. Saisissez également le nouveau mot de passe root pour MariaDB Server :

Entrez le mot de passe actuel pour root (entrez pour aucun) :appuyez sur Entrée 
Définir le mot de passe root ? [O/n] O
Supprimer les utilisateurs anonymes ? [O/n] O
Interdire la connexion root à distance ? [O/n] O
Supprimer la base de données de test et y accéder ? [O/n] O
Recharger les tables de privilèges maintenant ? [O/n] O

Et le mot de passe root MariaDB a été configuré.

Ensuite, nous allons créer une nouvelle base de données pour l'installation de nextcloud. Nous allons créer une nouvelle base de données nommée 'nextcloud_db' avec l'utilisateur 'nextclouduser' et le mot de passe 'Nextclouduser421@'.

Connectez-vous au shell MySQL en tant qu'utilisateur root avec la commande mysql :

$ mysql -u root -p

SAISISSEZ LE MOT DE PASSE RACINE MYSQL

Créez maintenant la base de données et l'utilisateur avec le mot de passe en exécutant les requêtes MySQL suivantes :

créer la base de données nextcloud_db ; 
créer l'utilisateur nextclouduser@localhost identifié par 'Nextclouduser421@' ;
accordez tous les privilèges sur nextcloud_db.* à nextclouduser@localhost identifié par 'Nextclouduser421@' ;
privilèges de vidage ;


5. Générer SSL Let's Encrypt

Ici, nous allons sécuriser nextcloud en utilisant le SSL gratuit de Letsencrypt, et nous allons générer des fichiers de certificats à l'aide de l'outil Letsencrypt.

Si vous n'avez pas de nom de domaine ou si vous n'installez pas nextcloud sur l'ordinateur local, vous pouvez générer le certificat auto-signé à l'aide d'OpenSSL.

Installez l'outil 'letsencrypt' à l'aide de la commande apt ci-dessous :

$ sudo apt install certbot -y

Une fois l'installation terminée, arrêtez le service nginx :

$ systemctl stop nginx

Ensuite, nous allons générer les certificats SSL pour notre nom de domaine 'nextcloud.linuxapt.com' en utilisant la commande de ligne de commande cerbot :

$ certbot certonly --standalone -d nextcloud.linuxapt.com

L'adresse e-mail vous sera demandée et elle sera utilisée pour la notification de renouvellement. Pour l'accord Letsencrypt TOS, tapez 'A' pour accepter et pour l'adresse e-mail de partage, vous pouvez taper 'N' pour Non.

Désormais, les certificats SSL Letsencrypt pour le nom de domaine netxcloud seront générés avec tous les fichiers / certificats SSL situés dans le répertoire '/etc/letsencrypt/live/votre-domaine'.


6. Téléchargez Nextcloud

Avant de télécharger le code source de nextcloud, assurez-vous que le package de décompression est installé sur le système. Si vous n'avez pas le package, installez-le à l'aide de la commande apt ci-dessous :

$ sudo apt install wget unzip zip -y

Allez maintenant dans le répertoire '/var/www' et téléchargez la dernière version de Nextcloud en utilisant la commande suivante.

$ cd /var/www/ 
$ wget -q https://download.nextcloud.com/server/releases/latest.zip

Extrayez le code source Nextcloud et vous obtiendrez un nouveau répertoire 'netxcloud', changez la propriété du répertoire nextcloud en utilisateur 'www-data' :

$ unzip -qq dernier.zip 
$ sudo chown -R www-data:www-data /var/www/nextcloud

Maintenant, le Nextcloud a été téléchargé sous le répertoire '/var/www/nextcloud', et ce sera le répertoire racine Web.


7. Configurer l'hôte virtuel Nginx pour Nextcloud

Dans cette étape, nous allons configurer l'hôte virtuel nginx pour nextcloud. Nous configurerons nextcloud pour qu'il s'exécute sous la connexion HTTPS et forcerons automatiquement la connexion HTTP vers la connexion HTTPS sécurisée.

Allez maintenant dans le répertoire '/etc/nginx/sites-available' et créez un nouveau fichier d'hôte virtuel 'nextcloud' :

$ cd /etc/nginx/sites-available/ 
$ vim nextcloud

Dans ce fichier, collez la configuration suivante de l'hôte virtuel nextcloud :

gestionnaire php en amont { 
#serveur 127.0.0.1:9000 ;
serveur unix :/var/run/php/php7.4-fpm.sock ;
}
serveur {
écouter 80 ;
écouter [::]:80 ;
nom_serveur nextcloud.linuxapt.com ;
# appliquer https
renvoie 301 https://$server_name:443$request_uri ;
}
serveur {
écouter 443 ssl http2;
écouter [::]:443 ssl http2 ;
nom_serveur nextcloud.linuxapt.com ;
# Utilisez les directives de Mozilla pour les paramètres SSL/TLS
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# REMARQUE :certains paramètres ci-dessous peuvent être redondants
certificat_ssl /etc/letsencrypt/live/nextcloud.linuxapt.com/fullchain.pem ;
clé_certificat_ssl /etc/letsencrypt/live/nextcloud.linuxapt.com/privkey.pem ;
# Ajouter des en-têtes pour servir les en-têtes liés à la sécurité
# Avant d'activer les en-têtes Strict-Transport-Security, veuillez lire ce
# sujet en premier.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" toujours;
#
# AVERTISSEMENT :n'ajoutez l'option de préchargement qu'une fois que vous avez lu
# les conséquences dans https://hstspreload.org/. Cette option
# ajoutera le domaine à une liste codée en dur qui est expédiée
# dans tous les principaux navigateurs et supprimé de cette liste
# pourrait prendre plusieurs mois.
add_header Referrer-Policy "no-referrer" toujours ;
add_header X-Content-Type-Options "nosniff" toujours ;
add_header X-Download-Options "noopen" toujours ;
add_header X-Frame-Options "SAMEORIGIN" toujours ;
add_header X-Permitted-Cross-Domain-Policies "aucun" toujours ;
add_header X-Robots-Tag "aucun" toujours ;
add_header X-XSS-Protection "1 ; mode=bloc" toujours ;
# Supprimer X-Powered-By, qui est une fuite d'informations
fastcgi_hide_header X-Powered-By ;
# Chemin vers la racine de votre installation
racine /var/www/nextcloud ;
emplacement =/robots.txt {
autorise tout;
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;
# La règle suivante n'est nécessaire que pour l'application Social.
# Décommentez-le si vous prévoyez d'utiliser cette application.
#rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
emplacement =/.bien connu/carddav {
renvoie 301 $scheme://$host:$server_port/remote.php/dav ;
}
emplacement =/.bien connu/caldav {
renvoie 301 $scheme://$host:$server_port/remote.php/dav ;
}
# définir la taille de téléchargement maximale
client_max_body_size 512M ;
fastcgi_buffers 64 4K ;
# Activez gzip mais ne supprimez pas les en-têtes ETag
gzip activé ;
gzip_vary activé ;
gzip_comp_level 4 ;
gzip_min_length 256 ;
gzip_proxied a expiré no-cache no-store private no_last_modified no_etag auth ;
gzip_types application/atom+application xml/application javascript/application json/ld+application json/manifest+application json/rss+application xml/vnd.geo+application json/application vnd.ms-fontobject/application x-font-ttf/ x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd .rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy ;
# Décommentez si votre serveur est construit avec le module ngx_pagespeed
# Ce module n'est actuellement pas pris en charge.
#pagespeed désactivé ;
emplacement / {
réécrire ^ /index.php;
}
emplacement ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
Nier tous;
}
emplacement ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
Nier tous;
}
emplacement ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+ )\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
définir $path_info $fastcgi_path_info ;
try_files $fastcgi_script_name =404 ;
inclure fastcgi_params ;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS activé ;
# Évitez d'envoyer les en-têtes de sécurité deux fois
fastcgi_param modHeadersAvailable vrai ;
# Activer les jolies URL
fastcgi_param front_controller_active vrai ;
gestionnaire php fastcgi_pass ;
fastcgi_intercept_errors activé ;
fastcgi_request_buffering désactivé ;
}
emplacement ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
# Ajout de l'en-tête de contrôle du cache pour les fichiers js, css et map
# Assurez-vous qu'il est SOUS le bloc PHP
emplacement ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri ;
add_header Cache-Control "public, max-age=15778463" ;
# Ajouter des en-têtes pour servir les en-têtes liés à la sécurité (il est destiné à
# avoir ceux dupliqués à ceux ci-dessus)
# Avant d'activer les en-têtes Strict-Transport-Security, veuillez lire
# ce sujet en premier.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" toujours;
#
# AVERTISSEMENT :n'ajoutez l'option de préchargement qu'une fois que vous avez lu
# les conséquences dans https://hstspreload.org/. Cette option
# ajoutera le domaine à une liste codée en dur qui est expédiée
# dans tous les principaux navigateurs et supprimé de cette liste
# pourrait prendre plusieurs mois.
add_header Referrer-Policy "no-referrer" toujours ;
add_header X-Content-Type-Options "nosniff" toujours ;
add_header X-Download-Options "noopen" toujours ;
add_header X-Frame-Options "SAMEORIGIN" toujours ;
add_header X-Permitted-Cross-Domain-Policies "aucun" toujours ;
add_header X-Robots-Tag "aucun" toujours ;
add_header X-XSS-Protection "1 ; mode=bloc" toujours ;
# Facultatif :ne pas enregistrer l'accès aux ressources
access_log off ;
}
emplacement ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri ;
# Facultatif :ne pas enregistrer l'accès aux autres ressources
access_log off ;
}
}

Enregistrez et quittez.

Activez l'hôte virtuel et testez la configuration, et assurez-vous qu'il n'y a pas d'erreur :

$ ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/ 
$nginx -t

Redémarrez maintenant le service PHP7.4-FPM et le service nginx à l'aide de la commande systemctl ci-dessous :

$ systemctl redémarrer nginx 
$ systemctl redémarrer php7.4-fpm


8. Configurer le pare-feu UFW

Ici, nous allons activer le pare-feu et nous utiliserons le pare-feu UFW pour Ubuntu.

Ajoutez SSH, HTTP et HTTPS à la liste de pare-feu UFW à l'aide de la commande ci-dessous :

pour svc en ssh http https 
faire
ufw autoriser $svc
terminé

Après cela, activez le pare-feu UFW et vérifiez le service et le port autorisés :

$ ufw activer 
$ ufw statut numéroté

Et vous obtiendrez le port HTTP 80 et le port HTTPS 443 est sur la liste.


Comment accéder à l'interface Web Nextcloud ?

Nextcloud sera disponible sur le port HTTP 80 par défaut.

Ouvrez votre navigateur préféré et accédez à https://your-domain.com/ ou https://server-ip-address/ et suivez les étapes requises pour terminer l'installation.

Ce que vous faites avec Nextcloud dépend de vous.

Vous pouvez ajouter de nouveaux modules ou simplement l'utiliser comme synchronisation et partage de fichiers basés sur le cloud.

Vous pouvez installer l'application Android et même utiliser les clients de bureau ownCloud (ils fonctionneront parfaitement avec Nextcloud).



Ubuntu
  1. Installer Ubuntu 20.04 LTS - Guide étape par étape ?

  2. Installez LibreNMS sur Ubuntu 20.04 LTS en utilisant Nginx - Guide étape par étape ?

  3. Installer NumPy sur Ubuntu 20.04 LTS - Guide étape par étape ?

  4. Installer Homebrew sur Ubuntu 20.04 LTS - Guide étape par étape ?

  5. Installer Kanboard sur Ubuntu 20.04 LTS - Guide étape par étape ?

Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Installer OwnCloud sur Ubuntu 20.04 LTS - guide étape par étape ?

Installer Adminer sur Ubuntu 20.04 LTS - guide étape par étape ?

Installer PowerShell sur Ubuntu 20.04 LTS - Un guide étape par étape ?