Installazione Server · 5 min read · Jan 23, 2026
Installa ownCloud con SSL e Nginx in CentOS 6.5
Installa ownCloud con SSL e Nginx in CentOS 6.5
Versione: 3.0
Autore: Aaron
CentOS ha aggiornato molti pacchetti, e il post che ho scritto 1 anno fa non funziona più in CentOS 6.5 aggiornato.
Ho fatto una ricerca e sembra che questo sarà il primo tutorial nel 2014 su come installare owncloud in centos con nginx, postgresql e ssl. Non troverai installazioni di CentOS e owncloud con nginx al giorno d’oggi, perché la maggior parte delle persone non sa come risolvere problemi semplici.
Il mio server è stato colpito e questa è la ragione che mi ha portato a scrivere questo post oggi.
I pacchetti nei repo EPEL e CentOS sono obsoleti, mentre nginx, postgresql e owncloud richiedono pacchetti un po’ più recenti. Rimarrai semplicemente sulla pagina di accesso senza ottenere accesso ai tuoi file, rimanendo a grattarti la testa e chiedendoti cosa diavolo sia appena successo. I log non ti mostreranno da dove proviene il problema né owncloud stesso.
I requisiti di owncloud sono
PostgreSQL >= 9.0, ma in EPEL è 8.8, richiede php 5.3.3 come minimo ma non funziona con quella versione, inoltre tutti questi pacchetti più recenti richiederanno l’ultima versione stabile di nginx.
La prima cosa che dobbiamo fare è rimuovere tutte le librerie mysql.
yum remove mysql* mysql-server mysql-devel mysql-libsCome al solito, installeremo repo di terze parti, come epel, remi e il nuovo: l’ultimo postgresql
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmrpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpmModifica il repository epel e assicurati che la parte superiore sia enabled=1
vi /etc/yum.repos.d/epel.repoFai lo stesso con il repo remi, ma assicurati di abilitare la versione php 5.6,
vi /etc/yum.repos.d/remi.repo

Crea un file di configurazione del repo nginx
vi /etc/yum.repos.d/nginx.repoe aggiungi:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Aggiorna il tuo server CentOS per aggiungere quei repo di terze parti
yum updateInstalla i seguenti pacchetti per soddisfare i requisiti di owncloud:
yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdoAvvia PostgreSQL, avvia nginx temporaneamente e aggiungilo ai servizi di avvio del sistema con chkconfig
service postgresql-9.3 initdb
service postgresql-9.3 start
chkconfig postgresql-9.3 on
service nginx start
chkconfig nginx on
service nginx stopCrea un nuovo utente e database PostgreSQL.
su - -c "psql" postgresCREATE USER cloud WITH PASSWORD 'userpass';
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;
\qControlla e ricorda il tuo fuso orario
cat /etc/sysconfig/clockModifica il file di configurazione php
vi /etc/php.inipost_max_size = 2Gcgi.fix_pathinfo = 0upload_max_filesize = 2Gdate.timezone = "your/timezone"Modifica il file di configurazione php-fpm per utilizzare tcp invece di unix socket
vi /etc/php-fpm.d/www.confAssicurati che listen non punti a /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000Avvia il servizio php-fpm
chkconfig php-fpm on
service php-fpm startModifica il file di configurazione postgresql per consentire accessi con password:
vi /var/lib/pgsql/9.3/data/pg_hba.confe cambia ident con password - nota il cursore nell’immagine seguente:

Riavvia il database postgresql service postgresql-9.3 restart
Crea una cartella vuota dove memorizzeremo i nostri certificati SSL
cd /etc/nginx
mkdir -p certSe sei familiare con gli host virtuali di apache, allora il prossimo file che dovrai creare è esattamente quello.
cd conf.dvi cloud.confupstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name 10.10.10.110; # sostituisci con il tuo nome di dominio o ip interno del server
return 301 https://$server_name$request_uri; # forzare https
}
server {
listen 443 ssl;
server_name 10.10.10.110; # sostituisci con il tuo nome di dominio o ip interno del server
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
# Percorso alla radice della tua installazione
root /var/www/owncloud/;
client_max_body_size 10G; # imposta la dimensione massima di upload
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# Le seguenti 2 regole sono necessarie solo con webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# Facoltativo: imposta un lungo header EXPIRES su risorse statiche
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Facoltativo: Non registrare accessi alle risorse
access_log off;
}
}
Ho caricato quel file di configurazione nginx sul mio sito web, quindi invece di scriverlo manualmente digita wget http://linux.sytes.net/img/nginx1-6.conf.txt e rinominalo in qualcosa come cloud.conf
Come hai specificato nell’”host virtuale” nginx sopra, il nostro server ownCloud utilizzerà SSL, quindi creiamo questi certificati, va bene?
cd ..
cd cert
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt
chmod 600 server.key
chmod 600 server.csrSuccessivamente, scarica, estrai l’archivio owncloud e imposta i permessi per la cartella owncloud. Si prega di notare che scaricheremo la versione di sviluppo di owncloud.
cd /var/www
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2
tar xjf owncloud-daily-master.tar.bz2
mkdir -p owncloud/data
chmod 770 owncloud/data
chmod 777 owncloud/config/
chown -R root:apache owncloud
rm -rf owncloud-daily-master.tar.bz2Consenti connessioni tcp in entrata alle porte del tuo server: 80 e 443. Se tu o qualcun altro chiama l’ip interno del tuo server verrà reindirizzato a https://yourserverinternalip, perché lo hai specificato nell’”host virtuale” nginx in precedenza.
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPTservice iptables save
service iptables restartRiavvia PostgreSQL per l’ultima volta e avvia nginx con la nuova configurazione:
service postgresql-9.3 restart
service nginx startQuesto è tutto, apri il tuo browser e punta al tuo ip del server. Scegli qualsiasi nome di accesso e password tu voglia.

Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.