Installazione ownCloud · 10 min read · Jan 22, 2026
La tua Cloud, i tuoi Dati, il tuo Modo! - ownCloud 4.0 Su CentOS 6.2 + nginx + PostgreSQL
La tua Cloud, i tuoi Dati, il tuo Modo! - ownCloud 4.0 Su CentOS 6.2 + nginx + PostgreSQL
Questo documento descrive come installare e configurare ownCloud dalla “community di ownCloud” su un server web basato su CentOS 6.2 da un pacchetto tar su un nginx e php-fpm con database PostgreSQL come backend. Per altre distribuzioni potrebbero esserci piccole modifiche nelle procedure di installazione dei prerequisiti software. Questa guida non solo aiuterà a installare il prodotto, ma anche a capire perché certi punti vengono eseguiti in un certo modo (questo è molto utile per gli utenti con poca o nessuna conoscenza che, come me qualche tempo fa, hanno appena iniziato a usare Linux).
Cos’è ownCloud?
È uno strumento di condivisione file / contatti / calendario per gruppi o aziende, che, dal mio punto di vista, combina il meglio di Dropbox e GroupOffice (eccetto per l’integrazione email finora), e non è così ingombrante o pesante come Alfresco o Sharepoint.
Collegamenti a diverse sezioni per sviluppatori:
- Homepage del prodotto: http://owncloud.org/
- IRC: http://webchat.freenode.net/?channels=owncloud
- Supporto: http://owncloud.org/support/
Non garantisco che funzionerà per te, poiché in seguito potrebbero esserci cambiamenti nel software, sia nei prerequisiti che nel principale, fatti in modo tale da interrompere o in altro modo impedire le procedure menzionate in questo tutorial di completarsi con successo.
P.S. Tutti i bug aggiunti sono miei. Usa i commenti o naviga su IRC.
Nota Preliminare
In questo tutorial utilizziamo:
- Media di installazione di Centos 6.2
- Nome host: owncloud.example.com
- Indirizzo IP: 192.168.1.100
- Indirizzo del router: 192.168.1.1
- Maschera di rete: 255.255.255.0
- Supponiamo (immaginiamo) che il server sia connesso a Internet pubblico
- Utilizziamo il nostro computer per amministrare il server da remoto tramite ssh (putty su windows), anche se hai il server accanto a te, o lo hai come macchina virtuale eseguita sotto il tuo sistema operativo principale
- GNU vim come nostro editor di testo principale. Ma sentiti libero di usare qualsiasi altro a tuo piacimento
Requisiti
Avremo bisogno di un’installazione pulita (minimale) funzionante di Centos 6.2 (x86 o x86_64 è irrilevante), io personalmente uso la versione x86_64 e ti consiglio vivamente di fare lo stesso.
Prima di tutto
Accedi alla console del server come root. Sarai al prompt [root@owncloud ~]#.
Preferisco alcune impostazioni, che sono completamente opzionali, ma potresti trovarle utili in seguito. Configuro il mio terminale per mostrare l’output a colori con data, ora, nome del server e cartella corrente al prompt. Mostra anche la cronologia dei comandi con data/ora. Aumento anche i valori predefiniti della dimensione della cronologia.
Per farlo, esegui:
vi ~/.bash_profileAggiungi le righe menzionate dopo la direttiva export PATH. Nel caso non lo sapessi, premere “i” entra in modalità di inserimento, “ESC” esce da essa. Vi è vi :)
#Dimensione della cronologia per contenere 50.000 comandi e aumentare la dimensione del file dieci volte più grande
export HISTSIZE=50000
export HISTFILESIZE=500000
#Mostra la cronologia con la data come esempio: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocolorare l'output del comando "ls"
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Imposta il prompt per visualizzare come esempio: "Gio Mag 24 2012 14:28:56 owncloud.example.com di root @ ~]"
e colorare data, ora e posizione in modo diverso. Imposta tutto il testo di input ai valori predefiniti.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H di \u @ \W] \033[00m\]"Salva ed esci dal file. Ancora una volta, se non lo sai, al di fuori della modalità di inserimento puoi digitare “:wq” e premere invio per salvare ed uscire, oppure premere semplicemente “ZZ” per fare lo stesso. Per riconnettersi al terminale per applicare le modifiche, esegui:
exitNetworking
Se non hai impostato un indirizzo IP statico durante l’installazione, diciamo che hai un router abilitato DHCP, devi farlo ora, altrimenti procedi al passaggio successivo.
vi /etc/sysconfig/network-scripts/ifcfg-eth0Cambia o aggiungi solo le righe menzionate.
BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"Salva ed esci. Quindi riavvia la rete:
service network restartControlla che la rete sia riconfigurata eseguendo:
ifconfigOra dovresti essere in grado di ssh al server su 192.168.1.100 come root. Ma non farlo ancora, prima completa il passaggio successivo.
Sicurezza del Server
Prima di procedere ulteriormente, poiché abbiamo supposto che il server sia, in effetti, connesso a Internet, dobbiamo metterlo in sicurezza. Faremo tre cose.
- Riconfigurare il server ssh in modo che non consenta il login come root e cambiare la porta predefinita 22 in qualcos’altro, meno comune, ad esempio 60606,
- Impostare iptables per consentire connessioni in entrata sulla nuova porta,
- Aggiungere il nostro primo utente di sistema per poter accedere con lui tramite ssh.
Sicurezza del login remoto Se non sei ancora connesso dalla console al server (intendo la console locale, non ssh ancora), accedi come root, quindi esegui:
Nella riga tredici del file predefinito non alterato (nel caso ti chiedessi di nuovo, digita “:set number” e premi invio al di fuori della modalità di inserimento per ottenere i numeri di riga) c’è la direttiva Port 22. Duplica, cambia il numero di porta in 60606 e decommenta.vi /etc/ssh/sshd_config
Quindi trova (al di fuori della modalità di inserimento premi “/“ e digita la frase che stai cercando) la direttiva PermitRootLogin yes, duplicala di nuovo e cambia il suo valore in no e decommentala anche, quindi salva il file. Oh, e per disattivare l’evidenziazione è “:noh”.
Riavvia sshd dopo:service sshd restartImpostazione di iptables Prima controlla gli iptables già esistenti:
Nell’installazione predefinita alla posizione ‘4’ ci sarà la direttiva per accettare nuove connessioni tcp sulla porta ssh predefinita, dobbiamo sbarazzarcene, quindi esegui:iptables -L -v --line-numbersOra dobbiamo consentire connessioni alla porta 60606 invece. Esegui:iptables -D INPUT 4Infine, per salvare lo stato attuale degli iptables esegui:iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPTservice iptables save service iptables restartAggiunta del primo utente Tutto va bene ora, tranne per una cosa, ci siamo esclusi da ssh, poiché root non è consentito e non ci sono ancora altri utenti di sistema. È tempo di correggere:
Imposta la password per questo utente:useradd -c "ownCloud system user" -m -n cloudadminFatto. Potresti impostare la password per l’utente nel primo comando, ma in questo modo il valore della password sarà visibile durante l’inserimento nella finestra del terminale e sarà anche salvato nella .bash_history dell’utente root, il che non è desiderabile.passwd cloudadmin
Ora puoi accedere tramite ssh eseguendo il seguente comando nella finestra del terminale sul computer locale:ssh [email protected] -p60606
Passaggi Preliminari
L’installazione del software nella maggior parte dei casi è piuttosto semplice e avremmo potuto ‘controllare’ la maggior parte di esso durante l’installazione iniziale, ma preferisco fare le cose a mano.
Divido intenzionalmente l’installazione in sezioni.
Accesso come superutente In questo momento dovresti essere al prompt della console come utente clouddmin. Per ottenere i privilegi di root esegui:
su -Repository software Per utilizzare il software desiderato, sono richiesti due repository.
Primo EPEL, esegui:E no, i386 non è un errore, è lo stesso per i sistemi a 32 e 64 bit.rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
Poi Remi, esegui:Ora controlla entrambi i repository epel e remi e nel caso non ci fosse imposta enabled=1 eseguendo:rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmInfine, aggiorna il tuo sistema. Anche un CentOS appena installato potrebbe richiedere un aggiornamento prima. Esegui:vi /etc/yum.repos.d/epel.repo vi /etc/yum.repos.d/remi.repoyum update -yTempo di precisione È bene essere sincronizzati con il resto del mondo, esegui:
yum install ntp service ntpd start chkconfig ntpd on ntpdAlcuni altri strumenti Per rendere la mia vita un po’ più facile, uso vim invece di vi, htop invece di top, elinks per testare rapidamente le cose da dentro il terminale e mc, come un buon e non solo file manager a doppio pannello, wget è necessario per scaricare cose e man è essenziale quando vuoi leggere praticamente qualsiasi cosa. Esegui:
yum install vim htop elinks mc wget man -y
Configurazione di ownCloud
Prerequisiti software Un insieme di pacchetti php, esegui:
Modifica php.ini, esegui:yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsqlCi sono quattro direttive da cambiare,vim /etc/php.ini
la prima dovrebbe essere alla riga 736, direttiva post_max_size
la seconda alla riga 848, direttiva cgi.fix_pathinfo
la terza alla riga 885, direttiva upload_max_filesize
l’ultima alla riga 956, direttiva date.timezone modifica in base alla posizione del tuo server.Nel caso non lo sapessi, puoi trovare il nome del tuo fuso orario eseguendo:[...] post_max_size = 64M [...] cgi.fix_pathinfo = 0 [...] upload_max_filesize = 64M [...] date.timezone = "Europe/Prague" [...]Successivamente, configura php-fpm per utilizzare il socket unix invece dello stack tcp, esegui:cat /etc/sysconfig/clockDalla riga dodici, fallo apparire così:vim /etc/php-fpm.d/www.confAvvia php-fpm:;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sockchkconfig php-fpm on service php-fpm startBackend - PostgreSQL Per installarlo e configurarlo, esegui:
Accedi a postgres come utente di sistema postgres, crea un utente del database, un database e concedi privilegiyum install postgresql postgresql-libs postgresql-server service postgresql initdb service postgresql start chkconfig postgresql onModifica il file di configurazione di postgresql per consentire i login con password:su - -c "psql" postgres CREATE USER clouduser WITH PASSWORD 'userpass'; CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8'; GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser; \qvim /var/lib/pgsql/data/pg_hba.conf
- Cerca
# IPv4 local connections: host all all 127.0.0.1/32 ident - E modificalo in Ora riavvia il database:
# IPv4 local connections: host all all 127.0.0.1/32 passwordservice postgresql restart
Server web nginx Installa, imposta per avviarsi all’avvio e poi fermalo:
Prepara il file di configurazione per il sito web owncloud:yum install nginx service nginx start chkconfig nginx on service nginx stopvim /etc/nginx/conf.d/owncloud.confOra creiamo certificati per il server, rispondi alle domande nel prompt in base alle tue impostazioni:# reindirizza http a https. server { listen 80; server_name owncloud.example.com; rewrite ^ https://$server_name$request_uri? permanent; # forzare https } # owncloud (ssl/tls) server { listen 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; server_name owncloud.example.com; root /var/www/owncloud; index index.php; client_max_body_size 64M; # imposta la dimensione massima di upload # nega l'accesso diretto location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } # ordine di prova predefinito location / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } # abilita php location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } }Ricarica nginx per abilitare la nuova configurazione:mkdir -p /etc/nginx/certs/ cd /etc/nginx/certs/ openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.orig openssl rsa -in server.key.orig -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtservice nginx reloadFile e directory di ownCloud L’installazione di ownCloud consiste nel scaricare e decomprimere l’archivio, con alcune modifiche sul lato server, quindi esegui:
E ancora una volta, apache come gruppo nell’ultimo comando non è un errore. php-fpm viene eseguito per impostazione predefinita come utente apachecd /tmp wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2 tar xjf owncloud-4.0.0.tar.bz2 mv owncloud /var/www/ mkdir -p /var/www/owncloud/data chmod 770 /var/www/owncloud/data chown -R root:apache /var/www/owncloudAccedi al sito web Apri la porta 443 per poter accedere al sito web, esegui:
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT service iptables save service iptables restart
Esecuzione di Test
Naviga su https://owncloud.example.com tramite il tuo browser preferito e completa la procedura di installazione.
Scegli il nome utente e la password dell’amministratore, scegli PostgreSQL come backend del database e inserisci i valori appropriati nelle impostazioni di connessione al database.
Buon divertimento.
Risoluzione dei Problemi
I file di log si trovano come segue:
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var/log/nginx/error.log
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.