Move Mediawiki from Debian to Arch Linux Server (Raspberry Pi)

Having installed and configured LAMP on our Arch Linux box, we will now go further and migrate our existing Mediawiki wiki from a Debian server to the Pi.

General disclaimer applies, no liability will be accepted for any loss or damage, use at your own risk and do frequent backups!

Make sure you have a full database backup before restoring anything.

Install and Configure Mediawiki on Arch Linux Server

Navigate to Apache root directory:

# cd /srv/http

Download the installation file:

# wget

At the time I write this, there’s already a newer version of Mediawiki released, v1.22. However, our Debian server is hosting Mediawiki v1.21.2, therefore we go for the same version here to avoid any compatibility issued that may arise after migration.

Extract files from the archive:

# tar xvfz ./mediawiki-1.21.2.tar.gz

Rename Mediawiki folder to something sensible:

# mv ./mediawiki-1.21.2 ./wiki

Remove the archive file as it is no longer needed:

# rm ./mediawiki-1.21.2.tar.gz

Go to http://localhost/wiki and finish the installation. Since we’re moving our Mediawiki wiki from another server, web installation options are not that important – all settings will be restored from a backup anyway. Just for the records, we chose “ENGINE=InnoDB” and “DEFAULT CHARSET=binary”.

Move Mediawiki Files from Debian Server to Arch Server

On a Debian server, we firstly need to backup the database:

# mysqldump -u sandy -p mediawiki_db > /root/wiki_backup.sql

Once finished, navigate to the Mediawiki installation folder:

# cd /var/www/wiki

And backup all Mediawiki extensions:

# tar cvfz ./extensions.tgz ./extensions

Plus backup all images:

# tar cvfz ./images.tgz ./images

Now, the next step is to transfer all files from Debian server to Arch server:

# scp -24 -P12 /root/wiki_backup.sql sandy@[arch-server-ip]:/home/sandy
# scp -24 -P12 ./extensions.tgz sandy@[arch-server-ip]:/home/sandy
# scp -24 -P12 ./images.tgz sandy@[arch-server-ip]:/home/sandy

Don’t forget to copy LocalSettings.php, favicon.ico and logo files ./skins/common/images/mylogo.png:

# scp -24 -P12 ./skins/common/images/mylogo.png sandy@[arch-server-ip]:/home/sandy
# scp -24 -P12 ./LocalSettings.php sandy@[arch-server-ip]:/home/sandy
# scp -24 -P12 ./favicon.ico sandy@[arch-server-ip]:/home/sandy

All the files we need are transferred, let’s go back to Arch server. First of all, import the database backup:

# mysql -u sandy -p mediawiki_db < /home/sandy/wiki_backup.sql

Extract extensions.tgz and images.tgz archives and move them to the Mediawiki installation folder:

# tar xvfz /home/sandy/extensions.tgz
# tar xvfz /home/sandy/images.tgz
# mv /home/sandy/extensions /srv/http/wiki
# mv /home/sandy/images /srv/http/wiki

Also move LocalSettings.phpfavicon.ico and logo files:

# mv /home/sandy/LocalSettings.php /srv/http/wiki
# mv /home/sandy/favicon.icon /srv/http/wiki
# mv /home/sandy/mylogo.png /srv/http/wiki/skins/common/images

Make cache directory writable:

# chmod 0777 /srv/http/wiki/cache

Run the update script:

# php /srv/http/wiki/maintenance/update.php --quick

The last thing left to do – open LocalSettings.php and change server attribute to our Arch’s IP:

$wgServer = "https://ARCH_SERVER_IP/wiki";

Job’s done.