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
$_SESSIONor 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
- 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
- Run pending jobs —
php maintenance/runJobs.phpbefore touching code, so schema changes inupdate.phpdo not collide with queued work - Back up everything — database dump plus the file tree; for content-only safety, also produce an XML dump:
php maintenance/dumpBackup.php --full - 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 - Migrate your files —
LocalSettings.php, theimages/directory (keeping ownership/permissions for the web server user), custom skins, locally hosted extensions, and any web-server config pieces - Adapt LocalSettings.php — replace any remaining
require_onceregistrations withwfLoadExtension( ... )/wfLoadSkin( ... ); 1.45 removed the old raw-HTML copyright footer settings ($wgAllowRawHtmlCopyrightMessagesand thecopyrightmessages were deleted, usecopyright-footerinstead), and if you previously tweaked protection indicators, the setting that suppressed them now defaults to enabled - Run the updater —
php maintenance/run.php update(the unified entry point since 1.40). The updater needs database admin credentials, normally picked up from$wgDBadminuser/$wgDBadminpasswordor the installer settings - Test —
Special:Versionmust show 1.45; then check page views, a test edit, an upload, and a parser function; watcherror.logand the PHP error log for deprecation warnings from old extensions - 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 oldLocalSettings.phpbefore switching directories - Test the job queue — after the first edits, confirm
runJobs.phpdrains 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.