How to become a MediaWiki hacker/ja

他の言語：English (en:) Français (fr:)

このページでは、MediaWikiの開発プロセスにまつわる情報を集め、新参の開発者の諸疑問に答えるよう努めます. もしあなたが、私たちのコーディングを手伝おうと案じながらも、まだ必要な技能を修めていないなら、ここはそのよい出発点です.

まずいくつか、決定的に重要なリンクを：


 * MediaWiki開発のウェブサイトには開発にまつわる全般的な情報があります.
 * SourceForge（ソースフォージ）にあるMediaWikiプロジェクトのページでは、コードを調べたり、バグを報告することができます. 但し、私たちはSourceForgeのパッチトラッカーは使っていないので気をつけてください. （パッチが何かご存じない方は、下の説明を参照して下さい. ）
 * メーリングリスト（英語）: 開発には wikitech-l、サポートには mediawiki-l、CVSのコミット通知には mediawiki-cvs
 * Help:MediaWikiアーキテクチャにはさらに詳しいドキュメンテーションがあります！

各種のオペレーティングシステム
MediaWikiソフトウェアはPHPで書かれており、MySQLデータベースを使用します. この2つは色々なオペレーティングシステムに移植されており、そこには、これらに限りませんが、UnixのほとんどのバージョンとMicrosoft Windowsが含まれす. したがって、どちらのシステムの下でもウィキペディアをインストールして使うことができます. とはいえ、ほとんどの開発者は、Unix環境にある、Unix界で作られたツールをより好んで使うので、たぶんUnixを使っているほうがよい援助を受けられるでしょう.

Unixに乗り換えを図っている人には、Unixの各種のフリーな（オープンソースの）バージョンがあります. そのうちで最も普及しているのはLinuxで、これはパッケージ済みの形で手に入り、インストールもそれなりに簡単です. Unixの世界を知るには、「Rute Tutorial」が特にお勧めです（PDFでも読めます）. 同様に、日々の作業には「Linux cookbook」、もっと複雑な問題には「Linux documentation project」もどうぞ.

PHPプログラミング言語
もし、PHP（PHPは「PHP: Hypertext Preprocessor」の略）の知識がないまでも、別のオブジェクト指向プログラミング言語でプログラミングする方法を知っているなら、恐るるなかれ、PHPの習得はあなたにとって簡単です.

もし、PHPに限らずオブジェクト指向プログラミング言語の知識がない場合は、クラス、オブジェクト、メソッド、イベント、継承のような諸概念には馴染んでおくべきです.

もし、いかなるプログラミング言語の知識もない場合、PHPは、その特殊な実行のされ方にも関わらず、現行の他の言語にそれなりに似ているので、プログラミングの入門に適した言語のひとつです.

ほとんどのプログラムとは異なり、コマンドラインやウィンドウマネージャからPHPスクリプトが実行されることは通常ありません. そのかわりPHPスクリプトは、ウェブサーバに対して（主に）拡張子「.php」をもつファイルが要求されたときに実行されます. そのときウェブサーバ（ここではApache）はPHPインタプリタ（ウェブサーバに組み込んでもよい）を呼び出し、そのPHPファイルを解釈し、結果をブラウザに返します. PHPファイルは正規のHTMLとPHPコードを一緒に含むことができるので、静的なウェブページに動的な機能性を加えるのが比較的単純になります.

関連リンク：


 * PHPの簡易チュートリアル（多言語）
 * PHPマニュアル（多言語）
 * PHP wiki（ドイツ語）

SQLとMySQL
現在ウィキペディアはデータベースバックエンドとしてMySQLを使っています. PHPに必ずMySQLサポートが組み込まれるようにすること！

私たちはパフォーマンスとポータビリティへの関心から、このウィキを別のデータベースバックエンド、特にPostgreSQLとも動作させようと努めています.

MediaWikiのインストール
CVSからソースを取る方法についてはMediaWiki from CVS（ja:Wikipedia:PHPスクリプト）を参照して下さい.

ソースの中のINSTALLファイルに、暗号めいた指図が見つかります. それに従ってみてください. また、MediaWiki User's Guide: Installationを調べてみてもよいでしょう.

既存のデータベースのコピーを手元に置いて玩びたいなら、まずMySQLで空のデータベースを作成し、「maintenance」サブディレクトリにある「createdb.php」スクリプトを走らせます（適切に構成しておくこと！）. メンテナンススクリプト群はメインソースディレクトリの諸ファイルから include されることに気をつけて、PHPのインクルードディレクトリとして設定するか、または単にその中にコピーしてしまいましょう.

そしてSQLダンプを、自分が求める言語の分だけ手に入れておき、こんなふうにインポートします:

gzip -dc cur_table.sql.gz | mysql -u wikiadmin -padminpass wikidb gzip -dc old_table.sql.gz | mysql -u wikiadmin -padminpass wikidb cd maintenance ; php rebuildlinks.php
 * Linux

ファイルをunzipした後、 mysql < cur_table.sql mysql < old_table.sql cd maintenance ; php rebuildlinks.php
 * Windows（上のように「-u wikiadmin -padminpass wikidb」が必要かもしれない）

リンク表の再構築にかかる時間は、極めて大きな英語のデータベースをインストールした場合などに特に長くなることがあります. （表「old」を割愛したいと思えばできることにも注意）rebuilding.phpの趣意についてはデータベースレイアウトを参照してください.

このやり方は、ウィキペディアの公開ミラーを作成したい場合にはたぶん最良ではないことに注意して下さい. もしこのやり方でミラーを設置するなら、コードを微調整して、ミラーを見ていることを明示し、またメインサイトに戻るリンクを組み込むように下さい.

ウィキペディア・コードベース
...

はじめての独自機能
...

関連項目：開発方針