Articles Comments

ordenadores.com » Artículos Interesantes, Linux, Sistemas Operativos, Tutoriales » Instalar y configurar OwnCloud en Debian 7.0

Instalar y configurar OwnCloud en Debian 7.0

Introducción

Si estás buscando una solución de almacenamiento en remoto (lo que en los medios periodísticos denominan “En la Nube” así en mayúsculas como muy mayestático cómo  invocando a una entidad etérea pero sin saber muy bien de lo que están hablando es probable que hayas pensado en Dropbox. Si no quieres complicaciones es una solución correcta y sin complicaciones y además no demasiado cara (la solución que voy a tratar aquí lo es más)

Pero existen otras opciones que puede ser interesante valorar. Basicamente se trata de hospedar tú mismo tus propios archivos, con la consiguiente ventaja en lo que a la privacidad se refiere. Esto se consigue con el programa Ownclud

Pero comencemos por el principio, que significa esa palabreja que todo el mundo pronuncia: cloud storage o almacenamiento en la nube. Pues es sencillo, tan solo significa disco duro accesible desde internet, de forma que puedas almacenar tus datos en el. Cualquiera que intente contarte otra cosa te estará mintiendo.

Una vez que tenemos esto claro tenemos que pensar en como dar acceso a nuestro disco duro a internet. Pues es fácil, de hace mediante un sistema operativo (que en el caso que nos ocupa será GNU Linux con la distribución Debian 7)

Este sistema operativo puede estar o no en tu ordenador (depende de tus necesidades y de tu conexión) en mi caso concreto lo he montado en una maquina dedicada de ovh http://www.ovh.es/  donde por unos 11 € al mes te lo hospedan con 100 m/s simétricos y 5 teras de trafico mensuales. Si, es algo más que dropbox pero como ya dije tiene sus ventajas.

Si solo quieres instalarlo para tener acceso desde clientes o desde un navegador, la instalación se hace en 5 minutos y solo tienes que saber que existe un comando llamado apt. Pero no vamos a hacerlo tan fácil. Voy a explicar cómo instalarlo y configurarlo bien, con su ssl funcionando, su webdav, etc.

Ingredientes

  1. Maquina conectada a internet con Debian 7.x
  2. Servidor mysql (dicen que se puede instalar usando SQLite pero que no os cuenten milongas, las cosas o se hacen bien o no se hacen, usamos mysql (que además es lo que sé configurar :D) y punto XD)
  3. Apache 2: o sea el paquete apache2
  4. Servidor PHP 5: o sea los siguientes paquetes php5 php-pear php-xml-parser php5-sqlite php5-json sqlite php5-mysql mp3info curl libcurl3 libcurl3-dev php5-curl zip php5-gd
  5. SSL configurado (entraremos en detalle más adelante)
  6. Webdav configurado (lo mismo)
  7. Owncloud en su ultima versión.

Instalación

Paso 1: Instalamos Apache: sudo apt-get install apache2 (a que ha sido fácil)

Paso 2: Instalamos mysql: sudo apt-get install mysql-server

Paso 3: Instalamos php5 y dependencias necesarias: sudo apt-get install php5 php-pear php-xml-parser php5-sqlite php5-json sqlite php5-mysql mp3info curl libcurl3 libcurl3-dev php5-curl zip php5-gd

Paso 4: Instalamos openssl: apt-get install openssl

Paso 4: Instalamos owncloud: Existen varias formas:

Usando apt:

sudo wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key add – < Release.key 

sudo echo ‘deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /’ >> /etc/apt/sources.list.d/owncloud.list

apt-get update

apt-get install owncloud

Este método instalará owncloud en /var/www/owncloud/

Descargándolo manualmente y descomprimiéndolo en el directorio de nuestra preferencia, podéis ver los enlaces en http://owncloud.org/install/ pero tened en cuenta que este método requiere configuración adicional en apache.

Configurando mysql

Si has instalado correctamente mysql ha llegado el  momento en que descubres con horror que no sabes la contraseña para el usuario root. No desesperes que es fácil de arreglar:

Paramos el servidor mysql: sudo /etc/init.d/mysql stop

Anulamos la petición de contraseña: sudo mysqld –skip-grant-tables –user=root &

Entramos como root: sudo mysql -u root

Establecemos una contraseña para root: UPDATE mysql.user SET Password=PASSWORD (‘la clave que quieras y que sea fuerte’) WHERE User=’root’;

Reactivamos la petición de contraseña de mysql: FLUSH PRIVILEGES;

Salimos de mysql: quit

En este momento ya tenemos acceso a mysql y podremos crear una nueva base de datos para nuestro owncloud.

Entramos en mysql con el usuario root: sudo mysql –u root –p y metemos la contraseña cuando nos la pida (no antes)

Creamos la base de datos: CREATE DATABASE nuevabasededatos CHARACTER SET utf8;

Entramos en la nueva base de datos: USE nuevabasededatos

Creamos un usuario en la BD con privilegios para nuestro owncloud: GRANT ALL PRIVILEGES ON nuevabasededatos.* TO ‘usuario’@localhost IDENTIFIED BY ‘contraseña’;

Asumo que la base de datos se encuentra en localhost, en caso contrario asumo que el lector lleva 10 minutos aburrido leyendo cosas que ya sabe.

Una vez hecho esto debes apuntar los siguientes datos:

  • Ubicación de la base de datos (por defecto localhost)
  • Nombre de la base de datos
  • Usuario de la base de datos
  • Contraseña de la base de datos.

Configuración de Apache

Por seguridad debemos configurar apache para que utilice los archivos .htacess (es muy posible que ya esté hecho) para ello editamos el archivo /etc/apache2/sites-enabled/000-default por medio de nano (si, se que nano es de blandengues, que los duros usan Vi pero si lo hago con Vi tendré que dedicar 10 párrafos adicionales a explicar cómo se usa)

O sea sudo nano /etc/apache2/sites-enabled/000-default  y en la parte de “Directory /var/www” cambiamos el valor de  “AllowOverride” a “All”

Activamos los modulos correspondientes de Apache

sudo a2enmod rewrite

sudo a2enmod headers

Reiniciamos apache

sudo service apache2 restart

Creamos un directorio para los datos de Owncloud. Por defecto se crea dentro de www/ pero por seguridad se recomienda crearlo fuera de ese directorio por ejemplo en /home/

sudo mkdir /home/directoriodedatos

Y le damos la propiedad a apache: sudo chown www-data:www-data /home/directoriodedatos

Configuramos php para que acepte ficheros de más de 512 megas editando el archivo correspondiente

sudo nano /etc/php5/apache2/php.ini

Cambiamos los valores a

upload_max_filesize = 2048M

post_max_size = 2458M

Configuramos el archivo .htcaccess para que acepte ficheros de mas de 512 megas

sudo nano /var/www/owncloud/.htpaccess

y cambiamos:

php_value upload_max_filesize 2048M

php_value post_max_size 2458

Configurar ssl

(realmente esto se hace para apache)

Activamos modulo de ssl de apache

sudo a2enmod ssl

Reiniciamos apache

service apache2 restart

Nos identificamos como root

su –

Editamos la configuración de ssl para alargar la caducidad del certificado y el directorio

nano /etc/ssl/openssl.cnf

y cambiamos

dir = /root/SSLCertAuth

default_days = 3650

Configuramos los directorios

mkdir /root/SSLCertAut

chmod 700 /root/SSLCertAuth

cd /root/SSLCertAuth

mkdir certs private newcerts

echo 1000 > serial

touch index.txt

Generamos la firma del certificado

openssl req -new -x509 -days 3650 -extensions v3_ca \

-keyout private/cakey.pem -out cacert.pem \

-config /etc/ssl/openssl.cnf

En las preguntas que nos hace podemos pulsar enter y dejarlas en blanco o responderlas a nuestra elección,

Añadimos el certificado a /etc/ssl/

openssl ca \

-config /etc/ssl/openssl.cnf \

-out apache-cert.pem \

-infiles apache-req.pem

Y

mkdir /etc/ssl/crt

mkdir /etc/ssl/key

cp /root/SSLCertAuth/apache-cert.pem /etc/ssl/crt

cp /root/SSLCertAuth/private/apache-key.pem /etc/ssl/key

Configuramos el servidor apache

nano /etc/apache2/conf.d/owncloud5-ssl.conf

y añadimos al final

<VirtualHost *:443>

      ServerName 127.0.0.1

      SSLEngine on

      SSLCertificateFile /etc/ssl/crt/apache-cert.pem

      SSLCertificateKeyFile /etc/ssl/key/apache-key.pem

      DocumentRoot /var/www/owncloud

      CustomLog /var/www/logs/ssl-access_log combined

      ErrorLog /var/www/logs/ssl-error_log

</VirtualHost>

Nota: En SeverName he puesto el localhost pero hay que poner el nombre publico del servidor, o sea lo que use la gente para acceder al servidor y hay que repetir esto por cada nombre que se use para acceder al mismo y obviamente cambiando las rutas si no usáis el directorio canónico, así mismo esta configuración es valida para cualquier servicio o sitio que cuelgue de apache al que necesitéis activar el ssl.

Reiniciamos apache

service apache2 restart

Abandonamos la cuenta de root

exit

Webdav

Activamos los módulos necesarios en apache

sudo a2enmod dav_fs

sudo a2enmod auth_digest

Reiniciamos apache

/etc/init.d/apache2 reload

En teoría con esto es suficiente, ya que owncloud realiza su propia gestión, pero en ocasiones (aún estoy investigando las razones) webdav no funciona por lo que hay que configurarlo a mano. No recomiendo hacerlo ya que si hay más de un usuario la gestión será un infierno, lo explico para el caso de que sea solo un usuario y no le funcione, aunque es preferible limitarse a utilizar el cliente de escritorio de owncloud que realiza las mismas funciones que webdav.

sudo nano /etc/apache2/conf.d/webdav

y añadimos:

Alias /webdav   /home/directoriodedatos

<Location /webdav>

        DAV On

        AuthType Digest

        AuthName «webdav»

        AuthUserFile /etc/apache2/webdav.passwd

        Require valid-user

</Location>

Añadimos el usuario y la contraseña (cuando la pida) de cada usuario al archivo de credenciales:

sudo htdigest -c /etc/apache2/webdav.passwd webdav Nick del usuario

Configuración de  owncloud.

Por fin tenemos todo lo necesario para que nos funcione owncloud por lo que podemos instalarlo, para ello vamos a http://servidor/owncloud (o el directorio que hayamos configurado).

Nos aparece un pequeño formulario donde debemos escoger un usuario admin y su contraseña, pulsamos en avanzado y seleccionamos “mysql” e introducimos los datos de la base de datos que creamos al principio, pulsamos en continuar y esperamos un par de minutos.

Una vez que se ha instalado entramos con https://servidor/owncloud y en configuración marcamos “forzar conexión segura” por lo que desde ese momento siempre resolverá las conexiones con ssl al puerto 443.

Y ya está, ya tenemos totalmente configurado owncloud con todas sus funciones operativas. Entiendo que este tutorial es demasiado largo pero lo enfoco hacia los usuarios que no saben nada.

El 90% de esta información ha salido de la propia web de owncloud y el resto principalmente de http://www.servidordebian.org de http://www.ebayram.net y http://porelamorderoot.net/index.php 

owncloud

Vista del navegador de archivos de owncloud

Originalmente había pensado dedicar una parte a la personalización gráfica de owncloud y a sus plantillas pero debido a la extensión queda para mejor ocasión.

Filed under: Artículos Interesantes, Linux, Sistemas Operativos, Tutoriales · Tags: ,

2 Responses to "Instalar y configurar OwnCloud en Debian 7.0"

  1. Joan dice:

    Interesante, sólo tengo una pregunta.

    Si aplico esta solución en un ordenador que tiene 4 o 5 años no se relentiza su funcionamiento.? Tengo miedo o me da la impresión que en máquinas justas de recursos no sea recomendable instalar owncloud ya que se comerá recursos.

    Saludos y muy bueno el tutorial.

  2. Ramón José Serantes Rico dice:

    Depende, si es para uso persona no, sus requerimientos son ridículos, pero esto es como cualquier servidor. Depende de la carga de trabajo que le des.

    Yo lo tengo montado con fines de pruebas en un celeron a 1,2 GH con 2 GB de RAM y va perfecto.

    Pero si le empiezas a meter usuarios vas a tener que empezar a meterle maquina