Publi

ownCloud en 2015. Instalación básica (I)

d35c5980_reducida

Introducción

Hace años que uso ownCloud para guardar mis archivos en la nube. Aunque, hasta hace poco, estaba usando una versión desatendida (ownCloud 4) y, sobre todo por pereza, no había actualizado. Pero quería actualizar, comprobar las nuevas características, y verificar que las antiguas seguían funcionando bien (sincronización con dispositivos, con el ordenador y velocidad en transacciones).

Mi conclusión ha sido que, el nuevo ownCloud trae muchas mejoras (tanto en contactos, calendario, archivos, sistema de complementos, seguridad y velocidad). Pienso que está entrando de lleno en un sistema preparado para usarse en la empresa y grupos de trabajo. Antes, tenía la sensación de que faltaba algo, algunas opciones no se completaban como debían, pero ahora, la considero lo suficientemente robusta y con buenas características como para usarse sin problema en un entorno de producción.

Desde aquí quiero dedicar esta serie de posts sobre ownCloud a la instalación desde cero en un servidor LAMP, configuración, buenas prácticas, sincronización con dispositivos, etc. Quiero hacer una guía bastante completa. Mis posts, más o menos suelen ser de entre 1000 y 1500 palabras, por lo que no quiero hacerlos muy pesados, siento dejar colgado a todo el mundo mientras se van publicando los posts.

Un servidor propio para ownCloud

photo-1423768117358-8e45238c1952_red
No estoy hablando de que tenga que ser un gran servidor, podemos utilizar un ordenador viejo en casa (si utilizamos la nube desde fuera de casa, y más si somos varias personas tenemos que tener una conexión más o menos buena, sobre todo subida), o si me apuras una Raspberry PI o cualquier otro dispositivo donde podamos enchufar un disco duro. En el caso de utilizar un ordenador en casa, tendremos tanto almacenamiento como tenga ese disco duro y la disponibilidad dependerá de nuestra conexión de red (si se va la luz en casa, lógicamente no estará disponible, a no ser que utilicemos SAIs, por ejemplo).

Pero también podemos instalarlo en un servidor nuestro que hayamos montado o contratado, puede ser desde un servidor compartido hasta un dedicado, pasando por un VPS, y tampoco tiene que tener unas características bestiales. Yo mismo he montado uno en un servidor con un sólo procesador, 1Gb de RAM y 20Gb de disco duro libres y va de escándalo, es más, perfectamente puede convivir con otras aplicaciones y otras webs. Por supuesto, esto depende del uso que hagamos y de los usuarios que tengamos conectados, no es lo mismos un servidor con unas 20 personas conectadas (pensemos que cada persona puede sincronizar sus datos con varios dispositivos y eso genera una carga en el servidor), que con 2000 personas. Aunque cómo escalemos nuestro servidor ya es otro asunto.

Instalando en un LAMP

Quiero centrarme en un servidor LAMP, aunque podemos utilizar cualquier otra configuración, ésta es la que he probado y para la que creo esta guía.
No voy a detenerme mucho en este aspecto, ya que por Internet encontráis bastantes guías para instalar, incluso yo he hecho un par de ellas (esta es la última). Me basaré en esa configuración ya que es una de las más comunes. Podéis mirar en esa web para ver cómo podemos instalar PHP como CGI o FPM, que también es muy interesante.

Debemos asegurarnos de tener al menos PHP 5.4, aunque es recomendable utilizar una versión más nueva.

Copiando archivos

Una vez tenemos Apache y PHP instalado, así como un servidor de base de datos MySQL o MariaDB (podemos instalar también ownCloud sobre un PostgreSQL o un Oracle entre otros. Procedemos a crear nuestra estructura de archivos. Como habréis visto en otras guías, suelo ser muy mecánico en este proceso, crear un árbol de directorios parecido siempre y guardar los archivos comprimidos, lo recomiendo, no ocupan mucho yen alguna ocasión nos pueden salvar la vida (por ejemplo si borramos o modificamos por accidente un archivo y tenemos que reemplazarlo con el original, en la misma versión y revisión, dato que puede que no recordemos exactamente).

Screenshot 25-10-2015-191001Por lo que, empecemos, si el usuario de nuestro sistema se llama cloud, crearemos (si no lo tenemos ya), un directorio www, dentro crearemos otro llamado owncloud.miservidor.com y dentro tendremos tarballs y www, tal y como muestra el árbol de la figura. De este modo, el host del servidor web apuntará a /home/cloud/www/owncloud.miservidor.com/www/ así puede convivir con otras aplicaciones y lo tenemos todo organizado, además, podemos guardar otros datos dentro de owncloud.servidor.com como logs, copias de seguidad, etc. Para crear el árbol podemos utilizar:

$ mkdir -p ~/www/owncloud.miservidor.com/tarballs
$ mkdir -p ~/www/owncloud.miservidor.com/logs
$ chgrp www-data logs
$ chmod g+w logs

Como vemos, no creamos todavía www, ya lo haremos luego cuando tengamos todo descargado. Opcionalmente creamos un directorio para los logs de Apache sobre este proyecto y damos permisos al grupo www-data (generalmente utilizado para el servidor) para poder escribir en el directorio. Si nuestra distribución, o nuestra configuración utiliza otro grupo para el servidor, debemos darle permisos al grupo correspondiente.

Ahora vamos al directorio tarballs y descargamos la última versión de ownCloud (en el momento de la escritura del artículo, la 8.2, pero podemos verlo aquí):

$ wget https://download.owncloud.org/community/owncloud-8.2.0.tar.bz2
$ tar xvjf owncloud-8.2.0.tar.bz2
$ # Como todo se habrá descomprimido en el directorio owncloud
$ mv owncloud ../www

Permisos en directorios

ownCloud debe poder escribir en los directorios de datos y de configuración. Mucha gente preferirá hacer un:

$ chmod 777 *

dentro del directorio de ownCloud, pero, personalmente no lo recomiendo. Soy un poco más paranoico con la seguridad, en su lugar, prefiero dar permisos sólo a los directorios que hace falta y sólo dar permisos al grupo del proceso Apache. En realidad podemos crear un grupo especial donde tengamos al usuario de administración (no root) que utilicemos y al usuario de Apache, pero eso ya es liar las cosas un poco para esta guía.
Lo que haremos será crear el directorio data y dar permisos de escritura para el grupo www-data tanto a data como a config y apps y sus contenidos:

$ mkdir apps
# Como root, o con sudo delante
# chgrp -R www-data apps config data
# chmod -R g+w apps config data

Creando base de datos

En esta guía lo instalaremos en un servidor MySQL (aunque sería compatible con MariaDB), para ello, crearemos un schema o base de datos en nuestro servidor, un usuario y le asignaremos una contraseña (si tenemos varias aplicaciones conviviendo en el servidor es conveniente que cada una tenga un usuario diferente). En este caso, la base de datos será MyCloud, el usuario clouder y la contraseña será generada (podemos generar contraseñas fácilmente con pwgen.

Así que, para crear estos elementos, podemos hacerlo desde un phpMyAdmin que tengamos instalado o desde consola, accediendo como root a mySQL:

$ mysql -uroot -p
> CREATE SCHEMA MyCloud;
Query OK, 1 row affected (0.00 sec)

> GRANT ALL PRIVILEGES ON MyCloud.* TO ‘clouder’@’localhost’ IDENTIFIED BY ‘qEf0

En este ejemplo, suponemos que la base de datos estará en el mismo servidor que la web. En el caso en el que no sea así, es decir, tengamos la base de datos en otro servidor, en lugar de ‘clouder’@’localhost’ debemos poner ‘clouder’@’hostweb’ o ‘clouder’@’%’ para poder acceder desde cualquier host. En lugar de hostweb, también podemos poner la IP del servidor web. En este caso, es el servidor web el que va a acceder a la base de datos, por lo que la base de datos comprueba de dónde viene la petición.

Creando el VirtualHost

Aunque más adelante profundizaremos en la seguridad, en principio vamos a crear un VirtualHost más sencillo, con el que podremos acceder desde ya al servicio y configurarlo.
Para ello, debemos crear (como root) un nuevo archivo llamado /etc/apache2/sites-available/owncloud.miservidor.com (si usamos Apache 2.4 el archivo deberá llamarse /etc/apache2/sites-available/owncloud.miservidor.com.conf) y la sintaxis será ligeramente diferente. El contenido del archivo deberá ser algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName owncloud.miservidor.com

        DocumentRoot /home/cloud/www/owncloud.miservidor.com/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>

        <Directory /home/cloud/www/owncloud.miservidor.com/www/>
                Options Indexes FollowSymLinks MultiViews +ExecCGI
                AllowOverride All
# En Apache 2.4 estas dos líneas se cambiarán por
#                 Require all granted
                Order allow,deny
                allow from all
        </Directory>

# Logs esto es opcional
        ErrorLog    "/home/cloud/www/owncloud.miservidor.com/logs/error.log"
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog    "/home/cloud/www/owncloud.miservidor.com/logs/access.log" vhost_combined
</VirtualHost>

Tu VirtualHost, por supuesto, puede ser mucho más grande, para especificar el intérprete PHP a utilizar, configurar módulos de seguridad (ya veremos algo más tarde), etc. Pero esto es lo básico. En lugar de empezar un archivo desde cero, podemos también copiar el archivo default que veremos en el mismo directorio (/etc/apache2/sites-available/)

Una vez hecho esto, sólo queda activar el sitio y recargar la configuración del servidor (como root):

# a2ensite owncloud.miservidor.com
# service apache2 reload

También es necesario tener activado el módulo Mod Rewrite de Apache:

# a2enmod rewrite
# service apache2 restart

Nota: Si tu Linux usa systemd deberás hacer:

# systemctl restart httpd.service

Ahora, para tener acceso al software, debemos tener la dirección preparada. Esta puede ser un dominio o subdominio que tengamos contratado, o una red privada, como puede ser una red en casa. En el caso de tener un dominio, o subdominio, tenemos que entrar en el panel de control de nuestro dominio (con el proveedor con el que tengamos contratado) y editar las DNS para introducir como dirección de tipo A, la IP de nuestro servidor. Este proceso suele tardar un tiempo, dependiendo del estado de la red, en qué puntos del planeta estén el servidor y estés tú, de con quién tengamos contratado el dominio, y de la extensión del mismo. Puede variar entre unos segundos y hasta 72h. En este tiempo, este cambio que hemos hecho en nuestro dominio debe propagarse entre todos los servidores web del mundo o, al menos el servidor al que conecta tu ordenador para averiguar esa dirección IP. (Nota, según mi experiencia, el más rápido en propagar es el DNS de GoDaddy, el de DigitalOcean le sigue de cerca, aunque ahí no podemos contratar dominios, es sólo DNS, luego está el de CloudFlare y por la cola, es decir, los más lentos, con una diferencia de varias horas, 1&1)

En el caso en el que sea un servidor de casa, o incluso que estemos esperando que la dirección se propague y queremos empezar a configurar ya, podemos editar el archivo hosts de cada uno de los ordenadores que vayan a tener acceso.

En archivo hosts tiene una localización distinta dependiendo del sistema operativo en el que estemos:

  • En Linux, y muchos sistemas Unix estará localizado en /etc/hosts
  • En Windows, lo tendremos en C:\Windows\System32\drivers\etc\hosts
  • En Mac y en iPhone, en /private/etc/hosts
  • En Android, /system/etc/hosts

Siempre necesitaremos privilegios especiales para modificar estos archivos, en ellos, debemos introducir la siguiente línea:

xxx.xxx.xxx.xxx owncloud.miservidor.com

Donde xxx.xxx.xxx.xxx es la dirección IP del equipo que tiene el software instalado.

Ya podemos entrar en http://owncloud.miservidor.com y empezar a trabajar.

Configuración básica

Screenshot 26-10-2015-021031
Al acceder al servidor, si todo va bien, veremos una pantalla como la que tenemos aquí. Donde podemos crear un usuario administrador para nuestro ownCloud, nos pregunta sobre la localización del archivo de datos (/home/cloud/www/owncloud.miservidor.com/www/data/ aunque la imagen diga lo contrario) y sobre la configuración de base de datos que, por defecto selecciona SQLite, pero aquí debemos seleccionar MySQL/MariaDB donde nos preguntará por el usuario/contraseña/base de datos y host de nuestro servidor de base de datos.

Ya estamos listos para empezar a trabajar con nuestra nueva nube privada. En el siguiente artículo de la serie trataremos parte de la configuración básica, aplicaciones y usuarios.

Fotos: Lim Changwon (Unsplash), Anthony DELANOIX (Unsplash)

También podría interesarte....

There are 40 comments left Ir a comentario

  1. Pingback: ownCloud un 2015. Instalación básica (I) | PlanetaLibre /

  2. Hugo /
    Usando Google Chrome Google Chrome 46.0.2490.80 en Windows Windows 7

    Muy bueno!

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 41.0 en Ubuntu Linux Ubuntu Linux

      Muchas gracias. Dentro de poco tiempo más, con muchos más detalles.

  3. Pingback: ownCloud en 2015. Instalación básica (I) | PlanetaLibre /

  4. Pingback: Owncloud en 2015. Seguridad, extras y recomendaciones (II) – Poesía Binaria /

  5. Pingback: Owncloud en 2016. Cómo usarlo desde el escritorio y desde el móvil – Poesía Binaria /

  6. Pingback: OwnCloud. Instalación básica (Parte I) – Poesía Binaria – PROYECTO TIC – TAC /

  7. Pato /
    Usando Mozilla Firefox Mozilla Firefox 48.0 en Windows Windows NT

    Yo lo instale owncloud pero agregando el repositorio e instalando desde aqui:
    https://download.owncloud.org/download/repositories/stable/owncloud/
    Se instala, se da permisos sola, todo hermoso pero a la hora de acceder tengo que poner la ip del servidor xxx.xxx.xxx.xxx/owncloud
    Ahora mi duda es si puedo, asignarle un nombre de dominio (intranet) para acceder a owncloud, lo mas cerca que estuve fue creando el dominio «cloud.owncloud.com/owncloud» pero lo mismo tengo que agregarle el «/owncloud».
    quisiera mover todo a cloud.owncloud.com. Y para lograr eso no se si se modifican archivos de apache u owncloud. Ya mate mi servidor anteriormente modificando archivos aqui y alla, y mi router es fastethernet asi que quiero saber bien antes de romper y volver a perder muchas horas resubiendo. Gracias

    1. Gaspar Fernández / Post Author
      Usando Mozilla Firefox Mozilla Firefox 48.0 en Ubuntu Linux Ubuntu Linux

      Yo creo que sí que podrás asignarle un dominio. Habrá que ver bajo qué servidor web está trabajando dicha instalación, como comentas es Apache, seguramente en /etc/apache2/sites-available/ tengas el sitio instalado, sólo tendrías que añadir la línea ServerName «midominio.extension» en ese archivo. Aunque puede que también figure como configuración, tendrás que buscarlo en /etc/apache2/conf-available/ a ver. Si no está en esas dos rutas, busca por los alrededores, seguro que lo ves (con egrep, o locate).
      Por otro lado, para que la instalación por distribución sea consistente, lo más seguro que tengas una línea Alias por ahí redireccionando al directorio de Owncloud, para incluir un /owncloud tendrías que tocar en esa línea.

      No sé si afectará mucho el cambio de dominio o carpeta a la instalación de owncloud, es cuestión de probar.

  8. Pingback: Asus Zenfone 2 Laser, desbloqueo, root, limpieza, sincronización y algunas cosas más – Poesía Binaria /

  9. Pingback: Programas que me han salvado la vida este 2016 – Poesía Binaria /

  10. Pingback: Herramientas para trabajar en equipo sin perder el control ni la libertad – Poesía Binaria /

  11. xmarti /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    Thanks For sharing this Superb article.I use this Article to show my assignment in college.it is useful For me Great Work. best jewellery in ksa

  12. xmarti /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. spouse visa uk

  13. xmarti /
    Usando Google Chrome Google Chrome 116.0.0.0 en Windows Windows NT

    Positive site, where did u come up with the information on this posting? I’m pleased I discovered it though, ill be checking back soon to find out what additional posts you include. tax services in UK

  14. xmarti /
    Usando Google Chrome Google Chrome 117.0.0.0 en Windows Windows NT

    Hi there! Nice post! Please tell us when I will see a follow up! https wellhealthorganic com how protein can help you lose weight

  15. xmarti /
    Usando Google Chrome Google Chrome 117.0.0.0 en Windows Windows NT

    This particular is usually apparently essential and moreover outstanding truth along with for sure fair-minded and moreover admittedly useful My business is looking to find in advance designed for this specific useful stuffs… financial services in riyadh

  16. xmarti /
    Usando Google Chrome Google Chrome 117.0.0.0 en Windows Windows NT

    You make so many great points here that I read your article a couple of times. Your views are in accordance with my own for the most part. This is great content for your readers. pet taxi service in europe

  17. xmarti /
    Usando Google Chrome Google Chrome 117.0.0.0 en Windows Windows NT

    I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. best cosmetics in ksa

  18. xmarti /
    Usando Google Chrome Google Chrome 118.0.0.0 en Windows Windows NT

    You have a real ability for writing unique content. I like how you think and the way you represent your views in this article. I agree with your way of thinking. Thank you for sharing. ccna training in india

  19. whatsapp web /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    xzvz xvv dsv xcb dfdf g

  20. xmarti /
    Usando Google Chrome Google Chrome 119.0.0.0 en Windows Windows NT

    Thanks for taking the time to discuss that, I feel strongly about this and so really like getting to know more on this kind of field. Do you mind updating your blog post with additional insight? It should be really useful for all of us. best ccie security in india

  21. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    I was struggling to gain Facebook likes, but this service changed the game for me. A+ for their expertise! Wakala Mkuu wa Followers

  22. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Nicely I undoubtedly enjoyed reading through this. This particular tip provided by a person is actually very useful with regard to correct preparing. ویزای عربستان برای شهروندان کانادایی

  23. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Keep up the fantastic work, I read few posts on this website and I conceive that your web blog is really interesting and contains lots of fantastic information. wcostream

  24. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    User-friendly and efficient! This movie-downloading site has everything I need for a perfect movie night at home. Putlocker

  25. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Exceptional service at a budget-friendly price! Low-cost packers and movers made my move stress-free. Truly the cheapest and reliable choice in India. Packers and Movers Charges

  26. Usando Google Chrome Google Chrome 120.0.0.0 en Windows Windows NT

    Your blog post completely captivated me! It presented a bold and unconventional viewpoint that challenges the norm. Your skill in expressing innovative ideas is truly remarkable and has caused me to reconsider my own beliefs. I am eagerly anticipating more of your enlightening and thought-provoking writings.

  27. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    I not to mention my friends were found to be going through the excellent tips from your web page and so all of a sudden came up with an awful feeling I had not expressed respect to the web blog owner for those strategies. Those boys had been so passionate to see all of them and now have unquestionably been making the most of them. Many thanks for truly being really accommodating as well as for deciding on these kinds of nice tips millions of individuals are really desirous to learn about. Our own sincere regret for not expressing gratitude to you sooner. click here – alternative medicine institute ترکی ویزا آن لائن درخواست

  28. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Impressed with the durability of my Tungsten wedding ring. It still looks brand new after years! A great choice for long-lasting elegance. Mens Titanium Wedding Rings

  29. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Metalized Film Defect Detection System is a game-changer in film production. Ensures defect-free metalized films with precision. Metalized Film Defect Detection System

  30. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Thanks a ton for finding the time to line all of this out for us. This kind of posting has been quite helpful if you ask me. солонгос-иргэдэд-зориулсан-вьетнам-виз

  31. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    The convenience of being able to watch online movies anytime, anywhere, has redefined my approach to entertainment. This platform has become an integral part of my leisure time, offering a vast cinematic world at my fingertips. soap2day

  32. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    KissCartoon’s community features, such as user reviews and ratings, add a social aspect to the platform. Being able to see what other viewers recommend enhances the overall experience and helps in discovering new and exciting animated content. kisscartoon

  33. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Exceptional logistics expertise from RRC, the leading company in the field! One of the best in India, their freight forwarding solutions ensure timely and reliable deliveries. Leading Logistic company RRC

  34. Qaida For Beginners /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Highly recommend Qaida For Beginners! The step-by-step approach, engaging exercises, and user-friendly design make Quranic learning accessible and fun for beginners. Qaida For Beginners

  35. Usando Google Chrome Google Chrome 121.0.0.0 en Windows Windows NT

    I wanted to express my heartfelt gratitude once again. I couldn’t have made it through that challenging situation without your valuable advice. It was a scary dilemma for me, but your expert guidance helped me overcome it with joy. I’m truly grateful for this information and I also appreciate the amazing work you do in educating people through your web blog. You have made a positive impact on so many lives, including mine.

  36. Learn Quran Online USA /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Grateful for Learn Quran Online USA! Their flexible scheduling, supportive instructors, and emphasis on understanding and application have deepened my connection to the Quran. Learn Quran Online USA

  37. Mens titanium wedding bands /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Thrilled with the quality of my men’s titanium wedding band! Its comfort fit and modern aesthetic make it a standout choice for any groom. Mens titanium wedding bands

  38. wilson Smith /
    Usando Google Chrome Google Chrome 109.0.0.0 en Windows Windows NT

    Grateful for MyFlixer’s convenience! Whether I’m in the mood for classics or the latest releases, I can always rely on this platform to deliver top-notch entertainment right to my screen. MyFlixer

Leave a Reply