MediaWiki を 1.39 から 1.43 にアップデート

MediaWiki Enterprise Linux 9
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

MediaWiki の長期間サポートリリース(LTS:Long Term Support)として、バージョン 1.39.x を使っていましたが、2025年11月にサポート終了となります。

新しい LTS バージョンとして 1.43.x が 2024年12月21日にリリースされていますので、アップデートをしていきます。

バージョン ライフサイクル - MediaWiki

環境

  • OS:AlmaLinux release 9.5 (Teal Serval)
  • MediaWiki:1.39.11
  • PHP:8.3.16 (fpm-fcgi)
  • MySQL:8.0.32
  • ICU:74.2
  • Lua:5.1.5
  • Pygments:2.11.2
  • Elasticsearch:7.10.2

アップデート手順

公式の手順(https://www.mediawiki.org/wiki/Manual:Upgrading/ja)に沿って行います。

バックアップ

バックアップを取る前に、保留中のジョブを空にしておきます。

cd /usr/share/mediawiki
php maintenance/runJobs.php
(out) Job queue is empty.

MediaWiki のディレクトリを別名(/usr/share/mediawiki_1.39.11)に変更して移動します。

cd
mv /usr/share/mediawiki /usr/share/mediawiki_1.39.11

phpMyAdmin で mediawiki データベースのバックアップを取っておきます。

MediaWiki 1.43.0 のインストール

元々のディレクトリ(/usr/share/mediawiki)に、MediaWiki 1.43.0 をクリーンインストールします。

wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.0.tar.gz
tar xvzf mediawiki-1.43.0.tar.gz
rm mediawiki-1.43.0.tar.gz
mv mediawiki-1.43.0/ /usr/share/mediawiki
chown apache. -R /usr/share/mediawiki

設定ファイルと画像ディレクトリの復元

旧環境から、設定ファイル(LocalSettings.php)と、画像ディレクトリをコピーします。

cp /usr/share/mediawiki_1.39.11/LocalSettings.php /usr/share/mediawiki/
cp /usr/share/mediawiki_1.39.11/images/ /usr/share/mediawiki/ -na

拡張機能を更新

extentions ディレクトリを参照して、旧環境で使っていた拡張機能をリストアップします。

  • AdvancedSearch
  • CirrusSearch
  • Elastica
  • LabeledSectionTransclusion
  • Renameuser
  • TemplateStyles

RenameUser はコア機能に統合されたので、MediaWiki 1.40 以降では拡張機能としてインストールする必要は無くなりました。読み込んだままにしておくとアップデート処理が失敗するようなので、設定ファイルからコメントアウトしておきます。

wfLoadExtension( 'Renameuser' );
↓ コメントアウト
#wfLoadExtension( 'Renameuser' );

拡張機能ディストリビューター(https://www.mediawiki.org/wiki/Special:ExtensionDistributor)から、1.43 に対応したものをダウンロードして、extentions ディレクトリに配置してください。

(out) ■ AdvancedSearch
wget https://extdist.wmflabs.org/dist/extensions/AdvancedSearch-REL1_43-963260e.tar.gz
tar -xzf AdvancedSearch-REL1_43-963260e.tar.gz -C /usr/share/mediawiki/extensions
rm AdvancedSearch-REL1_43-963260e.tar.gz
(out) 
(out) ■ CirrusSearch
wget https://extdist.wmflabs.org/dist/extensions/CirrusSearch-REL1_43-89d47d5.tar.gz
tar -xzf CirrusSearch-REL1_43-89d47d5.tar.gz -C /usr/share/mediawiki/extensions
rm CirrusSearch-REL1_43-89d47d5.tar.gz
(out) 
(out) ■ Elastica
wget https://extdist.wmflabs.org/dist/extensions/Elastica-REL1_43-3f2c3ca.tar.gz
tar -xzf Elastica-REL1_43-3f2c3ca.tar.gz -C /usr/share/mediawiki/extensions
rm Elastica-REL1_43-3f2c3ca.tar.gz
(out) 
(out) ■ LabeledSectionTransclusion
wget https://extdist.wmflabs.org/dist/extensions/LabeledSectionTransclusion-REL1_43-68ef6ea.tar.gz
tar -xzf LabeledSectionTransclusion-REL1_43-68ef6ea.tar.gz -C /usr/share/mediawiki/extensions
rm LabeledSectionTransclusion-REL1_43-68ef6ea.tar.gz
(out) 
(out) ■ TemplateStyles
wget https://extdist.wmflabs.org/dist/extensions/TemplateStyles-REL1_43-a8f346c.tar.gz
tar -xzf TemplateStyles-REL1_43-a8f346c.tar.gz -C /usr/share/mediawiki/extensions
rm TemplateStyles-REL1_43-a8f346c.tar.gz

拡張機能を全て配置したら、まとめて所有者を変更します。

chown apache. -R /usr/share/mediawiki/extensions/

アップデートコマンドの実行

MediaWiki のディレクトリに移動し、アップデートコマンド(php maintenance/run.php update)を実行します。

cd /usr/share/mediawiki
php maintenance/run.php update
(out) ・
(out) ・
(out) ・
(out) Updated 1 rows
(out) Completed normalization of pagelinks, 319866 rows updated.
(out) done.
(out) Modifying rev_id field of table revision...done.
(out) Modifying rc_id field of table recentchanges...done.
(out) Modifying ct_rc_id field of table change_tag...done.
(out) Running MigrateBlocks...
(out) Populating the block and block_target tables
(out) Migrating ipblocks with ID > 0...
(out) Completed migration of 0 ipblocks to block and block_target.
(out) done.
(out) Dropping table ipblocks ...done.
(out) Table pagelinks contains pl_title field. Dropping...done.
(out) Modifying page_links_updated field of table page...done.
(out) Changing table options of 'searchindex'.
(out) ...migrating searchindex table...done.
(out) Dropping table mathoid ...done.
(out) Dropping table mathlatexml ...done.
(out) ...site_stats is populated...done.
(out) ...Update 'cleanup empty categories' already logged as completed. Use --force to run it again.
(out) Fixing log entries with log_title starting with 'User:#'
(out) done.
(out) Set the local repo temp zone container to be private.
(out) Purging caches...done.
(out) 
(out) Done in 7 min 15 s.

少し時間がかかりましたが、エラーもなく完了しました。

バージョン情報の確認

MediaWiki にブラウザでアクセスし、「特別ページ」から「バージョン情報」を確認します。

  • MediaWiki:1.43.0
  • PHP:8.3.16 (fpm-fcgi)
  • ICU:74.2
  • MySQL:8.0.32
  • Lua:5.1.5
  • Pygments:2.17.2
  • Elasticsearch:7.10.2

無事アップデートされている事が確認できました。

まとめ

以前に大型アップデートをした際はイメージディレクトリの移行に失敗し、画像が読み込めなくなり大変だった記憶がありますが、今回は何事もなくできました。

MediaWiki はドキュメントも充実していますし、年々使いやすくなっているように感じます。


マイナーバージョンアップ

マイナーなバージョンアップをする際にはパッチを適用すると楽にできます。(増分パッチなので、バージョンをスキップすることはできません。)

ダンプサイトからパッチファイル(mediawiki-1.43.x.patch.zip)をダウンロード・解凍し、パッチをあてます。

cd /usr/share/mediawiki/
wget https://releases.wikimedia.org/mediawiki/1.43/mediawiki-1.43.x.patch.zip
unzip mediawiki-1.43.x.patch.zip
patch -p1 --dry-run -i mediawiki-1.43.x.patch
patch -p1 -i mediawiki-1.43.x.patch
rm mediawiki-1.43.x.patch
rm mediawiki-1.43.x.patch.zip
Manual:アップグレード - MediaWiki

コメント

タイトルとURLをコピーしました