MediaWiki-Vagrant/ja





MediaWiki-Vagrant (訳注: 略称 MW-V) は、ポータブルな MediaWiki 開発環境です. MediaWiki が動作する仮想マシンの作成を自動化するVirtualBoxとVagrant（ベイグラント）の一連の設定スクリプトで構成されています. 設定はセキュリティよりも開発しやすさに重点を置いており、MediaWiki-Vagrantは公開のウィキ群での使用が非推奨です.

MediaWiki-Vagrant が作成する仮想マシンは、MediaWiki のコードの学習や修正、改善を簡単にする：便利なデバッグ情報が標準で表示され、MediaWikiコードの検証やインタラクションに特化したさまざまな開発者向けツールが設定されていて、強力なデバッガーやインタラクティブなインタープリターが含まれている. なによりもまず、設定が仮想環境上に自動化され組み込まれているので、ミスを犯しても簡単に元の状態に戻すことが可能である.

システム要件

 * CPU: 64-bit x86プロセッサ
 * OS: Linux、macOSまたはWindows
 * メモリ: 合計4 GiB RAM以上をシステムに搭載、ホストのOSとVMを同時に走らせるには理想的には8 GiB以上. 2 GiB RAMしか積んでいない場合は障害を避けるため駆動しないこと.
 * ディスク: プライマリドライブに数ギガバイトを開放（Linuxは/homeパーティション、WindowsはC: ドライブ）. VMディスクイメージが既定でホームディレクトリに保存されることに留意.
 * ネットワーク: Debian Linux 更新版とMediaWikiソースコードのダウンロードができる帯域の有効なネットワーク接続
 * セットアップ所要時間: 20分から2時間. 条件ならびにトラブル発生による.

クイックスタート
(USB ディストリビューションから MediaWiki-Vagrant をインストールしている場合は、最初の4つの手順ではなく README に従ってください. )

  Git を入手  (Linux only) Install NFS if it is not already installed. In Ubuntu, use. Fedora usually come with NFS installed, but try  and see the specific documentation page to make sure a Fedora NFS setup is OK.   最新の VirtualBox を入手 Note: The latest VirtualBox (5.2.0) does not work with the latest Vagrant (2.0.0). Please install VirtualBox 5.1.30.  最新の Vagrant を入手  コードを取得して利用者のマシンを作成:

As of early 2017, you might encounter errors during this vagrant up step, where git is unable to clone mediawiki. This is a very cumbersome problem that we track at T152801. If you are getting this error, try the following:
 * 1) in , set
 * 2) in  :
 * 3) uncomment lines 19-20 (start of VM config loops)
 * 4) uncomment line 28, set the memory to 3128
 * 5) uncomment line 32 (end of first loop)
 * 6) uncomment line 45 (end of second loop)
 * 7) copy support/Vargantfile-extra.rb to the root of the repo



他のMediaWiki 機能を有効にする. 例えば：

 Vagrantによるマシン設定が完了したら、 http://127.0.0.1:8080/ を検索してMediaWikiインスタンスを確認. ログインには利用者 とパスワード が必要です. VisualEditorを有効にしている利用者は、代わりにhttp://dev.wiki.local.wmftest.net:8080/を検索します. If you encounter "No wiki found.." message on the above instance, try to destroy vagrant. 

メッセージに従いGerrit利用者名を入力（推奨）もしくはEnterを押します.

Windows利用者
Git for Windowsを取得し、Git Bashシェルで コマンドを起動します. シェルから を実行します.

トラブルシューティングのスタートアップ
問題の解決策がこのページで見つからない場合は、チャットルームの、特にチャネルで相談するといいかもしれません.

あらゆるホスト
例:
 * VirtualBoxとVagrantはLinux配布の提供するバージョンをインストールしてみます. DebianあるいはUbuntuの最近の版を駆動する利用者は、 sudo apt-get install virtualbox vagrant を試してVirtualBoxとVagrantのパッケージをインストールします.
 * エラーメッセージが vagrant up から送られる場合には、代わりにVirtualBoxとVagrantの最新バージョンをインストールします.
 * エラーメッセージのうち「$CLONED_REPOSITORY/trusty-cloudを開けません」などと表示される場合は、以下のコマンドを試してみます. vagrant up --provider=virtualbox
 * puppet errors が発生した場合は、puppetモジュール初期化が求められている可能性があり、vagrantディレクトリで git submodule update --init を実行します
 * Apache/PHPが有効で機能しているかどうか確認するには、 http://127.0.0.1:8080/info.php を使います.
 * 利用する端末における vagrant up の初期動作の出力を確認したい場合は、このsampleと比較します. 初期セットアップには長時間かかることがあります. エラーはないのにハングアップしたと思われる場合は、しばらくそのままお待ちください.
 * VirtualBox Guest Additionsのバージョンが間違っているという警告が出た場合には、プラグインのvagrant-vbguestをインストールして自動更新を試します.
 * Vagrant がご利用のVMとのペアリングを失効することは滅多にありません. その回避方法はこのスレッドで協議しています（例えば新しいプロファイルに古いVMハードドライブを付けるなど）
 * リポジトリが最新版かどうか確認します.
 * リポジトリが最新版かどうか確認します.
 * BIOSで仮想マシン利用を有効にしてあるかどうか確認します. セキュリティ設定内に置かれている場合があります.
 * 言語設定がUTF-8になっているかどうか確認します. 「US-ASCIIのバイトシーケンスが無効」という警告が出たら、LANGおよびLC_ALLtryの環境変数の設定（再設定）を適切な値に変えてみます.

Windows特有

 * Windows利用者で「ゲストマシンが無効になりました」 - 「電源オフ」の状態になった場合、VirtualBoxの4.3.15ビルドのダウンロードを試してください（Windowsでは4.3.14のビルドに既知の問題あり）. それでも解決しない場合はBIOSでハードウェア仮想化技術（VT-xもしくはAMD-V）が有効かどうか確認. ハードウェア仮想化は必須であり、オプションのパフォーマンス強化ではありません. （一部のノートパソコンでは電源ケーブルとバッテリーを30秒間、取り外す必要あり ）
 * VirtualBox は、マイクロソフトの Hyper-V と互換性がありません.  Hyper-Vを有効にした場合 – Visual Studio をインストールした環境ではおそらく既定 – VirtualBox の VM をブートしようとすると上記のエラーが発生します.  可能な対処法は3つ:
 * Hyper-Vを終了させるためコマンドプロンプトで「bcdedit /set hypervisorlaunchtype off」を実行後、リブート. Hyper-Vをオンにするには、「オフ」から「自動」に切り替え
 * コントロールパネルの「ウィンドウズの機能を追加・削除」を介して Hyper-V を無効化、 リブートする. この操作で VirtualBox を有効にできるものの、Windows Phone のエミュレータなど Hyper-V VMs はすべて無効になります.
 * または、VirtualBox の代わりに Vagrant Hyper-V provider を使う. これは不安定の可能性があります.

Mac特有

 * NFS errors NFSエラーの回避には、インストール作業中にファイヤウォールで接続を認めるように設定します：Apple > システム設定 > セキュリティとプライバシー > ファイヤウォール > ファイヤウォールのオプション. 「外部からの接続をブロック」のレ点を外し、さらに「ステルスモードを有効にする」も外すことで以下を可能にします：netbiosd、nfsd、rpc.lockd、rpc.rquotad、rpcbind、VBoxHeadless. 注記＝コンピュータの再起動を求められ、さらに複数の でステータスを「外部からの接続を許可」に変更を求められる場合があります. インストール完了後、ファイヤウォールのルールが更新できていれば「全ての外部からの接続をブロック」「ステルスモードを有効にする」にレ点を入れることができるはずです.
 * 代替策として 経由でNFSシェアをオフにできます

Debian および Ubuntu

 * MediaWiki-Vagrant は特定のフォルダをホストマシン（利用者のコンピュータ）と共有するためNFSを使います. それには利用者のコンピュータをUbuntuの手順の指示などを参照して「NFSサーバ」に設定する必要があります.  Debian上では sudo apt-get install nfs-kernel-server が使えます. こちらも の処理をします.  注記＝DebianのNFSサーバを始動するには にエントリをします.   で有効な「nfs」サービスを検知しない場合、現状はそのとおりだと考えられます.  通常は、 の最終行に利用しているホームディレクトリを記入してから /etc/init.d/nfs-kernel-server 再起動 すると、堂々めぐりの問題から脱出できるはずです.


 * MediaWiki-Vagrantの採用するNFS共有は、暗号化されたディレクトリからは駆動しません. その点、Ubuntuでは暗号化されたホームディレクトリを使用します. そこに問題の原因があるのかもしれません. MediaWiki-Vagrantを走らせるには以下から処理を選んで実行します.
 * の駆動の前に、MediaWiki-Vagrantディレクトリを暗号化していないボリュームに移動（例： ）
 * 別の処理として、 経由でNFS共有を無効にする
 * NFS設定そのものが完了していない場合（初期の が「NFS共有フォルダを積む」段階でハングアップした状態）. ホストでNFS daemonを再スタートすると解決することがあります（#5802を参照してください. ）


 * ポートフォワーディング（Port forwarding）のエラーが発生してポートが使用中というメッセージが出る場合は、virtualboxを開き仮想マシンを残らず削除してから、再度、実行します.

Debian「wheezy」（以前を含む）
驚かないでください！ 同梱されたのはVagrantの旧版パッケージのため、公式サイトからインストールし直してください. 処理をしないと次のようなエラーが発生します.

基本的な使用法
ホストマシン上の vagrant コマンドラインツールは仮想マシンの制御に使うサブコマンドを複数、提供します. 実は既に利用しています. 仮想マシンをオンにする vagrant up です. 大部分の vagrant サブコマンドと同様、実行はMediaWiki-Vagrantディレクトリもしくは その子クラスから起動する必要があります. 初回の起動ではVagrantがシステムイメージを取得、MediaWikiの駆動に不可欠なソフトウェアを準備します. 処理にはブロードバンド接続でCPU時間と実測時間で1–2時間かかるものの、実行は1回限りです. その後 vagrant up を起動すると仮想マシンをすぐに起動します.

vagrant ssh は仮想マシン上にインタラクティブなログインシェルを起動し、ユーザ名 vagrant としてログインします. ルートへは sudo 経由でアクセス可能で、パスワードは不要です. 仮想マシンはユーザのコンピュータ上で完全にサンドボックス化されており、環境設定はセキュリティではなく使いやすさ主体です. 原則としてパスワードを求められたら と入力します.

ログインすると色鮮やかなMediaWikiのバナーの他、便利なコマンドのヒントが表示されます.

コマンドの hhvmsh は既に読みこまれたMediaWikiのコードベースとともにインタラクティブなPHPインタプリタを起動します. コードを入力して〈エンターキー〉を押すとコードは直後に評価されます. 行の1文字目に等号〈=〉を入力すると処理結果はプリティプリントで出力します. ? と入力すると簡潔なヘルプを、 help start で補足的な指示を表示します.

フォルダはユーザのホストマシン上のMediaWiki-Vagrantフォルダに対応し、内容を共有します. MediaWikiのコードのインストール先は です. そのため仮想マシンのMediaWikiコードの編集は、ホストマシン上の通常のエディタ環境を利用できます.

gitリポジトリや外部ライブラリ、データベースのスキーマを最新に保つには、 vagrant git-update を使います. このコマンドは次の処理に相当します.
 * 1)  と全ての拡張機能や外装のディレクトリで git pull を走らせる.
 * 2) composer update を走らせ、最新のコンポーザーで管理するライブラリを使用できるようにする
 * 3) さらに スクリプトを走らせる.

You should also occasionally (or when needed for a new feature) update MediaWiki-Vagrant itself, which vagrant git-update does not include. Run:

in your MediaWiki-Vagrant root directory. This will take effect when you run:

(immediately or later).

仮想マシンからログアウトするには logout と入力するか CTRL + D のキーを押します. すると標準のコマンドプロンプトに戻り、 vagrant halt を起動仮想マシンをシャットダウンしたり、 vagrant up で再起動できます. 仮想マシンのファイルを削除するには vagrant destroy というコマンドを使い、インスタンスを手付かずの状態に戻すのに便利です. （新たなインスタンスとして整えるには続いて vagrant up を実行します. ）

ロールの利用
MediaWiki-Vagrantは既定でMediaWikiの基本的なインスタンスを設定するものの、人気のあるMediaWikiの拡張機能やその依存関係など、相補的なソフトウェアの環境設定の方法も承知しています. これらの選択できるソフトウェアスタックを総合して〈ロール〉（役割）と呼び、MediaWiki-Vagrantによってコマンドラインの強力なインタフェースでそれらを簡単に制御します.

 $ vagrant roles list


 * 1) Display a list of available roles.

<div style="font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; width: 375px;margin: auto;"> $ vagrant roles enable role


 * 1) Turn on role for this machine.

<div style="font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; width: 375px;margin: auto;"> $ vagrant roles disable role


 * 1) Turn off role for this machine.

<div style="font-family: Consolas, monaco, monospace; font-size: 13px; background-color: #333; color: #fff; padding: 1px 12px; width: 375px;margin: auto;"> $ vagrant provision


 * 1) After you are done enabling and/or disabling roles, run this to make the change take effect.

Watch a short screencast demonstrating how to use roles. Roles has more information about some roles.

If you add many roles, you may need to increase memory available to the Vagrant VM. In particular, setting up the "browsertests" role involves compiling the  ruby Gem which is a memory-hungry task; if it fails try freeing some memory in the VM or increasing its memory allocation.

See the section Authoring roles below if you're interested in adding roles to MediaWiki-Vagrant.

centralauth
There are some roles that require special attention, centralauth role does not run db migrations automatically via puppet and requires running those by hand. If you get errors on provisioning this role try to run this script on the extension and see the errors it outputs:

mwscript extensions/CentralAuth/maintenance/migrateAccount.php --username 'Admin' --auto

Once you get a more concrete error you probably need to know what migration you need to run from the ones here:

extensions/CentralAuth/db_patches

Local MediaWiki core copy
Sometimes you may want to start over from scratch by removing the entire vagrant directory or cleaning out the vagrant/mediawiki directory. In order to speed up the vagrant provisioning process, you may want to consider keeping a local, updated clone of the MediaWiki core that you copy into vagrant/mediawiki.

for example, assuming you are cloning MediaWiki repos into ~/projects/mediawiki/ :

cloneしたリポジトリの更新
Update the cloned repos as often as possible/necessary.

Or to update all cloned repos:

Vagrantの再読み込み
If you change configuration (e.g. vagrant_ram, your VM/MediaWiki web site freezes, or you experience a problem, vagrant reload may resolve it. This will restart your guest. Some roles also require a reload, which should happen automatically.

When to enable roles
Enable roles only once you've successfully run your first vagrant up.

Vagrant behind proxy
If you are behind a proxy, Vagrant might throw some errors. vagrant-proxyconf をインストールすることもできます. 仮想マシンが特定のプロキシを使用できるようにするプラグインです. This is a quick set up guide. For a detailed documentation you may check here.

プラグインをインストールします:

すべての vagrant 仮想マシン上のすべてのソフトウェアのプロキシ設定を変更するには、 (既定では  ) に以下の行を追加します.

Replace the addresses with the ip and port number of your proxy server. Use the config.proxy.no_proxy option to list out all the sites/domains for which you might want to bypass proxy. For example,

Now when you run a vagrant up, there shouldn’t be any warnings.

To disable the plugin set config.proxy.enabled to false or empty string (""). You can also disable it for specific applications. For example,

MediaWiki-Vagrant prep
You may want to consider using a shell script such as mw-vagrant-prep to prepare a directory for a MediaWiki-Vagrant install.

プロビジョニング
あなたは実行中にプロビジョニングプロセスをデバッグできます.

PHP
See Manual:How to debug#HHVM. But first work around.

You can debug PHP with Xdebug if you vagrant enable-role zend. Debugging in PHP is different from other client-side debugging. Your IDE listens for incoming connections, and when you access the server with a browser, a special header instructs PHP to connect to your IDE. See MediaWiki-Vagrant/Advanced usage for further information.

Chrome

 * For Chrome users, you should get XDebug Helper, and optionally Clear Cache, HTTP headers, and Mod Headers. Configure clear cache to automatically reload after clearing, and set up keyboard shortcuts (e.g. Ctrl+R for clear&reload, Ctrl+Shift+D to switch XDebugger on/off)

Firefox

 * Firefox users should check out easy Xdebug.
 * Install and configure an xdebug-compatible IDE on your machine (Eclipse, PhpStorm, Emacs, etc)
 * In IDE, start listening for the incoming debug connection
 * In IDE, set break point at the spot that interests you
 * Enable XDebug in the browser and navigate to your vagrant installation ( http://127.0.0.1:8080/... )

ログ ファイル
The mediawiki logs can be found in /vagrant/logs. There are log files for Apache in /var/log/apache2/, but it seems they are not written to. There is a log file for HHVM in /var/log/hhvm/. The PHP notices, warnings, errors, uncaught exceptions are logged by HHVM to the syslog which you can see in /var/log/syslog. The MySQL query log can be obtained by issuing SET GLOBAL general_log = 'ON'; in a client and then looking at /var/lib/mysql/*.log.

Running and debugging unit tests
To run the tests:

You can append path/to/tests/to/run.

Some tests may require running as the proper user to create lock files and such, hence this command runs as the "user"  that handles web requests.

For building coverage reports, see Manual:PHP unit testing/Code coverage.

Debugging phpunit tests is a little more complex. This method is a bit hacky, but can be used until debugging remote interpreter improves (e.g. in phpStorm 8 EAP). This workaround lets you run MediaWiki unit tests from the browser.
 * Download phpunit.phar file to the root of you vagrant directory.
 * Create a php file  in the root of the   directory. Do not commit this file to the repository. Paste the following code into it:


 * In the above file, change argv parameter to the name of your test file
 * Apache maps the root of the mediawiki directory to . So navigate to http://127.0.0.1:8080/w/unittest.php to run this file
 * Follow #Debugging instructions to attach your debugger

Running browser tests
See here.

コミットのプッシュ
If you're using MediaWiki-Vagrant for development you'll probably want to push some commits to MediaWiki core or an extension's repository using git review. By default, all remotes point to the  URLs. To avoid overriding this on a case by case basis, run:

$ git config --global url."ssh:// @gerrit.wikimedia.org:29418/".insteadOf "https://gerrit.wikimedia.org/r/p/"

You also need to have your ssh keys in.

How do I...?

 * Check PHP version and settings
 * http://127.0.0.1:8080/info.php


 * Edit LocalSettings.php?
 * First, check that there is no role ( vagrant list-roles ) that already does what you need. If not, create a file in  directory. See README and 00-debug.php-example file.


 * Update MediaWiki code?
 * The easiest is to use  from the host.  Or, to just update the code without dependencies, you can use regular git ,  , etc. commands in   and   directories. You can run these commands on the virtual machine, but the file access will be faster on the host machine. MediaWiki-Vagrant pulls code from git master when you initially set up and/or add a role, but doesn't automatically update code after that.


 * Run MediaWiki PHP interpreter
 * ssh to vagrant and run . You might need to run it with


 * Run MediaWiki SQL interpreter
 * ssh to vagrant and run . You might need to run it with

''NN packages can be updated. NN updates are security updates.'' In vagrant ssh:
 * Update virtual machine software packages?
 * does not update system packages in the VM. When you connect with vagrant ssh the login message will inform that you:
 * to update all packages, enter
 * for "automatic installation of security (and other) upgrades", similar to Cloud VPS instances, enter
 * to update to the same packages that are on production WMF servers... TODO


 * Customize Vagrant
 * You should never need to change Vagrantfile directly. There are several aspects of vagrant you can customize:
 * Core settings (git user, ports, ram, ip, port forwarding) can be customized via .settings.yaml file. See  and   for instructions. So for example you may run   to enable port forwarding from host:1234 to guest:80.
 * Perform additional steps after Vagrantfile load by creating a file called Vagrantfile-extra.rb and placing it in the same folder as Vagrantfile - it will be automatically loaded. In case of conflict, values in the 'extra' file will supersede values in this file. See example in support/ directory.


 * Add custom Puppet code?
 * This is ideal if you want to work on your own MediaWiki site locally and let the MediaWiki-Vagrant install your dependencies for you. It's ideal if you have your own fork.  There is a distinction between a role and this use case. Roles are meant to be installed in any order and without breaking. If your fork needs different calls and get in trouble with roles, create your own class and call what you need, including roles.
 * To do so, place your custom puppet code in  with your own class, like so:

To apply your class, add it to the "classes" key in. You can create the file if it doesn't exist.

Then run  to apply the change via Puppet.


 * Update MediaWiki-Vagrant itself?
 * (For example, to use new roles.) In a terminal, change to the vagrant directory on the host computer and enter a regular git command such as . You will typically want to run   after updating to apply any new puppet changes to your virtual machine.


 * Run GUI applications on the virtual machine?
 * If you have an X server installed, SSH into the virtual machine using  to enable X forwarding. (Mac users should update to the latest version of XQuartz.)


 * As an alternative, you can run the virtual machine in GUI mode, which allows you to interact with the VM as though it had a physical display. To enable GUI mode, create a file called  in the root repository folder, with this as its content:


 * Save the file and run  followed by  . The virtual machine's display will appear in a window on your desktop.


 * <span id="Adjust_CPU"> Adjust the resources allocated to the VM?
 * If you'd like to allocate more or less CPU / RAM to the VM, see  for instructions.

Alternatively, you can do it by creating Vagrantfile-extra.rb (see support/ dir for an example):


 * Change the editor used for git commit messages?

Go to Special:NovaProxy, click "Add proxy" and enter a DNS hostname, say View your new wiki at " http:// /wiki/ "
 * Setup a custom hostname?

Create a local.yaml file in the /vagrant/puppet/hieradata directory. In it, add: Run.
 * Make the custom hostname point to homepage of my vagrant role instead of wiki homepage?


 * Run a branch of MediaWiki other than master?
 * Set the "" key in .  You can create the file if it doesn't exist.


 * Run MediaWiki under PHP5 (Zend PHP) rather than HHVM?
 * Visit the  vhost that MediaWiki-Vagrant provisions automatically. This Apache vhost runs the same configuration as the default   vhost but using PHP5 instead of HHVM.
 * To convert all wikis in your MediaWiki-Vagrant instance to PHP5:  Note that this can significantly improve performance on some testing setups.

MediaWiki の設定
As an alternative to managing all MediaWiki settings in a single, large LocalSettings.php file, consider grouping your configurations by component or theme, and creating a separate PHP file in  for each group. This makes it quite easy to keep your settings organized, to temporarily disable specific configurations, and to share settings with others. MediaWiki will automatically load any PHP files in  in lexical order. You can control the order in which your configurations are set by adopting the habit of adding a two-digit prefix to each file name.

例:

<pre style="background-color: #efefef; border: 0; display: inline-block; font-family: Consolas, monaco, monospace; margin: 0.4em 0 1em; padding: 0.2em 0.6em;"> settings.d/   ├── 10-RunFirst.php ├── 20-SomeExtension.php └── 99-RunLast.php Note that the settings files in  are automatically created and destroyed in response to your Puppet configuration. Don't put your custom settings there, because Puppet will erase or override them. Keep your custom settings files in  instead.

Vagrant flags
vagrant config --list display a list of all current Vagrant flags.

After the initial, in your vagrant directory, you can then set one of the vagrant flags that appears in the config list, e.g.

Job queue
If you're testing something that needs to churn the job queue, you may need to increase the number of job runners. Currently this is not available through LocalSettings.php, but must be set in the config file for the job runner.


 * 1) Open
 * 2) Change the value for the ' ' key from   to the desired value (say,  )
 * 3) Re-provision with
 * 4) Beware this will be a difference from the git master in your code

See instructions above for adjusting CPU core count appropriately (highly recommended for CPU-bound task such as video transcoding).

Authoring roles
The virtual machine created by MediaWiki-Vagrant resembles Wikimedia's production environment in key respects, and it uses the same tool—Puppet—that Wikimedia's technical operations team uses to manage production servers and Wikimedia Cloud VPS instances. Puppet is a configuration management tool that provides a domain-specific language for expressing software configurations in a declarative fashion. Files containing Puppet code are called 'manifests'. When Puppet runs, it interprets the manifests you feed it and configures the machine accordingly. A Vagrant role is a set of Puppet manifests.

MediaWiki-Vagrant's Puppet codebase contains abstractions that make it easy to automate the configuration of MediaWiki extensions and related software. If you are a developer working on a software project that relates to MediaWiki, you are encouraged to submit a patch with a Puppet role for your project. Adding a Vagrant role for your project makes it easy for other developers to check out your work. Using a managed virtual machine as a development sandbox for your project reduces the chance of "works-on-my-machine" errors that often result from geographically remote developers working in incompatible environments.

The easiest way to get started with custom roles is to look at how existing roles are implemented in </>. These roles depend on Puppet modules in  (usually,   translates to a call to  ) and use files and templates from the other  </> directories. The Puppet code is generally well-documented and contains examples that demonstrate its proper usage.

Some of the more useful puppet modules are:
 * mediawiki::extension: install and configure an extension (example)
 * mediawiki::import::text: create a documentation or test page on the wiki (example: declaration, page)
 * mediawiki::import::dump: import a wiki dump (example)
 * require_package: install a system package (example)
 * exec: execute a shell command (example)

Setting up an instance on Cloud VPS
You can use MediaWiki-Vagrant in Cloud VPS to install MediaWiki on a Wikimedia Cloud VPS instance and enable MediaWiki-Vagrant roles in it.

バグ
If you spot a bug in MediaWiki-Vagrant, please report it. First, make sure the bug is not a known Vagrant or VirtualBox bug by searching the Vagrant issue tracker on GitHub and the VirtualBox bugtracker. If it is not, go ahead and submit the bug to Wikimedia Phabricator. Clearly describe the issue and include steps to reproduce, whenever possible.

リンク

 * Project page on Ohloh
 * MediaWiki-Vagrant on GitHub
 * Issue tracker on Phabricator
 * HHVM/Vagrant steps necessary to enable the hhvm role on older MediaWiki-Vagrant installs
 * Bash commands needed for quick start on Ubuntu
 * Bash commands needed for quick start on Ubuntu