Manual:Upgrading/ja



概要
最初に、MediaWikiに入っている UPGRADE テキストファイルをお読みください.


 * 1) 要件を確認する
 * 2) リリースノートを読む
 * 3) 既存のファイルとデータベースをバックアップする
 * 4) 新バージョンのファイルを展開（解凍）する
 * 5) 更新スクリプトを実行してデータベースをチェックする
 * 6) 拡張機能（エクステンション）をアップグレードする
 * 7) 更新を確認する

システム要件を確認する
MediaWiki のシステム要件は次のとおりです.

PHP

 * PHP 5.0.x 以上
 * PHP 5.1.x または 5.2.x、5.3.x（5.3.1 はバグがあるため除く）の使用を推奨します.
 * 特定の64ビットプラットフォーム上の PHP 5.0.xには、MediaWikiに根本的な問題を引き起こすバグがあることに注意してください. x86_64（AMD64、EMT64）または影響のあるその他の64ビットプラットフォーム上で稼動させる場合、PHP 5.1.x または 5.2.x が要件となります.

DBMS

 * MySQL 4.0.x 以上
 * バージョン 3.x は MediaWiki 1.6.0以降ではサポートされていません.

または

なお、Cロケールで日本語全文検索をできるのはPostgreSQL 8.2.2以降です. 8.2.1はパッチを適用する必要があります.
 * PostgreSQL 8.1 以上
 * Postgres 8.1 または 8.2 で稼動させる場合は tsearch2 および plpgsql モジュールも必要となります.
 * Upgrading Postgres も参照のこと.

リリースノートを読む
tar形式の配布パッケージまたはSVNからチェックアウト／エクスポートしたファイル群の中に、ファイル名が大文字のファイルがいくつかあります. そのうちの一つが RELEASE-NOTES（wiki）です. 今すぐファイルを開いて、このリリースで何が変わったのかを確かめましょう.

既存のファイルとデータベースをバックアップする

 * 完全な説明書： Manual:Backing up a wiki/ja

アップグレードスクリプトがよく整備され堅牢であるとはいえ、失敗も起こりえます. データベース構造を更新する前に、データベースとファイルの両方を含む、wikiの完全なバックアップを取得してください.


 * wikiのコンテンツをデータベースより. SQLデータベースダンプに加えてXMLダンプを取っておくのもよい考えです.
 * MySQL:
 * テキストダンプ： mysqldump --all-databases > file.txt
 * xmlダンプ： mysqldump --all-databases --xml > file.xml
 * PostgreSQL:
 * pg_restore の出力： pg_dump --create -Fc -i yourwiki > yourwiki.db.dump
 * SQLite:
 * php maintenance/sqlite.php --backup-to filename
 * 画像およびその他のメディアファイル（images ディレクトリの中身）
 * 設定ファイル、すなわち LocalSettings.php</tt> および AdminSettings.php</tt> （存在する場合）
 * MediaWikiのプログラムファイル. すべてのスキン・拡張機能を含む. 自分で変更した場合は特に.

tar形式パッケージの利用
tarballパッケージを使う場合、旧バージョンのMediaWikiが稼動しているサーバ上でファイルを展開します. tarballパッケージを解凍するとき、通常はwikiの新バージョン用の新規ディレクトリが作成され、新ファイルとディレクトリを現行のwikiディレクトリにコピーしなければなりません. そうする代わりに、展開と同時に既存ファイルを置き換えて1ステップでこれを実行するには、次のコマンドを用います.

$ tar xvzf mediawiki-.tar.gz -C /path/to/your/wiki/ --strip-components=1

古いLinuxディストリビューション（すなわち RHEL/CentOS 4.x）上では、

$ tar xvzf mediawiki-.tar.gz -C /path/to/your/wiki/ --strip-path=1

--strip-components</tt> や --strip-path</tt> フラグのない旧バージョンのtar（例えば GNU tar 1.13.x）を使っている人は、次のとおりに -C</tt> オプションなしでアーカイブを展開し、その後、旧wikiディレクトリの中に最新パッケージの中身を再帰的にコピーします.

$ tar xvfz mediawiki-.tar.gz $ cp -r mediawiki-/* /path/to/your/wiki/

(Open)Solarisユーザは gtar を使うか、または

$ gzip -dc mediawiki-.tar.gz | tar xf -

Windowsユーザはtarballの展開に7zipが使えます.

Subversionの利用
Subversionを使う場合、クリーンな場所にファイルをエクスポートします. ディレクトリ構造を保ったまま、すべての既存ファイルを新バージョンで置き換えます. これでコアコードが最新になります.

更新スクリプトを実行する <span id="Run_the_update_script">
注： 1.16以前のwikiへアップグレードする場合、wikiのルートに AdminSettings.php</tt> ファイルが存在し、最新の情報が入っていることを確かめてください. ユーザにはデータベースのフルパーミッション（シェルアクセス）が必要です.

推奨する更新実行方法はコマンドラインのメンテナンススクリプトを使うことですが、webベースのインストーラを再実行することも可能です.

シェル
コマンドラインまたはSSHシェルの類で、maintenance</tt> ディレクトリに移動し、更新スクリプトを実行します.

$ php update.php

Windows上の simple installations向けの注意（XAMPPなど）： .php ファイルが PHP.exe と関連付けられていれば、update.php ファイルの実行（ダブルクリック）によりスクリプトを実行できます（そうでない場合は update.php を右クリックして「プログラムから開く」（Open With）を選び、PHP.exe をブラウズします）. サーバアプリケーション（Apacheなど）やデータベース（MySQLなど）の稼動中に行うこと.

MediaWikiは既存の構造を検査し、必要応じてテーブルやカラムを追加し、新しいコードで動作するよう構造を更新します.

「No superuser credentials」エラーの対処法
In case the scripts abort with a message:

"No superuser credentials could be found. Please provide the details of a user with appropriate permissions to update the database. See AdminSettings.sample for more details"

This means that you should check that you have defined $wgDBadminuser and $wgDBadminpassword in your LocalSettings.php file (in the main directory). These are the user and password needed by this script in order to access to the database. (Note: Prior to MediaWiki 1.16, these variables were located in . This file was removed in 1.16 and the variables were moved to LocalSettings.php.)

「unexpected T_STRING」エラーの対処法
Individuals running update.php from the command line may encounter the following errpr: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ~/mainteance/commandLine.inc on line 13

This error occurs when update.php is run from php4.

Individuals who have their site hosted by providers whom provide both php4 and php5 should take the following steps:
 * 1) from the command line, enter the command 'whereis php5'
 * 2) once you have discerned the location of the php5 path, list the contents of php5/bin directory
 * 3) once you've determined the name of the php executable (either php or php5), then type in the entire path to execute update.php

Below is an example: $ whereis php5 $ ls -la ls /usr/local/php5/bin $ /usr/local/php5/bin/php update.php

phpShell
フルパーミッション／シェルアクセスが利用できない場合、PHP関数を利用してコマンドプロンプトをエミュレートするphpShellなどの選択肢を考えてください. これはロックダウンされたホスティング設定上では動作しないかもしれません.

このような解決策を利用するとき、スクリプト開始時の秒読み期間を飛ばす方がよい場合がよくあります. そうするには更新スクリプトに --quick</tt> オプションを渡します.

$ php update.php --quick

様々なPHPバージョンがインストールされている場合、「php」ではなく「php5」を使わなければならないかもしれません. phpshellでは、phpshellがウェブサーバからの実行であるために、スクリプトが終了してしまわないよう commandLine.inc および LocalSettings.php ファイルの編集が必要かもしれません. 次のように実行することにより、この問題を回避できる可能性があります.

$ unset REQUEST_METHOD; php update.php --quick

これは、スクリプトを終了させる存在である REQUEST_METHOD 環境変数を廃棄した上でスクリプトを実行します.

インストーラを再実行する
シェルからの更新スクリプト実行に代わる方法の一つは、webインストーラを再実行することです. 次の手順で行ないます.


 * 1) LocalSettings.php</tt> を LocalSettings.old.php</tt> にリネーム（改名）します
 * 2) config</tt> ディレクトリをwebサーバが書き換えられるようにします
 * 3) データベースユーザにデータベースの全権限があることを確認します
 * 4) ブラウザでwikiにアクセスしてインストーラを起動します
 * 旧バージョンのインストール時と同じ値を入力欄に記入します.
 * スクリプトは、インストール処理を開始するときに既存のMediaWikiテーブルを検出し、テーブル構造をアップグレードします.
 * 完了すると、新しい LocalSettings.php</tt> が生成されます.
 * 1) 新しい設定ファイル（LocalSettings.php</tt>）を削除します
 * 2) LocalSettings.old.php</tt> を元の LocalSettings.php</tt> にリネームします
 * 3) config</tt> ディレクトリのパーミッションを元に戻します

拡張機能をアップグレードする
拡張機能（エクステンション）は、新バージョンのMediaWikiで動作するために更新されています. 必ず最新バージョンにアップグレードしてください. 手動でカスタム拡張機能に更新する必要があるかもしれません（訳注： 原文の意図ががつかめず. You might need to perform manual updates to custom extensions.）.

更新を確認する
アップグレードが完了したら、ブラウザでwikiを表示し、次の操作が期待どおりに動くか確認します.
 * ページの表示
 * ページの編集
 * ファイルのアップロード

Special:Versionを開き、バージョン表示が正しいことと拡張機能が存在することを確認します.

アップグレードはどのくらい大変ですか？
自分で修正を加えたファイルが LocalSettings.php のみであり、1.5以降からのアップグレードであれば、作業はとても単純です. 人手を伴なう作業量は数分だけです. データベース構造の変更には、データベースの大きさに比例した時間がかかります――何百万ものページがあるwikiでは数時間ですが、典型的な数千ページの大きさであれば普通は数秒で完了します.

同じメジャーバージョン内のマイナーアップグレード、例えば1.13.0から1.13.1へは、データベース構造の変更は全く必要ありません. ただファイルを更新するだけでいいのです.

1.4以前からのアップグレードは複雑になる可能性があります. UTF-8以外のキャラクタセット（文字コードセット）のサポートが停止となり、テキストの大半を格納する構造が変わったためです. UPGRADE</tt> ファイルの関連セクションをお読みください.

MediaWikiのソースコードを修正していてその変更を上書きされたくない場合、アップグレード作業が難しくなります. diffやpatchといったツールが役立ちます. メンテナンスされていない拡張機能を使っている場合も面倒を引き起こすことになるかもしれません. MediaWikiのアップグレードと同時に拡張機能もアップグレードしてください.

とても古いバージョンからのアップグレードはどのように行ないますか？一段階で？数段階？
一段階で、使用中の旧バージョンから最新の安定バージョンへ. 報告の大多数でも自動テストでも、一段階で問題がないことを示しています.

信じがたければメーリングリストのこの投稿をお読みください.

最初にバックアップすべきですか？
端的な回答： はい.

長い回答： a) データ量、b) バックアップの作成がどのくらい大変か、c) MySQLのメンテナンスおよび管理にどのくらい自信があるか. それ次第です.

アップグレードが失敗すると、データベースが2つのバージョン間で矛盾した状態のままとなってしまう可能性があります. 重要なテーブルが（更新処理上の）一時的な名前に変わった後、正しく再作成される前に失敗するかもしれません. フィールド定義が間違ったデータ種別に変わってしまうかもしれません. アップグレードではごく稀ですが、取り返しのつかないデータ消失となるかもしれません. 発生したデータの破損は、多くの場合、熟練した管理者によって復元できます.

復旧にはたいてい手間がかかります. バックアップを怠った上でアップグレード関連のデータ破損から復旧する手助けをサポートフォーラムのボランティアに求めるのは、感心されることではありません. バックアップに戻した上で、破損の原因となったアップグレードスクリプトの処理のバグを報告できれば、よりよい成果となります.

自分の LocalSettings.php を使い続けられますか？
はい、ただ、小さな変更を加える必要があるかもしれません. LocalSettings.php の書式の大部分は下位互換性があります. LocalSettings.php の互換性が中止となった変更点は、リリースノートの「configuration changes」セクションに書かれています.

アップグレード中もwikiをオンラインのままにできますか？
はい、できます.

MediaWikiのマイナーリリース間のアップグレードであれば、ソースファイルを更新するだけです.

MediaWikiのメジャーリリース間の更新の場合、推奨手順は次のとおりです.


 * 1) 新しいディレクトリの中にMediaWikiの新バージョンを展開します
 * 2) 上記新ディレクトリを整える： 旧ディレクトリから現行の LocalSettings.php をコピー、インストールしてある拡張機能とカスタムスキンをコピーします（もしあれば）.
 * 3) 旧ディレクトリの LocalSettings.php で読み取り専用モードを有効にします.


 * 1) 新ディレクトリでアップグレードスクリプトを実行します.
 * 2) 旧ディレクトリと新ディレクトリを入れ替えます.