読者です 読者をやめる 読者になる 読者になる

Yura YuLife

ITエンジニアの覚え書き

MediaWikiのデータ移行と、エラー対処方法

MediaWiki php

Wikipediaでも利用されているWikiエンジンのMediaWikiXML形式で出力することで、データのエクスポートやインポートが簡単にできるのも特徴です。

動作環境

MediaWikiのデータ移行方法

データのエクスポート

  • http://MediaWikiのURL/index.php/特別:データ書き出し にアクセス
    • 古いMediaWikiの場合はhttp://MediaWikiのURL/index.php/特別:Export
  • エクスポートするページ名を1行に1ページずつ記入して「書き出し」ボタンをクリック
    • 全ページを出力する場合は、http://MediaWikiのURL/index.php/特別:ページ一覧をコピペすると便利
  • 生成されたXMLファイルをダウンロード

データのインポート

  • http://MediaWikiのURL/index.php/特別:データ取り込み にアクセス(管理者権限が必要)
  • 先ほど出力したXMLファイルを選択して「ファイルをアップロード」をクリック
  • ファイルサイズがそれほど大きくなければ、インポートが完了するはず

データのインポートに失敗する場合

僕は30MBくらいのXMLファイルをインポートしようとしたのですが、「取り込みに失敗しました: セッションデータを損失しました。 もう一度試してください。」というエラーが表示されてインポートができませんでした。

これは、PHPの設定で、POSTもしくはアップロードの最大サイズが制限されているためです。

PHPの設定変更

php.iniで以下の行の数値を変更してください。

$ sudo vi /etc/php5/apache2/php.ini

max_execution_time = 300 ; 処理をするのに十分な秒数を設定
max_input_time = 60 ; 処理をするのに十分な秒数を設定
memory_limit = 128M ; PHPが利用可能なメモリ量を十分な量に設定
file_uploads = On ; ファイルのアップロードを許可
post_max_size = 80M ; ファイルのアップロードに十分なサイズを指定
upload_max_filesize = 80M ; ファイルのアップロードに十分なサイズを指定

$ sudo service apache2 reload

僕の環境では、これで無事データのインポートに成功しました。

データのインポートが完了した後は、php.iniをもとの設定に戻しておくことを推奨します。