Upgrade Mediawiki to v1.33.1

⇐ Raspberry Pi

27 November 2019, BradnorRP1

Current situation

Current version was v1.31.4 as installed by apt-get install mediawiki.
This version is mainly installed under /usr/share/mediawiki with symlinks from $IP (set from MW_INSTALL_PATH, default /var/lib/mediawiki) except the cache, config, extensions and images directories, which are directly under $IP
Latest version, v1.33.x not available by this means
so downloaded from mediawiki.org.
v1.33.1 is directly installed under $IP, i.e. /var/lib/mediawiki

Backup and modify current version

Put up warning that wiki is old version
In wiki modify 'Main_Page' with warning at start of the form
==<span style="color:red">Warning!! :: this is 192.168.192.201 Mediawiki <small>v</small>1.31.4</span>==
and maybe alter logo at /var/lib/mediawiki/resources/assets/bradnor-logo.png
Backup and restore wiki database
$ sudo automysqlbackup
and copy locally and extract
$ sudo cp /var/lib/automysqlbackup/daily/bradnor/bradnor_2019-11-27_16h55m.Wednesday.sql.gz .
$ sudo chown ch:ch ./bradnor_2019-11-27_16h55m.Wednesday.sql.gz
$ gunzip ./bradnor_2019-11-27_16h55m.Wednesday.sql.gz
edit the sql file to change the hardcoded database reference
$ emacs ./bradnor_2019-11-27_16h55m.Wednesday.sql
and change the CREATE DATABASE and USE statements to reference a different database 'bradnor1314'
restore database to new database
$ cat bradnor_2019-11-27_16h55m.Wednesday.sql | sudo mysql
and set privileges
$ sudo mysql
GRANT SELECT,CREATE,UPDATE,DELETE ON bradnor1314.* TO 'mediawiki'@'localhost';
Advertise Bradnorwiki as being under maintenance by redirecting symlink in web directory to holding page
$ sudo ln -sf /var/www/html/bradnorwiki-maintenence /var/www/html/bradnorwiki
Ensure current version can run from 'non-standard' directory name, i.e. .../mediawiki.1.31.4
Move installation directory to new name
$ sudo mv /var/lib/mediawiki /var/lib/mediawiki.1.31.4
edit soft link from web directory
$ sudo ln -sfn /var/lib/mediawiki.1.31.4 /var/www/html/bradnorwiki-old
edit LocalSettings
rename LocalSettings file and update symlink
$ sudo mv /etc/mediawiki/LocalSettings.php /etc/mediawiki/LocalSettings.1.31.4.php
$ sudo ln -sf /etc/mediawiki/LocalSettings.1.31.4.php /var/lib/mediawiki.1.31.4/LocalSettings.php
$ sudo emacs /etc/mediawiki/LocalSettings.1.31.4.php
and change $wgScriptPath to be /bradnorwiki-old
change database login in LocalSettings
$ sudo cp -a /var/security/db.php /var/security/db.1.31.4.php
$ sudo emacs /var/security/db.1.31.4.php
and change $wgDBname = "bradnor"; to $wgDBname = "bradnor1314";
and edit
$ sudo emacs /etc/mediawiki/LocalSettings.1.31.4.php
and change require_once "/var/security/db.php"; to require_once "/var/security/db.1.31.4.php";
Edit apache config
$ sudo emacs /etc/apache2/conf-enabled/mediawiki.conf
and update or add setenv MW_INSTALL_PATH /var/lib/mediawiki.1.31.4
restart apache
$ sudo systemctl restart apache2

Install new version

[https://www.mediawiki.org/wiki/Manual:Upgrading]
Download and extract latest version of mediawiki
$ cd tmp
$ wget https://releases.wikimedia.org/mediawiki/1.33/mediawiki-1.33.1.tar.gz
$ tar -xvzf ./mediawiki-1.33.1.tar.gz
$ rm ./mediawiki-1.33.1.tar.gz
$ mv ./mediawiki-1.33.1 ./mediawiki-1.33.1
Copy some files, such as images, config and logos
$ sudo cp -a /etc/mediawiki/LocalSettings.1.31.4.php /etc/mediawiki/LocalSettings.1.33.1.php
$ sudo ln -s /etc/mediawiki/LocalSettings.1.33.1.php /etc/mediawiki/LocalSettings.php
$ sudo ln -s /etc/mediawiki/LocalSettings.php var/lib/mediawiki-1.33.1/LocalSettings.php
$ sudo cp -a /var/lib/mediawiki.1.31.4/resources/assets/bradnor-logo.png /var/lib/mediawiki-1.33.1/resources/assets/
$ sudo cp /var/lib/mediawiki.1.31.4/robots.txt /var/lib/mediawiki-1.33.1/
$ sudo cp -a /var/lib/mediawiki.1.31.4/images/. /var/lib/mediawiki-1.33.1/images/
and some security stuff
$ sudo find ./images -type d -exec chmod 755 {} \;
$ sudo chgrp -R www-data /var/lib//mediawiki-1.33.1/images
download and install latest versions of extensions
namely PDFEmbed, UserMerge, Elastica, Cirrussearch (note: not got working yet)
make the new folder the distribution
$ sudo ln -sfn /var/lib/mediawiki-1.33.1 /var/lib/mediawiki

Configure new version

Modify LocalSettings to deprecate
$ sudo emacs /etc/mediawiki/LocalSettings.php
  • comment out the line require_once "$IP/includes/PlatformSettings.php";
  • and change $wgScriptPath to be bradnorwiki-new
  • change require_once "/var/security/db.1.31.4.php"; to require_once "/var/security/db.php";
Run update script
$ sudo cd /var/lib/mediawiki
$ sudo php maintenance/update.php
note that might have to all privileges to database for mediawiki
update symlink in web directory
$ sudo ln -sfn /var/lib/mediawiki.1.33.1 /var/www/html/bradnorwiki-new
Edit apache config
$ sudo emacs /etc/apache2/conf-enabled/mediawiki.conf
and update or add setenv MW_INSTALL_PATH /var/lib/mediawiki.1.33.1
restart apache
$ sudo systemctl restart apache2
Test
Browse to 192.168.192.201/bradnorwiki-new
Check Version page for version and installed extensions
Browse to check if everything is OK
Edit Main_Page to remove warning

Finish

Bring Bradnorwiki online by redirecting symlink in web directory
$ sudo ln -sfn /var/lib/mediawiki /var/www/html/bradnorwiki