テクノなまこ

科学の力

MediaWikiのローカル環境へのインストールとMinerva neue導入につまづいた記録

人工言語界隈や架空世界創作や架空地図創作をしている方にとって、大量の設定類を組織的に管理する方法を見つけるのは課題である。無償で使えるウィキとしてはmirahezeやatwiki、scrapboxなどがあるが、mirahezeは2023年ごろから運営の先行きが見えずデータを預ける先として不安である、atwikiは広告があるのが人によっては目障りかもしれない。scrapboxはメモの集積という感じでありそこまで組織化したページを作れないと個人的に感じる。

この記事では下の条件でMediaWikiをローカルにインストールし、MinervaNeueスキンを適用してモバイル対応する。

  • OS: Windows11
  • 仮想OS: Apache/2 .4.57(Devian)
  • 仮想化技術: Docker
  • ウィキソフト: MediaWiki1.41
  • データベース: MySQL5.7.28

ITの素養がない人が、Windows11機にDockerでMediaWikiとMySQLをインストールし、MinervaNeueテーマを適用しようとしたが、日本語のネット上の文章が不親切で、1日程度の時間をかけてしまったので、多少は親切な情報があるべきだと思った。

参考になった https://qiita.com/You_name_is_YU/items/98ad1ee121067c1cdf85

MediaWikiをインストールするとはどういうことか

MediaWikiはphpによって動く動的なwebアプリである。つまり、phpファイルという一般化して書かれたhtmlファイルの前駆体を、サーバーが処理によってリアルタイムでhtmlファイルに変換し、ユーザーへ配信する。MediaWikiはapacheというUNIX系OS(MACやLinuxの親戚)で動く。Windows上で無理やりapacheOSを動かすためにDockerという仮想化技術を使う。このDockerと呼ばれる技術では、PC上で仮想PCを動かすのではなく、ある程度Windowsの基盤を利用して仮想OSを動かすので、多少高速に動かすことができて便利である。Dockerを使うには、docker-compose.ymlと呼ばれるファイルを使う。これは、動かしたいソフトウェアと、ソフトウェアを動かすOS、それらのバージョンやダウンロード先を指定するテキストファイルで、docker-compose.ymlがあるフォルダでターミナル(コマンドプロンプト)を開き、「docker-compose up -d」というコマンドを打つことで一気にOSのインストールとソフトウェアのインストール、起動を済ませてしまう。

私がたどった道筋

  • (dockerdesktopをインストールする)
  • dockerdesktopを起動する
  • mediawikiをインストールするためのdocker-compose.ymlをブログからコピペして、ポート番号の設定を「- 80:80」から「- 8000:80」に変更し、新しく作ったフォルダに置き、フォルダ上で起動したコマンドプロンプトで「docker compose up -d」コマンドを打ってdocker-compose.ymlから各種必要ファイルをダウンロード、ローカルサーバーを起動し、mediawikiのトップ画面をブラウザのlocalhost:8000に表示させる。
  • ブラウザで初期設定を進め、インストールを進め、LocalSettings.phpをダウンロードする -「LocalSettings.phpを、index.phpのあるルートディレクトリに置け」という指示が出るが、index.phpなるファイルはなく、インストールしたルートディレクトリに置いても認識しない。LocalSettings.phpを置く場所がわからず、いつまでも初期設定画面が出続ける。
  • 「ルートディレクトリ」は、docker上で動く仮想OS内部のルートディレクトリであり、windows上でのディレクトリとは別であると認識する。docker-compose.ymlに「 - ./mediawiki/LocalSettings.php:/var/www/html/LocalSettings.php」という記述を足すことで、windows上のパス|仮想OS上のパスを対応付けることができると知り、対応付ける。
  • windowsファイアウォールの詳細設定から、受信の規則と送信の規則を追加し、ポート8000がwifi環境からアクセスできるようにする。
  • (ルーターの設定をいじり、PCが常にローカルネットワークの2台目のローカルネットIPアドレス192.168.11.2に接続されるようにする)
  • スマホから192.168.11.2:8888にアクセスするが、リダイレクトされてアクセスできない。
  • リダイレクトの原因はLocalSettings.phpの「$wgServer = "localhost:8000";」だった。PCからアクセスするとmediawikiをホストしている自分自身のlocalhostに転送されるため、問題なく表示されるが、スマホからアクセスするとスマホのlocalhostに転送されるので表示できなくなっていた。LocalSettings.phpの記述を「$wgServer = "http://192.168.11.2:8000";」と変更することで、PCからアクセスしても、スマホからアクセスしてもPCに転送されるようにしたため、スマホからアクセスできるようになった。(転送設定は必須らしく、消すと起動しなくなった)
  • UIがモバイル対応していないので、モバイル対応しているMinervaNeueにスキンを変更するため、LocalSettings.phpのスキンの記述を「$wgDefaultSkin = "minervaneue";」に書き換えた。
  • mediawikiのトップページに警告表示が出てスキンが反映されない。他のtimeless, monobook, vectorはLocalSettings.phpを書き換えると遅れて反映され正常に起動するが、MinervaNeueのみ警告表示が出る。
  • MinervaNeueを手動でインストールするため、MinerbaNeueをダウンロードし、解凍した「MinervaNeue」という名前のフォルダを、mw4(インストールしたフォルダ)/mediawiki/skins/MineervaNeueに移動させた。
  • エラーが出てmediawikiが起動しなくなった。「wfLoadSkin( 'MonoBook' );wfLoadSkin( 'Timeless' );wfLoadSkin( 'Vector' );」を消すと(コメントアウトすると)動くようになったが、トップページに警告表示が出てやはりMinervaNeueは反映されなかった
  • LocalSettings.phpの記述「$wgDefaultSkin = "minervaneue";」を「$wgDefaultSkin = "minerva";」に変更すると正常にMinervaNeueをインストールできた。