Si hemos instalado una instancia de MediaWiki desde los fuentes, el proceso de actualización para mantenerla al día deberá ser realizado igualmente de forma manual. Tal como ocurre con todo software compilado e instalado por fuera del gestor de paquetes. Sin embargo, para el caso de MediaWiki, este proceso es muy rápido y simple. Veamos los pasos para llevarlo a cabo.



El proceso de actualización de una instalación de MediaWiki desde los fuentes es extremadamente sencillo. Este artículo explica paso a paso cómo hacerlo.

La actualización a la última versión se puede hacer desde cualquier versión instalada. Esto simplifica el proceso y ahorra dolores de cabeza. A diferencia de otras aplicaciones como ownCloud/Nexcloud, que obligan a migrar de a una versión por vez y en orden, sin saltar versiones mayores (algo realmente nefasto).

Para comenzar, acceder al sitio de descargas de MediaWiki (releases.wikimedia.org/mediawiki/) y obtener la última versión estable. Debe ser el número de versión más grande, pero que no contenga la palabra "rc" (release candidate), versión candidata a ser estable (no es estable, pero casi). Por ejemplo, al 11 de diciembre de 2019, el archivo que corresponde con la última versión estable es "mediawiki-1.33.1.tar.gz", mientras que el archivo "mediawiki-1.34.0-rc.1.tar.gz" corresponde con una versión candidata para se estable.

Descargar la última versión estable:

# cd
# wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.1.tar.gz

Comprobar que la versión de PHP en el servidor sea compatible con la última versión estable de MediaWiki, según la página de requisitos:

root@devuan:~# php7.0 --version
PHP 7.0.33-0+deb9u3 (cli) (built: Mar  8 2019 10:01:24) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.33-0+deb9u3, Copyright (c) 1999-2017, by Zend Technologies

En este caso, el servidor posee PHP 7.0.33 y la última versión de MediaWiki requiere PHP 7.0.13. Así que está todo ok.

A continuación, extraer el paquete en un directorio temporal:

# cd /tmp
# tar xzf ~/mediawiki-1.33.1.tar.gz

Antes de continuar con el siguiente paso, hacer una copia de seguridad del sitio completo y su base de datos.

Sobrescribir el contenido de la instancia actual con los nuevos archivos:

# cp -r mediawiki-1.33.1/* /var/www/wiki/

Borrar los fuentes en el directorio temporal y cambiar al directorio de mantenimiento de la instalación:

# rm -fr mediawiki-1.33.1/
# cd /var/www/wiki/maintenance/

Correr el script de actualización:

# php7.0 update.php

Este utilitario se encarga de actualizar la estructura de la base de datos para que funcione con la nueva versión. Luego de unos segundos, finaliza con éxito. Por ejemplo:

root@devuan:/var/www/wiki/maintenance# php7.0 update.php 
MediaWiki 1.33.1 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for mediawiki
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with --quick) ... 0
Turning off Content Handler DB fields for this part of upgrade.
...have ipb_id field in ipblocks table.
...have ipb_expiry field in ipblocks table.
...already have interwiki table
...indexes seem up to 20031107 standards.
...have rc_type field in recentchanges table.
...index new_name_timestamp already set on recentchanges table.
...have user_real_name field in user table.
...querycache table already exists.
...objectcache table already exists.
...categorylinks table already exists.
...have pagelinks; skipping old links table updates
...il_from OK


[sigue...]


Populating ar_sha1 column legacy rows
rev_sha1 and ar_sha1 population complete [0 revision rows, 0 archive rows].
Populating img_sha1 field

Done 0 files in 0.0 seconds
Fixing protocol-relative entries in the externallinks table...
Done, 0 rows updated.
Populating fa_sha1 field from fa_storage_key

Done 49 files in 0.1 seconds
Updating *_from_namespace fields in links tables.
...doing page_id from 1 to 200
...doing page_id from 200 to 399
...doing page_id from 399 to 598
...doing page_id from 598 to 797
...doing page_id from 797 to 996
Adding empty categories with description pages...
Removing empty categories without description pages...
Category cleanup complete.
Populating page_props.pp_sortkey...
Populating page_props.pp_sortkey complete.
Copying IP revisions to ip_changes, from rev_id 0 to rev_id 2627
...checking 1 revisions for IP edits that need copying, between rev_ids 0 and 200
Attempted to insert 0 IP revisions, 0 actually done.
Updating externallinks table index fields
el_id 0 - 98 of 98
Done, 0 rows updated, 4 deleted.
Set the local repo temp zone container to be private.
Purging caches...done.

Done in 16 s.

Tener en cuenta que el archivo de configuración de la instancia de MediaWiki (LocalSettings.php) no se toca, con lo cual tal vez sea necesario hacer modificaciones para adaptarlo a la nueva versión.

root@devuan:/var/www/wiki/maintenance# cd ..
root@devuan:/var/www/wiki# nano LocalSettings.php

En este caso sólo tuve que agregar las siguientes líneas en el archivo de configuración LocalSettings.php para que funcionen las plantillas:

wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Vector' );

Acceder al sitio y verificar que cargue correctamente. Si no carga o arroja errores, revisar el log de Apache (típicamente /var/log/apache2/*error.log en Debian y derivados).

Referencias


Tal vez pueda interesarte


Compartí este artículo