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.