「MediaWiki」の版間の差分
Notion-MW |
Notion-MW |
||
37行目: | 37行目: | ||
設定が終わると<strong>LocalSettings.php</strong>が出力され、以後これで色々な設定ができるようになる。インストール後にフォルダ名を変えるときはリネームの上、LocalSettings.phpで<code>$wgScriptPath = "/mw";</code>などと変えればよい。新規ユーザー作成を許可するかどうかなどの設定もここでできるので、禁止したい場合などはこのタイミングでやっておくとよいだろう。 | 設定が終わると<strong>LocalSettings.php</strong>が出力され、以後これで色々な設定ができるようになる。インストール後にフォルダ名を変えるときはリネームの上、LocalSettings.phpで<code>$wgScriptPath = "/mw";</code>などと変えればよい。新規ユーザー作成を許可するかどうかなどの設定もここでできるので、禁止したい場合などはこのタイミングでやっておくとよいだろう。 | ||
<span id="gitからのインストール"></span> | |||
==== Gitからのインストール ==== | |||
[https://www.mediawiki.org/wiki/Download_from_Git/ja Git からのダウンロード - MediaWiki]などに書いてあるが、安定版リリースにバンドルされている拡張やスキン([https://www.mediawiki.org/wiki/Bundled_extensions_and_skins Bundled extensions and skins - MediaWiki])やvendorフォルダ(?)が無かったりして動かすのに一手間かかる。 | |||
==== その他初期設定 ==== | ==== その他初期設定 ==== | ||
55行目: | 60行目: | ||
<li><p>SyntaxHightlight</p> | <li><p>SyntaxHightlight</p> | ||
<p>Linuxのサーバーでは、<code>extensions/SyntaxHighlight_GeSHi/pygments/pygmentize</code>のパーミッションを変更して所有者に実行権限を付加(先頭の桁を7にする)。参考: [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight/ja Extension:SyntaxHighlight - MediaWiki]</p></li></ul> | <p>Linuxのサーバーでは、<code>extensions/SyntaxHighlight_GeSHi/pygments/pygmentize</code>のパーミッションを変更して所有者に実行権限を付加(先頭の桁を7にする)。参考: [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight/ja Extension:SyntaxHighlight - MediaWiki]</p></li></ul> | ||
== アップグレード == | |||
基本的には、 | |||
# 新しいバージョンのMediaWikiファイル一式を新しいフォルダに設置して、そこに | |||
#* LocalSettings.phpとimagesをコピー | |||
#** LocalSettings.phpは場合によって手直しが必要かも | |||
#* 自分で追加した拡張(extensions)(このサイトでいえばAutoCreateCategoryPagesとWikiSEO)やスキンなどを改めてダウンロードして追加(コピーしてきてもいいが、バージョンを更新したほうが良さそう) | |||
#* ロゴなど、その他リソースをコピー | |||
# シェル(推奨)またはmw-config(当サイトの環境ではシェルのPHPが古すぎるのでこっち)からDBの更新(ただ、バージョンの差が小さければ、既に更新前の段階で基本的に問題なくページが閲覧できる場合も多そう) | |||
という流れ。 | |||
1.のところでは、既存のMediaWikiインストールに上書きコピーするというのも一応可能で、実際これでやっている人も結構いそうだが、古いバージョンの(不要な)ファイルが残ってしまうので推奨はされていない。 | |||
<span id="スキンデザイン"></span> | |||
== スキン・デザイン == | |||
<span id="cssjs"></span> | <span id="cssjs"></span> | ||
== CSS/JS == | === CSS/JS === | ||
[https://meta.m.wikimedia.org/wiki/Help:User_style/ja Help:User style/ja - Meta] とかにある通り、デフォルトではcssを直接ページ内に書いても有効にならない。<code>wgAllowUserCss</code>をtrueにして有効にするか、MediaWiki:Common.cssを直接編集するとよい。管理がしやすいので当サイトでは後者の方法を採用した。 | [https://meta.m.wikimedia.org/wiki/Help:User_style/ja Help:User style/ja - Meta] とかにある通り、デフォルトではcssを直接ページ内に書いても有効にならない。<code>wgAllowUserCss</code>をtrueにして有効にするか、MediaWiki:Common.cssを直接編集するとよい。管理がしやすいので当サイトでは後者の方法を採用した。 | ||
68行目: | 91行目: | ||
当サイトではVectorテーマを使用しているので、MediaWiki:Vector.cssの内容も適用される。さらにVector 2022を使っているのでMediaWiki:Vector-2022.cssの内容も適用される。 | 当サイトではVectorテーマを使用しているので、MediaWiki:Vector.cssの内容も適用される。さらにVector 2022を使っているのでMediaWiki:Vector-2022.cssの内容も適用される。 | ||
設定内容としては、ja.wikipedia.orgに合わせて文字サイズを0.875emから0.944emに変更している。 | <s>設定内容としては、ja.wikipedia.orgに合わせて文字サイズを0.875emから0.944emに変更している。</s>現在は0.944→0.974に変更している。さらに、<code>vector-font-size</code>([[MediaWiki#文字サイズ|文字サイズ]]参照)関連の設定が優先される状態になっている。 | ||
=== 文字サイズ === | |||
MediaWikiの文字サイズは結構小さくて、Google検索コンソールでも評価を下げられたりすることがあり、[[MediaWiki#スキン・デザイン|CSS/JS]]の通りにサイズを手動で大きくするなどしていた。しかし、最近(2025/04)Wikipediaなどを見たら文字サイズが改善していて、さらによく見ると右側に表示(Appearance)というサイドバーがあり、非ログインユーザーでも文字サイズを3段階で変更できる(Cookieに保存される)ようになっている。 | |||
これは[https://www.mediawiki.org/wiki/Topic:Ybg9afru94numvhu The Appearance menu and new default standard font size will be available for logged-out users on Project:Village Pump/Flow]などに詳しく書いてあるが、どうやらver1.43前後からこの機能が追加されたようである。 | |||
ただし、デフォルトでは非ログインユーザーの文字サイズは3段階の一番小さいものに設定されており見づらい。このデフォルト値をLocalSettings.phpで変更する方法は多分なさそうだが、ソースコードを読むと、<code>skins/Vector/skin.json</code>の<code>"vector-font-size": 0</code>を例えば<code>1</code>に変更するとデフォルトが真ん中のサイズになることがわかる。 | |||
上記リンクには、いずれデフォルトがStandardサイズ(つまり<code>1</code>)に変更されるだろうと書いてある。そして、日本語版Wikipediaでは既にデフォルトが<code>1</code>になっている。しかし、現時点の日本語版WikipediaのMediaWIkiのバージョン([https://ja.m.wikipedia.org/wiki/Special:Version バージョン情報])である1.44.0-wmf.27 (fbabd90)(かなり新しい)では、依然として上記の設定値に<code>0</code>になっていた([https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/skins/Vector/+/refs/heads/wmf/1.44.0-wmf.27/skin.json skin.json - mediawiki/skins/Vector - Gitiles])。日本語版Wikipediaでもソースコードにカスタマイズが入っているのか、それとも他の方法があるのかは不明。 | |||
<span id="モバイルminerva"></span> | |||
=== モバイル・minerva === | |||
[https://www.mediawiki.org/wiki/Extension:MobileFrontend/ja Extension:MobileFrontend - MediaWiki]を使うと、モバイルデバイスでアクセスした際に(デフォルトでは)minerva(<code>MinervaNeue</code>)スキンが使われるようになる。 | |||
minervaスキンだとカテゴリが表示されないが、LocalSettings.phpに<code>$wgMinervaShowCategories = [ 'base' => true ];</code>と書くことで表示されるようになる。<code>$wgMinervaShowCategoriesButton = [ 'base' => true ];</code>という情報も出てくるが、現在の最新版ではこれは効果がなかった。 | |||
== シェルアクセス == | == シェルアクセス == |
2025年5月6日 (火) 13:36時点における最新版
Wikipediaやこのサイトで使用されている代表的なWikiシステムであるMediaWikiについて解説する。
初期設定
動作要件
データベース(MySQL)と(CGI版の)phpが使えることを確認しておく。スターサーバーフリー(php+mysql)では動いた。
SSHが使えないような低価格帯のレンタルサーバーのプランの中でも、PHPでexecなどの機能を使えば事実上任意コマンドが実行できるものと、それらの機能が制限されているサーバーがある。後者でもMediaWikiは一通り動くが、一部機能が動作しない場合もあるのであまりお勧めしない(特に他サーバー移行で手こずるのは困る)。
インストール
詳しくはここを参照。
MySQLの設定をしたら、Mediawikiのファイル一式を設置し、/mw-configにアクセスして指示に従うとインストールが完了する。/mw-configは誰でも見られるファイルなので少し不安だが、MySQLのパスワードがわからないとインストールは完了しないため、別に公開でも問題なさそう。(不安ならBasic認証をかけておく?)
初期の管理ユーザーのパスワードを忘れるとやや面倒なことになる。Chromeがちゃんと覚えてくれない場合があるので注意すること。
データベース(phpMyAdmin)から、
UPDATE `user` SET user_password = CONCAT(':B:somesalt:', MD5(CONCAT('somesalt-', MD5('somepass')))) WHERE user_name = 'someuser'
とする。https://www.mediawiki.org/wiki/Topic:Rnq7yc02mg1o4j34より。2か所あるsomesaltのところにはLocalSettings.phpの$wgDBpasswordの値を入れること。
MediaWiki1.12以前はちょっと違うらしい。自分が成功したのは1.39.1(2023年1月)。
- CGI版じゃなくてphpコマンドが直接打てるなら、こちらの方法でもいけそうである。
- ファイル一式は、zipを解凍してからFTPでアップロードするとかなり時間がかかるので(1時間くらい)、zipでアップロードしてサーバー上で解凍したほうがいい。レンタルサーバー提供のファイルマネージャーでできない場合は、ZIPファイルをサーバーにアップしてから解凍する方法 のようにPHPでファイル名を指定して解凍するか、https://github.com/dulldusk/phpfm のようなPHPで動くファイルマネージャー(フォルダ削除なども高速にできる)から解凍するとよい。ただし、これらのphpファイルはBasic認証で保護するなどアクセス権限には十分気を付けること。exec系(任意コマンド実行)が許可されていないstarserver freeでもこれらは動作した。
MediaWikiの拡張はたくさん(全部)onにするとよいらしい。
設定が終わるとLocalSettings.phpが出力され、以後これで色々な設定ができるようになる。インストール後にフォルダ名を変えるときはリネームの上、LocalSettings.phpで$wgScriptPath = "/mw";
などと変えればよい。新規ユーザー作成を許可するかどうかなどの設定もここでできるので、禁止したい場合などはこのタイミングでやっておくとよいだろう。
Gitからのインストール
Git からのダウンロード - MediaWikiなどに書いてあるが、安定版リリースにバンドルされている拡張やスキン(Bundled extensions and skins - MediaWiki)やvendorフォルダ(?)が無かったりして動かすのに一手間かかる。
その他初期設定
管理画面
ブラウザ上から$wgScriptPath以下の/mw-configというパスにアクセスすればよい。ここは誰でも見れてしまうが、その先に進むには(初期インストール後に生成されてLocalSettings.phpに書き込まれる)$wgUpgradeKeyが必要なので管理者以外は操作できない。
ロゴ
参考サイトにもあるが、resource/assets/にデフォルトのchange-your-logo.svgがある。それを上書きするか、名前を変えるなら$wgLogosで設定。サイズは135x135で表示される(それより大きいサイズにすると切り取られる)模様。faviconも$wgFaviconで設定。自分はsvgを256x256のpngで保存してからImageMagickでicoに変換した。
ここから設定すると版指定削除ができる。
スキン
$wgDefaultSkin = "vector";となっているが、"vector-2022"のほうが良さそうだったのでそちらに変えた。あわせて$wgVectorResponsiveをtrueにしてモバイルでの視認性を上げた。カテゴリページの自動作成
Auto Create Category Pagesをダウンロードし、wfLoadExtension( 'AutoCreateCategoryPages' );
とする。これは便利。アクセス数解析
精度のほどはわからないが、HitCountersでできる。同じようにダウンロードした後、リンク先に記載のとおり、管理画面に行ってupdate.phpを実行する必要がある。その後で
wfLoadExtension
をすればよい。アクセス数は誰からでも見えるようであるが、特に問題はないので放置。SyntaxHightlight
Linuxのサーバーでは、
extensions/SyntaxHighlight_GeSHi/pygments/pygmentize
のパーミッションを変更して所有者に実行権限を付加(先頭の桁を7にする)。参考: Extension:SyntaxHighlight - MediaWiki
アップグレード
基本的には、
- 新しいバージョンのMediaWikiファイル一式を新しいフォルダに設置して、そこに
- LocalSettings.phpとimagesをコピー
- LocalSettings.phpは場合によって手直しが必要かも
- 自分で追加した拡張(extensions)(このサイトでいえばAutoCreateCategoryPagesとWikiSEO)やスキンなどを改めてダウンロードして追加(コピーしてきてもいいが、バージョンを更新したほうが良さそう)
- ロゴなど、その他リソースをコピー
- LocalSettings.phpとimagesをコピー
- シェル(推奨)またはmw-config(当サイトの環境ではシェルのPHPが古すぎるのでこっち)からDBの更新(ただ、バージョンの差が小さければ、既に更新前の段階で基本的に問題なくページが閲覧できる場合も多そう)
という流れ。
1.のところでは、既存のMediaWikiインストールに上書きコピーするというのも一応可能で、実際これでやっている人も結構いそうだが、古いバージョンの(不要な)ファイルが残ってしまうので推奨はされていない。
スキン・デザイン
CSS/JS
Help:User style/ja - Meta とかにある通り、デフォルトではcssを直接ページ内に書いても有効にならない。wgAllowUserCss
をtrueにして有効にするか、MediaWiki:Common.cssを直接編集するとよい。管理がしやすいので当サイトでは後者の方法を採用した。
当サイトでは使っていないがJSについても同じ(wgAllowUserJs
とMediaWiki:Common.js)。
スキンに関するCSS
当サイトではVectorテーマを使用しているので、MediaWiki:Vector.cssの内容も適用される。さらにVector 2022を使っているのでMediaWiki:Vector-2022.cssの内容も適用される。
設定内容としては、ja.wikipedia.orgに合わせて文字サイズを0.875emから0.944emに変更している。現在は0.944→0.974に変更している。さらに、vector-font-size
(文字サイズ参照)関連の設定が優先される状態になっている。
文字サイズ
MediaWikiの文字サイズは結構小さくて、Google検索コンソールでも評価を下げられたりすることがあり、CSS/JSの通りにサイズを手動で大きくするなどしていた。しかし、最近(2025/04)Wikipediaなどを見たら文字サイズが改善していて、さらによく見ると右側に表示(Appearance)というサイドバーがあり、非ログインユーザーでも文字サイズを3段階で変更できる(Cookieに保存される)ようになっている。
これはThe Appearance menu and new default standard font size will be available for logged-out users on Project:Village Pump/Flowなどに詳しく書いてあるが、どうやらver1.43前後からこの機能が追加されたようである。
ただし、デフォルトでは非ログインユーザーの文字サイズは3段階の一番小さいものに設定されており見づらい。このデフォルト値をLocalSettings.phpで変更する方法は多分なさそうだが、ソースコードを読むと、skins/Vector/skin.json
の"vector-font-size": 0
を例えば1
に変更するとデフォルトが真ん中のサイズになることがわかる。
上記リンクには、いずれデフォルトがStandardサイズ(つまり1
)に変更されるだろうと書いてある。そして、日本語版Wikipediaでは既にデフォルトが1
になっている。しかし、現時点の日本語版WikipediaのMediaWIkiのバージョン(バージョン情報)である1.44.0-wmf.27 (fbabd90)(かなり新しい)では、依然として上記の設定値に0
になっていた(skin.json - mediawiki/skins/Vector - Gitiles)。日本語版Wikipediaでもソースコードにカスタマイズが入っているのか、それとも他の方法があるのかは不明。
モバイル・minerva
Extension:MobileFrontend - MediaWikiを使うと、モバイルデバイスでアクセスした際に(デフォルトでは)minerva(MinervaNeue
)スキンが使われるようになる。
minervaスキンだとカテゴリが表示されないが、LocalSettings.phpに$wgMinervaShowCategories = [ 'base' => true ];
と書くことで表示されるようになる。$wgMinervaShowCategoriesButton = [ 'base' => true ];
という情報も出てくるが、現在の最新版ではこれは効果がなかった。
シェルアクセス
Manual:Maintenance scripts/Running the scripts - MediaWikiにあるように、シェルアクセスがないところで使っている場合は拡張機能でどうにかする。2つ書いてあるがMaintenanceShellのほうがいろいろと良さそう。MaintenanceShellは、有効にしたあと、Special:MaintenanceShellにアクセスする。
しかし、generateSitemapとかはまともに動かなかった。まあやはりというか、普通はシェルアクセスのあるところで使ったほうがいいっぽい。
API
nodeでやる。requestはdeprecatedになったのでaxiosを使う。
cookieを使うってことがどこにも書いてなくて難しかった。ここでようやく見つけた。
画像
Help:画像 - MediaWikiに詳しく書いてある。
MediaWikiにアップロードするのが原則だが、$wgAllowExternalImagesという変数を設定することで外部サイトの画像を直接掲載できる。このサイトは個人サイトであり、管理しやすい(普通のアップロードだとランダムなフォルダに入れられたりするし、移行が煩雑そう)のでこちらを使っている。
サイズ
style="max-width:100%; height:auto;"
みたいなCSS(当サイトでは前述のCommon.cssに入れた)を使えば、外部サイトの画像でもサイズを変えられる。
500 internal server error
アップロードまではできたが、画像ファイルが(ftpで見てもちゃんとアップロードされているのに)500 internal server errorで見れない。
これはstarserverの性質かもしれないが、どうやらimages直下の.htaccessが悪いようで、これを消したら見れた。実際に悪さをしているのはOptions +FollowSymLinks
だったっぽい。これをコメントアウトすると見れた。
URLを短くする
最初の設定だとURLにindex.php?title=
のような見栄えのよくない文字列が入ってしまうが、Wikipediaのようにexample.com/wiki/タイトル
のような形式が使えるように設定することもできる。Manual:短縮URL - MediaWikiに案内がある。そこに書いてある通り、URLに?
が入っているのは見栄えだけでなくSEO上もあまりよくないとのこと。
注意点として、index.php?title=
形式を短い形式に強制的にリダイレクトさせるわけではない(index.phpは単なる記事の閲覧以外にも使われるので、そのように設定するのは面倒そう)。ただ、この状態でも、記事間リンクは短いURLを使ってくれるようになる。あとはWikiSEO拡張(後述)を使うと検索エンジンにも短いURLが通知される。
このサイトはサーバーがApacheなので、Manual:Short URL/Apache - MediaWikiの通りにする。長々と説明が書いてあるが、普通に設定するならSimple instructionsのところだけ読めばよい。URLに設定したい場所(たとえばwiki
)が既にMediaWikiのフォルダとして使われているとうまくいかない(このサイトの場合はmw
なので大丈夫)ので、この記事の最初の方にある通りにMediaWikiのフォルダのほうを動かす。
テンプレート
MediaWikiにはテンプレートというものがあり、記事のパーツを引用して使いまわすことができる。このWikiでもWikipediaの「独自研究」などに倣ったメッセージボックスをいくつかテンプレートとして利用している。
例えば、まず以下のような汎用のMbox
というテンプレートを作り(色も引数で指定できるのがポイント)、
<div style="border-left: 0.4rem solid #119922" ><div style="padding-left: 10px; padding-right: 10px; border: 1px solid #222222; background-color:#FBFBFB; border-left: 0.4rem solid {{{1}}}" >{{{2}}}</div>
</div>
これを利用して下書きのテンプレートを作っている。
{{Mbox|#000022|このセクションの内容は未完成であり、今後の加筆が予定されています。}}
SEO・OGP
まずはWikiSEOというextensionを同じように入れる。
OGP
このサイトではとりあえず大した設定はしておらず、$wgWikiSeoDefaultImage = "http://turgenev0.starfree.jp/mw/logo0.png";
でロゴを設定し(相対パスでも表示はされるようだが、SNSで重要なOGPとは?SEOとの関係性や設定方法を解説 -webma-とかを見ると多分絶対パスのほうがよさそう)、各ページに{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
と書いただけで、あとは何もしていない。先ほどの「URLを短くする」をやっておくと、そちらのURLが正規URL(カノニカルURL)として扱われるっぽい。
表示を確かめたいときはシェアデバッガー - Meta for Developersを使うとよい。
{{#seo:...}}
でimageなどを一度設定してしまうと、後でimageを消してもその設定がそのまま残ってしまった(WikiSEOのwfLoadExtension
を外すと消えるが、付けるとまた復活する)。おそらくページなどを格納しているMySQLデータベースのどこかに前回の設定が残っているのであろう。ページを削除するとリセットできるがそれ以外の治し方は不明。
サイトマップ
generateSitemap.phpを使えばよい。しかし以前使っていたスターサーバーフリーではシェルアクセスがなくて使えなかったので自前で生成できるようにした(参考: フィルターされたNotionページによるMediaWiki)
その他SEO
そこまでの必要性を感じないが、気が向いたらやるかも。