Upgrading MediaWiki from 1.29 to 1.39: A Step-by-Step Guide

Keeping MediaWiki updated is crucial for security, especially when dealing with spam bots targeting older installations. Here’s how we successfully upgraded from version 1.29 to 1.39 LTS (though there the latest version is 1.44)

The Challenge

Our MediaWiki 1.29 installation was under attack from spam bots attempting creating hundreds of spam content as someone (not pointing anyone 😉 ) forgot to turn of user registration few years ago.

The Upgrade Process

Step 1: Download and Extract MediaWiki 1.31

wget https://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.16.tar.gz
tar -xzf mediawiki-1.31.16.tar.gz
mv mediawiki-1.31.16 wiki_media_folder_name_1.31

We download the stable 1.31.16 release and prepare a new directory for installation.

Step 2: Migrate Configuration and Assets

cp wiki_media_folder_name/LocalSettings.php wiki_media_folder_name_1.31/
cp wiki_media_folder_name/resources/assets/*.png wiki_media_folder_name_1.31/resources/assets/
cp -r wiki_media_folder_name/images/* wiki_media_folder_name_1.31/images/

The LocalSettings.php contains all database connections and configuration. The images folder holds all uploaded files – both essential for preserving wiki content.

Step 3: Transfer Custom Skins

cp -r wiki_media_folder_name/skins/CologneBlue/ ./wiki_media_folder_name_1.31/skins/CologneBlue
cp -r wiki_media_folder_name/skins/Modern/ ./wiki_media_folder_name_1.31/skins/Modern

Legacy skins like CologneBlue and Modern need manual transfer as they’re not included by default in newer versions.

Step 4: Run Database Updates

php wiki_media_folder_name_1.31/maintenance/update.php --quick

This critical step updates the database schema to match version 1.31 requirements. The --quick flag skips some checks for faster execution.

Step 5: Switch to New Version

mv wiki_media_folder_name wiki_media_folder_name_old_1.29
mv wiki_media_folder_name_1.31 wiki_media_folder_name

Finally, we swap directories to make the new version live while keeping the old one as backup.
We repeated those steps with versions 1.35 and 1.39. One day we might find time to update to 1.44…

Key Takeaways

  1. Always backup both database and files before upgrading
  2. Don’t skip versions – go through LTS releases (1.29 → 1.31 → 1.35 → 1.39)
  3. Test thoroughly before removing the old installation
  4. Secure immediately – outdated MediaWiki installations are spam magnets
  5. If you are on Plesk server you might replace the php with /opt/plesk/php/7.4/bin/php or whatever is your php version.
  6. Also don’t forget to replace wiki_media_folder_name with your actual wikimedia folder

PS: In days like this I start to love WordPress again…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.