Wikipedia日本語版の記事のダンプファイルをダウンロードして、MediaWikiサーバにインポートする方法のメモ書き。時代の最後尾を往くWebサイト。プライバシーポリシーWikipedia日本語版の記事のダンプファイルをダウンロードして、MediaWikiサーバにインポートする方法のメモ書き。目次はじめにダンプファイルのダウンロードMediaWikiサーバ及びMariaDBサーバのセットアップMariaDBサーバ及びMroongaのセットアップMediaWikiサーバのセットアップMWDumper-1.25のビルドデータの投入の前にちょっと設定。表示例データの投入をやり直したいときまとめスポンサーリンクはじめにとあることがきっかけで、Wikipediaの記事のダンプファイルが公開されていることを知ったので、何かの実験用には使えるのではないかと思い、Wikipedia日本語版のローカルのMediaWikiサーバにインポートしてみることにしました。本記事ではその方法について書きます。文章をいれてみたのですが、それなりに時間がかかりました。Mroongaを追加することにしましたので、本記事ではその追加の方法についても書いていきますが、今のところMroongaをエンジンとして追加しただけで、Wikipediaのインデックスを作成するところまではたどり着いていません。ダンプファイルのダウンロードまず、こちらのページをよく読みつつリンクをたどって、Wikipediaの日本語版のダンプファイルをダウンロードします。適当なファイルをダウンロードすることになりますが、今回はjawiki-latest-pages-articles.xml.bz2をダウンロードします。※最初はjawiki-latest-pages-meta-current.xml.bz2をダウンロードして使おうとしていたのですが、試行錯誤しているうちに変わってしまいました。́・ω・`)かなり容量が大きくダウンロードに時間がかかりますので、ダウンロードの間に他の作業を行います。MediaWikiサーバ及びMariaDBサーバのセットアップ今回はMediaWikiサーバ及びMariaDBサーバともに既存の環境とは別のサーバをセットアップします。MariaDBサーバ及びMroongaのセットアップMariaDBサーバ及びMroongaは以下の手順でセットアップします。/etc/my.cnfの[mysqld]セクションに以下の設定を追加します。文字コードをutf8mb4とするのはUTF-8にすると4バイトになる文字を格納できるようにするためです(utf8のままだとインポートの途中でエラーになり、そこでインポートが終了してしまいます)。[mysqld]sql_mode=ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONcharacter-set-server=utf8mb4/etc/my.cnf.d/client.cnfに以下の設定を追加します。default-character-set=utf8mb4root権限で以下のコマンドを実行し、MariaDBのサーバを再起動します。mariadb以下のコマンドを実行し、MariaDBのデータベースに接続後、データベースを作成します。今回はデータベース名をwikisandboxとしました。パスワードの部分は表示していません。10.0.15以降バンドルされているとのことなので、以下のコマンドを実行し、データベースにインストールします。enginesコマンドを実行し、以下のようにMroongaが含まれていればMroongaが使用可能な状態になっています。MediaWikiサーバのセットアップWikipedia日本語版のインポート用にMediaWikiサーバをセットアップします。セットアップの手順は以下の通りです。root権限で以下のコマンドを実行し、設定ファイルを格納するためのディレクトリを作成後、必要な設定をコピーする。/srv/active/wikisandboxスポンサーリンクroot権限で以下のコマンドを実行し、httpdを再起動する。アクセスし、必要な設定を行います。デフォルト値から変更または新たに設定した値は以下の通りです。(適切な値を指定します。すべてチェックを入れます。MWDumper-1.25のビルド最初はxml2sqlをコンパイルしてインポートをしようとしたのですが、あまりお勧めではないようなので、MWDumperのソースコードをダウンロードして最新版をビルドします。以下の手順でビルドします。packageすると、mwdumper-1.25.jarが作成されます。データの投入の前にちょっと設定。データの投入の前に、以下の手順でextensionをいくつかインストールします。ScribuntoとMassMessageをインストールし、WikipediaのページからInfoboxをエクスポートしてインポートします(もっと他にも必要なextension等があるかもしれませんが、ScribuntoとMassMessageをインストールしないと、データの投入ができませんでした)。LocalSettings.phpに以下の設定を追加します。26)ではInfoboxのロードの際にエラーを出力することがあり、動作が安定しませんでした。extensionをインストールします。インストール後に以下LocalSettings.phpに以下の設定を追加します。);シェルのコマンドプロンプトから以下のコマンドを実行します。以下のコマンドを実行すると、データを投入することができます。jawiki-latest-pages-articles.xml.bz2インデックスの構築スポンサーリンクスポンサーリンク以下のコマンドを実行し、インデックスを構築します。MediaWiki>/LocalSettings.php...と簡単に書いていますが、自宅のPCでは5日ほどかかりました。́・ω・`)おかげで、本サイトの更新も止まってしまう勢いです。そんなふうに考えていた時期が俺にもありました。\qでも、上記のコマンドではmysqldがお亡くなりになってしまうので、以下のコマンドを実行し、MroongaをWrapperモードに使うことにしました。́)シャキーンここまでで、3週間くらいを要してしまいました。ほとんどPCを動かしっぱなしにしたまま放置していただけだったんですけどね。́・ω・`)表示例トップページは以下のような感じの表示になります。画像はインポートしていないため、表示されていません。データの投入をやり直したいときデータの投入をやり直したいときは以下の手順でデータベースごと作り直す(のが一番手っ取り早いと思う、たぶん)。以下のコマンドを実行し、データベースに接続します。-p<password>データベースに接続後、以下のコマンドを実行し、データベースを作り直します。\q以下のコマンドを実行し、テーブル構造を再構築する。MediaWiki>/maintenance/tables.sqlスポンサーリンクまとめやっぱりSSDは速いです。HDDで消耗している場合じゃないですね。類似の語句を探すために使うとか考えてみたのですが、すでにGoogleの中の人がやっているようです。いいアイデアが思いついたら、Googleに入社できたり、上場g...ゲフンゲフンとかできるのかもしれませんね(適当)。Plugin)を使ってみる。ドライブのコピーまで)。このウィジェットの背景が黒くなってしまうことがある理由についてはこちらをクリック。AviUtlgimp-2.10.sikuliGIMP-2.10を使ってスクリーンショットを取得するためのSikuliXのスクリプト。SikuliX-2.0.1+GIMP-2.10.10の組み合わせでのみ動作確認を行っています。SolrのDataImportHandlerで7-zipで圧縮されたファイルのインポートをサポートするためのJARファイル。struts2ajaxtestStruts2でAjaxを使用するWebアプリケーションのサンプル。LANを発行するためのスクリプトのサンプル(Fedora用)。8用のNEologd入りkuromojiをビルドするためのパッチ。8.1→10にアップグレードしてみたところ、途中で電池が切れて復旧に手間取った件。APIを呼び出し、Bitcoinの価格を取得するPython3のプログラムを書いてみた。httpからhttpsへのリダイレクトを削減するためのnginxの設定。YouTube↓のボタンを押していただくとチャンネルを登録できます。見解等とは一切関係ありません。