GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Nextcloud 10 con Nginx su Debian 8

Nextcloud è un software di sincronizzazione e condivisione di file open source. È un fork di ownCloud e trova il suo utilizzo sia a livello individuale che aziendale. È stato recentemente avviato da Frank Karlitschek che ha fondato in precedenza il progetto ownCloud. Nextcloud non solo ha tutte le funzionalità di ownCloud, ma prevede anche di fornirne di nuove e innovative.

In questo articolo impareremo come installare l'ultima versione di Nextcloud su Debian 8 usando Nginx (pronunciato come EngineX), MariaDB e PHP7.

1) Installa Nextcloud

I file Nextcloud sono disponibili per il download dai server Nextcloud. Possiamo scaricare il file zip e decomprimerlo per completare l'installazione.

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

Spostiamo la directory nextcloud in /var/www e cambiamo la proprietà in www-data

# mkdir /var/www/

# mv nextcloud /var/www/

# rm -f nextcloud-10.0.1.zip

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

2) Installa Nginx

Nginx è open source e uno dei server Web più comuni disponibili. Funziona in modo efficiente, scala bene con hardware minimo e fornisce una buona risposta anche sotto carico. L'installazione è solo una semplice operazione di esecuzione del comando apt-get install.

# apt-get update

# apt-get install nginx -y

Possiamo controllare la versione di nginx che è stata installata e anche lo stato per vedere se il servizio è stato avviato.

# nginx -v

#service nginx status

In alternativa, possiamo anche puntare il browser sull'IP del server e visualizzare la pagina di benvenuto di nginx:

3) Installa MariaDB

Installa il server MariaDB e il software client

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

Al momento della configurazione del DB, ti verrà chiesto di impostare una password per l'utente root "amministrativo". Fornisci una password ed esci.

Verifica la versione installata

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

Possiamo proteggere ulteriormente l'installazione eseguendo l'installazione sicura di MySQL. Questo è consigliato per i server di produzione.

# 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) Creare un database e un utente per Nextcloud

Accedere a MariaDB utilizzando la password impostata in precedenza durante la configurazione del DB.

# mysql -u root -p
Enter password:

Ora crea un utente e imposta una password per lo stesso utente.

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) Abilita la registrazione binaria per MariaDB

Il registro binario contiene sia le modifiche ai dati che le modifiche strutturali apportate al DB. Questo registro sarà utile nella replica e nel ripristino dei dati. Per abilitarlo, modifica il file /etc/mysql/my.cnf e aggiungi le seguenti righe

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

Dopodiché, ricarica il server MySQL

# service mysql reload

6) Installa PHP7

Innanzitutto, controlla se PHP è già installato sul tuo sistema. Per fare ciò, esegui il comando seguente

# dpkg --list |grep php

In caso contrario, scopri la versione Debian che hai e ottieni i pacchetti corrispondenti.

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

Nell'esempio sopra, il nome della versione è 'jessie'. Quindi, aggiungiamo i dettagli del pacchetto jessie all'elenco dei sorgenti, aggiungiamo la chiave e quindi installiamo i pacchetti PHP richiesti.

# 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) Ottieni un certificato SSL gratuito per il dominio Nextcloud

Per abilitare HTTPS su qualsiasi sito Web, è necessario ottenere un certificato da un'autorità di certificazione (CA). 'Let's Encrypt' è una CA che fornisce certificati SSL gratuiti per i domini.

Per questo, dobbiamo prima installare il pacchetto 'git' e poi clonare il repository GitHub per scaricare letencrypt

# apt-get install git bc -y

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

Ora possiamo ottenere il certificato SSL passando alla directory 'letsencrypt' ed emettendo un singolo comando:

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

8) Configurazione dell'host virtuale per il tuo dominio

Per creare un host virtuale, crea un file con il tuo nome di dominio con estensione '.conf' (ad esempio, nodenixbox.com.conf in questo caso) nel percorso /etc/nginx/sites-enabled e aggiungi i contenuti indicati di seguito.

Nota:devi sostituire il nome del nodo (in rosso) con il tuo nome di dominio e cambiare il percorso del certificato SSL (in blu) in modo che risieda il tuo certificato 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) Accesso all'interfaccia web di Nextcloud

Per creare e gestire il tuo account amministrativo Nextcloud, punta il tuo browser sul tuo nome di dominio. In questo esempio, è 'https://nodenixbox.com'. Questo apre una finestra come mostrato di seguito, chiedendo di creare un account amministratore. Nella parte inferiore della stessa pagina, noterai un'altra casella che richiede l'utente del database, la password e il nome del database. Qui inserisci i dettagli dell'account che hai creato durante l'installazione di MariaDB e premi il pulsante "Termina configurazione".

Congratulazioni! Ora hai configurato il tuo server Nextcloud e puoi iniziare a condividere file utilizzandolo.

Conclusione

Nextcloud è un luogo sicuro per chiunque, comprese le aziende, per archiviare, condividere e proteggere i propri file o dati. Può anche essere utilizzato per condividere calendari, contatti, comunicazioni ecc. Senza preoccuparsi della loro sicurezza. Si concentra sulle esigenze di utenti e clienti e sta cercando di aggiungere più funzionalità. Nel complesso, uno strumento piacevole da usare.


Debian
  1. Come installare Phorum con Nginx su Debian 9

  2. Come installare Textpattern CMS con Nginx su Debian 10

  3. Come installare FuelPHP con Nginx su un VPS Debian 8

  4. Come installare NextCloud 13 su Debian 9

  5. Come installare WordPress con Nginx su Debian 10

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Come installare phpMyAdmin con Nginx su Debian 11 Bullseye

Come installare Nextcloud su Debian 8

Come installare phpMyAdmin con Nginx su Debian 11

Come installare Nextcloud su Debian 11

Come installare Nginx con PHP-FPM su Debian 11