Articles for septiembre 2014

Actualizar OwnCloud (de 5.0.8 a 7.0.2) en un servidor NAS

La semana pasada compré en Redcoon un NAS (Network-attached storage) de la marca Zyxel, concretamente el NSA320S.
Las razones fueron básicamente que tiene:

  • Servidor FTP
  • Servidor WEB
  • Dos bahías para discos SATA, que pueden funcionar en RAID 0, RAID 1 y JBOD
  • La típica conectividad de disco: SAMBA, NFS, etc.

Aunque es un equipo de características bajas (256mb de RAM, 1GHz de procesador…) funciona bastante decente. Otro tema es la seguridad, de la que intentaré hablar en otro post…

Una de las aplicaciones preinstalables que llevaba el Zyxel NSA320S era OwnCloud, que aún no sé si usaré, en su versión 5.0.8.

Nunca había probado OwnCloud, aunque me habían hablado de él y, al ver la versión 5.0.8 funcionando pensé que se veía “viejo”. Cuando fui a la web de OwnCloud vi que existían versiones más modernas y decidí que iba a intentar actualizarlo.

ATENCIÓN, según OwnCloud, para actualizar hay que seguir un orden concreto:

  • La versión 5.0.8 actual hay que actualizarla a la última 5: 5.0.17
  • Después hay que actualizar la 5 a la última 6: 6.0.4
  • Y finalmente la 6 a la última 7 disponible: 7.0.2

¿Qué implica esto? Que hay que repetir el proceso tres veces en mi caso (tu caso podría ser distinto).

No sabía si sería posible, ni hasta qué punto podría toquetear el servidor web del NAS, pero os cuento la aventura por si alguien se lo plantea. La parte positiva es que internamente este NAS (como muchos otros) ejecuta un Linux.

Preparando el terreno:

  1. Desde el gestor del NAS instalar lo básico (esto es el paquete PHP-MySQL-phpMyAdmin y el paquete OwnCloud 5.0.8).
  2. Habilitar la conexión telnet. Habrá que hacer varias cosas en disco (como hacer root, cambiar permisos de ficheros, etc.) para las cuales necesitaremos acceso telnet o similar. Si no sabes lo que es el acceso root, mejor infórmate antes.
  3. Entrar por telnet (yo entré con usuario admin) y conseguir ser root (orden SU).
  4. Ir al directorio del Apache donde se encuentran las aplicaciones preinstaladas, como OwnCloud, en mi caso /usr/local/apache/htdocs/adv,/pkg
  5. Backup de lo que se tenga actualmente. Sobretodo si ya usas OwnCloud y tienes tu configuración, archivos subidos, etc.
    1. Yo usé la orden tar -zcvf file.tar.gz /ownCloud
    2. Llévate después el backup a un sitio seguro
  6. Borrar todos los archivos de OwnCloud excepto la carpeta config/ y la de datos, generalmente data/, aunque en muchos casos la tendréis en otra localización del disco y por tanto no os deberéis preocupar por ella.
    1. Ya que estás aquí, echa una ojeada a cómo están los permisos de cada cosa, sobretodo los de config/, porqué después deberás configurarlos igual.
  7. Bajar la nueva vesión:
    1. Buscar la versión correspondiente (leer advertencia al principio del post) en la web de OwnCloud.
    2. Bajarlo, por ejemplo: wget https://download.owncloud.org/community/owncloud-5.0.17.tar.bz2
  8. Descomprimir el contenido (atención con las rutas, asegúrate de que descomprimes donde toca): tar -zxvf owncloud-5.0.17.tar.gz /
    1. Si hubiera machacado el directorio /config (lo importante es el archivo config.php), recupéralo del backup.
    2. Es posible que tengas que asignar los archivos al propietario adecuado (root en mi caso) mediante chown -R root:root /ownCloud
    3. También puede que haya que retocar los permisos, en mi caso chmod -R 755 /ownCloud, a excepción de config/ y apps/ que, si no recuerdo mal, requieren 775.
  9. Si ya lo tienes todo en el sitio, y has configurado bien los permisos y propietarios, recargas la página de OwnCloud y te informará de que se está actualizando la base de datos a la nueva versión.

Enhorabuena, lo has conseguido. Como has leído al principio, deberás repetir el proceso hasta tres veces, 5.0.8 >  5.0.17 > 6.0.4 > 7.0.2, pero es relativamente rápido.

¿Qué ocurre ahora?

Cuando terminé las actualizaciones, me encontré con el problema de que OwnCloud se había vuelto considerablemente más lento y que algunas páginas no tenían el aspecto esperado. En la consola del navagador podía ver el error, varios archivos css no se encuentran (el típico error 404 para: versions.css, stylesheet.css, style.css, colorbox.css, firstrunwizard.css, slideshow.css, lucene.css, etc.):

Error al actualizar OwnCloud, archivos CSS no encontrados.

Error al actualizar OwnCloud, archivos CSS no encontrados.

Lo curioso es que los archivos sí que estaban en disco, así que fui a ver cómo estaba configurado el .htaccess. Es raro que estos CSS, según el .htaccess, los tenga que procesar y servir un php:

RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]

RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]

Visto esto, lo que hice fue directamente evitar que los CSS los procesasee ese index.php, cambiando la lína por esta: RewriteRule ^apps/([^/]*)/(.*\.php)$ index.php?app=$1&getfile=$2 [QSA,L]

El resultado fue el que sigue:

Error al actualizar OwnCloud, jquery-1.10.0.min.map no encontrado

Error al actualizar OwnCloud, jquery-1.10.0.min.map no encontrado

Todo estaba correcto, a excepción del archivo jquery-1.10.0.min.map, que no se encontraba. Simplemente hubo que copiarlo a la ruta adecuada. Por cierto, lo encontré aquí:  http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.0/jquery.min.map

¡OwnCloud actualizado en nuestro NAS!

PD: no sería mala idea hacer un backup de la instalación del OwnCloud completa ahora que lo tenéis actualizado, por si hay que reinstalarlo en algún momento…

PD: a fecha de publicación de esta guía he actualizado también el phpMyAdmin que lleva el NAS, aunque no lo explicaré porqué el proceso es aún más sencillo que el de actualización de OwnCloud.