Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch
Guida su come installare owncloud 10 su Raspberry Pi 3 con già installato Raspbian Stretch. Io ho sempre usato uno dei miei Raspberry come server cloud, accessibile soprattutto da remoto. In questa guida non mi soffermerò sui problemi di sicurezza ed i modi per limitare i danni derivanti da una macchina esposta su internet, ma bensì mi limiterò ai soli step per avere un server cloud pronto all'uso. Io preferisco archiviare i dati direttamente su una chiavetta usb da 128G, piuttosto che direttamente sul raspberry. Quindi, dopo avere installato Raspbian Stretch ed aver collegato alla porta usb la pen drive, servendosi di una prolunga usb che servirà a dissipare il calore, siamo pronti ad iniziare.
$ sudo su
# apt update; apt upgrade
# apt install apache2 mariadb-server libapache2-mod-php7.0 php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-intl php7.0-mcrypt php-imagick php7.0-zip php7.0-xml php7.0-mbstring ntfs-3g fail2ban
# cd /tmp
# wget https://download.owncloud.org/community/owncloud-10.0.7.tar.bz2
# tar -xvf owncloud-10.0.7.tar.bz2
# chown -R www-data:www-data owncloud
# mv owncloud /var/www/html/
# nano /etc/apache2/sites-available/owncloud.conf
ed incollare dentro:
Alias /owncloud "/var/www/html/owncloud/" <Directory /var/www/html/owncloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/owncloud SetEnv HTTP_HOME /var/www/html/owncloud </Directory>
# ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf
# systemctl start apache2
# systemctl enable apache2
Creazione database ed user mysql:
# mysql -u root -p
inserire password di root, e poi i 5 comandi sotto, e settare la password per l'utente owncloud:
1) create database owncloud;
2) create user owncloud@localhost identified by 'password';
3) grant all privileges on owncloud.* to owncloud@localhost identified by 'password';
4) flush privileges;
5) exit;
Web Server Apache2 con SSL
sotto ci saranno alcune voci da riempire, ma quella più importante è COMMON NAME, che io ho fatto puntare al mio hostname DynDNS per l'accesso da remoto:
Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch
# cd --
# openssl genrsa -out server.key 4096
# openssl req -new -key server.key -out server.csr
# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt -sha256
# chmod 400 server.key
# a2ensite default-ssl.conf
# systemctl reload apache2
# a2enmod ssl
# systemctl restart apache2
configurazione apache2:
# nano /etc/apache2/sites-available/default-ssl.conf
che dovrà essere come sotto, aggiungendo ip del server cloud, modificando le voci DocumentRoot, SSLCertificateFile, SSLCertificateKeyFile , e commentando le altre voci che fanno riferimento a SSL.
<VirtualHost _default_:443> ServerAdmin webmaster@localhost ServerName IP-SERVER:443 DocumentRoot /var/www/html/owncloud SSLCertificateFile /root/server.crt SSLCertificateKeyFile /root/server.key
# nano /etc/apache2/sites-available/000-default.conf
la DocumentRoot dovrà essere come sotto:
DocumentRoot /var/www/html/owncloud
# nano /etc/php/7.0/apache2/php.ini
fare una modifica al file php.ini, nella sezione File Uploads, portando upload_max_filesize = 5000.
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
# systemctl restart apache2
creazione della cartella di storage e relativi permessi:
# mkdir /media/owncloud-usb
# groupadd www-data
# usermod -a -G www-data www-data
# chown -R www-data:www-data /media/owncloud-usb
# chmod -R 775 /media/owncloud-usb
a questo punto abbiamo bisogno di conoscere UUID della chiavetta usb ed user e group di www-data, che serviranno per configurare /etc/fstab per il montaggio automatico:
# id -u www-data; id -g www-data
# blkid
# nano /etc/fstab
ed aggiungere in una sola riga qualcosa del genere in /etc/fstab:
UUID=32E49E5027A4F8A7 /media/owncloud-usb auto nofail,uid=33,gid=33,umask=0027$,dmask=0027,noatime 0 0
come ultimo ritocco, aumentare la capacità di upload, andando a modificare il file .user.ini
# nano /var/www/html/owncloud/.user.ini
portando: php_value upload_max_filesize, e php_value post_max_size a 5000M
# reboot
Se tutto è andato bene andare all'indirizzo https://ip_del_raspberry ed apparirà la pagina iniziale, dove si dovrà scegliere nome utente e password per l'accesso al server owncloud, ed inserire il nome del database, user e password dell'utente owncloud:
Username: owncloud
Password: password
Database: owncloud
Server: localhost
Molto probabilmente al momento di accedere via FQDN, owncloud presenterà al login un errore di untrusted domain
Owncloud 10 su Raspberry Pi 3 e Raspbian Stretch
si risolve andando a modificare il file config.php, aggiungendo ip server ed il proprio DDNS
# nano /var/www/html/owncloud/config/config.php
$CONFIG = array ( 'instanceid' => 'oc8foxmontqb', 'passwordsalt' => 'PBMACOGPeaL9S/Lfq+a80nhE9Bi6ke', 'secret' => 'EtvIi0rDN2kmFUBdTL4xehQTRUBD1NDmvDipQ3qyVK1gj8SI', 'trusted_domains' => array ( 0 => '192.X.X.X','myddns' ), 'datadirectory' => '/media/owncloud-usb', 'overwrite.cli.url' => 'https://192.X.X.X', 'dbtype' => 'mysql', 'version' => '10.0.7.2', 'dbname' => 'owncloud', 'dbhost' => 'localhost', 'dbtableprefix' => 'oc_', 'dbuser' => 'owncloud', 'dbpassword' => 'abcd2134retfd5678hjbnfh58gbf', 'logtimezone' => 'UTC', 'installed' => true,
enjoy 😉
Ottimo articolo, con l'installazione che viene seguita passo dopo passo e funziona anche con la release 9.4 di Raspbian.
Volevo solo segnalare quello che mi sembra un refuso. La riga:
Credo che vada scritta in questo modo:
# openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt -sha256
Corretto! Grazie per la segnalazione 😉
Installando l'ultima versione disponibile (10.0.7.2) nella sezione ADMIN dell'interfaccia potrebbe essere visualizzato in alto un messaggio come questo: "There were problems with the code integrity check. More information". Aprendo la finestra vengono visualizzati una serie di warning, di cui uno fa riferimento all'abilitazione di CRON al posto dell'AJAX di default.
Per settare cron, basta aprire una shell, lanciare il comando:
crontab -u www-data -e
…scegliere un editor per aprire il file ed aggiungere in coda l'istruzione:
15 * * * * /usr/bin/php -f /var/www/html/owncloud/cron.php
…che esegue il file cron.php ogni 15 minuti.
Per quanto riguarda invece la segnalazione "The Strict-Transport-Security HTTP header is not…":
1) sudo a2enmod headers
2) systemctl restart apache2
3) Editare il file: sudo nano /etc/apache2/sites-available/default-ssl.conf e aggiungere:
4) Salvare e poi lanciare il comando: systemctl restart apache2
ottima segnalazione 😉
Ho trovato un errore che si verifica quando si tenta di fare un upload di file superiori a 2Gb. Questa la procedura per correggerlo:
a) aprile una shell
b) sudo su
c) nano /var/www/html/owncloud/apps/dav/lib/Upload/ChunkingPlugin.php
d) sostituire la linea "if ((int)$expectedSize !== $actualSize) {" con "if ($expectedSize !== (string)$actualSize) {"
e) salvare
f) reboot
ho fatto una piccola modifica alla guida per evitare di toccare .htaccess ed usare .user.ini, quindi incrementare da là l'upload 😉
nano /var/www/html/owncloud/.user.ini
Sì, giusto. In questo modo si evitanom segnalazioni di errore sul file .htaccess dalla console di amministratore.
buonasera ho seguito la procedure e devo dire per la prima volta che uso questo sistema
penso di aver ottenuto ottimi risultati grazie a te.
di contro, come dicevo essendo alle prime armi, non sono riuscito ancora a risolvere alcuni problemi
su owncloud.
nella parte di avvisi di sicurezza e configurazione ho i seguenti errori,
1-il blocco del file transazionale dovrebbe essere configurato.
2-consigliamo di abilitare il cron di sistema
3-sei connesso a questo sito tramite HTTP. ti suggeriamo di configurare il tuo server per l’utilizzo del prptocollo HTTPS
4-la cartella dei dati e i tuoi file sono accessibili da internet. il file htaccess non funziona-
sto diventando pazzo, qualsiasi aiuto è gradito, grazie 🙂
cron abiliti l’opzione che troverai a centro pagina
https non è stato configurato correttamente, tu dovresti puntare https://ip_owncloud
prova a fare delle modifiche o cancella la cartella owncloud e ritenta con calma
ho risoltp tutto grazie.
ora volevo sapere se avete una guida per montare un hdd esterno usb sempre su owncloudo utilizzandolo come storage esterno…..grazie
https://francoconidi.it/owncloud-9-apache-mysql-su-raspberry-pi-3-e-raspbian/
buongiorno. ho una domanda,
seguendo questa guida non dovrei avere gia lo streaming dei file abilitato? perche ho caricato alcuni video e per vederli mi fa il download.
non lo streaming.
mi dice che non ho i permessi
come si puo risolvere?
No, devi andare nella sezione Market e scaricare il player
buonasera.
premetto che ho seguito la tua guida ed è andato tutto bene,
adesso ho due domande:
1- è possibile un aiuto o una guida,anche un indicazione su come autenticare i certificati CA,
ti spiego:ho un indirizzo ip publico e tramite quello mi collego con la app mobile di owncloud, però nel momento in cui vado a fare lo streaming di un video mi dice che non è possibile farlo perche i certificati del server non sono sicuri. ed esegue subito dopo il download del file. ho cercato sul web ma non ho trovato nulla per autenticare i certificati autofirmati di apache2.
2- quando provo a fare l’aggiornamento di owncloud mi da questo errore:cURL error 77: error setting certificate verify locations: CAfile: /etc/ssl/certs/ca-certificates.crt CApath: /etc/ssl/certs
forse sempre perche non ci sono dei certificati autenticati da qualche ente.
grazie
Si è un problema di certificato non riconosciuto. La prossima guida sarà su come creare un certificato attendible 😉
grazie, attendiamo con trepidazione 🙂
Buongiorno.
sei piu riuscito a trovare qualcosa su come ottenere i certificati autenticati per owncloud?
Certamente, sarà online in questo weekend 😉
eccola 🙂
https://francoconidi.it/raspberry-con-owncloud-letsencry-apache/
grazie per il programma ma gentilmente avrei bisogno di assistenza in quanto ho reinstallato 2 volte il programma ma al momento di attivarlo non mi fa attivare l’amministratore e mi rilncaia il codice di errore SQLSTATE[HOOO][1045]. se gentilmente mi fornite assistenza..grazie
premetto che soprattutto nella seconda volta di reinstallazione ho seguito accuratamente i passaggi indicati e la password creata
1) create database owncloud;
2) create user owncloud@localhost identified by ‘password’;
3) grant all privileges on owncloud.* to owncloud@localhost identified by ‘password’;
4) flush privileges;
5) exit;
riprova ed al posto di “password” metti la password di root
Le indicazioni sono state esaudienti ho risolto il problema
Grazie e adesso il tutto funziona perfettamente
ciao
nell’ultimo passaggio:
‘datadirectory’ => ‘/var/www/html/owncloud/data’ …invece di ….’/media/owncloud-usb’
tutto funziona bene ma quando carico o scarico file invece di usare il disco esterno finisce tutto nella cartella data di owncloud….ho provato a cambiarlo manualmente nel file ma niente.
datadirectory deve puntare al disco esterno, verifica bene se avviene il mount
Ciao, grazie alla tua guida ho configurato un raspberry come server ed ha funzionato perfettamente per un anno, poi malauguratamente ho aggiornato a Raspbian Buster (con PHP7.3) ed ora quando tento di accedere ad OwnCloud ricevo:
Memcache \OC\Memcache\Redis not available for local cache Is the matching PHP module installed and enabled?
Ho smanettato per due giorni senza risultati e sto uscendo di testa, puoi darmi qualche dritta?
Grazie!
aggiornando a Buster la versione di php è cambiata
php -v
cambia versione e tutto dovrebbe funzionare:
update-alternatives --config php
E’ la prima cosa che ho fatto (ho installato il 7.2) ma poi non riesce a caricare il modulo redis.so. Ho anche tentato con APCu. Credo che quando installo il modulo (sia usando apt che con pecl) venga installato in ogni caso il modulo per PHP7.3 e quindi non combaciando la versione non lo carica… Per ora ho disattivato il caching altrimenti non riuscivo ad accedere ma spero di trovare una soluzione, magari compilando un eventuale sorgente specifico per 7.2
Grazie!
Ciao,
ho fatto tutto e tutto funziona PERFETTAMENTE, grazie!!!
La mia domanda però è una, non ho fatto i passaggi con la USB collegata ma solo con la SD, ora visto che vorrei collegarci un HD da 320 GB che mi avanza ho problemi o devo fare altro??
Grazie e ciao
Francesco
Devi solo cambiare il percorso di archiviazione e fare il mount in /etc/fstab… 😉