Manual:Upgrading/ja



File transfer
Unless you have direct access to the server hosting the wiki, (and even then) you will have to choose a method for transferring files:
 * Secure copy with SCP or WinSCP
 * SSH File Transfer Protocol (SFTP)
 * Using a FTP client.
 * The hosting company might provide a file manager interface via the web browser, check with your provider.
 * Some other method, there is a list of these at List of file transfer protocols

Preliminary
Read the UPGRADE text file included in MediaWiki.


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

システム要件を確認する
MediaWiki 要件は以下の通りです:


 * PHP 以降
 * MySQL 以降、PostgreSQL 8.3 以降、SQLite 3 のいずれか

If you are using PostgreSQL, please read also Upgrading Postgres.

For more information, please read the system requirements and compatibility.

リリースノートを読む
Within the distribution tarball, or within the files checked out/exported from Git, there are a number of files with capitalised filenames, one of which contains the RELEASE-NOTES (wiki). Now's the time to open it up and find out what's been changed in this release.

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

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

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


 * the wiki's content, from the database, (make sure you get the character set specified correctly, first check LocalSettings.php). It may be a good idea to create an XML dump in addition to the SQL database dump.
 * 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 ディレクトリの中身、カスタム ロゴ /skins/common/images/wiki.png）
 * 設定ファイル、例えば LocalSettings.php および AdminSettings.php （存在する場合）
 * 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> ファイルが存在し、最新の情報が入っていることを確かめてください. ユーザにはデータベースのフルパーミッション（CREATE TABLE および ALTER TABLE を使える権限）が必要です.

MediaWikiはコマンドラインと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 error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in ~/maintenance/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), 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

Web （MediaWiki 1.16 以前）
MediaWiki 1.16 以前では、webインストーラの再実行によりwikiをアップグレードできます. 次の手順で行ないます.


 * 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> ディレクトリのパーミッションを元に戻します

Web （MediaWiki 1.17 以降）

 * 1) Navigate to &lt;path-to-wiki&gt;/mw-config/index.php</tt>. For example, if your wiki is at  http://www.example.com/w/index.php </tt>, then navigate to  http://www.example.com/w/mw-config/index.php </tt>.
 * 2) Select your language and click continue.
 * 3) The existing installation should be detected. Follow the instructions on the screen to upgrade it.

拡張機能をアップグレードする
拡張機能（エクステンション）の中には、新バージョンのMediaWikiで動作するよう更新されているものがあります. このような拡張機能については、必ず最新バージョンにアップグレードしてください. カスタム拡張機能については、手動で更新する必要があるかもしれません.

更新を確認する
アップグレードが完了したら、ブラウザで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) 旧ディレクトリから新ディレクトリへ、images サブディレクトリの画像ファイルをコピーします.
 * 3) 旧ディレクトリと新ディレクトリを入れ替えます.