Ricerca nel sito web

Configura OwnCloud 9 Server con Nginx, MariaDB e PHP7 su Debian


In questo tutorial, ti mostrerò come configurare il personal cloud storage ownCloud su un VPS Debian 8 con Nginx, MariaDB e PHP7. Il processo di installazione è molto simile all'installazione di WordPress su Debian 8. Questo tutorial è dimostrato su un VPS con solo 128 MB di memoria e può eseguire ownCloud senza alcun problema. Presumo che tu abbia già configurato uno stack LEMP su Debian 8. Se non lo hai fatto, consulta la semplice guida di seguito per vedere come farlo.

Come installare lo stack LEMP su Debian 8 Jessie (Nginx, MariaDB, PHP7)

Passaggio 1: installa ownCloud 9 Server su Debian 8 VPS

Prima di tutto, recupera la chiave di firma ownCloud sul tuo VPS Debian 8 con wget. -nv sta per no-verbose.

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key

Quindi usa apt-key per aggiungere questa chiave di firma a Debian 8.

sudo apt-key add - < Release.key

Successivamente, esegui questo comando per aggiungere il repository ownCloud ufficiale.

sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"

Successivamente, aggiorna l'indice del pacchetto locale e installa owncloud-files.

sudo apt-get update;sudo apt-get install owncloud-files

Puoi installare due pacchetti: owncloud e owncloud-files. La differenza è che se installi owncloud, installerà automaticamente apache2, mysql e php5. Dato che abbiamo già configurato uno stack Nginx, MariaDB e PHP7 sul nostro VPS Debian 8, dobbiamo solo installare i owncloud-files standalone.

I file OwnCloud sono archiviati nella directory /var/www/owncloud.

Passaggio 2: crea un database e un utente per ownCloud

Accedi al server del database MariaDB:

mysql -u root -p

Quindi crea un database per owncloud.

create database owncloud;

Crea un utente del database su localhost.

create user ownclouduser@localhost identified by 'password';

Concedi a questo utente tutti i privilegi sul database owncloud.

grant all privileges on owncloud.* to ownclouduser@localhost identified by 'password';

Elimina i privilegi ed esci.

flush privileges;

exit;

Passaggio 3: abilita la registrazione binaria in MariaDB

Apri il file my.cnf. Il tuo file my.cnf potrebbe trovarsi in /etc/mysql/my.cnf.

sudo nano /etc/my.cnf

Aggiungi le seguenti tre righe nella sezione [mysqld].

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

Il formato del log binario deve essere misto. Salva e chiudi il file. Quindi ricarica il servizio MariaDB.

sudo service mysql reload         or      sudo systemctl reload mysql

Passaggio 4: ottieni un certificato SSL gratuito da Let's Encrypt

Per prima cosa installa il client Let's Encrypt da Github.

sudo apt-get install git

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

Ora entra nella directory letencypt.

cd letsencrypt/

Arresta il processo Nginx.

sudo service nginx stop       or         sudo systemctl stop nginx

Ottieni un certificato SSL per il tuo nome di dominio con questo comando:

./letsencrypt-auto certonly --standalone --email <your-email-address> --agree-tos -d owncloud.your-domain.com

Nota: presumo che tu stia utilizzando un nome di dominio come owncloud.your-domain.com per accedere all'interfaccia web ownCloud. Devi anche puntare il tuo nome di dominio all'IP del tuo server nel DNS prima di eseguire il comando precedente.

significa sicuramente che il client ottiene il certificato SSL ma non lo installerà. Poiché Let's Encrypt è ancora in versione beta e non supporta la configurazione SSL automatica per Nginx, quindi dobbiamo configurare (installare) SSL manualmente.

Il tuo certificato SSL verrà salvato nella directory /etc/letsencrypt/live/.

Passaggio 5: crea un file di configurazione Nginx per owncloud

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

Inserisci il seguente testo nel file.

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

server {
 listen 80;
 server_name owncloud.your-domain.com;
 # enforce https
 return 301 https://$server_name$request_uri;
 }

server {
 listen 443 ssl;
 server_name owncloud.your-domain.com;

 ssl_certificate /etc/letsencrypt/live/owncloud.your-domain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/owncloud.your-domain.com/privkey.pem;

# 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;

 # Path to the root of your installation
 root /var/www/owncloud/;
 # 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/carddav/ permanent;
 rewrite ^/.well-known/caldav /remote.php/caldav/ 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;
 # 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;
 }
}

Sostituisci il testo di colore rosso con i tuoi dati effettivi. Questo file di configurazione presuppone che il tuo processo php-fpm sia in ascolto sul socket Unix. Se il tuo php-fpm è in ascolto su 127.0.0.1:9000, devi modificare la sezione upstream. In questa configurazione puoi anche abilitare http2 per SSL. Tieni presente che Nginx non supporta http2 fino alla versione 1.9.5. Controlla il seguente tutorial su come abilitare HTTP2 con l'ultima versione di Nginx sul server Debian 8.

Come abilitare HTTP2 con l'ultima versione di Nginx sul server Debian 8

Una volta salvato questo file di configurazione, installa le estensioni php7 necessarie.

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

Ora riavvia il processo Nginx.

sudo service nginx restart      or       sudo systemctl restart nginx

Passaggio 6: impostare l'interfaccia Web

Nella barra degli indirizzi del browser, digita

owncloud.your-domain.com

È necessario creare un account amministrativo e connettere il servizio ownCloud al database MariaDB.

Una volta terminato, accederai all'interfaccia Web di owncloud. Congratulazioni! Ora puoi iniziare a utilizzare owncloud come spazio di archiviazione cloud privato.

Come puoi vedere, il processo di installazione di ownCloud è molto simile a quello di installazione di WordPress e Drupal.

Commenti, domande o suggerimenti sono sempre benvenuti. Se hai trovato utile questo post,? per favore condividilo con i tuoi amici sui social media! Resta sintonizzato per ulteriori tutorial su Linux.

Articoli correlati