Manual:メンテナンススクリプト

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Maintenance scripts and the translation is 64% complete.

Other languages:
Deutsch • ‎English • ‎dansk • ‎español • ‎français • ‎italiano • ‎magyar • ‎polski • ‎português do Brasil • ‎русский • ‎العربية • ‎हिन्दी • ‎ไทย • ‎中文 • ‎日本語
Community Noun project 2280.svg 利用者 Octicons-terminal.svg システム管理者 Source code project 1171.svg 開発者 OOjs UI icon language-ltr.svg 翻訳者

メンテナンススクリプトは管理、取り込み、維持、レポート、アップグレードなどさまざまな仕事を行うときに使われます。スクリプトはPHPで書かれており、MediaWikiをインストールしたディレクトリ配下の maintenance にあります。

数十種のスクリプトがありますが、どれだけ一般的に役立ちどれだけの品質を持っているかはさまざまです。スクリプトを使う前には説明文書をしっかり読んでください。もし説明文書がなければ、スクリプトを実行する際さらに注意を払ってください。

設定

Manual:$wgDBuser で設定した利用者に必要な権限がない場合、 $wgDBadminuser$wgDBadminpassword の設定変数は必ず指定し、 Manual:update.php のようにデータベースの構造を変更を必要とするメンテナンススクリプトを実行できるようにしてください。あるいは、--dbuser--dbpass のパラメータを使ってこれらの値をスクリプトに渡すこともできます。これら変数の値はMediaWikiのインストールでどのデータベースエンジンを使うよう指定したかによって変わります。 設定しない場合、Manual:$wgDBuser で設定したユーザが使われます。

MySQL

セキュリティ上の理由から、MediaWikiの主たるデータベースアカウントが持つべきではないデータベース権限を必要とするメンテナンススクリプトがあります。'管理者'の権限を持つ別のデータベースアカウントを、MediaWikiデータベースだけのためにつくっておくべきです(もしまだ存在しないのであれば)。MediaWikiで使うデータベースの名前が wikidb であれば、以下のSQLによりlocalhostにおいて管理者権限で実行できるそのような利用者を作成できます。

GRANT ALL PRIVILEGES ON wikidb.* TO 'wikidbadmin'@'localhost' IDENTIFIED BY 'strong-password';

アカウントが既に存在するなら、そのアカウント名を $wgDBadminuser に設定してください。他の設定変数と同じように、$wgDBadminuserLocalSettings.phpに設定すべきです。$wgDBadminuser のパスワードは $wgDBadminpassword 設定変数に必ず設定してください。

PostgreSQL

PostgreSQL uses a different security model than MySQL and the same PostgreSQL server account used for day-to-day operation of the MediaWiki installation must also be used for running the maintenance scripts. This is necessary to ensure that the owner for new tables created by the maintenance scripts is set correctly. You don't need to set $wgDBadminuser or $wgDBadminpassword at all.

スクリプトの実行

Example of IP address and FTP user name and password on the Godaddy.com hosting site.

The maintenance scripts must then be run from the command line. Users who do not access the server directly from its terminal will usually establish a connection through ssh. For Linux/Unix users this is by using the ssh client in a shell. For Windows users the use of a ssh client application such as the one introduced below is required.

Required program for Windows users: PuTTY or any terminal emulator

Under the Host Name (or IP address) enter the IP Address of your web hosting site.
  • Step 2: In PuTTy, under the Host Name (or IP address) enter the IP Address of your web hosting site (Contact your website provider if necessary) and click Open.
At the login as: line enter the FTP user name.
  • Step 3: A command screen will pop up. At the login as: line enter the FTP user name.
On the FTP user name@IP Address's password line: type the FTP password.
  • Step 4: Enter the FTP password.
putty のコマンドライン。
  • Step 5: Change the current directory to the maintenance subdirectory. You can type pwd to see what folder you are currently in. The maintenance folder is in the root mediawiki folder.
$ cd maintenance
  • Step 6: Execute the maintenance script that needs to be run:
$ php rebuildall.php
If you get an error (for example: php.exe is no valid Win32 application), try the following:
$ php-cgi rebuildall.php
Windows ではコマンドは以下の通りです:
$ C:\path\to\php\php-win.exe C:\path\to\mediawiki\maintenance\rebuildall.php
If your script fails to run, and spews out a lot of error messages, the first thing to try is to set the MW_INSTALL_PATH environment variable to point to the root of your MediaWiki installation. This will help scripts to find the necessary files, and is particularly relevant when running maintenance scripts provided by third-party extensions.

標準のコマンドラインオプション

/maintenance にあるほとんどすべてのPHPスクリプトでは以下に示す標準オプションが使えます。

--help
ヘルプ メッセージを表示します
--conf <path>
LocalSettings.php の場所。指定しない場合は既定値(スクリプトの親ディレクトリ)が設定されます。
--dbuser <username>
LocalSettings.php で指定したものとは異なるデータベースアカウントを指定します。データベース接続を必要としないスクリプトや、バックエンドデータベースとしてSQLiteを指定した場合、この指定は無視されます。
--dbpass <password>
LocalSettings.php で指定したものとは異なるデータベースアカウントのパスワードを指定します。データベース接続を必要としないスクリプトや、バックエンドデータベースとしてSQLiteを指定した場合、この指定は無視されます。
--globals
デバッグのため処理の最後にグローバル変数の内容を出力します。
--memory-limit <value>
スクリプトが使えるメモリの上限値を設定します。標準の php.ini で使える略記法(1024K、20M、1Gなど)を使った値を指定できます。max を指定すると制限なくメモリが使えます(指定しない場合の既定値)。default を指定すると設定を変更しません。 (1.17 で導入)
--quiet
エラーではない内容は出力しない。
--wiki <id>
ウィキファームのウィキID。IDは dbname または dbname-prefix の形で指定します。LocalSettings.php は MW_DBMW_PREFIX の定数に設定された値を使って実行されます。
--profiler
プロファイラーの出力書式(通常はtext)。 (1.22 で導入)
--mwdebug
あらかじめ用意されたMediaWiki開発者用設定を有効にする。 (1.31 で導入)

シンボリックリンクを使ったMediaWikiのインストール

MediaWikiのphpファイルが主となるインストールからのシンボリックリンクとなっていた場合、メンテナンススクリプトへのパスを LocalSettings.php ファイルに指定する必要があります。例えば、

php maintenance/importImages.php --conf /var/wwwdata/website.org/wiki/LocalSettings.php /tmp/wikiimages .jpg .png .svg

そうしないとこのようなエラーが表示されるでしょう。

A copy of your installation's LocalSettings.php
must exist and be readable in the source directory.


共有設定を使ったMediaWikiインストール(ファミリー型)

多言語用ウィキファミリーとしてMediaWikiをインストールし、設定(LocalSettings.php)を共通部分と言語個別部分に分ける場合があります(Manual:Wiki family#Shared Settings 参照)。このとき、共通部分は /w ディレクトリの外に配置し、相対リンク(require_once "../ExtensionSettings.php";)を使ってアクセスします。 この場合、メンテナンススクリプトを /w/maintenance ディレクトリで実行してもうまく動作しません。 そうではなく、/w ディレクトリで以下のように実行してください。

$ php maintenance/rebuildall.php

シェルでアクセスできない場合

多くの共有ホストでは、シェルを使ってアクセスすることができません。その場合、Maintenance MaintenanceShell の拡張機能を使ってウェブからメンテナンススクリプトを実行できるようにするといいでしょう。

メンテナンススクリプトの一覧

Instead of this probably-outdated list,

Here is the list of files included in the maintenance subdirectory located at the root of a MediaWiki installation. You can contribute to this manual by keeping this list up to date, adding a description of these files' specific purpose and of how an administrator should use them (command line examples, etc.). Be aware that these were created & named on an ad hoc basis so have some usability issues. Please add any you notice to Usability#Poorly named and documented maintenance scripts.

maintenance/

maintenance/archives

maintenance/benchmarks

maintenance/dev/includes

maintenance/language

maintenance/oracle

maintenance/storage

maintenance/term

関連項目