El servidor web estaba pidiendo una actualización a gritos. Se montó bajo Fedora Core 5 64bit hace 3 años y ahora estamos teniendo problemas con las aplicaciones que necesitan PHP 5.2 y que Fedora 5 no soporta “oficialmente”.
Ya de paso he pensado en pasar a Plesk 9, lo que ocurre es que a día de hoy el Plesk Migration Manager que automatiza este proceso no ha sido desarrollado aún para esta nueva versión y hay que hacer el proceso a mano. Ante este problemilla vamos a seguir las instrucciones del artículo 5864 de la knowledge base de Parallels.
En este artículo nos dan tres explicaciones diferentes:
- Migrar servidor completo.
- Migrar cliente.
- Migrar dominio.
En nuestro caso vamos a migrar el contenido completo del servidor. Más adelante se verá que es una muy buena opción, ya que el nuevo sistema de backups de Plesk al basarse en plantillas XML puede restaurar clientes o dominios sueltos desde el bakup completo.
Pues ale, al turrón. Nos logueamos en el servidor, paramos los servicios para no perder información y ejecutamos el script de backup completo:
/usr/local/psa/bin/pleskbackup all archivo.backup
Con esto conseguiremos un solo fichero con todo el contenido de nuestros dominios, bases de datos, configuraciones del servidor y datos de clientes. Ok, ya tenemos los datos vitales del servidor, ahora transferimos el archivo a otra ubicación y ya podemos reinstalar el sistema operativo para cargárnoslo todo! Aunque sería recomendable usar un disco duro diferente
.
Yo he elegido Fedora 8 x64 para la nueva plataforma. La versión Core 5 x64 ha funcionado estupendamente mucho tiempo y no tenía ganas de cambiar, aunque se me pasó por la cabeza intentarlo con otra ditribución. El caso es que no quería trastear mucho con experimentos para reducir el downtime del servidor. Tras instalar desde cero con las opciones básicas y actualizar viene el momento de ejecutar el script de instalación automatizado de Plesk 9. Se puede descargar desdehttp://www.parallels.com/download/plesk/products/ creando una cuenta de usuario.
Seleccionamos la instalación por defecto y esperamos a que todos los servicios se pongan en marcha solos. En cuanto acabe la instalación ya podremos entrar al panel de administración a través del navegador con la dirección de siempre, https://localhost:8443. Usuario admin contraseña setup.
Ahora lo que tenemos que hacer es convertir el archivo de backup global de la versión 8.x a la versión 9. Para esta tarea tenemos que usar un script que viene con los paquetes del componente Backup Manager de Plesk 9. Para instalarlo vamos al updater y lo seleccionamos.
En mi caso hubo un problemilla la primera vez que lo intenté instalar. El instalador se hizo un lío con las dependencias y daba un cacho error como este:
Determining the packages that need to be installed.
Unhappy catched; try to resolve again.
The requested package "psa-migration-manager" could not be
installed.
Searching problems for the "psa-migration-manager"
package.
No suitable solutions were found for the "db4-utils"
dependency.
The "db4-utils-4.6.21-2.fc8.x86_64
(u 0x2ec9a00 source=0x18dc800 P:31 R:10)"
package resolves "db4-utils".
Searching problems for the "db4-utils" package.
No suitable solutions were found for the
"db4 = 4.6.21-2.fc8" dependency.
The "db4-4.6.21-2.fc8.i386
(u 0x2ec2b20 source=0x18dc800 P:7 R:17)"
package resolves "db4 = 4.6.21-2.fc8".
Searching problems for the "db4" package.
Packages
"db4-4.6.21-2.fc8.i386
(u 0x2ec2b20 source=0x18dc800 P:7 R:17)" and
"db4-4.6.21-3.fc8.x86_64
(s 0x187a230 source=0x17d9800 P:7 R:11)"
cannot be installed at the same time
because of the conflict on the file
"/usr/share/doc/db4-4.6.21/LICENSE"
The "db4-4.6.21-2.fc8.x86_64
(u 0x2ec33d0 source=0x18dc800 P:7 R:11)"
package resolves "db4 = 4.6.21-2.fc8".
Searching problems for the "db4" package.
Packages
"db4-4.6.21-2.fc8.x86_64
(u 0x2ec33d0 source=0x18dc800 P:7 R:11)" and
"db4-4.6.21-3.fc8.x86_64
(s 0x187a230 source=0x17d9800 P:7 R:11)"
cannot be installed at the same time
because of the conflict on the file "/lib64/libdb-4.6.so"
Could
not add package db4-4.6.21-3.fc8.x86_64
(s 0x187a230 source=0x17d9800P:7 R:11)to the list of
required packages.Problem occured during
searching directly resolved dependencies for
'libdb-4.6.so()(64bit)' ofpackage db4-utils-4.6.21-2.fc8.x86_64
(u 0x2ec9a00 source=0x18dc800 P:31 R:10)
The following could cause the installation failure:
1)Packages
"db4-4.6.21-2.fc8.i386 (u 0x2ec2b20 source=0x18dc800 P:7 R:17)" and
"db4-4.6.21-3.fc8.x86_64 (s 0x187a230 source=0x17d9800 P:7 R:11)"
cannot be installed at the same time
because of the conflict on the file "/usr/share/doc/db4-4.6.21/LICENSE"
2)Packages
"db4-4.6.21-2.fc8.x86_64 (u 0x2ec33d0 source=0x18dc800 P:7 R:11)" and
"db4-4.6.21-3.fc8.x86_64 (s 0x187a230 source=0x17d9800 P:7 R:11)"
cannot be installed at the same time
because of the conflict on the file "/lib64/libdb-4.6.so"
Solución, instalar a mano el paquete db4-utils.x86_64 mediante Yum.
Ahora ya tenemos lo necesario para acabar la tarea. Ah! No… Se me olvidaba una cosa. Tenemos que modificar nuestra key de licencia para poder utilizarla en Plesk 9. Han cambiado el formato y ha pasado de ser un fichero .sh a ser un xml. Tenemos que ir a la web https://register.parallels.com/key_upgrade/ y dar nuestra dirección de correo y el número de clave. Como bien dice en esta web, el proceso vale para pasar de versión 7 a 8 y también de 8 a 9. Es un proceso irreversible y hay que hacerlo de versión en versión, es decir, no se puede pasar de 7 a 9 directamente. Importante, recuerda que tu servidor Plesk está en bragas, no uses un email que resida en él.
Tener la key preparada antes de comenzar la tarea de recuperación de datos es importante porque si no tenemos licencia para recuperar X clientes o dominios, pues no podremos restaurar nada. Ahora es el momento de transferir el archivo de backup completo al servidor y meternos en la consola para teclear:
/usr/local/psa/bin/pre9-backup-convert -v
convert -d /var/lib/psa/dumps/ archivo.backup
Este proceso descomprimirá el archivo y lo meterá en la ruta predefinida de Plesk 9 para sus backups. Mientras tanto, podemos entrar al panel web para instalar la nueva key de licencia que deberíamos haber recibido ya en nuestro (otro) correo. Vamos al menú License Management y hacemos click en el icono Upload Key.
Cuando acabe el proceso de descompresión y reubicación de nuestro archivo de backup, podremos restaurar su contenido desde el nuevo y mejorado Backup Manager.

Hacemos click sobre el nombre del archivo, en este caso converted_info_0901281531.xml y elegimos en la siguiente pantalla nuestras preferencias de restauración.
Magia! El servidor empezará a restaurar todo el contenido del backup y lanzará un millón de warnings, pero no debería dar errores serios. Cuando acabe tendremos a nuestros clientes dados de alta con sus dominios, bases de datos y cuentas de correo operativas. En mi caso solo me topé con un problema… el puñetero CubeCart y su sistema de encriptación PHP para que nadie copie su maravilloso y genial código fuente.
CubeCart utiliza Zend Optimizer o IonCube Loader para desencriptar sus archivos PHP protegidos. El problema es que esos archivos deben de subirse al servidor por ftp en modo binario exclusivamente. Puede que en algún momento de todo este proceso se fastidiaran, por lo que la web mostraba el error:
Fatal error: Unable to read xxxxx bytes in /admin_enc_zend.php on line 0
Primero, para instalar Zend Optimizer nos bajamos el instalador correcto para nuestro sistema operativo desde http://www.zend.com/en/products/guard/downloads. Hay que crear una cuenta de usuario. Ejecutamos el instalador con las opciones por defecto y ya lo tenemos listo. En mi caso tuve que cambiar a mano el sistema de encriptación definido para CubeCart en el fichero de configuración, ya que antes usaba IonCube Loader. Nada más sencillo que actualizar la línea:
$glob['encoder'] = 'zend';
dentro de /includes/global.inc.php
Como la versión que restauré de esta tienda CubeCart era la 4.1.1 y van por la 4.3 me decidí por subir la nueva versión completa en modo binario para solucionar el problema. Y así fue.