GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Nextcloud 10 avec Nginx sur Debian 8

Nextcloud est un logiciel open source de synchronisation et de partage de fichiers. C'est un fork d'ownCloud et trouve son utilisation à la fois au niveau individuel et au niveau de l'entreprise. Il a été récemment lancé par Frank Karlitschek qui a fondé le projet ownCloud plus tôt. Nextcloud possède non seulement toutes les fonctionnalités d'ownCloud, mais prévoit également d'en fournir de nouvelles et innovantes.

Dans cet article, nous allons apprendre à installer la dernière version de Nextcloud sur Debian 8 en utilisant Nginx ( prononcé comme EngineX ), MariaDB et PHP7.

1) Installer Nextcloud

Les fichiers Nextcloud sont disponibles en téléchargement à partir des serveurs Nextcloud. Nous pouvons télécharger le fichier zip et le décompresser pour terminer l'installation.

# wget https://download.nextcloud.com/server/releases/nextcloud-10.0.1.zip
# unzip nextcloud-10.0.1.zip

Déplaçons le répertoire nextcloud vers /var/www et changeons la propriété en www-data

# mkdir /var/www/

# mv nextcloud /var/www/

# rm -f nextcloud-10.0.1.zip

# chown -R www-data: /var/www/nextcloud

2) Installer Nginx

Nginx est open source et l'un des serveurs Web les plus courants disponibles. Il fonctionne efficacement, s'adapte bien avec un minimum de matériel et offre une bonne réponse même sous charge. Pour l'installer, il suffit d'exécuter la commande apt-get install.

# apt-get update

# apt-get install nginx -y

Nous pouvons vérifier la version de nginx qui a été installée ainsi que l'état pour voir si le service a démarré.

# nginx -v

#service nginx status

Alternativement, nous pouvons également pointer le navigateur vers l'adresse IP du serveur et afficher la page d'accueil de nginx :

3) Installer MariaDB

Installez le serveur MariaDB et le logiciel client

# apt-get install mariadb-server-10.0 mariadb-client-10.0 -y

Au moment de la configuration de la BD, il vous sera demandé de définir un mot de passe pour l'utilisateur root "administrateur". Entrez un mot de passe et quittez.

Vérifier la version installée

# mysql --version
mysql Ver 15.1 Distrib 10.0.27-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Nous pouvons sécuriser davantage l'installation en exécutant l'installation sécurisée de MySQL. Ceci est recommandé pour les serveurs de production.

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
... Success!

Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

4) Créer une base de données et un utilisateur pour Nextcloud

Connectez-vous à MariaDB en utilisant le mot de passe défini précédemment lors de la configuration de la base de données.

# mysql -u root -p
Enter password:

Maintenant, créez un utilisateur et définissez un mot de passe pour le même utilisateur.

MariaDB [(none)]> create database nextcloud;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create user nxtcloudadmin@localhost identified by 'admin123';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> grant all privileges on nextcloud.* to nxtcloudadmin@localhost identified by 'admin123'
-> ;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit;

5) Activer la journalisation binaire pour MariaDB

Le journal binaire contient à la fois les modifications de données et les modifications structurelles apportées à la base de données. Ce journal sera utile pour la réplication et la restauration des données. Pour l'activer, éditez le fichier /etc/mysql/my.cnf et ajoutez les lignes suivantes

log-bin = /var/log/mysql/mariadb-bin
log-bin-index = /var/log/mysql/mariadb-bin.index
binlog_format = mixed

Après cela, rechargez le serveur mysql

# service mysql reload

6) Installez PHP7

Tout d'abord, vérifiez si PHP est déjà installé sur votre système. Pour ce faire, exécutez la commande ci-dessous

# dpkg --list |grep php

Si ce n'est pas le cas, recherchez la version de Debian que vous possédez et obtenez les packages correspondants.

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.6 (jessie)
Release: 8.6
Codename: jessie

Dans l'exemple ci-dessus, le nom de la version est 'jessie'. Par conséquent, ajoutons les détails du package jessie à la liste des sources, ajoutons la clé, puis installons les packages PHP requis.

# echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
# echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list

# cd /tmp
# wget https://www.dotdeb.org/dotdeb.gpg
# apt-key add dotdeb.gpg

apt-get update

root@debian-linoxide:~# apt install php7.0-common php7.0-fpm php7.0-cli php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-pear php7.0-gd php7.0-zip php7.0-xml php7.0-mbstring

7) Obtenez un certificat SSL gratuit pour le domaine Nextcloud

Afin d'activer HTTPS sur n'importe quel site Web, nous devons obtenir un certificat d'une autorité de certification (CA). 'Let's Encrypt' est une autorité de certification qui fournit des certificats SSL gratuits pour les domaines.

Pour cela, nous devons d'abord installer le package 'git', puis cloner le référentiel GitHub pour télécharger letencrypt

# apt-get install git bc -y

# git clone https://github.com/letsencrypt/letsencrypt

Maintenant, nous pouvons obtenir le certificat SSL en passant au répertoire 'letsencrypt' et en lançant une seule commande :

# /letsencrypt-auto certonly --standalone --email <your-email-address> --agree-tos -d <your-node-name>

8) Configurer un hôte virtuel pour votre domaine

Pour créer un hôte virtuel, créez un fichier avec votre nom de domaine avec l'extension '.conf' (par exemple, nodenixbox.com.conf dans ce cas) dans le chemin /etc/nginx/sites-enabled et ajoutez le contenu indiqué ci-dessous.

Remarque :Vous devez remplacer le nom du nœud (en rouge) par votre propre nom de domaine et modifier le chemin du certificat ssl (en bleu) pour l'emplacement de votre certificat ssl.

upstream php-handler {
server unix:/run/php/php7.0-fpm.sock;
}

server {
listen 80;
server_name nodenixbox.com;
}

server {
listen 443 ssl;
server_name nodenixbox.com;

ssl_certificate /etc/letsencrypt/live/nodenixbox.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/nodenixbox.com/privkey.pem;

# Path to the root of your installation
root /var/www/nextcloud/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;

# Disable gzip to avoid the removal of the ETag header
gzip off;

# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;

index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;

rewrite ^/.well-known/carddav /remote.php/dav/ permanent;
rewrite ^/.well-known/caldav /remote.php/dav/ permanent;

# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#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 = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}

location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}

location / {

rewrite ^/remote/(.*) /remote.php last;

rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

try_files $uri $uri/ =404;
}

location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}

# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
# Optional: Don't log access to assets
access_log off;
}

# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}

9) Accéder à l'interface Web Nextcloud

Pour créer et gérer votre compte administrateur Nextcloud, pointez votre navigateur sur votre nom de domaine. Dans cet exemple, il s'agit de 'https://nodenixbox.com'. Cela ouvre une fenêtre comme indiqué ci-dessous, demandant la création d'un compte administrateur. Au bas de la même page, vous remarquerez une autre boîte demandant l'utilisateur de la base de données, le mot de passe et le nom de la base de données. Entrez ici les détails du compte que vous avez créé lors de l'installation de MariaDB et appuyez sur le bouton "Terminer la configuration".

Toutes nos félicitations! Vous avez maintenant configuré votre propre serveur Nextcloud et pouvez commencer à partager des fichiers en l'utilisant.

Conclusion

Nextcloud est un endroit sûr pour quiconque, y compris les entreprises, pour stocker, partager et protéger leurs fichiers ou données. Il peut également être utilisé pour partager des calendriers, des contacts, des communications, etc. sans se soucier de leur sécurité. Il se concentre sur les besoins des utilisateurs et des clients et essaie d'y ajouter plus de fonctionnalités. Dans l'ensemble, un outil agréable à utiliser.


Debian
  1. Comment installer Phorum avec Nginx sur Debian 9

  2. Comment installer Ghost sur Debian avec Nginx

  3. Comment installer DokuWiki sur Debian Wheezy avec Nginx

  4. Comment installer WordPress avec Nginx sur Debian 10

  5. Comment installer WonderCMS avec Nginx sur Debian 11

Comment installer Nextcloud 13 sur Ubuntu 16.04 avec Nginx

Comment installer phpMyAdmin avec Nginx sur Debian 11 Bullseye

Comment installer Nextcloud sur Debian 8

Comment installer phpMyAdmin avec Nginx sur Debian 11

Comment installer Nextcloud sur Debian 11

Comment installer Nginx avec PHP-FPM sur Debian 11