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:
- Página de inicio del producto: http://owncloud.org/
- IRC: http://webchat.freenode.net/?channels=owncloud
- Soporte: http://owncloud.org/support/
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_profileAgrega 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:
exitRedes
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-eth0Cambia 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 restartVerifica que la red esté reconfigurada ejecutando:
ifconfigAhora 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.
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:
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.vi /etc/ssh/sshd_config
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 restartConfigurando iptables Primero verifica los iptables existentes:
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 -L -v --line-numbersAhora necesitamos permitir conexiones al puerto 60606 en su lugar. Ejecuta:iptables -D INPUT 4Por último, para guardar el estado actual de iptables ejecuta:iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPTservice iptables save service iptables restartAgregando 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:
Establece la contraseña para este usuario:useradd -c "usuario del sistema ownCloud" -m -n cloudadminHecho. 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.passwd cloudadmin
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.
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 -Repositorios de software Para usar el software deseado, se requieren dos repositorios.
Primero EPEL, ejecuta:Y no, i386 no es un error, es el mismo para sistemas de 32 y 64 bits.rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
Luego Remi, ejecuta:Ahora verifica ambos repositorios epel y remi y en caso de que no esté allí establece enabled=1 ejecutando:rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmFinalmente, actualiza tu sistema. Incluso un CentOS recién instalado podría requerir una actualización primero. Ejecuta:vi /etc/yum.repos.d/epel.repo vi /etc/yum.repos.d/remi.repoyum update -yTiempo de precisión Es bueno estar en sincronía con el resto del mundo, ejecuta:
yum install ntp service ntpd start chkconfig ntpd on tpdAlgunas 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
Requisitos de software Un montón de cosas de php, ejecuta:
Edita php.ini, 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-pgsqlHay cuatro directivas que cambiar,vim /etc/php.ini
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.En caso de que no sepas cómo, puedes encontrar el nombre de tu zona horaria ejecutando:[...] post_max_size = 64M [...] cgi.fix_pathinfo = 0 [...] upload_max_filesize = 64M [...] date.timezone = "Europe/Prague" [...]A continuación, configura php-fpm para usar un socket unix en lugar de la pila tcp, ejecuta:cat /etc/sysconfig/clockDesde la línea doce, haz que se vea así:vim /etc/php-fpm.d/www.confInicia php-fpm:;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sockchkconfig php-fpm on service php-fpm startBackend - PostgreSQL Para instalar y configurarlo, ejecuta:
Inicia sesión en postgres como usuario del sistema postgres, crea un usuario de base de datos, base de datos y otorga privilegiosyum install postgresql postgresql-libs postgresql-server service postgresql initdb service postgresql start chkconfig postgresql onModifica el archivo de configuración de postgresql para permitir inicios de sesión con contraseña: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
- Busca
# IPv4 local connections: host all all 127.0.0.1/32 ident - Y cámbialo a Ahora reinicia la base de datos:
# IPv4 local connections: host all all 127.0.0.1/32 passwordservice postgresql restart
Servidor web nginx Instala, configúralo para que se inicie al arrancar y luego deténlo:
Prepara el archivo de configuración para el sitio web owncloud:yum install nginx service nginx start chkconfig nginx on service nginx stopvim /etc/nginx/conf.d/owncloud.confAhora vamos a crear certificados para el servidor, responde a las preguntas en el prompt de acuerdo a tu configuración:# 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; } }Recarga nginx para habilitar la nueva 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.crtservice nginx reloadArchivos 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:
Y una vez más, apache como grupo en el último comando no es un error. php-fpm se ejecuta por defecto como usuario 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/owncloudAcceder 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
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.