ownCloud Setup · 10 min read · Jan 22, 2026

¡Tu Nube, Tus Datos, A Tu Manera! - ownCloud 4.0 En CentOS 6.2 + nginx + PostgreSQL

¡Tu Nube, Tus Datos, A Tu Manera! - ownCloud 4.0 En CentOS 6.2 + nginx + PostgreSQL

Este documento describe cómo instalar y configurar ownCloud por la “comunidad ownCloud” en un servidor web basado en CentOS 6.2 a partir de un paquete tar en un nginx y php-fpm con base de datos PostgreSQL como backend. Para otras distribuciones puede haber cambios menores en los procedimientos de instalación de los requisitos de software. Esta guía no solo ayudará a instalar el producto, sino también a entender por qué ciertos puntos se hacen de la manera en que se hacen (esto es más útil para usuarios con poco o ningún conocimiento que, como yo hace algún tiempo, apenas han comenzado a usar Linux).

¿Qué es ownCloud?

Es una herramienta de compartición de archivos / contactos / calendarios de grupo o empresa, que, desde mi punto de vista, combina lo mejor de Dropbox y GroupOffice (excepto por la integración de correo electrónico hasta ahora), y no es tan desordenada o pesada como Alfresco o Sharepoint.

Enlaces a varias secciones del desarrollador:

No garantizo que funcione para ti, ya que más adelante podría haber cambios en el software, tanto en los requisitos como en el principal, realizados de tal manera que rompan o de alguna manera impidan que los procedimientos mencionados en este tutorial se completen con éxito.
P.D. Todos los errores añadidos son míos. Usa comentarios o navega a IRC.

Nota Preliminar

En este tutorial usamos:

  • Medios de instalación de Centos 6.2
  • Nombre de host: owncloud.example.com
  • Dirección IP: 192.168.1.100
  • Dirección del enrutador: 192.168.1.1
  • Máscara de red: 255.255.255.0
  • Supongamos (imagina) que el servidor está conectado a Internet público
  • Usamos nuestra computadora para administrar el servidor de forma remota a través de ssh (putty en Windows), incluso si tienes el servidor a tu lado, o lo tienes como máquina virtual ejecutándose bajo tu sistema operativo principal
  • GNU vim como nuestro editor de texto principal. Pero siéntete libre de usar cualquier otro de tu agrado

Requisitos

Necesitaremos una instalación limpia (mínima) de Centos 6.2 que funcione (x86 o x86_64 es irrelevante), yo personalmente uso la versión x86_64 y te sugiero encarecidamente que hagas lo mismo.

Primero lo Primero

Inicia sesión en la consola del servidor como root. Estarás en el [root@owncloud ~]# prompt.

Prefiero ciertos ajustes, que son completamente opcionales, pero podrías encontrarlos útiles más adelante. Configuro mi terminal para mostrar la salida en color con la fecha, hora, nombre del servidor y carpeta actual en el prompt. También para mostrar el historial de comandos con fecha/hora. También aumento los valores predeterminados de tamaño del historial.

Para hacerlo, ejecuta:

vi ~/.bash_profile

Agrega las líneas mencionadas después de la directiva export PATH. En caso de que no lo sepas, presionar “i” entra en modo de inserción, “ESC” sale de él. Vi es vi :)

#Tamaño del historial para mantener 50.000 comandos e inflar el tamaño del archivo diez veces más grande
export HISTSIZE=50000
export HISTFILESIZE=500000
#Mostrar historial con fecha como ejemplo: "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocolorizar la salida del comando "ls"
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Configurar el prompt para mostrar como ejemplo: "Thu May 24 2012  14:28:56 owncloud.example.com of root @ ~]"
y colorizar la fecha, hora y ubicación de manera diferente. Establecer todos los textos de entrada a valores predeterminados.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y}  \e[1;31m\]\t \e[1;37m\] \H of \u @ \W] \033[00m\]"

Guarda y sal del archivo. Nuevamente, si no sabes, fuera del modo de inserción puedes entrar “:wq” y presionar enter para guardar y salir, o simplemente presionar “ZZ” para hacer lo mismo. Para volver a iniciar sesión en la terminal y aplicar los cambios, ejecuta:

exit

Redes

Si no configuraste una dirección IP estática durante la instalación, digamos que tienes un enrutador habilitado para DHCP, necesitas hacerlo ahora, de lo contrario, procede al siguiente paso.

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Cambia o agrega solo las líneas mencionadas.

BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"

Guarda y sal. Luego reinicia la red:

service network restart

Verifica que la red esté reconfigurada ejecutando:

ifconfig

Ahora deberías poder ssh al servidor en 192.168.1.100 como root. Pero no hagas eso todavía, primero completa el siguiente paso.

Asegurando El Servidor

Antes de proceder más, ya que asumimos que el servidor está, de hecho, conectado a Internet, necesitamos asegurarlo. Haremos tres cosas.

  • Reconfigurar el servidor ssh para que no permita el inicio de sesión de root y cambiar el puerto predeterminado 22 a algo más, menos común, es decir, 60606,
  • Configurar iptables para permitir conexiones entrantes en el nuevo puerto,
  • Agregar nuestro primer usuario del sistema para poder iniciar sesión con él a través de ssh.
  1. Asegurando el inicio de sesión remoto Si aún no has iniciado sesión desde la consola en el servidor (me refiero a la consola local, no a ssh aún), inicia sesión como root, luego ejecuta:

    vi /etc/ssh/sshd_config
    En la línea trece del archivo predeterminado sin alterar (en caso de que te lo preguntes nuevamente, escribe “:set number” y presiona enter fuera del modo de inserción para obtener los números de línea) hay una directiva Port 22. Duplicala, cambia el número de puerto a 60606 y descomenta.
    Luego encuentra (fuera del modo de inserción presiona “/“ y escribe la frase que estás buscando) la directiva PermitRootLogin yes, duplica nuevamente y cambia su valor a no y descoméntala también, luego guarda el archivo. Oh, y es “:noh” para desactivar el resaltado.
    Reinicia sshd después:
    service sshd restart
  2. Configurando iptables Primero verifica los iptables existentes:

    iptables -L -v --line-numbers
    En la instalación predeterminada en la posición ‘4’ habrá una directiva para aceptar nuevas conexiones tcp en el puerto ssh predeterminado, necesitamos deshacernos de ella, así que ejecuta:
    iptables -D INPUT 4
    Ahora necesitamos permitir conexiones al puerto 60606 en su lugar. Ejecuta:
    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPT
    Por último, para guardar el estado actual de iptables ejecuta:
    service iptables save   
    service iptables restart
  3. Agregando el primer usuario Todo está bien ahora, excepto por una cosa, nos hemos prohibido a nosotros mismos el acceso a ssh, ya que root no está permitido y aún no hay otros usuarios del sistema. Es hora de corregir:

    useradd -c "usuario del sistema ownCloud" -m -n cloudadmin
    Establece la contraseña para este usuario:
    passwd cloudadmin
    Hecho. Podrías establecer la contraseña para el usuario en el primer comando, pero de esta manera el valor de la contraseña será visible durante la entrada en la ventana de la terminal y también se guardará en .bash_history del usuario root, lo cual no es deseable.
    Ahora puedes iniciar sesión a través de ssh ejecutando el siguiente comando en tu ventana de terminal en la computadora local:
    ssh [email protected] -p60606

Pasos Previos a la Configuración

La instalación del software en la mayoría de los casos es bastante directa y podríamos haber ‘verificado’ la mayor parte de ello en la instalación inicial, pero prefiero hacer las cosas a mano.
Divido intencionalmente la instalación en secciones.

  1. Iniciando sesión como superusuario En este momento deberías estar en el prompt de la consola como usuario cloudadmin. Para obtener privilegios de root ejecuta:

    su -
  2. Repositorios de software Para usar el software deseado, se requieren dos repositorios.

    Primero EPEL, ejecuta:
    rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
    Y no, i386 no es un error, es el mismo para sistemas de 32 y 64 bits.
    Luego Remi, ejecuta:
    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi   
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    Ahora verifica ambos repositorios epel y remi y en caso de que no esté allí establece enabled=1 ejecutando:
    vi /etc/yum.repos.d/epel.repo   
    vi /etc/yum.repos.d/remi.repo
    Finalmente, actualiza tu sistema. Incluso un CentOS recién instalado podría requerir una actualización primero. Ejecuta:
    yum update -y
  3. Tiempo de precisión Es bueno estar en sincronía con el resto del mundo, ejecuta:

    yum install ntp   
    service ntpd start   
    chkconfig ntpd on   
    tpd
  4. Algunas otras herramientas Para hacer mi vida un poco más fácil, uso vim en lugar de vi, htop en lugar de top, elinks para probar cosas rápidamente desde la terminal y mc, como un buen y no solo administrador de archivos de doble panel, wget es necesario para descargar cosas y man es esencial cuando quieres leer casi cualquier cosa. Ejecuta:

    yum install vim htop elinks mc wget man -y

Configuración de ownCloud

  1. Requisitos de software Un montón de cosas de php, ejecuta:

    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
    Edita php.ini, ejecuta:
    vim /etc/php.ini
    Hay cuatro directivas que cambiar,
    la primera debería estar en la línea 736, directiva post_max_size
    la segunda en la línea 848, directiva cgi.fix_pathinfo
    la tercera en la línea 885, directiva upload_max_filesize
    la última en la línea 956, directiva date.timezone modifícala de acuerdo a la ubicación de tu servidor.
    [...]
    post_max_size = 64M
    [...]
    cgi.fix_pathinfo = 0
    [...]
    upload_max_filesize = 64M
    [...]
    date.timezone = "Europe/Prague"
    [...]
    En caso de que no sepas cómo, puedes encontrar el nombre de tu zona horaria ejecutando:
    cat /etc/sysconfig/clock
    A continuación, configura php-fpm para usar un socket unix en lugar de la pila tcp, ejecuta:
    vim /etc/php-fpm.d/www.conf
    Desde la línea doce, haz que se vea así:
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock
    Inicia php-fpm:
    chkconfig php-fpm on   
    service php-fpm start
  2. Backend - PostgreSQL Para instalar y configurarlo, ejecuta:

    yum install postgresql postgresql-libs postgresql-server   
    service postgresql initdb   
    service postgresql start   
    chkconfig postgresql on
    Inicia sesión en postgres como usuario del sistema postgres, crea un usuario de base de datos, base de datos y otorga privilegios
    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 el archivo de configuración de postgresql para permitir inicios de sesión con contraseña:
    vim /var/lib/pgsql/data/pg_hba.conf
  • Busca
    # IPv4 local connections:   
    host all all 127.0.0.1/32 ident
  • Y cámbialo a
    # IPv4 local connections:   
    host all all 127.0.0.1/32 password
    Ahora reinicia la base de datos:
    service postgresql restart
  1. Servidor web nginx Instala, configúralo para que se inicie al arrancar y luego deténlo:

    yum install nginx   
    service nginx start   
    chkconfig nginx on   
    service nginx stop
    Prepara el archivo de configuración para el sitio web owncloud:
    vim /etc/nginx/conf.d/owncloud.conf
    # redirigir http a https.
    server {
    listen 80;
    server_name owncloud.example.com;
    rewrite ^ https://$server_name$request_uri? permanent;  # forzar 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; # establecer tamaño máximo de carga
    # negar acceso directo
    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
     deny all;
    }
    # orden de prueba predeterminado
    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;
    }
    # habilitar 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;
    }
    }
    Ahora vamos a crear certificados para el servidor, responde a las preguntas en el prompt de acuerdo a tu configuración:
    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
    Recarga nginx para habilitar la nueva configuración:
    service nginx reload
  2. Archivos y directorios de ownCloud La instalación de ownCloud consiste en descargar y descomprimir el archivo, con algunos ajustes en el lado del servidor, así que ejecuta:

    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
    Y una vez más, apache como grupo en el último comando no es un error. php-fpm se ejecuta por defecto como usuario apache
  3. Acceder al sitio web Abre el puerto 443 para poder acceder al sitio web, ejecuta:

    iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT   
    service iptables save   
    service iptables restart

Prueba de Ejecución

Navega a https://owncloud.example.com a través de tu navegador de elección y termina el procedimiento de instalación.

Elige un nombre de usuario y contraseña de administrador, elige PostgreSQL como backend de base de datos y coloca los valores apropiados en la configuración de conexión de la base de datos.

Disfruta.

Solución de Problemas

Los archivos de registro se encuentran en las siguientes ubicaciones:

/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

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.