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
- Maquina conectada a internet con Debian 7.x
- 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)
- Apache 2: o sea el paquete apache2
- 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
- SSL configurado (entraremos en detalle más adelante)
- Webdav configurado (lo mismo)
- 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
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: Linux Debian, owncloud
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.
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