«

»

may 02 2012

Cómo montarte tu propio servicio de alojamiento de ficheros en cloud tipo Dropbox con ownCloud en Ubuntu en una guía “pa tontos” ( o “for dummies” como dicen los ingleses)

Los que siguen este blog saben que soy un defensor de las tecnologías de software libre y que soy un fanático del mundo apache, php y mysql. Según estudios recientes la mayoría del trabajo a nivel tecnológico en los próximos años estará relacionado con “el cloud computing”, es decir en servicios informáticos basados en internet, conocidos popularmente como la nube. Uno de estos servicios más populares es el de alojamiento de ficheros, que dan empresas como Dropbox, Sugarsync y Box.net. Incluso Google se ha apuntado al carro con Google Drive recientemente, lo cual significa que es una cosa puntera, porque Google no da puntada sin hilo. El problema de estos servicios es que si necesitas mucha capacidad no son gratuitos. Normalmente te suelen ofrecer entorno a 5GB de manera gratuita. De todos ellos yo utilizo Dropbox por su facilidad de uso y porque te permite tener sincronizados “en la nube” los datos en mi caso de un portátil MacBook Pro con arranque dual Mac OSX – Windows 7, un portátil HP Pavilion con un arranque dual Windows 7 – Ubuntu, un netbook con arranque dual Windows XP – Ubuntu Netbook Edition, un iPhone y un iPad, ahí va eso. El recelo que suscita la nube suele venir por el miedo a la integridad y la confidencialidad de los datos, por eso de que confías tus datos a un servicio externo que no controlas. Pero eso se puede subsanar montando tu propio servicio de alojamiento de ficheros por cloud, en donde la capacidad del servicio de cloud depende de la capacidad del disco de tu máquina. (si tienes por ejemplo un disco de 500 GB tendrías aproximadamente 500 GB de datos disponibles, siempre algo menos, porque hay que descontar unos 5 ó 10 GB que es lo que suele ocupar el sistema operativo y el software de cloud).

Pues aquí teneís unas instrucciones “pa tontos” como dicen en mi pueblo, para montar uno de estos servicios. Me basaré en uno que se ha convertido en el más popular últimamente que se llama ownCloud (www.owncloud.org) basado en Apache y PHP (Mysql es opcional porque por defecto instala sqlite). Si uno se va a esta url del producto vienen las instrucciones de instalación para Ubuntu, en esta otra para OpenSuse, Fedora, CentOS5, Gentoo y MacOSX e incluso aquí vienen las instrucciones para Windows.

Yo me restringiré a Ubuntu, porque como saben los que siguen este blog, Ubuntu es mi sistema operativo favorito como podéis ver en este artículo que hice hace 5 años (por cierto HP, en donde trabajo impartiendo formación tecnológica, acaba de certificar sus servidores Proliant para Ubuntu 12.04) A ver si me veo dentro de poco dando cursos de Ubuntu, je,je!

INSTALACION DE UBUNTU

Lo primero que tenemos que hacer es tener una máquina física o virtual con Ubuntu, preferiblemente con la última versión, la 12.04. Yo lo he probado con una máquina física Ubuntu actualizada a 12.04 recientemente en mi netbook y con una máquina virtual de Ubuntu 12.04 en el portátil HP pavilion con VMWare Workstation montado sobre Windows y en ambas funciona perfectamente. La parte de instalación de Ubuntu 12.04 os la dejo aquí en este vídeo muy bien explicado. (primero logicamente hay que bajarse el ISO de la instalación que os la podéis bajar de aquí, concretamente la versión Ubuntu Desktop aunque también podría ser la versión Ubuntu Server)

INSTALACION DE OWNCLOUD

Recién instalado nuestro Ubuntu las instrucciones que tenemos que que lanzar en una consola son las siguientes: (cuando ejecutemos el comando sudo nos pedirá la password de nuestro usuario que nos definimos en la instalación del Ubuntu)

$ sudo apt-get install apache2 php5 php5-sqlite php5-json php5-gd (paquetes necesarios para la instalación de ownCloud)

$ wget http://owncloud.org/releases/owncloud-3.0.0.tar.bz2 (nos bajamos a nuestra máquina la última versión del ownCloud a fecha de hoy , la 3.0)

$ tar -jxvf owncloud-3.0.0.tar.bz2 (la descomprimimos)

$ sudo cp -r owncloud /var/www  (copiamos la carpeta descomprimida al directorio de apache)

$ cd /var/www

$ sudo chown -R www-data:www-data owncloud (hacemos que el directorio que hemos copiado sea accesible por Apache)

$ sudo service apache2 restart (para que la base de datos sqlite arranque correctamente en el interfaz web al haberse instalado apache y sqlite juntos)

Después de esto tenemos el servicio de cloud funcionando en local. Si hacemos en el navegador

http://localhost/owncloud nos sale este interfaz

en donde tendremos que poner un nombre a la cuenta de administrador (por ejemplo admin) y una password que no se nos debe olvidar por lo que más queráis…

Una vez hecho esto ya tenemos ya la pantalla inicial

Como véis en la parte inferior izquierda hay un icono que despliega herramientas administrativas, como la definición de nuevos usuarios con distintos perfiles que no tienen porqué ser de administrador, e incluso definir grupos de usuarios. Antes de empezar a subir ficheros, donde pone el icono de la fecha hacia arriba al lado de Nuevo, tenemos que modificar unas variables en el php porque si no nos dejará subir ficheros de más de 2 MB.

Editamos el php.ini

$ sudo vi /etc/php5/apache2/php.ini (si tenéis problemas con el vi hacéis sudo gedit /etc/php5/apache2/php.ini y te abre una especie de notepad para windows)

y cambiamos estas variables a estos valores ( o los que queramos que sean el límite de tamaño de fichero gestionable)

post_max_size = 200M
upload_max_filesize = 200M

y finalmente reiniciamos de nuevo apache para que se apliquen los cambios:

$ sudo service apache2 restart

CONFIGURACION DE DNS DINAMICO Y APERTURA DEL PUERTO 80 EN EL ROUTER

Lo siguiente es conseguir que nuestro servicio de ficheros en cloud, que de momento es local, esté accesible desde cualquier sitio en internet. Como el 99% de las líneas ADSL de nuestro país tienen ip pública dinámica tendremos que hacerlo a través de DNS dinámico. La mayor parte de los routers tienen una pantalla de configuración de DDNS en donde se pueden poner las credenciales de un servicio del tipo dyndns o TZO para obtener la dirección dinámica. Nos vamos por ejemplo a www.dyndns.com y nos damos de alta dando la dirección de un host, registrándonos previamente en la web

A continuación lo que hay que hacer es vincular en el router el nombre de host que nos hemos definido  y nuestro usuario y contraseña de nuestro acceso a www.dyndns.org para que sea el router el que cambie la ip del host grimores.dyndns.org  cada vez que cambie la ip pública del router. Estas instrucciones concretas dependerán del router que tengamos, como ejemplo aquí tenéis las instrucciones para un router Linksys. o este otro para un router Zyxel

También tenemos que abrir el puerto 80 (el de http) en el router a la dirección ip de la máquina linux (se saca con un comando ifconfig en la máquina ubuntu en donde está alojado el servicio de owncloud.También conviene dejar por ip fija la configuración de la ip en el servidor, para que no nos cambie a través de dhcp. Aquí tenéis un pantallazo del mío, pero eso dependerá del router concreto.

A partir de ahora desde cualquier sitio de internet ya se accerá a nuestro servicio a través de

http://grimores.dyndns.org/owncloud

INSTALACION DE CLIENTES

Aunque el tema de clientes no es estrictamente necesario, porque accediendo desde internet a la url http://grimores.dyndns.org/owncloud tenemos acceso al sistema en cualquier dispositivo, sea windows, mac osx, linux, iphone, ipad, android, etc, viene bien instalarlo porque es muy cómodo ya que el cliente hace una replicación local de los ficheros de la nube y los cambios que hagamos en ellos los sincroniza automáticamente

En este enlace tenéis los distintos clientes, que de momento, a fecha de hoy (2-05-2012), son pocos: hay uno para windows, que he probado, otro para Ubuntu, que no me funciona porque es para Ubuntu 11.04 o 11.10 (yo tengo 12.04) y prometen para pronto clientes para Mac y dispositivos móviles.

Cuando te instalas el cliente windows te genera un directorio clientsync en la estructura de directorios del servidor que sincroniza con lo que metas en el directorio por defecto de sincronización del pc windows (un directorio ownCloud que cuelga del usuario en el que instalamos el cliente, en mi caso c:\users\juanluis\owncloud)

Aunque todavía no hay estos clientes, no significa que no nos podamos conectar al servicio sin navegador, porque realmente lo que nos hemos montado es un servicio WebDAV, con lo que con cualquier cliente webdav nos podremos conectar en un iPad, iPhone, Mac, Linux o lo que sea. Yo me he bajado gratis de la app store uno para el iPad y el iPhone que se llama WebDav Nav en donde definiendóle las credenciales: del servidor WebDAV

URL: http://grimores.dyndns.org/owncloud/files/webdav.php

usuario: admin (o el que nos hubiésemos definido)

password: la que le hayamos puesto

tenemos acceso a los ficheros como podéis ver en este pantallazo

En fin, espero no haberos aburrido mucho y haber conseguido que seáis capaces de montarlo sin necesidad de muchos conocimientos…
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)

Loading ... Loading ...

14 comentarios

7 pings

Ir al formulario de comentarios

  1. juanluis

    Muy buena la guía…

  2. Juan Luis Redajo

    Probando la integración del blog con twitter

  3. juanluis

    Esto de hacer guías “for dummies” está teniendo mucho éxito…

  4. juanluis

    Acabo de actualizarlo a la versión 4 y sin problemas…

  5. Paganini

    Muy buen post, he seguido todos los pasos al pie de la letra y no he tenido errores, pero al escribir en el navegador http://localhost/owncloud me aparece esto escrito, quisiera saber que ocurrio mal, ya que he buscado mucho y no he conseguido. Gracias!

    ?php

    /**
    * ownCloud
    *
    * @author Frank Karlitschek
    * @copyright 2010 Frank Karlitschek [email protected]
    *
    * This library is free software; you can redistribute it and/or
    * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
    * License as published by the Free Software Foundation; either
    * version 3 of the License, or any later version.
    *
    * This library is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
    *
    * You should have received a copy of the GNU Affero General Public
    * License along with this library. If not, see .
    *
    */

    $RUNTIME_NOAPPS = TRUE; //no apps, yet

    require_once(‘lib/base.php’);

    // Setup required :
    $not_installed = !OC_Config::getValue(‘installed’, false);
    if($not_installed) {
    // Check for autosetup:
    $autosetup_file = OC::$SERVERROOT.”/config/autoconfig.php”;
    if( file_exists( $autosetup_file )){
    OC_Log::write(‘core’,’Autoconfig file found, setting up owncloud…’,OC_Log::INFO);
    include( $autosetup_file );
    $_POST['install'] = ‘true’;
    $_POST = array_merge ($_POST, $AUTOCONFIG);
    unlink($autosetup_file);
    }
    OC_Util::addScript(‘setup’);
    require_once(‘setup.php’);
    exit();
    }

    // Handle WebDAV
    if($_SERVER['REQUEST_METHOD']==’PROPFIND’){
    header(‘location: ‘.OC_Helper::linkToRemote(‘webdav’));
    exit();
    }
    elseif(!OC_User::isLoggedIn() && substr(OC::$REQUESTEDFILE,-3) == ‘css’){
    OC_App::loadApps();
    OC::loadfile();
    }
    // Someone is logged in :
    elseif(OC_User::isLoggedIn()) {
    OC_App::loadApps();
    if(isset($_GET["logout"]) and ($_GET["logout"])) {
    OC_User::logout();
    header(“Location: “.OC::$WEBROOT.’/’);
    exit();
    }else{
    if(is_null(OC::$REQUESTEDFILE)){
    OC::loadapp();
    }else{
    OC::loadfile();
    }
    }

    // For all others cases, we display the guest page :
    } else {
    OC_App::loadApps();
    $error = false;
    // remember was checked after last login
    if(isset($_COOKIE["oc_remember_login"]) && isset($_COOKIE["oc_token"]) && isset($_COOKIE["oc_username"]) && $_COOKIE["oc_remember_login"]) {
    if(defined(“DEBUG”) && DEBUG) {
    OC_Log::write(‘core’,’Trying to login from cookie’,OC_Log::DEBUG);
    }
    // confirm credentials in cookie
    if(isset($_COOKIE['oc_token']) && OC_User::userExists($_COOKIE['oc_username']) &&
    OC_Preferences::getValue($_COOKIE['oc_username'], “login”, “token”) == $_COOKIE['oc_token']) {
    OC_User::setUserId($_COOKIE['oc_username']);
    OC_Util::redirectToDefaultPage();
    }
    else {
    OC_User::unsetMagicInCookie();
    }

    // Someone wants to log in :
    } elseif(isset($_POST["user"]) and isset($_POST['password']) and isset($_SESSION['sectoken']) and isset($_POST['sectoken']) and ($_SESSION['sectoken']==$_POST['sectoken']) ) {
    if(OC_User::login($_POST["user"], $_POST["password"])) {
    if(!empty($_POST["remember_login"])){
    if(defined(“DEBUG”) && DEBUG) {
    OC_Log::write(‘core’,’Setting remember login to cookie’,OC_Log::DEBUG);
    }
    $token = md5($_POST["user"].time().$_POST['password']);
    OC_Preferences::setValue($_POST['user'], ‘login’, ‘token’, $token);
    OC_User::setMagicInCookie($_POST["user"], $token);
    }
    else {
    OC_User::unsetMagicInCookie();
    }
    OC_Util::redirectToDefaultPage();
    } else {
    $error = true;
    }

    // The user is already authenticated using Apaches AuthType Basic… very usable in combination with LDAP
    } elseif(isset($_SERVER["PHP_AUTH_USER"]) && isset($_SERVER["PHP_AUTH_PW"])){
    if (OC_User::login($_SERVER["PHP_AUTH_USER"],$_SERVER["PHP_AUTH_PW"])) {
    //OC_Log::write(‘core’,”Logged in with HTTP Authentication”,OC_Log::DEBUG);
    OC_User::unsetMagicInCookie();
    OC_Util::redirectToDefaultPage();
    }else{
    $error = true;
    }
    }
    if(!array_key_exists(‘sectoken’, $_SESSION) || (array_key_exists(‘sectoken’, $_SESSION) && is_null(OC::$REQUESTEDFILE)) || substr(OC::$REQUESTEDFILE, -3) == ‘php’){
    $sectoken=rand(1000000,9999999);
    $_SESSION['sectoken']=$sectoken;
    $redirect_url = (isset($_REQUEST['redirect_url'])) ? $_REQUEST['redirect_url'] : $_SERVER['REQUEST_URI'];
    OC_Template::printGuestPage(”, ‘login’, array(‘error’ => $error, ‘sectoken’ => $sectoken, ‘redirect’ => $redirect_url));
    }
    }

  6. juanluis

    Lo que pasa, me da la sensación, es que el php no está bien instalado y que el servidor interpreta el código php como texto, puesto, que, en lugar de soltarte la parrafada del código php, te debería ejecutarlo, pero no te sabría dar más pistas.

  7. Felipe

    Muy buena guia, lo acabo de instalar pero actualizado, la consulta sería si esto es para un solo usuario o se puede agregar tres o cuatro…Gracias

  8. Oscar

    Hola,

    en primer lugar, acabo de aterrizar aquí, y debo decir que a primera vista me parece fabuloso tu blog…

    Normalmente paso de forma sigilosa por todas partes, y raramente se me ocurre participar y mucho menos hacer comentarios, pero nada más leer el primer párrafo de éste post, hay una pregunta que me golpea la cabeza, y creo que debo hacerla…

    Dices, literalmente:
    “[...] saben que soy un defensor de las tecnologías de software libre [...]“

    pero luego, sin avisar sueltas, literalmente:
    “[...] en mi caso de un portátil MacBook Pro con arranque dual Mac OSX – Windows 7, un portátil HP Pavilion con un arranque dual Windows 7 – Ubuntu, un netbook con arranque dual Windows XP – Ubuntu Netbook Edition, un iPhone y un iPad, ahí va eso. [...]“

    Y claro el contraste para mí ha sido tremendo: un seguidor de apple amante del software libre… Bonita mutación genética, cuanto menos.

    Un saludo!!

  9. juanluis

    Respondiéndote, Oscar, lo cortés no quita lo valiente. De hecho me gano la vida impartiendo cursos de linux, entre otras cosas, que es software libre. El hecho de que también disponga de máquinas con Windows, Mac OSX o iOS no significa más que me gusta tocar todos los palos tecnológicos. De hecho este blog, al que calificas de fabuloso (gracias, es cierto que tiene mucho trabajo detrás de él, tratando de estar siempre a la última en temas multimedia), está montado totalmente con herramientas de software libre: servidor linux, apache, php, mysql. De hecho también este artículo al que has llegado sobre owncloud también es software libre.

  10. Alejandro

    Me pareció una guía excelente, pero tengo una duda con eso de dyndns, se necesita contratar algún servicio?

    1. juanluis

      En principio no hace falta contratar ningún servicio. Basta crearse una cuenta en este tipo de webs y las credencias que tengas en la web las pones en el router configurando el servicio DDNS

  11. Aldo

    Hola Oscar, te escribo porque , quiero hacer mi tesis en un servidor OwnCloud para una empresa.
    y he instalado owncloud 6.02 sobre Centos 6.5 y localmente anda bien pero me insterasa que puesa ser visto desde internet.
    el tema es que la empresa tiene su servidor DNS sobre windows, y no se como hacer para poder salir a internet atraves de el.

    agradeceria tu ayuda.

  12. juanluis

    Tienes que hablar con la gente que lleve el tema del router de salida de internet para que desde internet se redirija el puerto 80 a la máquina que tiene el owncloud y ya está. Cuando la gente ponga desde internet http://ip-publica del adsl accederán a la máquina del owncloud.

  13. aldobelus

    Hola juanluis. Verás, he instalado todo correctamente, según creo, consigo la sincronización de archivos perfectamente, pero se me está llenando la carpeta raíz (estoy en NetRunner, una especie de Kubuntu más guapo, a mi gusto). He visto que había una forma de hacer que la carpeta donde carga los archivos Owncloud estuviera en la carpeta home, pero ahora no recuerdo el modo y no encuentro la forma de encontrar dónde lo vi.
    ¿Puedes ayudarme, por favor? ¿Cómo hago para que Owncloud use la carpeta home en lugar de irse a raíz?
    Gracias por el post, está bien claro.

  1. Visita virtual al Parque Juan Carlos I a través de fotos panorámicas de 360º aprovechando un evento en IFEMA sobre temas de cloud » Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] El otro día estuve en IFEMA en Madrid en un evento de Vmware sobre temas de cloud, que como sabéis, es el futuro en los temas de la informática, como lo prueba que el artículo más visto en este blog sea uno sobre Owncloud, un programa para montarte tú mismo un servicio de almacenamiento de ficheros en la nube t…. [...]

  2. La nube, un excelente programa de la 2 de Televisión Española sobre el mundo de internet » Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] Aquí tenéis gentileza de http://www.rtve.es los 3 últimos programas. En el último programa del día 14 la primera entrevista es a Pau García Milá, fundador de EyeOs, un escritorio en la nube que empezó con un proyecto parecido a owncloud para compartir ficheros en la nube entre distintos dispositivos. En este enlace tenéis una guía para tontos (for dummies) que me he hecho para que os lo podáis montar sin apenas conocim…. [...]

  3. Vistas panorámicas de Madrid desde el Parque Juan Carlos I publicadas en www.360cities.net aprovechando un evento en IFEMA sobre temas de cloud » Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] El otro día estuve en IFEMA en Madrid en un evento de Vmware sobre temas de cloud, que como sabéis, es el futuro en los temas de la informática, como lo prueba que el artículo más visto en este blog sea uno sobre Owncloud, un programa para montarte tú mismo un servicio de almacenamiento de ficheros en la nube t…. [...]

  4. Visita virtual a IFEMA a través de fotos panorámicas de 360º aprovechando un evento sobre temas de cloud » Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] El otro día estuve en IFEMA en Madrid en un evento de Vmware sobre temas de cloud, que como sabéis, es el futuro en los temas de la informática, como lo prueba que el artículo más visto en este blog sea uno sobre Owncloud, un programa para montarte tú mismo un servicio de almacenamiento de ficheros en la nube t…. [...]

  5. Visita virtual a IFEMA a través de fotos panorámicas de 360º aprovechando un evento sobre temas de cloud | Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] El otro día estuve en IFEMA en Madrid en un evento de Vmware sobre temas de cloud, que como sabéis, es el futuro en los temas de la informática, como lo prueba que el artículo más visto en este blog sea uno sobre Owncloud, un programa para montarte tú mismo un servicio de almacenamiento de ficheros en la nube t…. [...]

  6. Visita virtual al Parque Juan Carlos I a través de fotos panorámicas de 360º aprovechando un evento en IFEMA sobre temas de cloud | Blog panorámico, esférico, gigapixel y HD de Juan Luis Redajo

    [...] El otro día estuve en IFEMA en Madrid en un evento de Vmware sobre temas de cloud, que como sabéis, es el futuro en los temas de la informática, como lo prueba que el artículo más visto en este blog sea uno sobre Owncloud, un programa para montarte tú mismo un servicio de almacenamiento de ficheros en la nube t…. [...]

  7. Red Hat Tour en el estadio Santiago Bernabéu

    [...] por ahí. Por cierto, que uno de los artículos de más éxito de este blog es uno que hice sobre owncloud para tontos, un software que permite montar un dropbox casero que es una de las múltiples aplicaciones del [...]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *


cuatro × = 4

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>