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:

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_profile

Aggiungi 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:

exit

Networking

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-eth0

Cambia 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 restart

Controlla che la rete sia riconfigurata eseguendo:

ifconfig

Ora 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.
  1. 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:

    vi /etc/ssh/sshd_config
    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.
    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 restart
  2. Impostazione di iptables Prima controlla gli iptables già esistenti:

    iptables -L -v --line-numbers
    Nell’installazione predefinita alla posizione ‘4’ ci sarà la direttiva per accettare nuove connessioni tcp sulla porta ssh predefinita, dobbiamo sbarazzarcene, quindi esegui:
    iptables -D INPUT 4
    Ora dobbiamo consentire connessioni alla porta 60606 invece. Esegui:
    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT
    Infine, per salvare lo stato attuale degli iptables esegui:
    service iptables save   
    service iptables restart
  3. Aggiunta 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:

    useradd -c "ownCloud system user" -m -n cloudadmin
    Imposta la password per questo utente:
    passwd cloudadmin
    Fatto. 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.
    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.

  1. Accesso come superutente In questo momento dovresti essere al prompt della console come utente clouddmin. Per ottenere i privilegi di root esegui:

    su -
  2. Repository software Per utilizzare il software desiderato, sono richiesti due repository.

    Primo EPEL, esegui:
    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
    E no, i386 non è un errore, è lo stesso per i sistemi a 32 e 64 bit.
    Poi Remi, esegui:
    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi   
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    Ora controlla entrambi i repository epel e remi e nel caso non ci fosse imposta enabled=1 eseguendo:
    vi /etc/yum.repos.d/epel.repo   
    vi /etc/yum.repos.d/remi.repo
    Infine, aggiorna il tuo sistema. Anche un CentOS appena installato potrebbe richiedere un aggiornamento prima. Esegui:
    yum update -y
  3. Tempo di precisione È bene essere sincronizzati con il resto del mondo, esegui:

    yum install ntp   
    service ntpd start   
    chkconfig ntpd on   
    ntpd
  4. Alcuni 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

  1. Prerequisiti software Un insieme di pacchetti php, 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-pgsql
    Modifica php.ini, esegui:
    vim /etc/php.ini
    Ci sono quattro direttive da cambiare,
    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.
    [...]
    post_max_size = 64M
    [...]
    cgi.fix_pathinfo = 0
    [...]
    upload_max_filesize = 64M
    [...]
    date.timezone = "Europe/Prague"
    [...]
    Nel caso non lo sapessi, puoi trovare il nome del tuo fuso orario eseguendo:
    cat /etc/sysconfig/clock
    Successivamente, configura php-fpm per utilizzare il socket unix invece dello stack tcp, esegui:
    vim /etc/php-fpm.d/www.conf
    Dalla riga dodici, fallo apparire così:
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock
    Avvia php-fpm:
    chkconfig php-fpm on   
    service php-fpm start
  2. Backend - PostgreSQL Per installarlo e configurarlo, esegui:

    yum install postgresql postgresql-libs postgresql-server   
    service postgresql initdb   
    service postgresql start   
    chkconfig postgresql on
    Accedi a postgres come utente di sistema postgres, crea un utente del database, un database e concedi privilegi
    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;   
    \q
    Modifica il file di configurazione di postgresql per consentire i login con password:
    vim /var/lib/pgsql/data/pg_hba.conf
  • Cerca
    # IPv4 local connections:   
    host all all 127.0.0.1/32 ident
  • E modificalo in
    # IPv4 local connections:   
    host all all 127.0.0.1/32 password
    Ora riavvia il database:
    service postgresql restart
  1. Server web nginx Installa, imposta per avviarsi all’avvio e poi fermalo:

    yum install nginx   
    service nginx start   
    chkconfig nginx on   
    service nginx stop
    Prepara il file di configurazione per il sito web owncloud:
    vim /etc/nginx/conf.d/owncloud.conf
    # 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;
    }
    }
    Ora creiamo certificati per il server, rispondi alle domande nel prompt in base alle tue impostazioni:
    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.crt
    Ricarica nginx per abilitare la nuova configurazione:
    service nginx reload
  2. File e directory di ownCloud L’installazione di ownCloud consiste nel scaricare e decomprimere l’archivio, con alcune modifiche sul lato server, quindi esegui:

    cd /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/owncloud
    E ancora una volta, apache come gruppo nell’ultimo comando non è un errore. php-fpm viene eseguito per impostazione predefinita come utente apache
  3. Accedi 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

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.