How to Upgrade Your MediaWiki to 1.45

A verified upgrade guide for MediaWiki 1.45: PHP 8.2 is mandatory, partial action blocks and protection indicators are on by default, and the step-by-step procedure.

MediaWiki 1.45.0 was released in December 2025, and with 1.46 out it has settled into legacy-support status — still maintained with security and bug fixes, but no longer the current release. The upgrade path into the 1.4x line matters more than ever: anything before 1.43 LTS must be staged through it first. This guide walks through the upgrade as of mid-2026, with the things specific to 1.45 called out. The full change list is in the 1.45 release notes.

1. Requirements: PHP 8.2 is now the floor

The headline requirement change in 1.45: PHP 8.1 support was dropped. You need PHP 8.2 or newer (8.3/8.4 work fine and are where the test suite runs). Database requirements are stable: MariaDB 10.3+, MySQL 5.7+, PostgreSQL 10+ or SQLite 3.8+. If your host still runs PHP 8.1, upgrade PHP first — 1.44 is the last release that will run on it.

2. Read the release notes

Three 1.45 changes deserve attention before you start:

  • Partial action blocks are now enabled by default — administrators can block users from specific actions (moving pages, uploading) without blocking editing; already-standard practice, now on by default
  • PHP session handling is deprecated — MediaWiki now warns when an extension uses $_SESSION or PHP session functions directly (the default reaction is a warning; it will be disabled entirely in a future release). If you run extensions that do raw PHP sessions, check for warnings in the logs after upgrading
  • Protection indicators became default-enabled — the lock-icon indicators on protected pages, previously opt-in, are now shown unless you disable them

For developers, two earlier announcements matured in 1.45: the notifications framework and domain events for page changes are now stable for extension use.

3. Standard upgrade procedure

  1. Verify compatibility — every extension and skin must declare compatibility with 1.45. Check the Extension Distributor page for each. Extensions that fail to load just abort the install, so audit before flipping files
  2. Run pending jobsphp maintenance/runJobs.php before touching code, so schema changes in update.php do not collide with queued work
  3. Back up everything — database dump plus the file tree; for content-only safety, also produce an XML dump: php maintenance/dumpBackup.php --full
  4. Get the 1.45 source — download the release tarball (or git checkout REL1_45). Unpack into a fresh directory, never over the old install — stray old files are a classic source of weird PHP errors
  5. Migrate your filesLocalSettings.php, the images/ directory (keeping ownership/permissions for the web server user), custom skins, locally hosted extensions, and any web-server config pieces
  6. Adapt LocalSettings.php — replace any remaining require_once registrations with wfLoadExtension( ... )/wfLoadSkin( ... ); 1.45 removed the old raw-HTML copyright footer settings ($wgAllowRawHtmlCopyrightMessages and the copyright messages were deleted, use copyright-footer instead), and if you previously tweaked protection indicators, the setting that suppressed them now defaults to enabled
  7. Run the updaterphp maintenance/run.php update (the unified entry point since 1.40). The updater needs database admin credentials, normally picked up from $wgDBadminuser/$wgDBadminpassword or the installer settings
  8. TestSpecial:Version must show 1.45; then check page views, a test edit, an upload, and a parser function; watch error.log and the PHP error log for deprecation warnings from old extensions
  9. Clean up — remove or rename the previous installation directory so it is no longer web-reachable; leave no orphan code exposed

4. Upgrading from very old versions

MediaWiki only supports direct upgrades from the two most recent LTS releases (currently 1.39 and 1.43) to a newer release. If you are on 1.30 or 1.35, the realistic path is staged hops:

1.30 → 1.35 → 1.39 → 1.43 (LTS) → 1.45

Each hop is a full run of the same procedure; going through the LTS lines keeps you on supported ground at every step. (1.44 is skipped because 1.43 is the LTS base — jumping through the extra release adds no benefit.)

5. What changed for extension developers

If you maintain code, the 1.45 removals to plan for: OutputPage::showFatalError() and showPermissionsErrorPage() are gone; User::whoIs()/whoIsReal() were removed; SpecialPage::getDescription() overrides must return a Message object (strings now fatal); OutputPage::setPageTitle() no longer accepts Message (use setPageTitleMsg()); SessionProvider setters and AuthManager::forcePrimaryAuthenticationProviders() are deleted. The PSR-4 namespace migration passed 89% (UserMailer, LinkCache, language classes and more moved to namespaced home), and new code should use MediaWiki\Mail\UserMailer etc. directly.

6. Go-live tips

  • Stay online — add $wgReadOnly = 'Upgrading — back in a few minutes'; to the old LocalSettings.php before switching directories
  • Test the job queue — after the first edits, confirm runJobs.php drains without errors; queue lag is the most common post-upgrade symptom
  • Schedule backups — automate the DB dump and XML dump before you need them

Upgrading to 1.45 is a routine release hop with one hard prerequisite (PHP 8.2), a handful of config deletions, and a smooth path if you are already on 1.43 LTS. The upgrade manual remains the authoritative step-by-step reference.

Subscribe to MediaWiki Tips and Tricks

Don’t miss out on the latest articles. Sign up now to get access to the library of members-only articles.
jamie@example.com
Subscribe