¿Qué es OwnCloud?
Owncloud es una solución de almacenamiento vía Internet similar a Dropbox y a Google Drive. Permite incluso conectarse a estos servicios a través de su interface web.
Podemos acceder a nuestra información a través del navegador, o a través de una aplicación cliente disponible para Windows, Osx y Linux, además de para Android e iOs.
Pero además es:
- Servidor webdav: para poder acceder a nuestros archivos a través de apache.
- Servidor caldav: para poder compartir nuestro calendario, citas, reuniones, etc.
- Servidor cardav: para poder compartir nuestros contactos.
- Servidor ampache: para poder acceder a nuestro contenido multimedia a través de clientes de streaming.
Ubuntu LAMP (Linux+Apache+Mysql+PHP)
Nota: os recomiendo que echéis un vistazo a dos de mis posts si instalais el servidor desde cero:
- Instalar Ubuntu-Server 12.04 LTS
- Afinar la instalación Ubuntu Server 12.04 LTS LAMP (fqdn, dyndns, ssh,webmin, ppmyadmin)
Lo primero que necesitamos es instalar el servidor LAMP de ubuntu. Podemos hacerlo directamente en la instalación del Ubuntu Server, o posteriormente con los siguientes comandos:
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install lamp-server^ |
El carácter “^” es importante para que el tipo de instalación del servidor web sea apropiado. En la instalación nos pedirá que introduzcamos el password del root de MySQL. Asegúrate de introducir una buena password que sea fácil de recordar.
Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlos necesitamos activar dos módulos con los siguientes comandos
sudo a2enmod rewrite sudo a2enmod headers |
Además tenemos que cambiar el archivo de configuración de apache para que reescriba las reglas adecuadamente. Con lo cual ejecutamos el siguiente comando
sudo nano /etc/apache2/sites-available/default |
Una vez quí debemos cambiar la línea
AllowOverride None |
Por
AllowOverride All |
Finalmente reiniciamos apache
sudo service apache2 restart |
Asegurar MySQL
Teclea lo siguiente para asegurar la instalación de MySQL
sudo mysql_secure_installation |
Cuando te pregunte el password del root de MySQL, introduce el que metiste en el apartado anterior.
Cuando te pregunte si quieres cambiar el pasword del root, teclea “n” de no.
Cuando te pregunte si quieres eliminar los usuarios anónimos, tecle “s” de si
Cuando te pregunte si quieres deshabillitar el acceso remoto del root, teclea “s”.
Cuando te pregunte si quieres eliminar la test database, tecle “s”.
Cuando te pregunte si quieres recargar la tabla de privilegios, tecle “s”.
Ya tenemos asegurado MySQL.
Crear la base de datos para OwnCloud
Primero accedemos como root a MySql en el terminal con el siguiente comando
mysql -u root -p |
Una vez dentro creamos la base de datos
CREATE DATABASE owncloud; |
Después creamos un nuevo usuario con los privilegios apropiados para la nueva base de datos (Sustituimos some_password, por una que decidamos nosotros.)
GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'some_password';
quit
|
Instalar OwnCloud
Instalamos paquetes necesarios para owncloud
sudo apt-get install php5-gd php-xml-parser php5-intl smbclient curl libcurl3 php5-curl |
A 28 DE OCTUBRE DEL 2013, EL PAQUETE DE INSTALACIÓN DE OWNCLOUD HA CAMBIADO EL DIRECTORIO DE INSTALACIÓN FUERA DE /VAR/WWW. POR TANTO LAS LÍNEAS EN ROJO A CONTINUACIÓN NO LAS USÉIS. SEGUIR EL PROCEDIMIENTO DESCRITO EN https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10
Añadimos la llave del repositorio de apt con los siguientes comandos:
wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key
sudo apt-key add - < Release.key
rm Release.key
|
Después añadimos el repositorio de apt e instalamos OwnCloud
sudo echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list
sudo apt-get update
sudo apt-get install owncloud
sudo service apache2 restart
|
El resto de la instalación se hace a través del navegador, y nos permite elegir entre otras cosas, el directorio donde se guardarán los datos de usuario que carguemos a través del navegador.
Si decidimos elegir un directorio distinto al que nos indica por omisión, a este directorio hay asignarle el usuario www-data con el siguiente comando
sudo chown -R www-data:www-data /ruta/al/directorio/de/datos/de/owncloud |
La dirección de nuestro owncloud será http://host/owncloud.
Si tenemos un fqdn (fully qualified domain name) lo introducimos en vez de host. Podemos obtener uno gratuito en dyndns.com.
Si no tenemos el fqdn, introducimos la ip del servidor.
Si accedemos a él, desde el propio servidor, en vez de host, ponemos localhost.
Y nos aparecerá una pantalla como esta
Le damos a Avanzado, y seleccionamos Configurar la base de datos: MySQL
En nombre de usuario, introducimos el nombre que queramos para el usuario administrador de owncloud, así como la contraseña.
En directorio de almacenamiento puedo elegir el que quiera, pero recuerdo, debemos asignarle el usuario www-data.
En configurar la base de datos introducimos el usuario, password y nombre de la base de datos que hemos creado para owncloud.
Y ya tenemos instalado nuestro servidor owncloud.
Antes de salir, recomiendo entrar en personal y añadir nuestro correo electrónico, para poder recuperar la contraseña en caso de que la perdamos.
Últimos ajustes
Ajustes de php
Necesitamos configurar php para que admita archivos grandes. Podemos hacerlo a través del terminal editando los archivos. /etc/php5/apache2/php.ini /etc/php5/cli/php.ini y pero es más cómodo y seguro hacerlo a través del módulo de webmin.
Para instalar webmin, vamos a http://webmin.com y descargamos el instalador con el comando wget. En el momento actual la última versión es la 1.650
wget http://netcologne.dl.sourceforge.net/project/webadmin/webmin/1.650/webmin_1.650_all.deb |
Instalamos algunos paquetes necesarios
sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python |
Instalamos webmin y borramos el paquete
sudo dpkg -i webmin_1.650_all.debrm webmin_1.650_all.deb |
Ahora podemos acceder al interface de webmin a través del navegador, en la dirección
https://ip_servidor:10000 (si accedemos desde el propio servidor https://localhost:10000)
Introducimos nuestro usuario y password y ya estamos dentro.
En el menú otros, seleccionamos PHP Configuration:
Damos al enlace Manage, y después den Resource Limits en cada uno de los ficheros y modificamos para que quede así.
Como maximum memory allocation, recomiendo poner una cuarta parte de la ram del servidor (pero es cuestión de ir probando).
Ajustes del .htaccess
Abrimos el .htaccess de owncloud con el siguiente comando
sudo nano /var/www/owncloud/.htaccess |
Y modificamos las siguientes líneas
php_value upload_max_filesize 513Mphp_value post_max_size 513Mphp_value memory_limit 512M |
Para que queden como los valores que modificamos en php.
php_value upload_max_filesize 20000Mphp_value post_max_size 20000Mphp_value memory_limit 2048M |
Y reiniciamos apache
sudo service apache2 restart |
Si queréis activar la encriptación SSL, lo podéis hacer siguiente el siguiente post.
Gracias a:
https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10
como accedes desde otra pc?, ya tengo todo lo que escribiste, pero como puedo acceder desde internet?, Gracias y buen post
Pues por ssh, http…
hola soy nuevo en esto y esta parte de entrar desde otra PC por ssh, http no la entendi me puedes orientar gracias.
Son protocolos. SSH te permite acceder al servidor para ejecutar comandos via terminal, y http es el protocolo que usan los navegadores y los servidores web como apache. Encontrarás mucha información googleando. Saludos.
Hola gracias ya lo hice funcionar con una cuenta en dyndns, muchas gracias por la ayuda
Saludos!!!
estupenda info 🙂
Añado una clarifiacion, para ahorrar que otros vayan a googlear por ella como yo – el cambio de «AllowOverride None» –> «AllowOverride All» se debe hacer en el apartado de:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
El comentario anterios salió todo torcido por la formatacion – por favor ignoradlo…
Dejo un gist del como queda el fichero «/etc/apache2/sites-available/default» despues del cambio de «AllowOverride None» –> «AllowOverride All»: https://gist.github.com/anonymous/7074868
@pacorabadan, permiteme una pequeña corrección – la siguiente linea no funciona (a no ser que ya seas root):
sudo echo ‘deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /’ >> /etc/apt/sources.list.d/owncloud.list
Para funcionar se puede por ejemplo hacer:
echo ‘deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /’ | sudo tee -a /etc/apt/sources.list.d/owncloud.list
Fantastico tutorial 🙂 muchas gracias 🙂
Buen trabajo!
A 28 DE OCTUBRE DEL 2013, EL PAQUETE DE INSTALACIÓN DE OWNCLOUD HA CAMBIADO EL DIRECTORIO DE INSTALACIÓN FUERA DE /VAR/WWW. POR TANTO LAS LÍNEAS EN ROJO A CONTINUACIÓN NO LAS USÉIS. SEGUIR EL PROCEDIMIENTO DESCRITO EN https://www.digitalocean.com/community/articles/how-to-setup-owncloud-5-on-ubuntu-12-10
Mi estimado amigo, nuevamente comunicandome contigo, me ha costado trabajo horas de leer los porque asimilar, el familiarisarme con linux pero por fin logre instalar owncloud, pero solo puedo visualizarlo en localhost con la IP interna, como puedo configurar SSL, para poder ingresar desde cualquier otro ordenador, cabe mencionar que mi instalacion es en una virtualbox, Saludos y espero no sea una molestia el ayudarme de antemano te agradesco.
tu tutorial al 100 gracias, sin duda de lo mejor de la ted
Muchas gracias por tu post. Funciono a la primera.
Un tutorial excepcional
Primero de todo agradecer el manual. Me ha sido de gran utilidad. Pero me surge una duda conceptual:
Yo he montado el servidor de os coloque en un pc de mi red personal. Por lo tanto acceso a el a través de la ip que le eh asignado dentro de mi red. Y cuando estoy fuera de mi casa( y, por lo tanto, fuera de mi red) acceso a el a través de mi ip pública. El problema lo tengo con el cliente de Windows, que tengo que configurar-lo cada vez que entornó salgo de mi red. En el cliente de mi iPhone es sencillo porque voy a settings-accounts y escojo la correcta en función de donde estoy pero en el cliente de Windows no puedo hacerlo y debo regó figurar la conexión cada veZ y se convierte en un rollo. Puedes ayudarme?
La solución creo que la tienes en el siguiente en https://www.pacorabadan.com/?p=191. Tienes que entrar en dyndns.com y darte de alta un fqdn gratuito que Asocia a tu ip pública un nombre de dominio. Ese nombre es el que hay que asignarle a tu servidor, y el que puedes usar para tus dispositivos móviles dentro y fuera de la red. Espero que te sirva.
Hola. Me ha funcionado lo que me comentas, es decir, indicar en el archivo /etc/hosts la direción interna de mi servidor junto con el dominio obtenido en Dyndns.org. I funciona perfectamente porque cusndo estoy en la misma red veo que la velocidad es mucho mas elevada que cuando estoy fuera y voy a trabés de internet pero, si te soy sincero, no comprendo el funcionamiento. Si estoy fuera de mi red comprendo que el nombre de dominio hace referencia a mi ip publica i por eso puedo acceder pero si estoy dentro de la misma, no se como puedo acceder a mi pc utilizando el nombre de dominio porque si este hace referencia a mi ip publica, nunca podria llegar a acceder a mi servidor si estoy en la misma red. No se si me he explicado.
Si tienes configurado el servidor DNS de linux para tu red no debes tener ningún problema.
Cuando digo que no entiendo lo que hace dicho comando me refiero a lo siguiente:
Si en el archivo HOST se escribe algo así como:
192.168.1.2 nombredehost.dyndns.org
Lo que realmente se hace es que cuando en el navegador alguien intenta acceder a nombredehost.dyndns.org, se redirecciona la comunicación hacia 192.168.1.2. Esto seria correcto cuando estoy en la red local (es decir, cuando 192.168.1.2 es realmente el servidor donde esta Owncloud) pero cuando se está fuera de la red, esa dirección local podria ser cualquier ordenador.
Por eso no entiendo como se consigue acceder al servidor desde fuera de la red local.
Gracias por tu atención….
hola buenas tardes queria saber como es puede hacer para k owncloud reconosca otrto motor de base de datos que no sea MySql k mejor sea mongoDB
Necesitas un motor SQL: sqlite, MySQL, PostgreSQL,… y MongoDB es noSQL
Paco excelente post!!, mi ownclod a trabajo de maravilla en mi propio servidor!!!
Gracias!!!
Hola! tengo todo funcionando correctamente menos el envio de correo. Si he olvidado contraseña y le doy a recordar, no envia nada. Tengo sendmail corriendo pero no consigo hacer que envie correo.
Hay dos opciones: configurar php (con webmin) o introducir un servidor smtp externo (que es lo mas fácil). Si tienes corriendo sendmail debería ser fácil ( o sea que algo raro pasa)
Fantástico manual. funcionando a la primera.
Sólo me surge una duda.
Al acceder a desde el exterior, ya que cuento con IP pública fija y dominio, tecleo dicho nombre de dominio en el navegador y llego al servidor sin problema, pero una vez estoy en la pantalla de login, en la barra de navegación me muestra la IP pública y no el nombre de mi dominio. ¿cómo puedo solucionar eso?.
Tienes un problema en la configuración del sitio https. En algún paso del tuto has metido la pata. Puede ser el hostname, el /etc/hosts/ y lo más probable, la configuración de apache que redirecciona al puerto 443. Mucho ánimo. Yo que tu me lo instalaba otra vez desde el principio, «pasito a pasito».