Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

viernes, 16 de junio de 2017

Migrando de owncloud 8.2 a nextcloud 11 de un servidor a otro en Ubuntu 17.04

Nextcloud es un completo software que nos permitirá sincronizar archivos, carpetas, calendarios y contactos entre múltiples dispositivos. Esto no es nada nuevo, ya que los servicios de Google lo hacen, pero este software nos permite tener el control total de todos nuestros datos, ya que dichos datos se almacenan localmente en nuestra red local, no se suben a ninguna nube pública ni servidor externo si no queremos.

Nextcloud está centrado específicamente en proporcionar a sus usuarios seguridad, privacidad y el control total de todos sus datos, de tal forma que sean totalmente transparentes. Este software es la siguiente generación de sincronización de archivos que empezó con ownCloud, sin embargo, Nextcloud es mucho más avanzado y está en continuo desarrollo por parte de su equipo y también por la comunidad ya que es de código abierto.

(Fuente: RedesZone)

En un tutorial anterior os explicaba como instalar owncloud:

Este tutorial mostrará un procedimiento para migrar nuestro servidor ownCloud v8.2 de una máquina, a otra máquina diferente en donde querremos tener Nextcloud. Si la migración se hace en la misma máquina, el procedimiento es practicamente el mismo si bien no hay que transferir las copias de la base de datos y archivos de una a otra. Una cosa que tenemos que tener clara es la escalera de migraciones que debemos realizar:
  • ownCloud 8.2 y 9.0 a Nextcloud 9.
  • ownCloud 9.0 y 9.1 a Nextcloud 10
  • ownCloud 9.1 a Nextcloud 10 or 11.
(Fuente nextcloud)

Esto quiere decir, que si tengo (como es el caso) un owncloud 8.2, si deseo pasarlo a nextcloud 12, tendré que hacer una migración previa a nextcloud 9. Entendido esto, vamos a hacerlo:

Descarga: https://nextcloud.com/install/
wget https://download.nextcloud.com/server/releases/nextcloud-9.0.58.zip
--2017-06-15 11:16:27--  https://download.nextcloud.com/server/releases/nextcloud-9.0.58.zip
Resolviendo download.nextcloud.com (download.nextcloud.com)... 88.198.160.133
Conectando con download.nextcloud.com (download.nextcloud.com)[88.198.160.133]:443... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 44682063 (43M) [application/zip]
Guardando como: “nextcloud-9.0.58.zip”
nextcloud-9.0.58.zip                          100%[======================>]  42,61M  7,99MB/s    in 5,7s    
2017-06-15 11:16:33 (7,50 MB/s) - “nextcloud-9.0.58.zip” guardado [44682063/44682063]
Luego descomprimimos con unzip: 

unzip nextcloud-9.0.58.zip

Y obtendremos el software listo para instalarlo. Pero nosotros en este tutorial lo que queremos es migrar de owncloud a nextcloud, y no hacer una instalación nueva. Para ello necesitaremos:

  • Instalar un nuevo servidor LAMP
  • Hacer copia de seguridad de la base de datos de owncloud y restaurarla en el nuevo servidor
  • Hacer copia de los archivos (./data) de owncloud y copiarlo en el nuevo servidor.
  • Hacer copia de seguridad de la configuración de owncloud (./config) y restaurarlo en el nuevo servidor.

Por ejemplo, en mi caso tengo una copia de seguridad de la base de datos de owncloud. Me la copio al nuevo servidor y la descomprimo. Luego:

CREATE DATABASE IF NOT EXISTS nextcloud;
mysql --user=root --password nextcloud < owncloud-sqlbkp.bak


Creamos el site nextcloud en el apache del nuevo servidor:

Alias /nextcloud "/var/www/nextcloud/"


  Options +FollowSymlinks
  AllowOverride All

 
  Dav off
 

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud

a2ensite nextcloud.conf


Tambien es aconsejable habilitar los siguientes módulos:
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Instalamos algunos paquetes php extras que nos irán bien
apt install php7.0-curl php7.0-json php7.0-cgi php7.0-xml memcached php-memcached php-zip php-mbstring php7.0-gd
systemctl reload apache2

Como el objetivo de este tutorial no es enseñar a instalar un owncloud o nextcloud, daremos por conocidos esos conceptos.

En este punto ya estamos preparados para poder realizar la migración:

http:///nextcloud/updater/

Ahora nos pedirá una clave de actualización. Esta será la que tengamos configurado en nuestro config.php, pero en el caso de no acordarnos la podemos regenerar desde el terminal :
php -r '$password = trim(shell_exec("openssl rand -base64 48"));if(strlen($password) === 64) {$hash = password_hash($password, PASSWORD_DEFAULT) . "\n"; echo "Insert as \"updater.secret\": ".$hash; echo "The plaintext value is: ".$password."\n";}else{echo "Could not execute OpenSSL.\n";};'
También se puede hacer por linea de comandos. De hecho, para servidores con gran cantidad de información es aconsejable ya que los tiempos de espera de PHP nos podrían cancelar la actualización.

sudo -u www-data php occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
  - Hint: You can speed up the upgrade by executing this SQL command manually: ALTER TABLE `*PREFIX*filecache` ADD COLUMN checksum varchar(255) DEFAULT NULL AFTER permissions;
Continue with update (y/n)
y
Set log level to debug
Checking whether the database schema can be updated (this can take a long time depending on the database size)
(...)

Al finalizar la actualización hacemos:

sudo -u www-data php occ maintenance:mode --off
Nextcloud is in maintenance mode - no app have been loaded
Maintenance mode disabled

Y .. ¡¡ tachán!! ya lo tendremos en Nextcloud 9!. Ahora toca actualizarlo hasta la 11. Para ello usaremos las propias indicaciones del nextcloud. Podemos hacerlo mediante linea de comandos o ayudándonos con el actualizador de nextcloud:
  1. Activar Modo mantenimiento
    sudo -u www-data php occ maintenance:mode --on
  2. Hacer copia de la configuración (config/config.php), base de datos y carpeta data
  3. Borrar el código antiguo de nextcloud y colocar la nueva versión
  4. Restablecer configuración (config.php) y carpeta data.
  5. Lanzar el comando para realizar la actualización
    sudo -u www-data php occ upgrade
  6. Desactivar Modo mantenimiento
    sudo -u www-data php occ maintenance:mode --off


That u don't know what you've got 'til it's gone