INTRODUZIONE
ownCloud è un sistema di cloud server open source.
ownCloud è un server di condivisione di file che consente di memorizzare i tuoi contenuti personali, come documenti e immagini, in una posizione centralizzata, proprio come Dropbox.
La differenza con ownCloud è che è gratuita e open-source e consente a chiunque di utilizzarlo.
Restituisce inoltre il controllo e la sicurezza dei dati sensibili, eliminando così l’utilizzo di un servizio di hosting cloud di terze parti.
ownCloud è utilizzabile tramite comoda interfaccia Web.Autenticandosi con username and password si accede alla propria area privata.
Immediatemente potrai creare le tue cartelle e caricare i files. ownCloud offre anche un software client installabile su Windows, Mac OS X , iOS, Android e Linux.
PRE-REQUISITI
Per completare i passaggi di questa guida, sono necessarie le seguenti cose:
1) Un utente con diritti sudo sul server.Impostare i privilegi di “sudo” ad un utente in Ubuntu 16.04 – Impostare privilegi sudo ad un utente ubuntu 16-04
2) Uno stack LAMP: ownCloud richiede che un server web, un database e un PHP funzionino correttamente. L’installazione di un server LAMP (Linux, Apache, MySQL e PHP) soddisfa tutti questi requisiti. Installazione Linux, Apache, MySQL, PHP (LAMP) stack su Ubuntu 16.04 – Installazione lamp stack ubuntu 16-04
Per sfruttare appieno tutte le funzionalità disponibili da OwnCloud, assicurati di installare i seguenti moduli PHP: php-bz2, php-curl, php-gd, php-imagick, php-intl, php-mbstring, php- xml e php-zip.
3) Un certificato SSL: come impostato in questo modo dipende se hai un nome a dominio che si risolve al server.
Se si dispone di un nome di dominio il modo più semplice per proteggere il sito è con Let’s Encrypt, che fornisce certificati gratuiti e attendibili.
Se non si dispone di un dominio e si utilizza questa configurazione solo per test o per uso personale, è possibile utilizzare un certificato autofirmato.
Questo fornisce lo stesso tipo di crittografia, ma senza la convalida del dominio.
4) Una volta completata l’installazione, avviare i servizi Apache e Mysql e consentirli di avviarsi all’avvio lanciando i comandi:
0 1 2 3 |
sudo systemctl start apache2 sudo systemctl start mysql sudo systemctl enable apache2 sudo systemctl enable mysql |
5) Installare tutti i seguenti moduli PHP lanciando i comandi
0 1 2 3 4 5 6 7 8 9 |
sudo phpenmod mcrypt sudo phpenmod mbstring sudo php-bz2 sudo php-curl sudo php-gd sudo php-imagick sudo php-intl sudo php-mbstring sudo php- xml sudo php-zip |
INSTALLAZIONE DI OWNCLOUD
Il pacchetto server ownCloud non esiste all’interno dei repository predefiniti di Ubuntu. Tuttavia, ownCloud mantiene un repository dedicato per la distribuzione in oggetto.
Scarichiamo il pacchetto con il comando:
0 |
sudo curl https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add - |
oppure se conosciamo la versione esatta è possibile utilizzare il link diretto
0 |
sudo curl https://download.owncloud.org/download/repositories/10.0/Ubuntu_16.04/Release.key | apt-key add - |
Dovremmo vedere una schermata come quella sovrastante
Il file ‘Release.key’ contiene una chiave pubblica PGP (Pretty Good Privacy) che adatta a verificare se il pacchetto ownCloud è autentico.
Lanciamo il comando
0 |
sh -c "echo 'deb https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' | sudo tee /etc/apt/sources.list.d/owncloud.list" |
oppure se conosciamo la versione esatta è possibile utilizzare il link diretto
0 |
sh -c "echo 'deb https://download.owncloud.org/download/repositories/10.0/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list" |
Se è tutto corretto dovremmo vedere una schermata come mostrato nell’immagine sovrastante
Lanciamo il comando
0 |
sudo apt update && sudo apt upgrade |
Infine lanciamo l’installazione di OwnCloud con il comando
0 |
sudo apt-get install owncloud-files |
Al termine dell’installazione riavviamo Apache con il comando
0 |
sudo systemctl reload apache2 |
CONFIGURAZIONE DATABASE MYSQL
Accediamo al MySQL con l’account amministrativo con il comando
0 |
mysql -u root -p |
Inserire quindi la password di root del MySQL Server
OwnCloud richiede un database separato per la memorizzazione di dati amministrativi.
Scegliamo il nome da dare al database e lanciamo il comando
0 |
CREATE DATABASE owncloud; |
Se è tutto ok dovremmo vedere un immagine come quella sovrastante
Quindi, creare un account utente MySQL separato che interagirà con il database appena creato.
Come per il nome del database, scegliamo un nome utente a nostro piacimento.
Eseguiamo il comando
0 |
GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'password_utente'; |
NOTA BENE: Al posto di password_utente inserire una password valida e complessa
Facciamo quindi un refresh dei permessi
0 |
FLUSH PRIVILEGES; |
Usciamo dalla configurazione di mySQl con il comando
0 |
exit |
POSSIBILE ERRORE NEL RICHIAMARE LA PAGINA DI OWNCLOUD
A questo punto richiamando il link https://server_domain_or_IP/owncloud dovremmo visualizzare la Homepage del nostro owncloud.
Spesso capita di ricevere l’errore HTTP 404 ed in questo caso basterà apportare una modifica al file di configurazione di Apache per mettere tutto a posto.
Di default la default root di Apache è in /var/www/html invece la root di owncloud è in /var/www
Quindi basterà aprire il file /etc/apache2/sites-available/000-default.conf
0 |
sudo nano /etc/apache2/sites-available/000-default.conf |
Basta modificare la riga DocumentRoot /var/www/html in DocumentRoot /var/www
Chiudere e salvare il file.
Per applicare le modifiche riavviare Apache con il comando
0 |
sudo systemctl restart apache2 |
CREAZIONE CERTIFICATO SSL
Per la creazione del certificato lanciamo il seguente comando:
0 |
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt |
0 |
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 |
Creiamo quindi il file ssl-params.conf con il comando:
0 |
sudo nano /etc/apache2/conf-available/ssl-params.conf |
All’interno del file aggiungiamo le seguenti righe:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# from https://cipherli.st/ # and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On # Disable preloading HSTS for now. You can use the commented out header line that includes # the "preload" directive if you understand the implications. #Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLSessionTickets Off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" |
Lanciamo quindi il comando:
0 |
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak |
Quindi editiamo il file default-ssl.conf con il comando:
0 |
sudo nano /etc/apache2/sites-available/default-ssl.conf |
All’interno del file inseriamo i seguenti paramentri:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerAdmin your_email@example.com ServerName server_domain_or_IP DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-6]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </VirtualHost> </IfModule> |
Lanciamo quindi i seguenti comandi:
0 1 2 3 4 |
sudo a2enmod ssl sudo a2enmod headers sudo a2ensite default-ssl sudo a2enconf ssl-params sudo apache2ctl configtest |
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
La guida L ho scritta qualche mese fa e assicuro il corretto funzionamento. Calcolando che sicuramente sono stato rilasciati aggiornamenti per i pacchetti dell applicativo e a corredo non posso garantire la completa funzionalità. Bisognerebbe installare e verificare eventuali problematiche al momento. Le consiglio di mettere su una virtual machine e di testare che vada tutto a buon fine prima di andare in produzione. Saluti
Buonasera,
ho necessità di installare owncloud su ubuntu server 16.04.
La guida funziona correttamente e senza problemi per tale distribuzione?
Non posso permettermi di riformattare nel caso dovesse andare male.
Grazie
C.S
Il primo errore è chiaro : non riesce a connettersi al database con le credenziali che gli passi per il secondo c’entra sempre la key ssl che molto probabilmente non è generata correttamente
ok, sto ricompilando tutto vediamo cosa succede.
intanto ti mando il messaggio di errore quando mi connetto alla schermata browser owncloud
error while trying to create admin user:
failed to connect to the database:an
exception occurred in driver:
SQLSTATE[HY000][1045] Acces denied
for user ‘roberto’@’localhost’ (using
password:yes)
inoltre se tento di connettermi al server in https mi da errore server non trovato
la prima volta mi ha dato certificato non sicuro, ho smarcato l’eccezzione
è andato avanti, però mi ha dato server non trovato.
invece se inserisco solo l’ip del server si connette alla pagina di owncloud.
Non è presente il file della Key SSL oppure è corrotto. Ti consiglio di rigenerare la chiave rieseguendo la procedura
AH00526: Syntax error on line 34 of /etc/apache2/sites-enabled/default-ssl.conf:
SSLCertificateKeyFile: file ‘/etc/ssl/private/apache-selfsigned.key’ does not exist or is empty
Action ‘configtest’ failed.
The Apache error log may have more information.
Questo è l’output dopo aver lanciato il test.
Ok per verificare dove è il problema prova a lanciare il comando apache2ctl configtest così vedi cosa causa il problema
apache2.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable apache2
Questo è l’errore che mi da
Ciao Roberto il comando non fa niente altro che attivare il demone Apache. Se va in errore potrebbe essere un problema di Apache non installato correttamente . Se mi posti L errore forse riesco a dirti qualcosa in più…
Buon giorno.
Per iniziare grazie mille per le tue guide, complete e chiare. Detto ciò passo ad esporti il mio problema.
Quando digito questa riga
“sudo systemctl enable apache2”
Il server mi da errore, andando avanti e arrivando infondo all’installazione nel momento di login al server oc mi da errore anche li.
Che le due cose siano collegate?
Scusa se eventualmente sono poco chiaro, ma attualmente non ho il pc sotto mano, se hai idee o domande ti ringrazio anticipatamente.