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. Por cierto, si quieres formación en Linux, pincha en este enlace de www.formacionwebsymultimedia.com, 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/
$ 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…
16 comentarios
9 pings
Saltar al formulario de comentarios
Autor
Muy buena la guía…
Probando la integración del blog con twitter
Autor
Esto de hacer guías “for dummies” está teniendo mucho éxito…
Autor
Acabo de actualizarlo a la versión 4 y sin problemas…
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 karlitschek@kde.org
*
* 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));
}
}
Autor
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.
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
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!!
Autor
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.
Me pareció una guía excelente, pero tengo una duda con eso de dyndns, se necesita contratar algún servicio?
Autor
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
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.
Autor
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.
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.
shale no se mucho de owncloud pero se me antojaria ami crear una carpeta en home aser un enlace simbolico que es facil en linux lo que no estoy seguro es si habia que modificar el archivo de configuracion de owncloud creo esta en esta ruta: config/config.php es una idea ya sea para el autor del blog para que te de respuestas ya que el es el que me imagino esta mas inmerso en esto cualquier error en la idea tienen derecho a replica pero = no creo estar para responder ya que llegue de milagro a este blog
disculpen la ortografia pero es que ni tengo licenciatura ni tengo algun estudio mas abansado solo yego a primaria pero = creo estar por laruta correcta
Muy bueno, muchas gracias.
[…] 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…. […]
[…] 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…. […]
[…] 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…. […]
[…] 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…. […]
[…] 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…. […]
[…] 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…. […]
[…] 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 […]
[…] Fuente: Mi blog personal […]
[…] Fuente: Mi blog personal […]